<p><b>dwj07@fsu.edu</b> 2013-04-03 11:46:01 -0600 (Wed, 03 Apr 2013)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Renaming variables:<br>
        uBcl* -> normalBaroclinicVelocity*<br>
        uBtr* -> normalBarotropicVelocity*<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/variable_name_change/src/core_ocean/Registry.xml
===================================================================
--- branches/ocean_projects/variable_name_change/src/core_ocean/Registry.xml        2013-04-03 17:27:35 UTC (rev 2719)
+++ branches/ocean_projects/variable_name_change/src/core_ocean/Registry.xml        2013-04-03 17:46:01 UTC (rev 2720)
@@ -582,13 +582,13 @@
                <var name="density" type="real" dimensions="nVertLevels nCells Time" streams="iro" units="kg m^{-3}"
                 description="density"
                />
-                <var name="uBtr" type="real" dimensions="nEdges Time" streams="r" units="m s^{-1}"
+                <var name="normalBarotropicVelocity" type="real" dimensions="nEdges Time" streams="r" units="m s^{-1}"
                 description="barotropic velocity, used in split-explicit time-stepping"
                />
                <var name="ssh" type="real" dimensions="nCells Time" streams="o" units="m"
                 description="sea surface height"
                />
-                <var name="uBtrSubcycle" type="real" dimensions="nEdges Time" units="m s^{-1}"
+                <var name="normalBarotropicVelocitySubcycle" type="real" dimensions="nEdges Time" units="m s^{-1}"
                 description="barotropic velocity, used in subcycling in stage 2 of split-explicit time-stepping"
                />
                <var name="sshSubcycle" type="real" dimensions="nCells Time" units="m"
@@ -600,7 +600,7 @@
                <var name="GBtrForcing" type="real" dimensions="nEdges Time" units="m s^{-2}"
                 description="Barotropic tendency computed from the baroclinic equations in stage 1 of the split-explicit algorithm."
                />
-                <var name="uBcl" type="real" dimensions="nVertLevels nEdges Time" units="m s^{-1}"
+                <var name="normalBaroclinicVelocity" type="real" dimensions="nVertLevels nEdges Time" units="m s^{-1}"
                 description="baroclinic velocity, used in split-explicit time-stepping"
                />
                <var name="zMid" type="real" dimensions="nVertLevels nCells Time" units="m"
