<p><b>mpetersen@lanl.gov</b> 2011-09-14 16:15:46 -0600 (Wed, 14 Sep 2011)</p><p>Changed higdon_split name to split_explicit<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/timesplitting_mrp/namelist.input.ocean
===================================================================
--- branches/ocean_projects/timesplitting_mrp/namelist.input.ocean        2011-09-14 21:50:47 UTC (rev 997)
+++ branches/ocean_projects/timesplitting_mrp/namelist.input.ocean        2011-09-14 22:15:46 UTC (rev 998)
@@ -1,6 +1,6 @@
 &amp;sw_model
    config_test_case = 0
-   config_time_integration = 'higdon_unsplit'
+   config_time_integration = 'split_explicit'
    config_rk_filter_btr_mode = .false.
    config_dt = 10.0
    config_start_time = '0000-01-01_00:00:00'
@@ -22,7 +22,7 @@
    config_vert_grid_type = 'zlevel'
    config_rho0 = 1000
 /
-&amp;timestep_higdon
+&amp;split_explicit_ts
    config_n_ts_iter  =  2 
    config_n_bcl_iter_beg =  1
    config_n_bcl_iter_mid =  2

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-09-14 21:50:47 UTC (rev 997)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-09-14 22:15:46 UTC (rev 998)
@@ -20,22 +20,22 @@
 namelist character restart  config_restart_interval    none
 namelist character grid     config_vert_grid_type      isopycnal
 namelist real      grid     config_rho0                1028
-namelist integer   timestep_higdon config_n_ts_iter     2
-namelist integer   timestep_higdon config_n_bcl_iter_beg   4
-namelist integer   timestep_higdon config_n_bcl_iter_mid   4
-namelist integer   timestep_higdon config_n_bcl_iter_end   4
-namelist integer   timestep_higdon config_n_btr_subcycles  10
-namelist integer   timestep_higdon config_n_btr_cor_iter  1
-namelist logical   timestep_higdon config_compute_tr_midstage true
-namelist logical   timestep_higdon config_u_correction true
-namelist logical   timestep_higdon config_filter_btr_mode false
-namelist logical   timestep_higdon config_btr_mom_decay         false 
-namelist real      timestep_higdon config_btr_mom_decay_time    3600.0
-namelist real      timestep_higdon config_btr_flux_coef         1.0
-namelist real      timestep_higdon config_btr_mom_eddy_visc2    0.0
-namelist integer   timestep_higdon config_btr_subcycle_loop_factor  2
-namelist character timestep_higdon config_SSH_from  avg_flux
-namelist character timestep_higdon config_new_btr_variables_from  btr_avg
+namelist integer   split_explicit_ts config_n_ts_iter     2
+namelist integer   split_explicit_ts config_n_bcl_iter_beg   4
+namelist integer   split_explicit_ts config_n_bcl_iter_mid   4
+namelist integer   split_explicit_ts config_n_bcl_iter_end   4
+namelist integer   split_explicit_ts config_n_btr_subcycles  10
+namelist integer   split_explicit_ts config_n_btr_cor_iter  1
+namelist logical   split_explicit_ts config_compute_tr_midstage true
+namelist logical   split_explicit_ts config_u_correction true
+namelist logical   split_explicit_ts config_filter_btr_mode false
+namelist logical   split_explicit_ts config_btr_mom_decay         false 
+namelist real      split_explicit_ts config_btr_mom_decay_time    3600.0
+namelist real      split_explicit_ts config_btr_flux_coef         1.0
+namelist real      split_explicit_ts config_btr_mom_eddy_visc2    0.0
+namelist integer   split_explicit_ts config_btr_subcycle_loop_factor  2
+namelist character split_explicit_ts config_SSH_from  avg_flux
+namelist character split_explicit_ts config_new_btr_variables_from  btr_avg
 namelist logical   sw_model config_h_ScaleWithMesh     false
 namelist real      hmix     config_h_mom_eddy_visc2     0.0
 namelist real      hmix     config_h_mom_eddy_visc4     0.0
@@ -199,7 +199,7 @@
 var persistent real    tend_tracer1 ( nVertLevels nCells Time ) 1 - tracer1 tend tracers testing
 var persistent real    tend_tracer2 ( nVertLevels nCells Time ) 1 - tracer2 tend tracers testing
 
-# state variables for Higdon timesplitting
+# state variables for Split Explicit timesplitting
 var persistent real   uBtr ( nEdges Time )         2 -  uBtr state - -
 var persistent real   ssh ( nCells Time )          2 o  ssh state - - 
 var persistent real   uBtrSubcycle ( nEdges Time ) 2 -  uBtrSubcycle state - -

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-09-14 21:50:47 UTC (rev 997)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-09-14 22:15:46 UTC (rev 998)
@@ -47,6 +47,14 @@
          call dmpar_abort(dminfo)
       endif
 
+      if (trim(config_new_btr_variables_from) == 'btr_avg' &amp;
+           .and.trim(config_time_integration) == 'unsplit_explicit') then
+         print *, ' unsplit_explicit option must use',&amp;
+           ' config_new_btr_variables_from==last_subcycle'
+         call dmpar_abort(dminfo)
+      endif
+
+
       !
       ! Initialize core
       !
