<p><b>dwj07@fsu.edu</b> 2012-11-27 12:41:07 -0700 (Tue, 27 Nov 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        First cut of namelist cleanup.<br>
        Runs are bit reproducible with trunk.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/Registry        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/Registry        2012-11-27 19:41:07 UTC (rev 2324)
@@ -1,102 +1,143 @@
 %
 % namelist  type  namelist_record  name  default_value
 %
-namelist integer   sw_model config_test_case           5
-namelist character sw_model config_time_integration    RK4
-namelist logical   sw_model config_rk_filter_btr_mode  false
-namelist real      sw_model config_dt                  172.8
-namelist character sw_model config_calendar_type       360day
-namelist character sw_model config_start_time          0000-01-01_00:00:00
-namelist character sw_model config_stop_time           none
-namelist character sw_model config_run_duration        none
-namelist integer   sw_model config_stats_interval      100
-namelist logical   sw_model config_initial_stats       false
-namelist logical   sw_model config_prescribe_velocity  false
-namelist logical   sw_model config_prescribe_thickness false
-namelist integer   sw_model config_num_halos           3
-namelist character io       config_input_name          grid.nc
-namelist character io       config_output_name         output.nc
-namelist character io       config_restart_name        restart.nc
-namelist character io       config_output_interval     24:00:00
+
+namelist integer   sw_model config_test_case           0
+
+namelist logical   time_management config_do_restart          .false.
+namelist character time_management config_start_time          '0000-01-01_00:00:00'
+namelist character time_management config_stop_time           'none'
+namelist character time_management config_run_duration        'none'
+namelist character time_management config_calendar_type       '360day'
+namelist integer   time_management config_ncouple_per_day       1
+
+namelist character io       config_input_name          'grid.nc'
+namelist character io       config_output_name         'output.nc'
+namelist character io       config_restart_name        'restart.nc'
+namelist character io       config_restart_interval    'none'
+namelist character io       config_output_interval     '24:00:00'
+namelist character io       config_stats_interval      '24:00:00'
+namelist logical   io       config_write_stats_on_startup   .false.
+namelist logical   io       config_write_output_on_startup  .true.
 namelist integer   io       config_frames_per_outfile  0
 namelist integer   io       config_pio_num_iotasks     0 
 namelist integer   io       config_pio_stride          1
-namelist logical   io       config_write_output_on_startup  true
-namelist character decomposition config_block_decomp_file_prefix  graph.info.part.
+
+namelist real      time_integration config_dt                  172.8
+namelist character time_integration config_time_integrator    'RK4'
+
+namelist integer   grid config_num_halos           3
+namelist logical   grid config_enforce_grid_on_restart .false.
+namelist character grid config_vert_grid_type      'isopycnal'
+namelist character grid config_vert_adv_layer_weights 'uniform'
+namelist character grid config_alter_ICs_for_pbcs 'zlevel_pbcs_off'
+namelist real      grid config_min_pbc_fraction  0.10
+namelist logical   grid config_check_ssh_consistency .true.
+
+namelist character decomposition config_block_decomp_file_prefix  'graph.info.part.'
 namelist integer   decomposition config_number_of_blocks          0
-namelist logical   decomposition config_explicit_proc_decomp      false
-namelist character decomposition config_proc_decomp_file_prefix   graph.info.part.
-namelist logical   restart  config_do_restart          false
-namelist character restart  config_restart_interval    none
-namelist character grid     config_vert_grid_type      isopycnal
-namelist character grid     config_pressure_type       pressure
-namelist real      grid     config_rho0                1028
-namelist logical   grid     config_enforce_zstar_at_restart false
-namelist character partial_bottom_cells config_alter_ICs_for_pbcs zlevel_pbcs_off
-namelist real      partial_bottom_cells config_min_pbc_fraction  0.10
-namelist logical   partial_bottom_cells config_check_ssh_consistency true
-namelist logical   partial_bottom_cells config_check_zlevel_consistency false
-namelist integer   split_explicit_ts config_n_ts_iter     2
-namelist integer   split_explicit_ts config_n_bcl_iter_beg   2
-namelist integer   split_explicit_ts config_n_bcl_iter_mid   2
-namelist integer   split_explicit_ts config_n_bcl_iter_end   2
-namelist integer   split_explicit_ts config_n_btr_subcycles  20
-namelist integer   split_explicit_ts config_n_btr_cor_iter  2
-namelist logical   split_explicit_ts config_u_correction true
-namelist logical   split_explicit_ts config_filter_btr_mode false
-namelist integer   split_explicit_ts config_btr_subcycle_loop_factor  2
-namelist real      split_explicit_ts config_btr_gam1_uWt1    0.5
-namelist real      split_explicit_ts config_btr_gam2_SSHWt1  1.0
-namelist real      split_explicit_ts config_btr_gam3_uWt2    1.0
-namelist logical   split_explicit_ts config_btr_solve_SSH2   false
-namelist logical   hmix     config_h_ScaleWithMesh     false
-namelist real      hmix     config_h_mom_eddy_visc2     0.0
-namelist real      hmix     config_h_mom_eddy_visc4     0.0
-namelist logical   hmix     config_visc_vorticity_term true
-namelist real      hmix     config_visc_vorticity_visc2_scale 1.0
-namelist real      hmix     config_visc_vorticity_visc4_scale 1.0
-namelist logical   hmix     config_include_KE_vertex false
-namelist real      hmix     config_h_tracer_eddy_diff2  0.0
-namelist real      hmix     config_h_tracer_eddy_diff4  0.0
-namelist real      hmix     config_h_kappa              0.0
-namelist real      hmix     config_h_kappa_q            0.0
-namelist logical   hmix     config_rayleigh_friction    false
-namelist real      hmix     config_rayleigh_damping_coeff 0.0
-namelist real      hmix     config_apvm_scale_factor      0.0
-namelist logical   hmix_leith  config_use_leith_del2         false
-namelist real      hmix_leith  config_leith_parameter        0.0
-namelist real      hmix_leith  config_leith_dx               0.0
-namelist real      hmix_leith  config_leith_visc2_max      1000000.0
-namelist character vmix     config_vert_visc_type       const
-namelist character vmix     config_vert_diff_type       const
-namelist logical   vmix     config_implicit_vertical_mix  true
+namelist logical   decomposition config_explicit_proc_decomp      .false.
+namelist character decomposition config_proc_decomp_file_prefix   'graph.info.part.'
+
+namelist logical   hmix          config_h_ScaleWithMesh     .false.
+namelist logical   hmix          config_visc_vorticity_term .true.
+namelist real      hmix          config_apvm_scale_factor      0.0
+
+namelist logical   hmix_del2     config_use_mom_del2     .true.
+namelist logical   hmix_del2     config_use_tracer_del2     .true.
+namelist real      hmix_del2     config_h_mom_eddy_visc2     0.0
+namelist real      hmix_del2     config_h_tracer_eddy_diff2  0.0
+namelist real      hmix_del2     config_visc_vorticity_visc2_scale 1.0
+
+namelist logical   hmix_del4     config_use_mom_del4     .true.
+namelist logical   hmix_del4     config_use_tracer_del4     .true.
+namelist real      hmix_del4     config_h_mom_eddy_visc4     0.0
+namelist real      hmix_del4     config_h_tracer_eddy_diff4  0.0
+namelist real      hmix_del4     config_visc_vorticity_visc4_scale 1.0
+
+namelist logical   hmix_Leith    config_use_Leith_del2         .false.
+namelist real      hmix_Leith    config_Leith_parameter        0.0
+namelist real      hmix_Leith    config_Leith_dx               0.0
+namelist real      hmix_Leith    config_Leith_visc2_max      1000000.0
+
+namelist real      standard_GM     config_h_kappa              0.0
+namelist real      standard_GM     config_h_kappa_q            0.0
+
+namelist logical   Rayleigh_damping     config_Rayleigh_friction    .false.
+namelist real      Rayleigh_damping     config_Rayleigh_damping_coeff 0.0
+
+namelist character vmix     config_vert_visc_type       'const'
+namelist character vmix     config_vert_diff_type       'const'
+namelist logical   vmix     config_implicit_vertical_mix  .true.
 namelist real      vmix     config_convective_visc      1.0
 namelist real      vmix     config_convective_diff      1.0
-namelist real      vmix     config_bottom_drag_coeff    1.0e-3
+
 namelist real      vmix_const   config_vert_visc        2.5e-4
 namelist real      vmix_const   config_vert_diff        2.5e-5
+
 namelist real      vmix_rich    config_bkrd_vert_visc   1.0e-4
 namelist real      vmix_rich    config_bkrd_vert_diff   1.0e-5
 namelist real      vmix_rich    config_rich_mix         0.005
+
 namelist real      vmix_tanh    config_max_visc_tanh    2.5e-1
 namelist real      vmix_tanh    config_min_visc_tanh    1.0e-4
 namelist real      vmix_tanh    config_max_diff_tanh    2.5e-2
 namelist real      vmix_tanh    config_min_diff_tanh    1.0e-5
 namelist real      vmix_tanh    config_zMid_tanh        -100
 namelist real      vmix_tanh    config_zWidth_tanh      100
-namelist character eos       config_eos_type            linear
-namelist character advection config_vert_tracer_adv     stencil
+
+namelist logical   forcing   config_use_monthly_forcing .false.
+namelist logical   forcing   config_restoreTS           .false.
+namelist real      forcing   config_restoreT_timescale  90.0
+namelist real      forcing   config_restoreS_timescale  90.0
+
+namelist character advection config_vert_tracer_adv     'stencil'
 namelist integer   advection config_vert_tracer_adv_order  4
 namelist integer   advection config_horiz_tracer_adv_order 2
-namelist integer   advection config_thickness_adv_order 2
 namelist real      advection config_coef_3rd_order      0.25
-namelist logical   advection config_monotonic           false
-namelist logical   advection config_check_monotonicity  false
-namelist logical   restore   config_restoreTS           false
-namelist real      restore   config_restoreT_timescale  90.0
-namelist real      restore   config_restoreS_timescale  90.0
-namelist logical   restore   config_use_monthly_forcing false
+namelist logical   advection config_monotonic           .false.
 
+namelist real      bottom_drag config_bottom_drag_coeff    1.0e-3
+
+namelist character pressure_gradient     config_pressure_gradient_type       'pressure_and_zmid'
+namelist real      pressure_gradient     config_rho0                1014.65
+
+namelist character eos       config_eos_type            'linear'
+
+namelist integer   split_explicit_ts config_n_ts_iter     2
+namelist integer   split_explicit_ts config_n_bcl_iter_beg   2
+namelist integer   split_explicit_ts config_n_bcl_iter_mid   2
+namelist integer   split_explicit_ts config_n_bcl_iter_end   2
+namelist integer   split_explicit_ts config_n_btr_subcycles  20
+namelist integer   split_explicit_ts config_n_btr_cor_iter  2
+namelist logical   split_explicit_ts config_u_correction .true.
+namelist integer   split_explicit_ts config_btr_subcycle_loop_factor  2
+namelist real      split_explicit_ts config_btr_gam1_uWt1    0.5
+namelist real      split_explicit_ts config_btr_gam2_SSHWt1  1.0
+namelist real      split_explicit_ts config_btr_gam3_uWt2    1.0
+namelist logical   split_explicit_ts config_btr_solve_SSH2   .false.
+
+namelist logical   debug config_check_zlevel_consistency .false.
+namelist logical   debug config_filter_btr_mode .false.
+namelist logical   debug config_prescribe_velocity  .false.
+namelist logical   debug config_prescribe_thickness .false.
+namelist logical   debug config_include_KE_vertex .false.
+namelist logical   debug config_check_tracer_monotonicity  .false.
+namelist logical   debug config_disable_h_all_tend .false.
+namelist logical   debug config_disable_h_hadv .false.
+namelist logical   debug config_disable_h_vadv .false.
+namelist logical   debug config_disable_u_all_tend .false.
+namelist logical   debug config_disable_u_coriolis .false.
+namelist logical   debug config_disable_u_pgrad .false.
+namelist logical   debug config_disable_u_hmix .false.
+namelist logical   debug config_disable_u_windstress .false.
+namelist logical   debug config_disable_u_vmix .false.
+namelist logical   debug config_disable_u_vadv .false.
+namelist logical   debug config_disable_tr_all_tend .false.
+namelist logical   debug config_disable_tr_adv .false.
+namelist logical   debug config_disable_tr_hmix .false.
+namelist logical   debug config_disable_tr_vmix .false.
+
 %
 % dim  type  name_in_file  name_in_code
 %
@@ -239,7 +280,7 @@
 var persistent real    tend_tracer1 ( nVertLevels nCells Time ) 1 - tracer1 tend tracers testing
 
 % state variables for Split Explicit timesplitting
-var persistent real   uBtr ( nEdges Time )         2 ir uBtr state - -
+var persistent real   uBtr ( nEdges Time )         2 r  uBtr state - -
 var persistent real   ssh ( nCells Time )          2 o  ssh state - - 
 var persistent real   uBtrSubcycle ( nEdges Time ) 2 -  uBtrSubcycle state - -
 var persistent real   sshSubcycle ( nCells Time )  2 -  sshSubcycle state - - 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_mpas_core.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_mpas_core.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -13,10 +13,14 @@
 
    use ocn_monthly_forcing
 
+   use ocn_thick_hadv
+   use ocn_thick_vadv
+
    use ocn_vel_pressure_grad
    use ocn_vel_vadv
    use ocn_vel_hmix
    use ocn_vel_forcing
+   use ocn_vel_coriolis
 
    use ocn_tracer_hadv
    use ocn_tracer_vadv
@@ -64,9 +68,16 @@
       ! Initialize submodules before initializing blocks.
       call ocn_timestep_init(err)
 
+      call ocn_thick_hadv_init(err_tmp)
+      err = ior(err, err_tmp)
+
+      call ocn_thick_vadv_init(err_tmp)
+      err = ior(err, err_tmp)
+
+      call ocn_vel_coriolis_init(err_tmp)
+      err = ior(err, err_tmp)
       call ocn_vel_pressure_grad_init(err_tmp)
       err = ior(err, err_tmp)
-
       call ocn_vel_vadv_init(err_tmp)
       err = ior(err, err_tmp)
       call ocn_vel_hmix_init(err_tmp)
@@ -110,7 +121,7 @@
 
       call ocn_compute_max_level(domain)
 
-      if (config_enforce_zstar_at_restart) then
+      if (config_enforce_grid_on_restart) then
          call ocn_init_h_zstar(domain)
       endif
 
@@ -127,10 +138,10 @@
          call mpas_dmpar_abort(dminfo)
       endif
 
-      write (0,'(a,a10)'), ' Pressure type is: ',config_pressure_type
-      if (config_pressure_type.ne.'pressure'.and. &amp;
-          config_pressure_type.ne.'MontgomeryPotential') then
-         write (0,*) ' Incorrect choice of config_pressure_type.'
+      write (0,'(a,a)'), ' Pressure type is: ',trim(config_pressure_gradient_type)
+      if (config_pressure_gradient_type.ne.'pressure_and_zmid'.and. &amp;
+          config_pressure_gradient_type.ne.'MontgomeryPotential') then
+         write (0,*) ' Incorrect choice of config_pressure_gradient_type.'
          call mpas_dmpar_abort(dminfo)
       endif
 
@@ -162,7 +173,7 @@
    ! input arguement into mpas_init.  Ask about that later.  For now, there will be
    ! no initial statistics write.
    
-      if (config_initial_stats) then
+      if (config_write_stats_on_startup) then
           call mpas_timer_start(&quot;global diagnostics&quot;, .false., globalDiagTimer)
           call ocn_compute_global_diagnostics(domain, 1 , 0, dt)
           call mpas_timer_stop(&quot;global diagnostics&quot;, globalDiagTimer)
@@ -222,11 +233,11 @@
       !TODO: use this code if we desire to convert config_stats_interval to alarms 
       !(must also change config_stats_interval type to character) 
       ! set stats alarm, if necessary
-      !if (trim(config_stats_interval) /= &quot;none&quot;) then      
-      !   call mpas_set_timeInterval(alarmTimeStep, timeString=config_stats_interval, ierr=ierr)
-      !   alarmStartTime = startTime + alarmTimeStep
-      !   call mpas_add_clock_alarm(clock, statsAlarmID, alarmStartTime, alarmTimeStep, ierr=ierr)
-      !end if
+      if (trim(config_stats_interval) /= &quot;none&quot;) then      
+         call mpas_set_timeInterval(alarmTimeStep, timeString=config_stats_interval, ierr=ierr)
+         alarmStartTime = startTime + alarmTimeStep
+         call mpas_add_clock_alarm(clock, statsAlarmID, alarmStartTime, alarmTimeStep, ierr=ierr)
+      end if
 
       call mpas_get_time(curr_time=startTime, dateTimeString=startTimeStamp, ierr=ierr)
 
@@ -506,30 +517,31 @@
    
       call ocn_timestep(domain, dt, timeStamp)
 
-      if (config_stats_interval &gt; 0) then
-          if (mod(itimestep, config_stats_interval) == 0) then
-             call mpas_timer_start(&quot;global diagnostics&quot;, .false., globalDiagTimer)
-             call ocn_compute_global_diagnostics(domain, 2, itimestep, dt);
-             call mpas_timer_stop(&quot;global diagnostics&quot;, globalDiagTimer)
-          end if
-      end if
+      !if (config_stats_interval &gt; 0) then
+      !    if (mod(itimestep, config_stats_interval) == 0) then
+      !       call mpas_timer_start(&quot;global diagnostics&quot;, .false., globalDiagTimer)
+      !       call ocn_compute_global_diagnostics(domain, 2, itimestep, dt);
+      !       call mpas_timer_stop(&quot;global diagnostics&quot;, globalDiagTimer)
+      !    end if
+      !end if
 
       !TODO: replace the above code block with this if we desire to convert config_stats_interval to use alarms
-      !if (mpas_is_alarm_ringing(clock, statsAlarmID, ierr=ierr)) then
-      !   call mpas_reset_clock_alarm(clock, statsAlarmID, ierr=ierr)
+      if (mpas_is_alarm_ringing(clock, statsAlarmID, ierr=ierr)) then
+         call mpas_reset_clock_alarm(clock, statsAlarmID, ierr=ierr)
 
-      !   block_ptr =&gt; domain % blocklist
-      !   if (associated(block_ptr % next)) then
-      !      write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
-      !                 'that there is only one block per processor.'
-      !   end if
+!        block_ptr =&gt; domain % blocklist
+!        if (associated(block_ptr % next)) then
+!           write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
+!                      'that there is only one block per processor.'
+!        end if
    
-      !   call mpas_timer_start(&quot;global diagnostics&quot;)
-      !   call ocn_compute_global_diagnostics(domain % dminfo, &amp;
-      !            block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
-      !            timeStamp, dt)
-      !   call mpas_timer_stop(&quot;global diagnostics&quot;)
-      !end if
+         call mpas_timer_start(&quot;global diagnostics&quot;)
+         call ocn_compute_global_diagnostics(domain, 2, itimestep, dt);
+      !  call ocn_compute_global_diagnostics(domain % dminfo, &amp;
+      !           block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
+      !           timeStamp, dt)
+         call mpas_timer_stop(&quot;global diagnostics&quot;)
+      end if
 
    end subroutine mpas_timestep!}}}
 
