<p><b>dwj07@fsu.edu</b> 2013-03-22 09:44:18 -0600 (Fri, 22 Mar 2013)</p><p><br>
        -- TRUNK COMMIT --<br>
<br>
        Merging scratch indication branch to trunk.<br>
</p><hr noshade><pre><font color="gray">Index: trunk/mpas
===================================================================
--- trunk/mpas        2013-03-22 15:35:22 UTC (rev 2657)
+++ trunk/mpas        2013-03-22 15:44:18 UTC (rev 2658)

Property changes on: trunk/mpas
___________________________________________________________________
Modified: svn:mergeinfo
## -30,5 +30,6 ##
 /branches/omp_blocks/halo:1570-1638
 /branches/omp_blocks/io:1639-1787
 /branches/omp_blocks/multiple_blocks:1803-2084
+/branches/scratch_indication:2555-2656
 /branches/source_renaming:1082-1113
 /branches/time_manager:924-962
\ No newline at end of property
Index: trunk/mpas/src/core_ocean
===================================================================
--- trunk/mpas/src/core_ocean        2013-03-22 15:35:22 UTC (rev 2657)
+++ trunk/mpas/src/core_ocean        2013-03-22 15:44:18 UTC (rev 2658)

Property changes on: trunk/mpas/src/core_ocean
___________________________________________________________________
Modified: svn:mergeinfo
## -32,5 +32,6 ##
 /branches/omp_blocks/multiple_blocks/src/core_ocean:1803-2084
 /branches/omp_blocks/openmp_test/src/core_ocean:2107-2144
 /branches/omp_blocks/openmp_test/src/core_ocean_elements:2161-2201
+/branches/scratch_indication/src/core_ocean:2555-2656
 /branches/source_renaming/src/core_ocean:1082-1113
 /branches/time_manager/src/core_ocean:924-962
\ No newline at end of property
Modified: trunk/mpas/src/framework/mpas_grid_types.F
===================================================================
--- trunk/mpas/src/framework/mpas_grid_types.F        2013-03-22 15:35:22 UTC (rev 2657)
+++ trunk/mpas/src/framework/mpas_grid_types.F        2013-03-22 15:44:18 UTC (rev 2658)
@@ -37,6 +37,7 @@
       integer, dimension(5) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -66,6 +67,7 @@
       integer, dimension(4) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -96,6 +98,7 @@
       integer, dimension(3) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -125,6 +128,7 @@
       integer, dimension(2) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -154,6 +158,7 @@
       integer, dimension(1) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -210,6 +215,7 @@
       integer, dimension(3) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -239,6 +245,7 @@
       integer, dimension(2) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -268,6 +275,7 @@
       integer, dimension(1) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -324,6 +332,7 @@
       integer, dimension(1) :: dimSizes
       logical :: hasTimeDimension
       logical :: isSuperArray
+      logical :: isPersistent
       type (att_list_type), pointer :: attList =&gt; null()     
 
       ! Pointers to the prev and next blocks for this field on this task
@@ -534,6 +543,10 @@
        logical :: single_block
        type (field1dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -562,6 +575,10 @@
        logical :: single_block
        type (field2dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -590,6 +607,10 @@
        logical :: single_block
        type (field3dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -618,6 +639,10 @@
        logical :: single_block
        type (field1dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -646,6 +671,10 @@
        logical :: single_block
        type (field2dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -674,6 +703,10 @@
        logical :: single_block
        type (field3dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -702,6 +735,10 @@
        logical :: single_block
        type (field4dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -730,6 +767,10 @@
        logical :: single_block
        type (field5dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -758,6 +799,10 @@
        logical :: single_block
        type (field1dChar), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -786,6 +831,10 @@
        logical :: single_block
        type (field1dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -815,6 +864,10 @@
        logical :: single_block
        type (field2dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -844,6 +897,10 @@
        logical :: single_block
        type (field3dInteger), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -873,6 +930,10 @@
        logical :: single_block
        type (field1dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -902,6 +963,10 @@
        logical :: single_block
        type (field2dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -931,6 +996,10 @@
        logical :: single_block
        type (field3dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -960,6 +1029,10 @@
        logical :: single_block
        type (field4dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -989,6 +1062,10 @@
        logical :: single_block
        type (field5dReal), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else
@@ -1018,6 +1095,10 @@
        logical :: single_block
        type (field1dChar), pointer :: f_cursor
 
+       if(f % isPersistent) then
+          return
+       end if
+
        if(present(single_block_in)) then
           single_block = single_block_in
        else

Modified: trunk/mpas/src/registry/gen_inc.c
===================================================================
--- trunk/mpas/src/registry/gen_inc.c        2013-03-22 15:35:22 UTC (rev 2657)
+++ trunk/mpas/src/registry/gen_inc.c        2013-03-22 15:44:18 UTC (rev 2658)
@@ -822,8 +822,10 @@
             fortprintf(fd, &quot;      %s %% %s %% isSuperArray = .false.</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code);
             if (var_ptr-&gt;ndims &gt; 0) {
                             if(var_ptr-&gt;persistence == SCRATCH){
+                                  fortprintf(fd, &quot;      %s %% %s %% isPersistent = .false.</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code);
                                   fortprintf(fd, &quot;      nullify(%s %% %s %% array)</font>
<font color="blue">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code); 
                           } else if(var_ptr-&gt;persistence == PERSISTENT){
+                                  fortprintf(fd, &quot;      %s %% %s %% isPersistent = .true.</font>
<font color="black">&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code);
                fortprintf(fd, &quot;      allocate(%s %% %s %% array(&quot;, group_ptr-&gt;name, var_ptr-&gt;name_in_code);
                dimlist_ptr = var_ptr-&gt;dimlist;
                if (!strncmp(dimlist_ptr-&gt;dim-&gt;name_in_file, &quot;nCells&quot;, 1024) ||

</font>
</pre>