@@ -191,7 +199,7 @@
 
       if (.not. config_do_restart) then 
 
-! mrp 110808 add, so that variables are copied to * variables for Higdon
+! mrp 110808 add, so that variables are copied to * variables for split explicit
           do i=2,nTimeLevs
              call copy_state(block % state % time_levs(i) % state, &amp;
                              block % state % time_levs(1) % state)
@@ -465,13 +473,13 @@
 
          ! Compute barotropic velocity at first timestep
          ! This is only done upon start-up.
-         if     (trim(config_time_integration) == 'higdon_unsplit') then
+         if     (trim(config_time_integration) == 'unsplit_explicit') then
             block % state % time_levs(1) % state % uBtr % array(:) = 0.0
 
               block % state % time_levs(1) % state % uBcl % array(:,:) &amp;
             = block % state % time_levs(1) % state % u % array(:,:) 
 
-         elseif (trim(config_time_integration) == 'higdon_split') then
+         elseif (trim(config_time_integration) == 'split_explicit') then
 
             if (config_filter_btr_mode) then
                do iCell=1,block % mesh % nCells

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-09-14 21:50:47 UTC (rev 997)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-09-14 22:15:46 UTC (rev 998)
@@ -30,14 +30,14 @@
 
       if (trim(config_time_integration) == 'RK4') then
          call rk4(domain, dt)
-      elseif (trim(config_time_integration) == 'higdon_split' &amp;
-          .or.trim(config_time_integration) == 'higdon_unsplit') then
-         call higdon_timestep(domain, dt)
+      elseif (trim(config_time_integration) == 'split_explicit' &amp;
+          .or.trim(config_time_integration) == 'unsplit_explicit') then
+         call split_explicit_timestep(domain, dt)
       else
          write(0,*) 'Abort: Unknown time integration option '&amp;
            //trim(config_time_integration)
-         write(0,*) 'Currently, only RK4, hidgdon_split and '// &amp;
-           'higdon_unsplit are supported.'
+         write(0,*) 'Currently, only RK4, split_explicit and '// &amp;
+           'unsplit_explicit are supported.'
          call dmpar_abort(dminfo)
       end if
 
@@ -391,10 +391,10 @@
 
    end subroutine rk4
 
-   subroutine higdon_timestep(domain, dt)
+   subroutine split_explicit_timestep(domain, dt)
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ! Advance model state forward in time by the specified time step using 
-   !   Higdon timestepping scheme
+   !   Split_Explicit timestepping scheme
    !
    ! Input: domain - current model state in time level 1 (e.g., time_levs(1)state%h(:,:)) 
    !                 plus grid meta-data
@@ -408,7 +408,7 @@
       real (kind=RKIND), intent(in) :: dt
 
       type (dm_info) :: dminfo
-      integer :: iCell, i,k,j, iEdge, cell1, cell2, higdon_step, split, &amp;
+      integer :: iCell, i,k,j, iEdge, cell1, cell2, split_explicit_step, split, &amp;
         eoe, oldBtrSubcycleTime, newBtrSubcycleTime, uPerpTime, BtrCorIter, &amp;
         n_bcl_iter(config_n_ts_iter), &amp;
         vertex1, vertex2, iVertex
@@ -480,7 +480,7 @@
       n_bcl_iter(1) = config_n_bcl_iter_beg
       n_bcl_iter(config_n_ts_iter) = config_n_bcl_iter_end
 
-      do higdon_step = 1, config_n_ts_iter
+      do split_explicit_step = 1, config_n_ts_iter
 ! ---  update halos for diagnostic variables
 
         block =&gt; domain % blocklist
@@ -523,12 +523,12 @@
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! BEGIN baroclinic iterations on linear Coriolis term
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      do j=1,n_bcl_iter(higdon_step)
+      do j=1,n_bcl_iter(split_explicit_step)
 
          ! Use this G coefficient to avoid an if statement within the iEdge loop.
-         if     (trim(config_time_integration) == 'higdon_unsplit') then
+         if     (trim(config_time_integration) == 'unsplit_explicit') then
             split = 0
-         elseif (trim(config_time_integration) == 'higdon_split') then
+         elseif (trim(config_time_integration) == 'split_explicit') then
             split = 1
          endif
 
@@ -615,12 +615,12 @@
       oldBtrSubcycleTime = 1
       newBtrSubcycleTime = 2
 
-      if (trim(config_time_integration) == 'higdon_unsplit') then
+      if (trim(config_time_integration) == 'unsplit_explicit') then
 
          block =&gt; domain % blocklist
          do while (associated(block))
 
-            ! For Higdon unsplit, simply set uBtrNew=0, uBtrSubcycle=0, and uNew=uBclNew
+            ! For Split_Explicit unsplit, simply set uBtrNew=0, uBtrSubcycle=0, and uNew=uBclNew
             block % state % time_levs(2) % state % uBtr % array(:) = 0.0
 
             block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(:) = 0.0