Modified: branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_diagnostics.F
===================================================================
--- branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_diagnostics.F        2013-04-03 17:27:35 UTC (rev 2719)
+++ branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_diagnostics.F        2013-04-03 17:46:01 UTC (rev 2720)
@@ -638,7 +638,7 @@
integer :: iEdge, cell1, cell2, eoe, i, j, k
integer :: nEdgesSolve
real (kind=RKIND), dimension(:), pointer :: fEdge
- real (kind=RKIND), dimension(:,:), pointer :: weightsOnEdge, normalVelocity, uBcl
+ real (kind=RKIND), dimension(:,:), pointer :: weightsOnEdge, normalVelocity, normalBaroclinicVelocity
type (dm_info) :: dminfo
integer, dimension(:), pointer :: maxLevelEdgeTop, nEdgesOnEdge
@@ -647,7 +647,7 @@
call mpas_timer_start("ocn_fuperp")
normalVelocity => s % normalVelocity % array
- uBcl => s % uBcl % array
+ normalBaroclinicVelocity => s % normalBaroclinicVelocity % array
weightsOnEdge => grid % weightsOnEdge % array
fEdge => grid % fEdge % array
maxLevelEdgeTop => grid % maxLevelEdgeTop % array
@@ -660,7 +660,7 @@
nEdgesSolve = grid % nEdgesSolve
!
- ! Put f*uBcl^{perp} in u as a work variable
+ ! Put f*normalBaroclinicVelocity^{perp} in u as a work variable
!
do iEdge=1,nEdgesSolve
cell1 = cellsOnEdge(1,iEdge)
@@ -671,7 +671,7 @@
normalVelocity(k,iEdge) = 0.0
do j = 1,nEdgesOnEdge(iEdge)
eoe = edgesOnEdge(j,iEdge)
- normalVelocity(k,iEdge) = normalVelocity(k,iEdge) + weightsOnEdge(j,iEdge) * uBcl(k,eoe) * fEdge(eoe)
+ normalVelocity(k,iEdge) = normalVelocity(k,iEdge) + weightsOnEdge(j,iEdge) * normalBaroclinicVelocity(k,eoe) * fEdge(eoe)
end do
end do
end do
Modified: branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_mpas_core.F        2013-04-03 17:27:35 UTC (rev 2719)
+++ branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_mpas_core.F        2013-04-03 17:46:01 UTC (rev 2720)
@@ -756,9 +756,9 @@
! Compute barotropic velocity at first timestep
! This is only done upon start-up.
if (trim(config_time_integrator) == 'unsplit_explicit') then
- block % state % time_levs(1) % state % uBtr % array(:) = 0.0
+ block % state % time_levs(1) % state % normalBarotropicVelocity % array(:) = 0.0
- block % state % time_levs(1) % state % uBcl % array(:,:) &
+ block % state % time_levs(1) % state % normalBaroclinicVelocity % array(:,:) &
= block % state % time_levs(1) % state % normalVelocity % array(:,:)
elseif (trim(config_time_integrator) == 'split_explicit') then
@@ -774,7 +774,7 @@
cell1 = block % mesh % cellsOnEdge % array(1,iEdge)
cell2 = block % mesh % cellsOnEdge % array(2,iEdge)
- ! uBtr = sum(u)/sum(h) on each column
+ ! normalBarotropicVelocity = sum(u)/sum(h) on each column
! ocn_diagnostic_solve has not yet been called, so compute hEdge
! just for this edge.
@@ -799,28 +799,28 @@
layerThicknessSum = layerThicknessSum + layerThicknessEdge1
enddo
- block % state % time_levs(1) % state % uBtr % array(iEdge) = normalThicknessFluxSum/layerThicknessSum
+ block % state % time_levs(1) % state % normalBarotropicVelocity % array(iEdge) = normalThicknessFluxSum/layerThicknessSum
- ! uBcl(k,iEdge) = normalVelocity(k,iEdge) - uBtr(iEdge)
+ ! normalBaroclinicVelocity(k,iEdge) = normalVelocity(k,iEdge) - normalBarotropicVelocity(iEdge)
do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
- block % state % time_levs(1) % state % uBcl % array(k,iEdge) &
+ block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge) &
= block % state % time_levs(1) % state % normalVelocity % array(k,iEdge) &
- - block % state % time_levs(1) % state % uBtr % array(iEdge)
+ - block % state % time_levs(1) % state % normalBarotropicVelocity % array(iEdge)
enddo
- ! uBcl=0, normalVelocity=0 on land cells
+ ! normalBaroclinicVelocity=0, normalVelocity=0 on land cells
do k=block % mesh % maxLevelEdgeTop % array(iEdge)+1, block % mesh % nVertLevels
- block % state % time_levs(1) % state % uBcl % array(k,iEdge) = 0.0
+ block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge) = 0.0
block % state % time_levs(1) % state % normalVelocity % array(k,iEdge) = 0.0
enddo
enddo
if (config_filter_btr_mode) then
- ! filter uBtr out of initial condition
+ ! filter normalBarotropicVelocity out of initial condition
block % state % time_levs(1) % state % normalVelocity % array(:,:) &
- = block % state % time_levs(1) % state % uBcl % array(:,:)
+ = block % state % time_levs(1) % state % normalBaroclinicVelocity % array(:,:)
- block % state % time_levs(1) % state % uBtr % array(:) = 0.0
+ block % state % time_levs(1) % state % normalBarotropicVelocity % array(:) = 0.0
endif
endif
Modified: branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_time_integration_split.F        2013-04-03 17:27:35 UTC (rev 2719)
+++ branches/ocean_projects/variable_name_change/src/core_ocean/mpas_ocn_time_integration_split.F        2013-04-03 17:46:01 UTC (rev 2720)
@@ -49,8 +49,8 @@
public :: ocn_time_integrator_split
type (timer_node), pointer :: timer_main, timer_prep, timer_bcl_vel, timer_btr_vel, timer_diagnostic_update, timer_implicit_vmix, &
- timer_halo_diagnostic, timer_halo_ubtr, timer_halo_ssh, timer_halo_f, timer_halo_thickness, &
- timer_halo_tracers, timer_halo_ubcl
+ timer_halo_diagnostic, timer_halo_normalBarotropicVelocity, timer_halo_ssh, timer_halo_f, timer_halo_thickness, &
+ timer_halo_tracers, timer_halo_normalBaroclinicVelocity
contains
@@ -117,19 +117,19 @@
! The baroclinic velocity needs be recomputed at the beginning of a
! timestep because the implicit vertical mixing is conducted on the
- ! total u. We keep uBtr from the previous timestep.
- ! Note that uBcl may now include a barotropic component, because the
+ ! total u. We keep normalBarotropicVelocity from the previous timestep.
+ ! Note that normalBaroclinicVelocity may now include a barotropic component, because the
! weights layerThickness have changed. That is OK, because the GBtrForcing variable
! subtracts out the barotropic component from the baroclinic.
- block % state % time_levs(1) % state % uBcl % array(k,iEdge) &
+ block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge) &
= block % state % time_levs(1) % state % normalVelocity % array(k,iEdge) &
- - block % state % time_levs(1) % state % uBtr % array( iEdge)
+ - block % state % time_levs(1) % state % normalBarotropicVelocity % array( iEdge)
block % state % time_levs(2) % state % normalVelocity % array(k,iEdge) &
= block % state % time_levs(1) % state % normalVelocity % array(k,iEdge)
- block % state % time_levs(2) % state % uBcl % array(k,iEdge) &
- = block % state % time_levs(1) % state % uBcl % array(k,iEdge)
+ block % state % time_levs(2) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ = block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge)
block % state % time_levs(2) % state % layerThicknessEdge % array(k,iEdge) &
= block % state % time_levs(1) % state % layerThicknessEdge % array(k,iEdge)
@@ -216,7 +216,7 @@
do while (associated(block))
allocate(uTemp(block % mesh % nVertLevels))
- ! Put f*uBcl^{perp} in uNew as a work variable
+ ! Put f*normalBaroclinicVelocity^{perp} in uNew as a work variable
call ocn_fuperp(block % state % time_levs(2) % state , block % mesh)
do iEdge=1,block % mesh % nEdges
@@ -226,11 +226,11 @@
uTemp = 0.0 ! could put this after with uTemp(maxleveledgetop+1:nvertlevels)=0
do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
- ! uBclNew = uBclOld + dt*(-f*uBclPerp + T(u*,w*,p*) + g*grad(SSH*) )
- ! Here uNew is a work variable containing -fEdge(iEdge)*uBclPerp(k,iEdge)
- uTemp(k) = block % state % time_levs(1) % state % uBcl % array(k,iEdge) &
+ ! normalBaroclinicVelocityNew = normalBaroclinicVelocityOld + dt*(-f*normalBaroclinicVelocityPerp + T(u*,w*,p*) + g*grad(SSH*) )
+ ! Here uNew is a work variable containing -fEdge(iEdge)*normalBaroclinicVelocityPerp(k,iEdge)
+ uTemp(k) = block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ dt * (block % tend % normalVelocity % array (k,iEdge) &
- + block % state % time_levs(2) % state % normalVelocity % array (k,iEdge) & ! this is f*uBcl^{perp}
+ + block % state % time_levs(2) % state % normalVelocity % array (k,iEdge) & ! this is f*normalBaroclinicVelocity^{perp}
+ split * gravity * ( block % state % time_levs(2) % state % ssh % array(cell2) &
- block % state % time_levs(2) % state % ssh % array(cell1) ) &
/block % mesh % dcEdge % array(iEdge) )
@@ -253,10 +253,10 @@
! These two steps are together here:
!{\bf u}'_{k,n+1} = {\bf u}'_{k,n} - \Delta t {\overline {\bf G}}
!{\bf u}'_{k,n+1/2} = \frac{1}{2}\left({\bf u}^{'}_{k,n} +{\bf u}'_{k,n+1}\right)
- ! so that uBclNew is at time n+1/2
- block % state % time_levs(2) % state % uBcl % array(k,iEdge) &
+ ! so that normalBaroclinicVelocityNew is at time n+1/2
+ block % state % time_levs(2) % state % normalBaroclinicVelocity % array(k,iEdge) &
= 0.5*( &
- block % state % time_levs(1) % state % uBcl % array(k,iEdge) &
+ block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ uTemp(k) - dt * block % state % time_levs(1) % state % GBtrForcing % array(iEdge))
enddo
@@ -268,9 +268,9 @@
block => block % next
end do
- call mpas_timer_start("se halo ubcl", .false., timer_halo_ubcl)
- call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(2) % state % uBcl)
- call mpas_timer_stop("se halo ubcl", timer_halo_ubcl)
+ call mpas_timer_start("se halo normalBaroclinicVelocity", .false., timer_halo_normalBaroclinicVelocity)
+ call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(2) % state % normalBaroclinicVelocity)
+ call mpas_timer_stop("se halo normalBaroclinicVelocity", timer_halo_normalBaroclinicVelocity)
end do ! do j=1,config_n_bcl_iter
@@ -296,20 +296,20 @@
block => domain % blocklist
do while (associated(block))
- ! For Split_Explicit unsplit, simply set uBtrNew=0, uBtrSubcycle=0, and uNew=uBclNew
- block % state % time_levs(2) % state % uBtr % array(:) = 0.0
+ ! For Split_Explicit unsplit, simply set normalBarotropicVelocityNew=0, normalBarotropicVelocitySubcycle=0, and uNew=normalBaroclinicVelocityNew
+ block % state % time_levs(2) % state % normalBarotropicVelocity % array(:) = 0.0
- block % state % time_levs(2) % state % normalVelocity % array(:,:) = block % state % time_levs(2) % state % uBcl % array(:,:)
+ block % state % time_levs(2) % state % normalVelocity % array(:,:) = block % state % time_levs(2) % state % normalBaroclinicVelocity % array(:,:)
do iEdge=1,block % mesh % nEdges
do k=1,block % mesh % nVertLevels
- ! uTranport = uBcl + uBolus
+ ! uTranport = normalBaroclinicVelocity + uBolus
! This is u used in advective terms for layerThickness and tracers
! in tendency 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(2) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ block % state % time_levs(1) % state % uBolusGM % array(k,iEdge) )
enddo
@@ -336,13 +336,13 @@
do iEdge=1,block % mesh % nEdges
- ! uBtrSubcycleOld = uBtrOld
- block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- = block % state % time_levs(1) % state % uBtr % array(iEdge)
+ ! normalBarotropicVelocitySubcycleOld = normalBarotropicVelocityOld
+ block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ = block % state % time_levs(1) % state % normalBarotropicVelocity % array(iEdge)
- ! uBtrNew = BtrOld This is the first for the summation
- block % state % time_levs(2) % state % uBtr % array(iEdge) &
- = block % state % time_levs(1) % state % uBtr % array(iEdge)
+ ! normalBarotropicVelocityNew = BtrOld This is the first for the summation
+ block % state % time_levs(2) % state % normalBarotropicVelocity % array(iEdge) &
+ = block % state % time_levs(1) % state % normalBarotropicVelocity % array(iEdge)
! FBtr = 0
block % state % time_levs(1) % state % FBtr % array(iEdge) = 0.0
@@ -376,13 +376,13 @@
eoe = block % mesh % edgesOnEdge % array(i,iEdge)
CoriolisTerm = CoriolisTerm &
+ block % mesh % weightsOnEdge % array(i,iEdge) &
- * block % state % time_levs(uPerpTime) % state % uBtrSubcycle % array(eoe) &
+ * block % state % time_levs(uPerpTime) % state % normalBarotropicVelocitySubcycle % array(eoe) &
* block % mesh % fEdge % array(eoe)
end do
- ! uBtrNew = uBtrOld + dt/J*(-f*uBtroldPerp - g*grad(SSH) + G)
- block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- = (block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
+ ! normalBarotropicVelocityNew = normalBarotropicVelocityOld + dt/J*(-f*normalBarotropicVelocityoldPerp - g*grad(SSH) + G)
+ block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ = (block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ dt / config_n_btr_subcycles * (CoriolisTerm - gravity &
* (block % state % time_levs(oldBtrSubcycleTime) % state % sshSubcycle % array(cell2) &
- block % state % time_levs(oldBtrSubcycleTime) % state % sshSubcycle % array(cell1) ) &
@@ -393,10 +393,10 @@
block => block % next
end do ! block
- ! boundary update on uBtrNew
- call mpas_timer_start("se halo ubtr", .false., timer_halo_ubtr)
- call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle)
- call mpas_timer_stop("se halo ubtr", timer_halo_ubtr)
+ ! boundary update on normalBarotropicVelocityNew
+ call mpas_timer_start("se halo normalBarotropicVelocity", .false., timer_halo_normalBarotropicVelocity)
+ call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle)
+ call mpas_timer_stop("se halo normalBarotropicVelocity", timer_halo_normalBarotropicVelocity)
endif ! config_btr_gam1_uWt1>1.0e-12
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -417,9 +417,9 @@
endif
! config_btr_gam1_uWt1 sets the forward weighting of velocity in the SSH computation
- ! config_btr_gam1_uWt1= 1 flux = uBtrNew*H
- ! config_btr_gam1_uWt1=0.5 flux = 1/2*(uBtrNew+uBtrOld)*H
- ! config_btr_gam1_uWt1= 0 flux = uBtrOld*H
+ ! config_btr_gam1_uWt1= 1 flux = normalBarotropicVelocityNew*H
+ ! config_btr_gam1_uWt1=0.5 flux = 1/2*(normalBarotropicVelocityNew+normalBarotropicVelocityOld)*H
+ ! config_btr_gam1_uWt1= 0 flux = normalBarotropicVelocityOld*H
do iCell = 1, block % mesh % nCells
do i = 1, block % mesh % nEdgesOnCell % array(iCell)
@@ -444,8 +444,8 @@
! + block % mesh % bottomDepth % array(cell2) )
- flux = ((1.0-config_btr_gam1_uWt1) * block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- + config_btr_gam1_uWt1 * block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
+ flux = ((1.0-config_btr_gam1_uWt1) * block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ + config_btr_gam1_uWt1 * block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge)) &
* thicknessSum
block % tend % ssh % array(iCell) = block % tend % ssh % array(iCell) + block % mesh % edgeSignOncell % array(i, iCell) * flux &
@@ -473,8 +473,8 @@
!thicknessSum = sshEdge + 0.5 *( block % mesh % bottomDepth % array(cell1) &
! + block % mesh % bottomDepth % array(cell2) )
- flux = ((1.0-config_btr_gam1_uWt1) * block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- + config_btr_gam1_uWt1 * block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
+ flux = ((1.0-config_btr_gam1_uWt1) * block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ + config_btr_gam1_uWt1 * block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge)) &
* thicknessSum
block % state % time_levs(1) % state % FBtr % array(iEdge) = block % state % time_levs(1) % state % FBtr % array(iEdge) &
@@ -507,7 +507,7 @@
block => domain % blocklist
do while (associated(block))
allocate(utemp(block % mesh % nEdges+1))
- uTemp(:) = block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(:)
+ uTemp(:) = block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(:)
do iEdge=1,block % mesh % nEdges
cell1 = block % mesh % cellsOnEdge % array(1,iEdge)
cell2 = block % mesh % cellsOnEdge % array(2,iEdge)
@@ -517,7 +517,7 @@
do i = 1,block % mesh % nEdgesOnEdge % array(iEdge)
eoe = block % mesh % edgesOnEdge % array(i,iEdge)
CoriolisTerm = CoriolisTerm + block % mesh % weightsOnEdge % array(i,iEdge) &
- !* block % state % time_levs(uPerpTime) % state % uBtrSubcycle % array(eoe) &
+ !* block % state % time_levs(uPerpTime) % state % normalBarotropicVelocitySubcycle % array(eoe) &
* uTemp(eoe) &
* block % mesh % fEdge % array(eoe)
end do
@@ -529,9 +529,9 @@
sshCell2 = (1-config_btr_gam2_SSHWt1)*block % state % time_levs(oldBtrSubcycleTime) % state % sshSubcycle % array(cell2) &
+ config_btr_gam2_SSHWt1 *block % state % time_levs(newBtrSubcycleTime) % state % sshSubcycle % array(cell2)
- ! uBtrNew = uBtrOld + dt/J*(-f*uBtroldPerp - g*grad(SSH) + G)
- block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- = (block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
+ ! normalBarotropicVelocityNew = normalBarotropicVelocityOld + dt/J*(-f*normalBarotropicVelocityoldPerp - g*grad(SSH) + G)
+ block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ = (block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ dt/config_n_btr_subcycles *(CoriolisTerm - gravity *(sshCell2 - sshCell1) /block % mesh % dcEdge % array(iEdge) &
+ block % state % time_levs(1) % state % GBtrForcing % array(iEdge))) * block % mesh % edgeMask % array(1,iEdge)
end do
@@ -540,10 +540,10 @@
block => block % next
end do ! block
- ! boundary update on uBtrNew
- call mpas_timer_start("se halo ubtr", .false., timer_halo_ubtr)
- call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle)
- call mpas_timer_stop("se halo ubtr", timer_halo_ubtr)
+ ! boundary update on normalBarotropicVelocityNew
+ call mpas_timer_start("se halo normalBarotropicVelocity", .false., timer_halo_normalBarotropicVelocity)
+ call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle)
+ call mpas_timer_stop("se halo normalBarotropicVelocity", timer_halo_normalBarotropicVelocity)
end do !do BtrCorIter=1,config_n_btr_cor_iter
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -556,9 +556,9 @@
block % tend % ssh % array(:) = 0.0
! config_btr_gam3_uWt2 sets the forward weighting of velocity in the SSH computation
- ! config_btr_gam3_uWt2= 1 flux = uBtrNew*H
- ! config_btr_gam3_uWt2=0.5 flux = 1/2*(uBtrNew+uBtrOld)*H
- ! config_btr_gam3_uWt2= 0 flux = uBtrOld*H
+ ! config_btr_gam3_uWt2= 1 flux = normalBarotropicVelocityNew*H
+ ! config_btr_gam3_uWt2=0.5 flux = 1/2*(normalBarotropicVelocityNew+normalBarotropicVelocityOld)*H
+ ! config_btr_gam3_uWt2= 0 flux = normalBarotropicVelocityOld*H
do iCell = 1, block % mesh % nCells
do i = 1, block % mesh % nEdgesOnCell % array(iCell)
@@ -588,8 +588,8 @@
! + block % mesh % bottomDepth % array(cell2) )
- flux = ((1.0-config_btr_gam3_uWt2) * block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- + config_btr_gam3_uWt2 * block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
+ flux = ((1.0-config_btr_gam3_uWt2) * block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ + config_btr_gam3_uWt2 * block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge)) &
* thicknessSum
block % tend % ssh % array(iCell) = block % tend % ssh % array(iCell) + block % mesh % edgeSignOnCell % array(i, iCell) * flux &
@@ -621,8 +621,8 @@
!thicknessSum = sshEdge + 0.5 *( block % mesh % bottomDepth % array(cell1) &
! + block % mesh % bottomDepth % array(cell2) )
- flux = ((1.0-config_btr_gam3_uWt2) * block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &
- + config_btr_gam3_uWt2 * block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)) &
+ flux = ((1.0-config_btr_gam3_uWt2) * block % state % time_levs(oldBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge) &
+ + config_btr_gam3_uWt2 * block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge)) &
* thicknessSum
block % state % time_levs(1) % state % FBtr % array(iEdge) = block % state % time_levs(1) % state % FBtr % array(iEdge) + flux
@@ -651,15 +651,15 @@
block => domain % blocklist
do while (associated(block))
- ! uBtrNew = uBtrNew + uBtrSubcycleNEW
+ ! normalBarotropicVelocityNew = normalBarotropicVelocityNew + normalBarotropicVelocitySubcycleNEW
! This accumulates the sum.
! If the Barotropic Coriolis iteration is limited to one, this could
! be merged with the above code.
do iEdge=1,block % mesh % nEdges
- block % state % time_levs(2) % state % uBtr % array(iEdge) &
- = block % state % time_levs(2) % state % uBtr % array(iEdge) &
- + block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge)
+ block % state % time_levs(2) % state % normalBarotropicVelocity % array(iEdge) &
+ = block % state % time_levs(2) % state % normalBarotropicVelocity % array(iEdge) &
+ + block % state % time_levs(newBtrSubcycleTime) % state % normalBarotropicVelocitySubcycle % array(iEdge)
end do ! iEdge
block => block % next
@@ -674,7 +674,7 @@
! END Barotropic subcycle loop
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Normalize Barotropic subcycle sums: ssh, uBtr, and F
+ ! Normalize Barotropic subcycle sums: ssh, normalBarotropicVelocity, and F
block => domain % blocklist
do while (associated(block))
@@ -682,7 +682,7 @@
block % state % time_levs(1) % state % FBtr % array(iEdge) = block % state % time_levs(1) % state % FBtr % array(iEdge) &
/ (config_n_btr_subcycles*config_btr_subcycle_loop_factor)
- block % state % time_levs(2) % state % uBtr % array(iEdge) = block % state % time_levs(2) % state % uBtr % array(iEdge) &
+ block % state % time_levs(2) % state % normalBarotropicVelocity % array(iEdge) = block % state % time_levs(2) % state % normalBarotropicVelocity % array(iEdge) &
/ (config_n_btr_subcycles*config_btr_subcycle_loop_factor + 1)
end do
@@ -719,10 +719,10 @@
do iEdge=1,block % mesh % nEdges
- ! velocity for uCorrection is uBtr + uBcl + uBolus
+ ! velocity for uCorrection is normalBarotropicVelocity + normalBaroclinicVelocity + uBolus
uTemp(:) &
- = block % state % time_levs(2) % state % uBtr % array( iEdge) &
- + block % state % time_levs(2) % state % uBcl % array(:,iEdge) &
+ = block % state % time_levs(2) % state % normalBarotropicVelocity % array( iEdge) &
+ + block % state % time_levs(2) % state % normalBaroclinicVelocity % array(:,iEdge) &
+ block % state % time_levs(1) % state % uBolusGM % array(:,iEdge)
! thicknessSum is initialized outside the loop because on land boundaries
@@ -740,13 +740,13 @@
do k=1,block % mesh % nVertLevels
- ! uTranport = uBtr + uBcl + uBolus + uCorrection
+ ! uTranport = normalBarotropicVelocity + normalBaroclinicVelocity + uBolus + uCorrection
! This is u used in advective terms for layerThickness and tracers
! in tendency 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 % uBtr % array( iEdge) &
- + block % state % time_levs(2) % state % uBcl % array(k,iEdge) &
+ *( block % state % time_levs(2) % state % normalBarotropicVelocity % array( iEdge) &
+ + block % state % time_levs(2) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ block % state % time_levs(1) % state % uBolusGM % array(k,iEdge) &
+ uCorr )
@@ -850,13 +850,13 @@
do k=1,block % mesh % nVertLevels
- ! u = uBtr + uBcl
- ! here uBcl is at time n+1/2
+ ! u = normalBarotropicVelocity + normalBaroclinicVelocity
+ ! here normalBaroclinicVelocity is at time n+1/2
! This is u used in next iteration or step
block % state % time_levs(2) % state % normalVelocity % array(k,iEdge) &
= block % mesh % edgeMask % array(k,iEdge) &
- *( block % state % time_levs(2) % state % uBtr % array( iEdge) &
- + block % state % time_levs(2) % state % uBcl % array(k,iEdge) )
+ *( block % state % time_levs(2) % state % normalBarotropicVelocity % array( iEdge) &
+ + block % state % time_levs(2) % state % normalBaroclinicVelocity % array(k,iEdge) )
enddo
@@ -894,20 +894,20 @@
end do
! Recompute final u to go on to next step.
- ! u_{n+1} = uBtr_{n+1} + uBcl_{n+1}
- ! Right now uBclNew is at time n+1/2, so back compute to get uBcl at time n+1
- ! using uBcl_{n+1/2} = 1/2*(uBcl_n + u_Bcl_{n+1})
+ ! u_{n+1} = normalBarotropicVelocity_{n+1} + normalBaroclinicVelocity_{n+1}
+ ! Right now normalBaroclinicVelocityNew is at time n+1/2, so back compute to get normalBaroclinicVelocity at time n+1
+ ! using normalBaroclinicVelocity_{n+1/2} = 1/2*(normalBaroclinicVelocity_n + u_Bcl_{n+1})
! so the following lines are
- ! u_{n+1} = uBtr_{n+1} + 2*uBcl_{n+1/2} - uBcl_n
- ! note that uBcl is recomputed at the beginning of the next timestep due to Imp Vert mixing,
- ! so uBcl does not have to be recomputed here.
+ ! u_{n+1} = normalBarotropicVelocity_{n+1} + 2*normalBaroclinicVelocity_{n+1/2} - normalBaroclinicVelocity_n
+ ! note that normalBaroclinicVelocity is recomputed at the beginning of the next timestep due to Imp Vert mixing,
+ ! so normalBaroclinicVelocity does not have to be recomputed here.
do iEdge=1,block % mesh % nEdges
do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
block % state % time_levs(2) % state % normalVelocity % array(k,iEdge) &
- = block % state % time_levs(2) % state % uBtr % array( iEdge) &
- +2*block % state % time_levs(2) % state % uBcl % array(k,iEdge) &
- - block % state % time_levs(1) % state % uBcl % array(k,iEdge)
+ = block % state % time_levs(2) % state % normalBarotropicVelocity % array( iEdge) &
+ +2*block % state % time_levs(2) % state % normalBaroclinicVelocity % array(k,iEdge) &
+ - block % state % time_levs(1) % state % normalBaroclinicVelocity % array(k,iEdge)
end do
end do ! iEdges
</font>
</pre>