<p><b>mpetersen@lanl.gov</b> 2011-09-30 13:38:22 -0600 (Fri, 30 Sep 2011)</p><p>Merged all of Doug's trunk changes to this new timestepping branch.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/split_explicit_timestepping/Makefile
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/Makefile        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/Makefile        2011-09-30 19:38:22 UTC (rev 1048)
@@ -83,7 +83,7 @@
ifort:
        ( make all \
-        "FC = ifort" \
+        "FC = /share/apps/intel-openmpi-1.4.3/bin/mpif90" \
        "CC = gcc" \
        "SFC = ifort" \
        "SCC = gcc" \
@@ -91,7 +91,7 @@
        "CFLAGS = -O3 -m64" \
        "LDFLAGS = -O3" \
        "CORE = $(CORE)" \
-        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
gfortran:
        ( make all \
Modified: branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean        2011-09-30 19:38:22 UTC (rev 1048)
@@ -29,17 +29,18 @@
config_n_bcl_iter_end = 2
config_n_btr_subcycles = 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_btr_mom_decay_time = 3600.0
- config_btr_flux_coef = 1.0
config_btr_mom_eddy_visc2 = 0.0
config_btr_subcycle_loop_factor = 2
config_SSH_from = 'avg_flux'
config_new_btr_variables_from = 'btr_avg'
-/
+ config_btr_gam1_uWt1 = 0.5
+ config_btr_gam2_SSHWt1 = 1.0
+ config_btr_gam3_uWt2 = 1.0
+ config_btr_solve_SSH2 = .false.
&hmix
config_h_mom_eddy_visc2 = 1.0e5
config_h_mom_eddy_visc4 = 0.0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry        2011-09-30 19:38:22 UTC (rev 1048)
@@ -26,16 +26,18 @@
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 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 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
@@ -186,9 +188,9 @@
var persistent real h ( nVertLevels nCells Time ) 2 ir h state - -
var persistent real rho ( nVertLevels nCells Time ) 2 ir rho state - -
var persistent real temperature ( nVertLevels nCells Time ) 2 iro temperature state tracers dynamics
-var persistent real salinity ( nVertLevels nCells Time ) 2 ir salinity state tracers dynamics
-var persistent real tracer1 ( nVertLevels nCells Time ) 2 ir tracer1 state tracers testing
-var persistent real tracer2 ( nVertLevels nCells Time ) 2 ir tracer2 state tracers testing
+var persistent real salinity ( nVertLevels nCells Time ) 2 iro salinity state tracers dynamics
+var persistent real tracer1 ( nVertLevels nCells Time ) 2 iro tracer1 state tracers testing
+var persistent real tracer2 ( nVertLevels nCells Time ) 2 iro tracer2 state tracers testing
# Tendency variables: neither read nor written to any files
var persistent real tend_u ( nVertLevels nEdges Time ) 1 - u tend - -
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -4,7 +4,7 @@
!
!> \brief MPAS ocean equation of state driver
!> \author Doug Jacobsen
-!> \date 19 September 2011
+!> \date 29 September 2011
!> \version SVN:$Id:$
!> \details
!> This module contains the main driver routine for calling
@@ -17,8 +17,8 @@
use grid_types
use configure
use timer
-! use ocn_equation_of_stateLinear
-! use ocn_equation_of_stateJM
+ use ocn_equation_of_state_linear
+ use ocn_equation_of_state_jm
implicit none
private
@@ -46,6 +46,7 @@
!--------------------------------------------------------------------
logical :: eosON
+ logical :: linearEos, jmEos
!***********************************************************************
@@ -58,14 +59,14 @@
!
!> \brief Calls equation of state
!> \author Doug Jacobsen
-!> \date 19 September 2011
+!> \date 29 September 2011
!> \version SVN:$Id$
!> \details
!> This routine calls the equation of state to update the density
!
!-----------------------------------------------------------------------
- subroutine ocn_equation_of_state_rho(s, grid, k_displaced, displacement_type)!{{{
+ subroutine ocn_equation_of_state_rho(s, grid, k_displaced, displacement_type, err)!{{{
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! This module contains routines necessary for computing the density
! from model temperature and salinity using an equation of state.
@@ -84,6 +85,7 @@
type (state_type), intent(inout) :: s
type (mesh_type), intent(in) :: grid
+ integer, intent(out) :: err
integer :: k_displaced
character(len=8), intent(in) :: displacement_type
@@ -93,17 +95,22 @@
integer :: nCells, iCell, k, indexT, indexS
type (dm_info) :: dminfo
+ err = 0
+
+ if(.not.eosOn) return
+
call timer_start("ocn_equation_of_state_rho")
- if (config_eos_type.eq.'linear') then
+ tracers => s % tracers % array
+ indexT = s % index_temperature
+ indexS = s % index_salinity
- call ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)
+ if (linearEos) then
+ rho => s % rho % array
- elseif (config_eos_type.eq.'jm') then
+ call ocn_equation_of_state_linear_rho(grid, indexT, indexS, tracers, rho, err)
- tracers => s % tracers % array
- indexT = s % index_temperature
- indexS = s % index_salinity
+ elseif (jmEos) then
if(k_displaced == 0) then
rho => s % rho % array
@@ -111,13 +118,8 @@
rho => s % rhoDisplaced % array
endif
- call ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)
-! call ocn_equation_of_state_rho_jm_bak(s, grid, k_displaced, displacement_type)
+ call ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho, err)
- else
- print *, ' Incorrect choice of config_eos_type:',&
- config_eos_type
- call dmpar_abort(dminfo)
endif
call timer_stop("ocn_equation_of_state_rho")
@@ -130,7 +132,7 @@
!
!> \brief Initializes ocean momentum horizontal mixing quantities
!> \author Doug Jacobsen
-!> \date 19 September 2011
+!> \date 29 September 2011
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
@@ -138,7 +140,7 @@
!> parameterizations are available, this routine primarily calls the
!> individual init routines for each parameterization.
!
-!-----------------------------------------------------------------------
+!----------------------------------------------------------------------
subroutine ocn_equation_of_state_init(err)!{{{
@@ -152,324 +154,29 @@
integer, intent(out) :: err
- integer :: err1, err2
-
err = 0
- ! For an isopycnal model, density should remain constant.
- ! For zlevel, calculate in-situ density
eosON = .false.
+ linearEos = .false.
+ jmEos = .false.
if(config_vert_grid_type.eq.'zlevel') then
eosON = .true.
-! call ocn_equation_of_stateLinearInit(err1)
-! call ocn_equation_of_stateJMInit(err2)
- err = err1 .or. err2
+ if (config_eos_type.eq.'linear') then
+ linearEos = .true.
+ elseif (config_eos_type.eq.'jm') then
+ jmEos = .true.
+ else
+ print *,'Invalid choice for config_eos_type.'
+ print *,' Choices are: linear, jm'
+ err = 1
+ endif
endif
-
!--------------------------------------------------------------------
end subroutine ocn_equation_of_state_init!}}}
- subroutine ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)!{{{
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! This module contains routines necessary for computing the density
- ! from model temperature and salinity using an equation of state.
- !
- ! Input: grid - grid metadata
- ! s - state: tracers
- ! k_displaced
- ! If k_displaced<=0, state % rho is returned with no displaced
- ! If k_displaced>0,the state % rhoDisplaced is returned, and is for
- ! a parcel adiabatically displaced from its original level to level
- ! k_displaced. This does not effect the linear EOS.
- !
- ! Output: s - state: computed density
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- implicit none
-
- type (state_type), intent(inout) :: s
- type (mesh_type), intent(in) :: grid
- integer :: k_displaced
- character(len=8), intent(in) :: displacement_type
-
- integer, dimension(:), pointer :: maxLevelCell
- real (kind=RKIND), dimension(:,:), pointer :: rho
- real (kind=RKIND), dimension(:,:,:), pointer :: tracers
- integer :: nCells, iCell, k
- type (dm_info) :: dminfo
-
- call timer_start("ocn_equation_of_state_linear")
-
- rho => s % rho % array
- tracers => s % tracers % array
- maxLevelCell => grid % maxLevelCell % array
- nCells = grid % nCells
-
- do iCell=1,nCells
- do k=1,maxLevelCell(iCell)
- ! Linear equation of state
- rho(k,iCell) = 1000.0*( 1.0 &
- - 2.5e-4*tracers(s % index_temperature,k,iCell) &
- + 7.6e-4*tracers(s % index_salinity,k,iCell))
- end do
- end do
-
- call timer_stop("ocn_equation_of_state_linear")
-
- end subroutine ocn_equation_of_state_linear_rho!}}}
-
- subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)!{{{
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! This module contains routines necessary for computing the density
- ! from model temperature and salinity using an equation of state.
- !
- ! The UNESCO equation of state computed using the
- ! potential-temperature-based bulk modulus from Jackett and
- ! McDougall, JTECH, Vol.12, pp 381-389, April, 1995.
- !
- ! Input: grid - grid metadata
- ! s - state: tracers
- ! k_displaced
-
- ! If k_displaced<=0, density is returned with no displaced
- ! If k_displaced>0,the density returned is that for a parcel
- ! adiabatically displaced from its original level to level
- ! k_displaced.
-
- !
- ! Output: s - state: computed density
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- implicit none
-
- type (mesh_type), intent(in) :: grid
- integer :: k_displaced, indexT, indexS
- character(len=8), intent(in) :: displacement_type
-
- type (dm_info) :: dminfo
- integer :: iEdge, iCell, iVertex, k
-
- integer :: nCells, nEdges, nVertices, nVertLevels
-
-
- real (kind=RKIND), dimension(:), pointer :: &
- zMidZLevel, pRefEOS
- real (kind=RKIND), dimension(:,:), intent(inout) :: &
- rho
- real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
-
- integer, dimension(:), pointer :: maxLevelCell
-
- real (kind=RKIND) :: &
- TQ,SQ, &! adjusted T,S
- BULK_MOD, &! Bulk modulus
- RHO_S, &! density at the surface
- DRDT0, &! d(density)/d(temperature), for surface
- DRDS0, &! d(density)/d(salinity ), for surface
- DKDT, &! d(bulk modulus)/d(pot. temp.)
- DKDS, &! d(bulk modulus)/d(salinity )
- SQR,DENOMK, &! work arrays
- WORK1, WORK2, WORK3, WORK4, T2, depth
-
- real (kind=RKIND) :: &
- tmin, tmax, &! valid temperature range for level k
- smin, smax ! valid salinity range for level k
-
- real (kind=RKIND), dimension(:), allocatable :: &
- p, p2 ! temporary pressure scalars
-
-!-----------------------------------------------------------------------
-!
-! UNESCO EOS constants and JMcD bulk modulus constants
-!
-!-----------------------------------------------------------------------
-
- !*** for density of fresh water (standard UNESCO)
-
- real (kind=RKIND), parameter :: &
- unt0 = 999.842594, &
- unt1 = 6.793952e-2, &
- unt2 = -9.095290e-3, &
- unt3 = 1.001685e-4, &
- unt4 = -1.120083e-6, &
- unt5 = 6.536332e-9
-
- !*** for dependence of surface density on salinity (UNESCO)
-
- real (kind=RKIND), parameter :: &
- uns1t0 = 0.824493 , &
- uns1t1 = -4.0899e-3, &
- uns1t2 = 7.6438e-5, &
- uns1t3 = -8.2467e-7, &
- uns1t4 = 5.3875e-9, &
- unsqt0 = -5.72466e-3, &
- unsqt1 = 1.0227e-4, &
- unsqt2 = -1.6546e-6, &
- uns2t0 = 4.8314e-4
-
- !*** from Table A1 of Jackett and McDougall
-
- real (kind=RKIND), parameter :: &
- bup0s0t0 = 1.965933e+4, &
- bup0s0t1 = 1.444304e+2, &
- bup0s0t2 = -1.706103 , &
- bup0s0t3 = 9.648704e-3, &
- bup0s0t4 = -4.190253e-5
-
- real (kind=RKIND), parameter :: &
- bup0s1t0 = 5.284855e+1, &
- bup0s1t1 = -3.101089e-1, &
- bup0s1t2 = 6.283263e-3, &
- bup0s1t3 = -5.084188e-5
-
- real (kind=RKIND), parameter :: &
- bup0sqt0 = 3.886640e-1, &
- bup0sqt1 = 9.085835e-3, &
- bup0sqt2 = -4.619924e-4
-
- real (kind=RKIND), parameter :: &
- bup1s0t0 = 3.186519 , &
- bup1s0t1 = 2.212276e-2, &
- bup1s0t2 = -2.984642e-4, &
- bup1s0t3 = 1.956415e-6
-
- real (kind=RKIND), parameter :: &
- bup1s1t0 = 6.704388e-3, &
- bup1s1t1 = -1.847318e-4, &
- bup1s1t2 = 2.059331e-7, &
- bup1sqt0 = 1.480266e-4
-
- real (kind=RKIND), parameter :: &
- bup2s0t0 = 2.102898e-4, &
- bup2s0t1 = -1.202016e-5, &
- bup2s0t2 = 1.394680e-7, &
- bup2s1t0 = -2.040237e-6, &
- bup2s1t1 = 6.128773e-8, &
- bup2s1t2 = 6.207323e-10
-
- integer :: k_test, k_ref
-
- call timer_start("ocn_equation_of_state_jm")
-
- nCells = grid % nCells
- maxLevelCell => grid % maxLevelCell % array
- nVertLevels = grid % nVertLevels
- zMidZLevel => grid % zMidZLevel % array
-
-
-! Jackett and McDougall
- tmin = -2.0 ! valid pot. temp. range
- tmax = 40.0
- smin = 0.0 ! valid salinity, in psu
- smax = 42.0
-
- ! This could be put in a startup routine.
- ! Note I am using zMidZlevel, so pressure on top level does
- ! not include SSH contribution. I am not sure if that matters.
-
-! This function computes pressure in bars from depth in meters
-! using a mean density derived from depth-dependent global
-! average temperatures and salinities from Levitus 1994, and
-! integrating using hydrostatic balance.
-
- allocate(pRefEOS(nVertLevels),p(nVertLevels),p2(nVertLevels))
- do k = 1,nVertLevels
- depth = -zMidZLevel(k)
- pRefEOS(k) = 0.059808*(exp(-0.025*depth) - 1.0) &
- + 0.100766*depth + 2.28405e-7*depth**2
- enddo
-
- ! If k_displaced=0, in-situ density is returned (no displacement)
- ! If k_displaced/=0, potential density is returned
-
- ! if displacement_type = 'relative', potential density is calculated
- ! referenced to level k + k_displaced
- ! if displacement_type = 'absolute', potential density is calculated
- ! referenced to level k_displaced for all k
- ! NOTE: k_displaced = 0 or > nVertLevels is incompatible with 'absolute'
- ! so abort if necessary
-
- if (displacement_type == 'absolute' .and. &
- (k_displaced <= 0 .or. k_displaced > nVertLevels) ) then
- write(0,*) 'Abort: In ocn_equation_of_state_jm', &
- ' k_displaced must be between 1 and nVertLevels for ', &
- 'displacement_type = absolute'
- call dmpar_abort(dminfo)
- endif
-
- if (k_displaced == 0) then
- do k=1,nVertLevels
- p(k) = pRefEOS(k)
- p2(k) = p(k)*p(k)
- enddo
- else ! k_displaced /= 0
- do k=1,nVertLevels
- if (displacement_type == 'relative') then
- k_test = min(k + k_displaced, nVertLevels)
- k_ref = max(k_test, 1)
- else
- k_test = min(k_displaced, nVertLevels)
- k_ref = max(k_test, 1)
- endif
- p(k) = pRefEOS(k_ref)
- p2(k) = p(k)*p(k)
- enddo
- endif
-
- do iCell=1,nCells
- do k=1,maxLevelCell(iCell)
-
- SQ = max(min(tracers(indexS,k,iCell),smax),smin)
- TQ = max(min(tracers(indexT,k,iCell),tmax),tmin)
-
- SQR = sqrt(SQ)
- T2 = TQ*TQ
-
- !***
- !*** first calculate surface (p=0) values from UNESCO eqns.
- !***
-
- WORK1 = uns1t0 + uns1t1*TQ + &
- (uns1t2 + uns1t3*TQ + uns1t4*T2)*T2
- WORK2 = SQR*(unsqt0 + unsqt1*TQ + unsqt2*T2)
-
- RHO_S = unt1*TQ + (unt2 + unt3*TQ + (unt4 + unt5*TQ)*T2)*T2 &
- + (uns2t0*SQ + WORK1 + WORK2)*SQ
-
- !***
- !*** now calculate bulk modulus at pressure p from
- !*** Jackett and McDougall formula
- !***
-
- WORK3 = bup0s1t0 + bup0s1t1*TQ + &
- (bup0s1t2 + bup0s1t3*TQ)*T2 + &
- p(k) *(bup1s1t0 + bup1s1t1*TQ + bup1s1t2*T2) + &
- p2(k)*(bup2s1t0 + bup2s1t1*TQ + bup2s1t2*T2)
- WORK4 = SQR*(bup0sqt0 + bup0sqt1*TQ + bup0sqt2*T2 + &
- bup1sqt0*p(k))
-
- BULK_MOD = bup0s0t0 + bup0s0t1*TQ + &
- (bup0s0t2 + bup0s0t3*TQ + bup0s0t4*T2)*T2 + &
- p(k) *(bup1s0t0 + bup1s0t1*TQ + &
- (bup1s0t2 + bup1s0t3*TQ)*T2) + &
- p2(k)*(bup2s0t0 + bup2s0t1*TQ + bup2s0t2*T2) + &
- SQ*(WORK3 + WORK4)
-
- DENOMK = 1.0/(BULK_MOD - p(k))
-
- rho(k,iCell) = (unt0 + RHO_S)*BULK_MOD*DENOMK
-
- end do
- end do
-
- deallocate(pRefEOS,p,p2)
-
- call timer_stop("ocn_equation_of_state_jm")
-
- end subroutine ocn_equation_of_state_jm_rho!}}}
-
!***********************************************************************
end module ocn_equation_of_state
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -60,7 +60,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)!{{{
+ subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho, err)!{{{
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! This module contains routines necessary for computing the density
! from model temperature and salinity using an equation of state.
@@ -87,6 +87,7 @@
type (mesh_type), intent(in) :: grid
integer :: k_displaced, indexT, indexS
character(len=8), intent(in) :: displacement_type
+ integer, intent(out) :: err
type (dm_info) :: dminfo
integer :: iEdge, iCell, iVertex, k
@@ -191,6 +192,8 @@
integer :: k_test, k_ref
+ err = 0
+
call timer_start("equation_of_state_jm")
nCells = grid % nCells
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -60,7 +60,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)!{{{
+ subroutine ocn_equation_of_state_linear_rho(grid, indexT, indexS, tracers, rho, err)!{{{
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! This module contains routines necessary for computing the density
! from model temperature and salinity using an equation of state.
@@ -77,34 +77,33 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
implicit none
- type (state_type), intent(inout) :: s
type (mesh_type), intent(in) :: grid
- integer :: k_displaced
- character(len=8), intent(in) :: displacement_type
+ real (kind=RKIND), dimension(:,:), intent(inout) :: rho
+ real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
+ integer, intent(in) :: indexT, indexS
+ integer, intent(out) :: err
integer, dimension(:), pointer :: maxLevelCell
- real (kind=RKIND), dimension(:,:), pointer :: rho
- real (kind=RKIND), dimension(:,:,:), pointer :: tracers
integer :: nCells, iCell, k
type (dm_info) :: dminfo
- call timer_start("equation_of_state_linear")
+ call timer_start("ocn_equation_of_state_linear")
- rho => s % rho % array
- tracers => s % tracers % array
maxLevelCell => grid % maxLevelCell % array
nCells = grid % nCells
+ err = 0
+
do iCell=1,nCells
do k=1,maxLevelCell(iCell)
! Linear equation of state
rho(k,iCell) = 1000.0*( 1.0 &
- - 2.5e-4*tracers(s % index_temperature,k,iCell) &
- + 7.6e-4*tracers(s % index_salinity,k,iCell))
+ - 2.5e-4*tracers(indexT,k,iCell) &
+ + 7.6e-4*tracers(indexS,k,iCell))
end do
end do
- call timer_stop("equation_of_state_linear")
+ call timer_stop("ocn_equation_of_state_linear")
end subroutine ocn_equation_of_state_linear_rho!}}}
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -52,6 +52,23 @@
integer :: err
+ ! Initialize submodules before initializing blocks.
+ call ocn_timestep_init(err)
+
+ call ocn_vel_pressure_grad_init(err)
+ call ocn_vel_vadv_init(err)
+ call ocn_vel_hmix_init(err)
+ call ocn_vel_forcing_init(err)
+
+ call ocn_tracer_hadv_init(err)
+ call ocn_tracer_vadv_init(err)
+ call ocn_tracer_hmix_init(err)
+ call ocn_restoring_init(err)
+
+ call ocn_vmix_init(err)
+
+ call ocn_equation_of_state_init(err)
+
if (.not. config_do_restart) call setup_sw_test_case(domain)
call compute_maxLevel(domain)
@@ -74,7 +91,6 @@
call dmpar_abort(dminfo)
endif
-
!
! Initialize core
!
@@ -92,22 +108,6 @@
! temperature and salinity tracers from state.
end do
- call ocn_timestep_init(err)
-
- call ocn_vel_pressure_grad_init(err)
- call ocn_vel_vadv_init(err)
- call ocn_vel_hmix_init(err)
- call ocn_vel_forcing_init(err)
-
- call ocn_tracer_hadv_init(err)
- call ocn_tracer_vadv_init(err)
- call ocn_tracer_hmix_init(err)
- call ocn_restoring_init(err)
-
- call ocn_vmix_init(err)
-
- call ocn_equation_of_state_init(err)
-
! mrp 100316 In order for this to work, we need to pass domain % dminfo as an
! input arguement into mpas_init. Ask about that later. For now, there will be
! no initial statistics write.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -42,9 +42,9 @@
!
!--------------------------------------------------------------------
- logical :: restoringOn
+ logical :: restoringOn !< Flag to turn on/off resotring
- real (kind=RKIND) :: temperatureTimeScale, salinityTimeScale
+ real (kind=RKIND) :: temperatureTimeScale, salinityTimeScale !< restoring timescales
!***********************************************************************
@@ -82,7 +82,8 @@
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracer quantities
- integer, intent(in) :: indexT, indexS
+ integer, intent(in) :: indexT !< Input: index for temperature
+ integer, intent(in) :: indexS !< Input: index for salinity
!-----------------------------------------------------------------
!
@@ -99,7 +100,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
!-----------------------------------------------------------------
!
@@ -111,14 +112,6 @@
real (kind=RKIND), dimension(:), pointer :: temperatureRestore, salinityRestore
- !-----------------------------------------------------------------
- !
- ! call relevant routines for computing tendencies
- ! note that the user can choose multiple options and the
- ! tendencies will be added together
- !
- !-----------------------------------------------------------------
-
err = 0
if(.not.restoringOn) return
@@ -154,31 +147,20 @@
!
! routine ocn_restoring_init
!
-!> \brief Initializes ocean tracer horizontal mixing quantities
+!> \brief Initializes ocean tracer restoring
!> \author Doug Jacobsen
!> \date 19 September 2011
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> horizontal velocity mixing in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> restoring in the ocean.
!
!-----------------------------------------------------------------------
-
subroutine ocn_restoring_init(err)!{{{
- !--------------------------------------------------------------------
+ integer, intent(out) :: err !< Output: error flag
- !-----------------------------------------------------------------
- !
- ! call individual init routines for each parameterization
- !
- !-----------------------------------------------------------------
-
- integer, intent(out) :: err
-
err = 0
restoringOn = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -610,7 +610,7 @@
integer :: iEdge, iCell, iVertex, k, cell1, cell2, vertex1, vertex2, eoe, i, j, cov
real (kind=RKIND) :: flux, vorticity_abs, h_vertex, workpv, rho0Inv
- integer :: nCells, nEdges, nVertices, nVertLevels, vertexDegree, fCoef
+ integer :: nCells, nEdges, nVertices, nVertLevels, vertexDegree, fCoef, err
real (kind=RKIND), dimension(:), pointer :: &
@@ -1008,9 +1008,9 @@
! For an isopycnal model, density should remain constant.
! For zlevel, calculate in-situ density
if (config_vert_grid_type.eq.'zlevel') then
- call ocn_equation_of_state_rho(s, grid, 0, 'relative')
+ call ocn_equation_of_state_rho(s, grid, 0, 'relative', err)
! mrp 110324 In order to visualize rhoDisplaced, include the following
- call ocn_equation_of_state_rho(s, grid, 1, 'relative')
+ call ocn_equation_of_state_rho(s, grid, 1, 'relative', err)
endif
!
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -93,7 +93,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -172,15 +172,13 @@
!
! routine ocn_thick_hadv_init
!
-!> \brief Initializes ocean forcings
+!> \brief Initializes ocean horizontal thickness advection
!> \author Doug Jacobsen
!> \date 16 September 2011
!> \version SVN:$Id$
!> \details
-!> This routine initializes quantities related to forcings
-!> in the ocean. Since a multiple forcings are available,
-!> this routine primarily calls the
-!> individual init routines for each forcing.
+!> This routine initializes quantities related to horizontal thickness
+!> advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -194,7 +192,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -90,7 +90,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
!-----------------------------------------------------------------
!
@@ -127,15 +127,13 @@
!
! routine ocn_thick_vadv_init
!
-!> \brief Initializes ocean forcings
+!> \brief Initializes ocean thickness vertical advection
!> \author Doug Jacobsen
!> \date 16 September 2011
!> \version SVN:$Id$
!> \details
-!> This routine initializes quantities related to forcings
-!> in the ocean. Since a multiple forcings are available,
-!> this routine primarily calls the
-!> individual init routines for each forcing.
+!> This routine initializes quantities related to vertical advection of
+!> thickness in the ocean.
!
!-----------------------------------------------------------------------
@@ -149,7 +147,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -104,7 +104,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
!-----------------------------------------------------------------
!
@@ -158,7 +158,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
integer :: err1, err2, err3
@@ -177,3 +177,4 @@
end module ocn_tracer_hadv
!|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+! vim: foldmetho=marker
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,7 +43,7 @@
!
!--------------------------------------------------------------------
- logical :: hadv2On
+ logical :: hadv2On !< Flag to turn on/off 2nd order hadv
!***********************************************************************
@@ -53,17 +53,13 @@
!
! routine ocn_tracer_hadv2_tend
!
-!> \brief Computes tendency term for horizontal tracer advection
+!> \brief Computes tendency term for horizontal tracer advection 2nd order
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the horizontal advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 2nd order formulation.
!
!-----------------------------------------------------------------------
@@ -76,7 +72,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- u !< Input: velocity
+ u !< Input: tracer
real (kind=RKIND), dimension(:,:), intent(in) :: &
h_edge !< Input: thickness at edge
@@ -94,7 +90,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -102,7 +98,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
!-----------------------------------------------------------------
!
@@ -168,9 +164,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> horizontal velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 2nd order horizontal tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -184,7 +178,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
err = 0
hadv2On = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,8 +43,8 @@
!
!--------------------------------------------------------------------
- logical :: hadv3On
- real (kind=RKIND) :: coef_3rd_order
+ logical :: hadv3On !< Flag to turn on/off 3rd order hadv
+ real (kind=RKIND) :: coef_3rd_order !< Coefficient for 3rd order hadv
!***********************************************************************
@@ -54,17 +54,13 @@
!
! routine ocn_tracer_hadv3_tend
!
-!> \brief Computes tendency term for horizontal tracer advection
+!> \brief Computes tendency term for horizontal tracer advection 3rd order
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the horizontal advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 3rd order formulation.
!
!-----------------------------------------------------------------------
@@ -77,7 +73,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- u !< Input: velocity
+ u !< Input: tracer
real (kind=RKIND), dimension(:,:), intent(in) :: &
h_edge !< Input: thickness at edge
@@ -95,7 +91,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -103,7 +99,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -214,9 +210,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> horizontal velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 3rd order horizontal tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -230,7 +224,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
hadv3On = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,7 +43,7 @@
!
!--------------------------------------------------------------------
- logical :: hadv4On
+ logical :: hadv4On !< Flag to turning on/off 4th order hadv
!***********************************************************************
@@ -53,17 +53,13 @@
!
! routine ocn_tracer_hadv4_tend
!
-!> \brief Computes tendency term for horizontal tracer advection
+!> \brief Computes tendency term for horizontal tracer advection 4th order
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the horizontal advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 4th order formulation.
!
!-----------------------------------------------------------------------
@@ -76,7 +72,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- u !< Input: velocity
+ u !< Input: tracer
real (kind=RKIND), dimension(:,:), intent(in) :: &
h_edge !< Input: thickness at edge
@@ -94,7 +90,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -102,7 +98,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -201,10 +197,8 @@
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
-!> This routine initializes a variety of quantities related to
-!> horizontal velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> This routine initializes the 4th order formulation for
+!> horizontal tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -218,7 +212,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: Error flag
err = 0
hadv4On = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -101,7 +101,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -154,7 +154,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -100,7 +100,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -209,7 +209,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -100,7 +100,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -241,7 +241,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Del4on = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -79,7 +79,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -94,7 +94,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -102,7 +102,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -143,7 +143,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
+!> vertical tracer advection in the ocean. Since a variety of
!> parameterizations are available, this routine primarily calls the
!> individual init routines for each parameterization.
!
@@ -159,7 +159,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -79,7 +79,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -94,7 +94,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -102,7 +102,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -143,7 +143,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
+!> vertical tracer advection in the ocean. Since a variety of
!> parameterizations are available, this routine primarily calls the
!> individual init routines for each parameterization.
!
@@ -159,7 +159,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
!
! routine ocn_tracer_vadv_spline2_tend
!
-!> \brief Computes tendency term for vertical tracer advection
+!> \brief Computes tendency term for vertical tracer advection 2nd order spline
!> \author Doug Jacobsen
!> \date 16 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 2nd order spline.
!
!-----------------------------------------------------------------------
@@ -77,7 +73,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -92,7 +88,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -100,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -181,9 +177,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 2nd order spline based vertical tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -197,7 +191,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -55,17 +55,13 @@
!
! routine ocn_tracer_vadv_spline3_tend
!
-!> \brief Computes tendency term for vertical tracer advection
+!> \brief Computes tendency term for vertical tracer advection 3rd order spline
!> \author Doug Jacobsen
!> \date 16 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 3rd order spline.
!
!-----------------------------------------------------------------------
@@ -78,7 +74,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -93,7 +89,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -101,7 +97,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -210,9 +206,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 3rd order spline based vertical tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -226,7 +220,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -62,8 +62,8 @@
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
-!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
+!> This routine computes the vertical advection tendency for tracers
+!> based on current state and user choices of stencil based advection parameterization.
!> Multiple parameterizations may be chosen and added together. These
!> tendencies are generally computed by calling the specific routine
!> for the chosen parameterization, so this routine is primarily a
@@ -80,7 +80,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -95,7 +95,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -103,7 +103,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -145,7 +145,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
+!> stencil based vertical tracer advection in the ocean. Since a variety of
!> parameterizations are available, this routine primarily calls the
!> individual init routines for each parameterization.
!
@@ -161,7 +161,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2, err3
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
!
! routine ocn_tracer_vadv_stencil2_tend
!
-!> \brief Computes tendency term for vertical tracer advection
+!> \brief Computes tendency term for vertical tracer advection 2nd order stencil
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 2nd order stencil.
!
!-----------------------------------------------------------------------
@@ -77,7 +73,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -92,7 +88,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -100,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -178,9 +174,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> a 2nd order stencil based vertical tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -194,7 +188,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2, err3
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
!
! routine ocn_tracer_vadv_stencil3_tend
!
-!> \brief Computes tendency term for vertical tracer advection
+!> \brief Computes tendency term for vertical tracer advection 3rd order stencil
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 3rd order stencil.
!
!-----------------------------------------------------------------------
@@ -77,7 +73,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -92,7 +88,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -100,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -201,9 +197,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 3rd order stencil based vertical tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -217,7 +211,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
stencil3On = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
!
! routine ocn_tracer_vadv_stencil4_tend
!
-!> \brief Computes tendency term for vertical tracer advection
+!> \brief Computes tendency term for vertical tracer advection 4th order stencil
!> \author Phil Jones, Doug Jacobsen
!> \date 15 September 2011
!> \version SVN:$Id$
!> \details
!> This routine computes the vertical advection tendency for tracer
-!> based on current state and user choices of advection parameterization.
-!> Multiple parameterizations may be chosen and added together. These
-!> tendencies are generally computed by calling the specific routine
-!> for the chosen parameterization, so this routine is primarily a
-!> driver for managing these choices.
+!> based on current state using a 4th order stencil.
!
!-----------------------------------------------------------------------
@@ -77,7 +73,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- wTop !< Input: vertical velocity in top layer
+ wTop !< Input: vertical tracer in top layer
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracers
@@ -92,7 +88,7 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:,:), intent(inout) :: &
- tend !< Input/Output: velocity tendency
+ tend !< Input/Output: tracer tendency
!-----------------------------------------------------------------
!
@@ -100,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -196,9 +192,7 @@
!> \version SVN:$Id$
!> \details
!> This routine initializes a variety of quantities related to
-!> vertical velocity advection in the ocean. Since a variety of
-!> parameterizations are available, this routine primarily calls the
-!> individual init routines for each parameterization.
+!> 4th order stencil based vertical tracer advection in the ocean.
!
!-----------------------------------------------------------------------
@@ -212,7 +206,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
stencil4On = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -71,7 +71,13 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- pv_edge, h_edge, u, ke
+ pv_edge !< Input: Potential vorticity on edge
+ real (kind=RKIND), dimension(:,:), intent(in) :: &
+ h_edge !< Input: Thickness on edge
+ real (kind=RKIND), dimension(:,:), intent(in) :: &
+ u !< Input: Horizontal velocity
+ real (kind=RKIND), dimension(:,:), intent(in) :: &
+ ke !< Input: Kinetic Energy
type (mesh_type), intent(in) :: &
grid !< Input: grid information
@@ -169,7 +175,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -106,7 +106,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -159,7 +159,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -99,7 +99,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -177,7 +177,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -96,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -169,7 +169,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
windStressOn = .true.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -101,7 +101,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -154,7 +154,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -64,11 +64,11 @@
!> \version SVN:$Id$
!> \details
!> This routine computes the horizontal mixing tendency for momentum
-!> based on a Laplacian form for the mixing, </font>
<font color="black">u_2 </font>
<font color="blue">abla^2 u
+!> based on a Laplacian form for the mixing, \f$</font>
<font color="black">u_2 </font>
<font color="red">abla^2 u\f$
!> This tendency takes the
-!> form </font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="red">abla vorticity ),
-!> where </font>
<font color="red">u is a viscosity and k is the vertical unit vector.
-!> This form is strictly only valid for constant </font>
<font color="blue">u .
+!> form \f$</font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="blue">abla vorticity )\f$,
+!> where \f$</font>
<font color="blue">u\f$ is a viscosity and \f$k\f$ is the vertical unit vector.
+!> This form is strictly only valid for constant \f$</font>
<font color="gray">u\f$ .
!
!-----------------------------------------------------------------------
@@ -105,7 +105,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -188,7 +188,7 @@
subroutine ocn_vel_hmix_del2_init(err)!{{{
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!--------------------------------------------------------------------
!
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -66,11 +66,11 @@
!> \details
!> This routine computes the horizontal mixing tendency for momentum
!> based on a biharmonic form for the mixing. This mixing tendency
-!> takes the form -</font>
<font color="black">u_4 </font>
<font color="blue">abla^4 u
+!> takes the form \f$-</font>
<font color="black">u_4 </font>
<font color="red">abla^4 u\f$
!> but is computed as
-!> </font>
<font color="black">abla^2 u = </font>
<font color="black">abla divergence + k \times </font>
<font color="blue">abla vorticity
+!> \f$</font>
<font color="black">abla^2 u = </font>
<font color="black">abla divergence + k \times </font>
<font color="red">abla vorticity\f$
!> applied recursively.
-!> This formulation is only valid for constant </font>
<font color="blue">u_4 .
+!> This formulation is only valid for constant \f$</font>
<font color="gray">u_4\f$ .
!
!-----------------------------------------------------------------------
@@ -106,7 +106,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -265,7 +265,7 @@
subroutine ocn_vel_hmix_del4_init(err)!{{{
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!--------------------------------------------------------------------
!
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -73,7 +73,9 @@
!-----------------------------------------------------------------
real (kind=RKIND), dimension(:,:), intent(in) :: &
- u, wTop
+ u !< Input: Horizontal velocity
+ real (kind=RKIND), dimension(:,:), intent(in) :: &
+ wTop !< Input: Vertical velocity on top layer
type (mesh_type), intent(in) :: &
grid !< Input: grid information
@@ -172,7 +174,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
velVadvOn = .false.
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -104,7 +104,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -181,7 +181,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -285,7 +285,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -400,7 +400,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -510,7 +510,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -591,7 +591,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
integer :: err1, err2, err3
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -99,7 +99,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -171,9 +171,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !< Output: vertical viscosity
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -227,9 +227,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !< Output: Vertical diffusion
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -275,7 +275,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -96,7 +96,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -139,8 +139,8 @@
rhoDisplaced => s % rhoDisplaced % array
tracers => s % tracers % array
- call ocn_equation_of_state_rho(s, grid, 0, 'relative')
- call ocn_equation_of_state_rho(s, grid, 1, 'relative')
+ call ocn_equation_of_state_rho(s, grid, 0, 'relative', err)
+ call ocn_equation_of_state_rho(s, grid, 1, 'relative', err)
call ocn_vmix_get_rich_numbers(grid, indexT, indexS, u, h, h_edge, &
rho, rhoDisplaced, tracers, RiTopOfEdge, RiTopOfCell, err1)
@@ -196,9 +196,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !< Output: vertical viscosity
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -300,9 +300,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !< Output: vertical diffusions
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -393,11 +393,14 @@
type (mesh_type), intent(in) :: &
grid !< Input: grid information
- integer, intent(in) :: indexT, indexS
+ integer, intent(in) :: indexT !< Input: index for temperature
+ integer, intent(in) :: indexS !< Input: index for salinity
- real (kind=RKIND), dimension(:,:), intent(in) :: u, h, h_edge
+ real (kind=RKIND), dimension(:,:), intent(in) :: u !< Input: horizontal velocity
+ real (kind=RKIND), dimension(:,:), intent(in) :: h !< Input: thickness
+ real (kind=RKIND), dimension(:,:), intent(in) :: h_edge !< Input: thickness at edge
- real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
+ real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers !< Input: tracers
!-----------------------------------------------------------------
!
@@ -411,10 +414,12 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(inout) :: rho, rhoDisplaced, &
- RiTopOfEdge, RiTopOfCell
+ real (kind=RKIND), dimension(:,:), intent(inout) :: rho !< Input/output: density
+ real (kind=RKIND), dimension(:,:), intent(inout) :: rhoDisplaced !< Input/output: displaced density
+ real (kind=RKIND), dimension(:,:), intent(inout) :: RiTopOfEdge !< Input/output: Richardson number top of cell
+ real (kind=RKIND), dimension(:,:), intent(inout) :: RiTopOfCell !< Input/output: Richardson number top of cell
- integer, intent(inout) :: err
+ integer, intent(inout) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -567,7 +572,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -93,7 +93,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -165,9 +165,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !< Output: Vertical viscosity
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -234,9 +234,9 @@
!
!-----------------------------------------------------------------
- real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+ real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !< Output: Vertical diffusion
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
!-----------------------------------------------------------------
!
@@ -293,7 +293,7 @@
!
!-----------------------------------------------------------------
- integer, intent(out) :: err
+ integer, intent(out) :: err !< Output: error flag
err = 0
</font>
</pre>