@@ -631,7 +631,7 @@
             block =&gt; block % next
          end do  ! block
 
-      elseif (trim(config_time_integration) == 'higdon_split') then
+      elseif (trim(config_time_integration) == 'split_explicit') then
 
          ! Initialize variables for barotropic subcycling
          block =&gt; domain % blocklist
@@ -1178,7 +1178,7 @@
             end do  ! block
 
 
-      endif ! higdon_split
+      endif ! split_explicit
 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       !
@@ -1191,7 +1191,7 @@
 
            call compute_wTop(block % state % time_levs(2) % state, block % mesh)
 
-      if (trim(config_time_integration) == 'higdon_unsplit') then
+      if (trim(config_time_integration) == 'unsplit_explicit') then
            call compute_tend_h(block % tend, block % state % time_levs(2) % state , block % diagnostics, block % mesh)
       endif
 
@@ -1226,7 +1226,7 @@
            sshNew =&gt; block % state % time_levs(2) % state % ssh % array
         endif
 
-      if (trim(config_time_integration) == 'higdon_unsplit') then
+      if (trim(config_time_integration) == 'unsplit_explicit') then
 
          do iCell=1,block % mesh % nCells
            ! this is h_{n+1}
@@ -1235,17 +1235,17 @@
            + dt* block % tend % h % array(:,iCell) 
 
             ! this is only for the hNew computation below, so there is the correct
-            ! value in the ssh variable for higdon_unsplit case.
+            ! value in the ssh variable for unsplit_explicit case.
             block % state % time_levs(oldBtrSubcycleTime) % state % sshSubcycle % array(iCell) &amp;
           = block % state % time_levs(2) % state % h % array(1,iCell) &amp;
           - block % mesh % hZLevel % array(1)
            end do ! iCell
 
-      endif ! higdon_unsplit
+      endif ! unsplit_explicit
 
            ! Only need T &amp; S for earlier iterations,
            ! then all the tracers needed the last time through.
-         if (higdon_step &lt; config_n_ts_iter) then
+         if (split_explicit_step &lt; config_n_ts_iter) then
 
            hNew(:) = block % mesh % hZLevel % array(:)
            do iCell=1,block % mesh % nCells
@@ -1270,7 +1270,7 @@
            end do ! iCell
 
 
-          if (trim(config_time_integration) == 'higdon_unsplit') then
+          if (trim(config_time_integration) == 'unsplit_explicit') then
 
             ! compute h*, which is h at n+1/2 and put into array hNew
             ! on last iteration, hNew remains at n+1
@@ -1281,7 +1281,7 @@
                + block % state % time_levs(1) % state % h % array(1,iCell) )
 
            end do ! iCell
-          endif ! higdon_unsplit
+          endif ! unsplit_explicit
 
           ! compute u*, the velocity for tendency terms.  Put in uNew.
           ! uBclNew is at time n+1/2 here.
@@ -1298,7 +1298,7 @@
          call compute_solve_diagnostics(dt, block % state % time_levs(2) % state, block % mesh)
  
 
-         elseif (higdon_step == config_n_ts_iter) then
+         elseif (split_explicit_step == config_n_ts_iter) then
 
            hNew(:) = block % mesh % hZLevel % array(:)
            do iCell=1,block % mesh % nCells
@@ -1317,13 +1317,13 @@
               end do
            end do
 
-         endif ! higdon_step
+         endif ! split_explicit_step
            deallocate(hNew)
 
          block =&gt; block % next
        end do
 
-      end do  ! higdon_step = 1, config_n_ts_iter
+      end do  ! split_explicit_step = 1, config_n_ts_iter
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! END large iteration loop 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -1374,7 +1374,7 @@
 
          enddo ! iEdges
 
-        if (trim(config_time_integration) == 'higdon_split') then
+        if (trim(config_time_integration) == 'split_explicit') then
 
         if (trim(config_new_btr_variables_from) == 'last_subcycle') then
          do iCell=1,block % mesh % nCells
@@ -1400,7 +1400,7 @@
            = block % mesh % hZLevel % array(k)
            end do
          end do ! iCell
-       end if ! higdon_split
+       end if ! split_explicit
  
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        !
@@ -1522,7 +1522,7 @@
          block =&gt; block % next
       end do
 
-   end subroutine higdon_timestep
+   end subroutine split_explicit_timestep
 
 
    subroutine compute_tend_h(tend, s, d, grid)
@@ -3313,9 +3313,9 @@
       if (trim(config_time_integration) == 'RK4') then
          ! for RK4, PV is really PV = (eta+f)/h
          fCoef = 1
-      elseif (trim(config_time_integration) == 'higdon_split' &amp;
-          .or.trim(config_time_integration) == 'higdon_unsplit') then
-         ! for higdon, PV is eta/h because f is added separately to the momentum forcing.
+      elseif (trim(config_time_integration) == 'split_explicit' &amp;
+          .or.trim(config_time_integration) == 'unsplit_explicit') then
+         ! for split explicit, PV is eta/h because f is added separately to the momentum forcing.
 ! mrp temp, new should be:
          fCoef = 0
 ! old, for testing:

</font>
</pre>