@@ -768,13 +780,13 @@
 
          ! Compute barotropic velocity at first timestep
          ! This is only done upon start-up.
-         if (trim(config_time_integration) == 'unsplit_explicit') then
+         if (trim(config_time_integrator) == '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) == 'split_explicit') then
+         elseif (trim(config_time_integrator) == 'split_explicit') then
 
             if (config_filter_btr_mode) then
                do iCell=1,block % mesh % nCells

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tendency.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tendency.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -80,7 +80,6 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: hadv2nd, hadv3rd, hadv4th
    integer :: ke_cell_flag, ke_vertex_flag
    real (kind=RKIND) ::  coef_3rd_order, fCoef
 
@@ -126,6 +125,8 @@
       !
       tend_h = 0.0
 
+      if(config_disable_h_all_tend) return
+
       !
       ! height tendency: horizontal advection term -</font>
<font color="gray">abla\cdot ( hu)
       !
@@ -206,6 +207,8 @@
       ! mrp 110516 efficiency: could remove next line and have first tend_u operation not be additive
       tend_u(:,:) = 0.0
 
+      if(config_disable_u_all_tend) return
+
       !
       ! velocity tendency: nonlinear Coriolis term and grad of kinetic energy
       !
@@ -225,7 +228,7 @@
       ! velocity tendency: pressure gradient
       !
       call mpas_timer_start(&quot;pressure grad&quot;, .false., velPgradTimer)
-      if (config_pressure_type.eq.'MontgomeryPotential') then
+      if (config_pressure_gradient_type.eq.'MontgomeryPotential') then
           call ocn_vel_pressure_grad_tend(grid, MontPot,  zMid, rho, tend_u, err)
       else
           call ocn_vel_pressure_grad_tend(grid, pressure, zMid, rho, tend_u, err)
@@ -303,6 +306,13 @@
       tend_tr     =&gt; tend % tracers % array
       tend_h      =&gt; tend % h % array
 
+      !
+      ! initialize tracer tendency (RHS of tracer equation) to zero.
+      !
+      tend_tr(:,:,:) = 0.0
+
+      if(config_disable_tr_all_tend) return
+
       allocate(uh(grid % nVertLevels, grid % nEdges+1))
       !
       ! QC Comment (3/15/12): need to make sure that uTransport is the right
@@ -314,11 +324,6 @@
       end do
 
       !
-      ! initialize tracer tendency (RHS of tracer equation) to zero.
-      !
-      tend_tr(:,:,:) = 0.0
-
-      !
       ! tracer tendency: horizontal advection term -div( h \phi u)
       !
       ! mrp 101115 note: in order to include flux boundary conditions, we will need to 
@@ -494,7 +499,7 @@
       h_edge = -1.0e34
       coef_3rd_order = config_coef_3rd_order
 
-      do iEdge=1,nEdges*hadv2nd
+      do iEdge=1,nEdges
          cell1 = cellsOnEdge(1,iEdge)
          cell2 = cellsOnEdge(2,iEdge)
          do k=1,maxLevelEdgeTop(iEdge)
@@ -502,73 +507,6 @@
          end do
       end do
 
-      do iEdge=1,nEdges*hadv3rd
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
-
-         do k=1,maxLevelEdgeTop(iEdge)
-
-            d2fdx2_cell1 = 0.0
-            d2fdx2_cell2 = 0.0
-
-            boundaryMask = abs(transfer(.not.(boundaryCell(k,cell1) == 0 .and. boundaryCell(k,cell2) == 0), boundaryMask))
-
-            d2fdx2_cell1 = deriv_two(1,1,iEdge) * h(k,cell1) * boundaryMask
-            d2fdx2_cell2 = deriv_two(1,2,iEdge) * h(k,cell2) * boundaryMask
-
-            !-- all edges of cell 1
-            do i=1, nEdgesOnCell(cell1) * boundaryMask
-               d2fdx2_cell1 = d2fdx2_cell1 + &amp;
-               deriv_two(i+1,1,iEdge) * h(k,grid % CellsOnCell % array (i,cell1))
-            end do
-
-            !-- all edges of cell 2
-            do i=1, nEdgesOnCell(cell2) * boundaryMask
-               d2fdx2_cell2 = d2fdx2_cell2 + &amp;
-               deriv_two(i+1,2,iEdge) * h(k,grid % CellsOnCell % array (i,cell2))
-            end do
-
-            velMask = 2*(abs(transfer(u(k,iEdge) &lt;= 0, velMask))) - 1
-
-            h_edge(k,iEdge) = 0.5*(h(k,cell1) + h(k,cell2)) - (dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12.          &amp;
-                            + velMask * (dcEdge(iEdge) **2) * coef_3rd_order*(d2fdx2_cell1 - d2fdx2_cell2) / 12.
-
-         end do   ! do k
-      end do         ! do iEdge
-
-      do iEdge=1,nEdges*hadv4th
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
-
-         do k=1,maxLevelEdgeTop(iEdge)
-
-            d2fdx2_cell1 = 0.0
-            d2fdx2_cell2 = 0.0
-
-            boundaryMask = abs(transfer(.not.(boundaryCell(k,cell1) == 0 .and. boundaryCell(k,cell2) == 0), boundaryMask))
-
-            d2fdx2_cell1 = deriv_two(1,1,iEdge) * h(k,cell1) * boundaryMask
-            d2fdx2_cell2 = deriv_two(1,2,iEdge) * h(k,cell2) * boundaryMask
-
-            !-- all edges of cell 1
-            do i=1, nEdgesOnCell(cell1) * boundaryMask
-               d2fdx2_cell1 = d2fdx2_cell1 + &amp;
-               deriv_two(i+1,1,iEdge) * h(k,grid % CellsOnCell % array (i,cell1))
-            end do
-
-            !-- all edges of cell 2
-            do i=1, nEdgesOnCell(cell2) * boundaryMask
-               d2fdx2_cell2 = d2fdx2_cell2 + &amp;
-               deriv_two(i+1,2,iEdge) * h(k,grid % CellsOnCell % array (i,cell2))
-            end do
-
-            h_edge(k,iEdge) =   &amp;
-                 0.5*(h(k,cell1) + h(k,cell2))      &amp;
-                    -(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12.
-
-         end do   ! do k
-      end do         ! do iEdge
-
       !
       ! set the velocity and height at dummy address
       !    used -1e34 so error clearly occurs if these values are used.
@@ -759,7 +697,7 @@
       ! This section must be after computing rho
       !
       ! dwj: 10/25/2011 - Need to explore isopycnal vs zlevel flags
-      if (config_pressure_type.eq.'MontgomeryPotential') then
+      if (config_pressure_gradient_type.eq.'MontgomeryPotential') then
 
         ! For Isopycnal model.
         ! Compute pressure at top of each layer, and then
@@ -1173,27 +1111,6 @@
 
         coef_3rd_order = 0.
 
-        if (config_thickness_adv_order == 2) then
-            hadv2nd = 1
-            hadv3rd = 0
-            hadv4th = 0
-        else if (config_thickness_adv_order == 3) then
-            hadv2nd = 0
-            hadv3rd = 1
-            hadv4th = 0
-
-            if(config_monotonic) then
-                coef_3rd_order = 0.25
-            else
-                coef_3rd_order = 1.0
-            endif
-        else if (config_thickness_adv_order == 4) then
-            hadv2nd = 0
-            hadv3rd = 0
-            hadv4th = 1
-        end if
-
-
         if(config_include_KE_vertex) then
             ke_vertex_flag = 1
             ke_cell_flag = 0
@@ -1202,11 +1119,11 @@
             ke_cell_flag = 1
         endif
 
-        if (trim(config_time_integration) == 'RK4') then
+        if (trim(config_time_integrator) == 'RK4') then
             ! for RK4, PV is really PV = (eta+f)/h
             fCoef = 1
-        elseif (trim(config_time_integration) == 'split_explicit' &amp;
-          .or.trim(config_time_integration) == 'unsplit_explicit') then
+        elseif (trim(config_time_integrator) == 'split_explicit' &amp;
+          .or.trim(config_time_integrator) == '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

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_hadv.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_hadv.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_hadv.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -41,8 +41,9 @@
    ! Private module variables
    !
    !--------------------------------------------------------------------
+   
+   logical :: thickHadvOn
 
-
 !***********************************************************************
 
 contains
@@ -120,6 +121,8 @@
 
       err = 0
 
+      if(.not.thickHadvOn) return
+
       nEdges = grid % nEdges
       nCells = grid % nCells
       nVertLevels = grid % nVertLevels
@@ -175,6 +178,10 @@
 
       integer, intent(out) :: err !&lt; Output: error flag
 
+      thickHadvOn = .true.
+
+      if(config_disable_h_hadv) thickHadvOn = .false.
+
       err = 0
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_vadv.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_vadv.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_thick_vadv.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -42,6 +42,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: thickVadvOn
 
 !***********************************************************************
 
@@ -111,6 +112,8 @@
 
       err = 0
 
+      if(.not.thickVadvOn) return
+
       maxLevelCell      =&gt; grid % maxLevelCell % array
 
       nCells = grid % nCells
@@ -151,6 +154,10 @@
       !-----------------------------------------------------------------
 
       integer, intent(out) :: err !&lt; Output: error flag
+
+      thickVadvOn = .true.
+
+      if(config_disable_h_vadv) thickVadvOn = .false.
       
       err = 0
 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -117,14 +117,14 @@
       rk4On = .false.
       splitOn = .false.
 
-      if (trim(config_time_integration) == 'RK4') then
+      if (trim(config_time_integrator) == 'RK4') then
           rk4On = .true.
-      elseif (trim(config_time_integration) == 'split_explicit' &amp;
-          .or.trim(config_time_integration) == 'unsplit_explicit') then
+      elseif (trim(config_time_integrator) == 'split_explicit' &amp;
+          .or.trim(config_time_integrator) == 'unsplit_explicit') then
           splitOn = .true.
       else
           err = 1
-          write(*,*) 'Incorrect choice for config_time_integration:', trim(config_time_integration)
+          write(*,*) 'Incorrect choice for config_time_integrator:', trim(config_time_integrator)
           write(*,*) '   choices are: RK4, split_explicit, unsplit_explicit'
       endif
 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -162,7 +162,7 @@
               block % provis % uTransport % array, block % provis % wTop % array, err)
            call ocn_tend_h(block % tend, block % provis, block % mesh)
 
-           if (config_rk_filter_btr_mode) then
+           if (config_filter_btr_mode) then
                call ocn_filter_btr_mode_tend_u(block % tend, block % provis, block % mesh)
            endif
 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_split.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_time_integration_split.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -209,9 +209,9 @@
          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) == 'unsplit_explicit') then
+            if (trim(config_time_integrator) == 'unsplit_explicit') then
                split = 0
-            elseif (trim(config_time_integration) == 'split_explicit') then
+            elseif (trim(config_time_integrator) == 'split_explicit') then
                split = 1
             endif
 
@@ -294,7 +294,7 @@
          oldBtrSubcycleTime = 1
          newBtrSubcycleTime = 2
 
-         if (trim(config_time_integration) == 'unsplit_explicit') then
+         if (trim(config_time_integrator) == 'unsplit_explicit') then
 
             block =&gt; domain % blocklist
             do while (associated(block))
@@ -321,7 +321,7 @@
                block =&gt; block % next
             end do  ! block
 
-         elseif (trim(config_time_integration) == 'split_explicit') then
+         elseif (trim(config_time_integrator) == 'split_explicit') then
 
             ! Initialize variables for barotropic subcycling
             block =&gt; domain % blocklist

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -32,6 +32,7 @@
              mpas_ocn_tracer_advection_coefficients, &amp;
              mpas_ocn_tracer_advection_tend
 
+   logical :: tracerAdvOn
    logical :: monotonicOn
 
    contains
@@ -251,6 +252,8 @@
       type (mesh_type), intent(in) :: grid !&lt; Input: grid information
       real (kind=RKIND), dimension(:,:), intent(in) :: tend_h !&lt; Input: Thickness tendency information
 
+      if(.not. tracerAdvOn) return
+
       if(monotonicOn) then
          call mpas_ocn_tracer_advection_mono_tend(tracers, uh, w, h, verticalCellSize, dt, grid, tend_h, tend)
       else
@@ -279,6 +282,10 @@
 
       err = 0
 
+      tracerAdvOn = .true.
+
+      if(config_disable_tr_adv) tracerAdvOn = .false.
+
       call mpas_ocn_tracer_advection_std_init(err_tmp)
       call mpas_ocn_tracer_advection_mono_init(err_tmp)
 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection_mono.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection_mono.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_advection_mono.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -147,7 +147,7 @@
             upwind_tendency(k, iCell) = 0.0
 
             !tracer_new is supposed to be the &quot;new&quot; tracer state. This allows bounds checks.
-            if (config_check_monotonicity) then
+            if (config_check_tracer_monotonicity) then
               tracer_new(k,iCell) = 0.0
             end if
           end do ! k loop
@@ -320,7 +320,7 @@
             do k = 1, maxLevelEdgeTop(iEdge)
               tend(iTracer, k, iCell) = tend(iTracer, k, iCell) + edgeSignOnCell(i, iCell) * high_order_horiz_flux(k, iEdge) * invAreaCell1
 
-              if(config_check_monotonicity) then
+              if(config_check_tracer_monotonicity) then
                 tracer_new(k, iCell) = tracer_new(k, iCell) + edgeSignOnCell(i, iCell) * high_order_horiz_flux(k, iEdge) * invAreaCell1
               end if
             end do
@@ -332,7 +332,7 @@
           do k = 1,maxLevelCell(iCell)
             tend(iTracer, k, iCell) = tend(iTracer, k, iCell) + (high_order_vert_flux(k+1, iCell) - high_order_vert_flux(k, iCell)) + upwind_tendency(k,iCell)
 
-            if (config_check_monotonicity) then
+            if (config_check_tracer_monotonicity) then
               !tracer_new holds a tendency for now. Only for a check on monotonicity
               tracer_new(k, iCell) = tracer_new(k, iCell) + (high_order_vert_flux(k+1, iCell) - high_order_vert_flux(k, iCell)) + upwind_tendency(k,iCell)
 
@@ -342,7 +342,7 @@
           end do ! k loop
         end do ! iCell loop
 
-        if (config_check_monotonicity) then
+        if (config_check_tracer_monotonicity) then
           !build min and max bounds on old and new tracer for check on monotonicity.
           do iCell = 1, nCellsSolve
             do k = 1, maxLevelCell(iCell)

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -47,6 +47,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: tracerHmixOn
    type (timer_node), pointer :: del2Timer, del4Timer
 
 
@@ -122,6 +123,8 @@
       !
       !-----------------------------------------------------------------
 
+      if(.not.tracerHmixOn) return
+
       call mpas_timer_start(&quot;del2&quot;, .false., del2Timer)
       call ocn_tracer_hmix_del2_tend(grid, h_edge, tracers, tend, err1)
       call mpas_timer_stop(&quot;del2&quot;, del2Timer)
@@ -165,6 +168,9 @@
 
       integer :: err1, err2
 
+      tracerHmixOn = .true.
+
+      if(config_disable_tr_hmix) tracerHmixOn = .false.
       call ocn_tracer_hmix_del2_init(err1)
       call ocn_tracer_hmix_del4_init(err2)
 

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -216,6 +216,8 @@
           eddyDiff2 = config_h_tracer_eddy_diff2
       endif
 
+      if(.not.config_use_tracer_del2) del2on = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hmix_del2_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -238,6 +238,8 @@
           eddyDiff4 = config_h_tracer_eddy_diff4
       endif
 
+      if(.not.config_use_tracer_del4) del4on = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hmix_del4_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_coriolis.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_coriolis.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_coriolis.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -43,6 +43,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: coriolisOn
 
 !***********************************************************************
 
@@ -116,6 +117,8 @@
 
       err = 0
 
+      if(.not.coriolisOn) return
+
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
       nEdgesOnEdge =&gt; grid % nEdgesOnEdge % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
@@ -181,6 +184,10 @@
 
       err = 0
 
+      coriolisOn = .true.
+
+      if(config_disable_u_coriolis) coriolisOn = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_coriolis_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -168,6 +168,8 @@
 
       windStressOn = .true.
 
+      if(config_disable_u_windstress) windStressOn = .false.
+
       err = 0
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -48,6 +48,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: hmixOn
    type (timer_node), pointer :: del2Timer, leithTimer, del4Timer
 
 
@@ -126,6 +127,8 @@
       !
       !-----------------------------------------------------------------
 
+      if(.not.hmixOn) return
+
       viscosity = 0.0
 
       call mpas_timer_start(&quot;del2&quot;, .false., del2Timer)
@@ -176,12 +179,16 @@
 
       integer :: err1, err2, err3
 
+      hmixOn = .true.
+
       call ocn_vel_hmix_del2_init(err1)
       call ocn_vel_hmix_leith_init(err2)
       call ocn_vel_hmix_del4_init(err3)
 
       err = ior(ior(err1, err2),err3)
 
+      if(config_disable_u_hmix) hmixOn = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_hmix_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -213,7 +213,9 @@
       endif
    endif
 
+   if(.not.config_use_mom_del2) hmixDel2On = .false.
 
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_hmix_del2_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -272,6 +272,8 @@
 
    endif
 
+   if(.not.config_use_mom_del4) hmixDel4On = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_hmix_del4_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_pressure_grad.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_pressure_grad.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_pressure_grad.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -44,6 +44,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: pgradOn
    real (kind=RKIND) :: rho0Inv, grho0Inv
 
 
@@ -113,6 +114,8 @@
 
       err = 0
 
+      if(.not.pgradOn) return
+
       nEdgesSolve = grid % nEdgesSolve
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
@@ -186,7 +189,9 @@
 
       err = 0
 
-      if (config_pressure_type.eq.'MontgomeryPotential') then
+      pgradOn = .true.
+
+      if (config_pressure_gradient_type.eq.'MontgomeryPotential') then
         rho0Inv = 1.0
         grho0Inv = 0.0
       else 
@@ -194,8 +199,10 @@
         grho0Inv = gravity/config_rho0
       end if
 
+      if(config_disable_u_pgrad) pgradOn = .false.
 
 
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_pressure_grad_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_vadv.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_vadv.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vel_vadv.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -187,6 +187,8 @@
           velVadvOn = .true.
       end if
 
+      if(config_disable_u_vadv) velVadvOn = .false.
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_vadv_init!}}}

