<p><b>mpetersen@lanl.gov</b> 2012-03-26 13:48:50 -0600 (Mon, 26 Mar 2012)</p><p>Added uTransport to unsplit_explicit timestepping.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -248,20 +248,11 @@
call ocn_diagnostic_solve(dt, block % state % time_levs(1) % state, mesh)
call mpas_timer_stop("diagnostic solve", initDiagSolveTimer)
-! mrp 120323 add:
- ! Apply the GM closure as a bolus velocity
- if (config_h_kappa .GE. epsilon(0D0)) then
- call ocn_gm_compute_uBolus(block % state % time_levs(1) % state, block % mesh)
- else
- ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
- block % state % time_levs(1) % state % uBolusGM % array(:,:) = 0.0
- end if
+ ! Compute velocity transport, used in advection terms of h and tracer tendancy
+ block % state % time_levs(1) % state % uTransport % array(:,:) &
+ = block % state % time_levs(1) % state % u % array(:,:) &
+ + block % state % time_levs(1) % state % uBolusGM % array(:,:)
- block % state % time_levs(1) % state % uTransport % array(:,:) &
- = block % state % time_levs(1) % state % u % array(:,:) &
- + block % state % time_levs(1) % state % uBolusGM % array(:,:)
-! mrp 120323 end
-
call ocn_wtop(block % state % time_levs(1) % state,block % state % time_levs(1) % state, mesh)
call ocn_compute_mesh_scaling(mesh)
Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -839,22 +839,14 @@
end do
-! mrp 120323 remove:
-! ! Applications of any bolus-like parametrizations should be made after the next line.
-! uTransport(:,:) = u(:,:)
-! ! Apply the GM closure as a bolus velocity
-! if(config_h_kappa .GE. epsilon(0D0)) then
-! call ocn_gm_compute_uBolus(s,grid)
-! uTransport(:,:) = uTransport(:,:) + uBolusGM(:,:)
-! end if
-! mrp 120323 end
-
+ !
! Apply the GM closure as a bolus velocity
+ !
if (config_h_kappa .GE. epsilon(0D0)) then
call ocn_gm_compute_uBolus(s,grid)
else
- ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
- uBolusGM(:,:) = 0.0
+ ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
+ uBolusGM = 0.0
end if
end subroutine ocn_diagnostic_solve!}}}
Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -241,9 +241,10 @@
call ocn_diagnostic_solve(dt, provis, block % mesh)
-! mrp 120323 add:
- provis % uTransport % array(:,:) = provis % u % array(:,:) + provis % uBolusGM % array(:,:)
-! mrp 120323 end
+ ! Compute velocity transport, used in advection terms of h and tracer tendancy
+ provis % uTransport % array(:,:) &
+ = provis % u % array(:,:) &
+ + provis % uBolusGM % array(:,:)
block => block % next
end do
@@ -347,11 +348,10 @@
call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
-! mrp 120323 add:
+ ! Compute velocity transport, used in advection terms of h and tracer tendancy
block % state % time_levs(2) % state % uTransport % array(:,:) &
= block % state % time_levs(2) % state % u % array(:,:) &
+ block % state % time_levs(2) % state % uBolusGM % array(:,:)
-! mrp 120323 end
call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % u % array, &
block % state % time_levs(2) % state % uReconstructX % array, &
Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -312,6 +312,23 @@
block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(2) % state % uBcl % array(:,:)
+ do iEdge=1,block % mesh % nEdges
+ do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
+
+ ! uTranport = uBcl + uBolus
+ ! This is u used in advective terms for h and tracers
+ ! in tendancy calls in stage 3.
+ block % state % time_levs(2) % state % uTransport % array(k,iEdge) &
+ = block % mesh % edgeMask % array(k,iEdge) &
+ *( block % state % time_levs(2) % state % uBcl % array(k,iEdge) &
+ + block % state % time_levs(1) % state % uBolusGM % array(k,iEdge) )
+
+ enddo
+ do k=block % mesh % maxLevelEdgeTop % array(iEdge)+1,block % mesh % nVertLevels
+ block % state % time_levs(2) % state % uTransport % array(k,iEdge) = 0.0
+ end do
+ end do ! iEdge
+
block => block % next
end do ! block
</font>
</pre>