<p><b>mpetersen@lanl.gov</b> 2011-08-29 16:49:39 -0600 (Mon, 29 Aug 2011)</p><p>Added a new flag:<br>
config_btr_flux_coef sets the forward weighting of velocity in the SSH computation<br>
config_btr_flux_coef= 1 flux = uBtrNew*H<br>
config_btr_flux_coef=0.5 flux = 1/2*(uBtrNew+uBtrOld)*H<br>
config_btr_flux_coef= 0 flux = uBtrOld*H<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-08-29 22:03:13 UTC (rev 959)
+++ branches/ocean_projects/timesplitting_mrp/namelist.input.ocean        2011-08-29 22:49:39 UTC (rev 960)
@@ -27,9 +27,10 @@
config_n_btr_cor_iter = 2
config_compute_tr_midstage = .true.
config_u_correction = .true.
- config_filter_btr_mode false
- config_btr_mom_decay = .false.
+ config_filter_btr_mode = .false.
+ config_btr_mom_decay = .false.
config_btr_mom_decay_time = 3600.0
+ config_btr_flux_coef = 1.0
config_btr_mom_eddy_visc2 = 0.0
/
&hmix
Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-08-29 22:03:13 UTC (rev 959)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-08-29 22:49:39 UTC (rev 960)
@@ -28,6 +28,7 @@
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 logical sw_model config_h_ScaleWithMesh false
namelist real hmix config_h_mom_eddy_visc2 0.0
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-08-29 22:03:13 UTC (rev 959)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-08-29 22:49:39 UTC (rev 960)
@@ -200,12 +200,6 @@
provis % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:) &
+ rk_substep_weights(rk_step) * block % tend % u % array(:,:)
- ! mrp 110718 filter btr mode out of u
- if (config_rk_filter_btr_mode) then
- ! call filter_btr_mode_u(provis, block % mesh)
- !block % tend % h % array(:,:) = 0.0 ! I should not need this
- endif
-
provis % h % array(:,:) = block % state % time_levs(1) % state % h % array(:,:) &
+ rk_substep_weights(rk_step) * block % tend % h % array(:,:)
do iCell=1,block % mesh % nCells
@@ -236,11 +230,6 @@
do while (associated(block))
block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(2) % state % u % array(:,:) &
+ rk_weights(rk_step) * block % tend % u % array(:,:)
- ! mrp 110718 filter btr mode out of u
- if (config_rk_filter_btr_mode) then
- ! call filter_btr_mode_u(block % state % time_levs(2) % state, block % mesh)
- !block % tend % h % array(:,:) = 0.0 ! I should not need this
- endif
block % state % time_levs(2) % state % h % array(:,:) = block % state % time_levs(2) % state % h % array(:,:) &
+ rk_weights(rk_step) * block % tend % h % array(:,:)
@@ -770,7 +759,10 @@
block % tend % ssh % array(:) = 0.0
- ! Flux = 1/2*(uBtrNew+uBtrOld)*H where H it total thickness
+ ! config_btr_flux_coef sets the forward weighting of velocity in the SSH computation
+ ! config_btr_flux_coef= 1 flux = uBtrNew*H
+ ! config_btr_flux_coef=0.5 flux = 1/2*(uBtrNew+uBtrOld)*H
+ ! config_btr_flux_coef= 0 flux = uBtrOld*H
do iEdge=1,block % mesh % nEdges
cell1 = block % mesh % cellsOnEdge % array(1,iEdge)
cell2 = block % mesh % cellsOnEdge % array(2,iEdge)
@@ -780,8 +772,10 @@
+ block % state % time_levs(oldBtrSubcycleTime) % state % sshSubcycle % array(cell2) )
hSum = sum(block % mesh % hZLevel % array (1:block % mesh % maxLevelEdgeTop % array(iEdge)))
- flux = 0.5*( block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- +block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
+ flux = ((1.0-config_btr_flux_coef) &
+ * block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
+ + config_btr_flux_coef &
+ * block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
* block % mesh % dvEdge % array(iEdge) &
* (sshEdge + hSum)
</font>
</pre>