Modified: branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vmix.F        2012-11-27 17:28:04 UTC (rev 2323)
+++ branches/ocean_projects/namelist_cleanup/src/core_ocean/mpas_ocn_vmix.F        2012-11-27 19:41:07 UTC (rev 2324)
@@ -56,6 +56,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: velVmixOn, tracerVmixOn
    logical :: explicitOn, implicitOn
 
 !***********************************************************************
@@ -198,6 +199,7 @@
 
       err = 0
 
+      if(.not.velVmixOn) return
       if(implicitOn) return
 
       nEdgessolve = grid % nEdgesSolve
@@ -299,6 +301,7 @@
 
       err = 0
 
+      if(.not.velVmixOn) return
       if(explicitOn) return
 
       nEdges = grid % nEdges
@@ -425,6 +428,7 @@
 
       err = 0
 
+      if(.not.tracerVmixOn) return
       if(implicitOn) return
 
       nCellsSolve = grid % nCellsSolve
@@ -530,6 +534,7 @@
 
       err = 0
 
+      if(.not.tracerVmixOn) return
       if(explicitOn) return
 
       nCells = grid % nCells
@@ -662,6 +667,9 @@
 
       err = 0
 
+      velVmixOn = .true.
+      tracerVmixOn = .true.
+
       explicitOn = .true.
       implicitOn = .false.
 
@@ -670,6 +678,9 @@
           implicitOn = .true.
       end if
 
+      if(config_disable_u_vmix) velVmixOn = .false.
+      if(config_disable_tr_vmix) tracerVmixOn = .false.
+
       call ocn_vmix_coefs_const_init(err1)
       call ocn_vmix_coefs_tanh_init(err2)
       call ocn_vmix_coefs_rich_init(err3)

</font>
</pre>