diff --git a/src/ALE/coord_adapt.F90 b/src/ALE/coord_adapt.F90 index 9a18b836ae..98bbeb7b10 100644 --- a/src/ALE/coord_adapt.F90 +++ b/src/ALE/coord_adapt.F90 @@ -123,8 +123,8 @@ subroutine build_adapt_column(CS, G, GV, tv, i, j, zInt, tInt, sInt, h, zNext) integer, intent(in) :: i !< The i-index of the column to work on integer, intent(in) :: j !< The j-index of the column to work on real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: zInt !< Interface heights [H ~> m or kg m-2]. - real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: tInt !< Interface temperatures, in C - real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: sInt !< Interface salinities, in psu + real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: tInt !< Interface temperatures [degC] + real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: sInt !< Interface salinities [ppt] real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(in) :: h !< Layer thicknesses [H ~> m or kg m-2] real, dimension(SZK_(GV)+1), intent(inout) :: zNext !< updated interface positions diff --git a/src/ALE/coord_rho.F90 b/src/ALE/coord_rho.F90 index 16c05943aa..b98844505f 100644 --- a/src/ALE/coord_rho.F90 +++ b/src/ALE/coord_rho.F90 @@ -16,10 +16,10 @@ module coord_rho !> Number of layers integer :: nk - !> Minimum thickness allowed for layers, in m + !> Minimum thickness allowed for layers, often in [H ~> m or kg m-2] real :: min_thickness = 0. - !> Reference pressure for density calculations, in Pa + !> Reference pressure for density calculations [Pa] real :: ref_pressure !> If true, integrate for interface positions from the top downward. @@ -73,7 +73,7 @@ end subroutine end_coord_rho !> This subroutine can be used to set the parameters for the coord_rho module subroutine set_rho_params(CS, min_thickness, integrate_downward_for_e, interp_CS) type(rho_CS), pointer :: CS !< Coordinate control structure - real, optional, intent(in) :: min_thickness !< Minimum allowed thickness, in m + real, optional, intent(in) :: min_thickness !< Minimum allowed thickness [H ~> m or kg m-2] logical, optional, intent(in) :: integrate_downward_for_e !< If true, integrate for interface !! positions from the top downward. If false, integrate !! from the bottom upward, as does the rest of the model. @@ -189,18 +189,18 @@ subroutine build_rho_column_iteratively(CS, remapCS, nz, depth, h, T, S, eqn_of_ type(rho_CS), intent(in) :: CS !< Regridding control structure type(remapping_CS), intent(in) :: remapCS !< Remapping parameters and options integer, intent(in) :: nz !< Number of levels - real, intent(in) :: depth !< Depth of ocean bottom (positive in m) - real, dimension(nz), intent(in) :: h !< Layer thicknesses, in m - real, dimension(nz), intent(in) :: T !< T for column - real, dimension(nz), intent(in) :: S !< S for column + real, intent(in) :: depth !< Depth of ocean bottom [Z ~> m] + real, dimension(nz), intent(in) :: h !< Layer thicknesses in Z coordinates [Z ~> m] + real, dimension(nz), intent(in) :: T !< T for column [degC] + real, dimension(nz), intent(in) :: S !< S for column [ppt] type(EOS_type), pointer :: eqn_of_state !< Equation of state structure real, dimension(nz+1), intent(inout) :: zInterface !< Absolute positions of interfaces real, optional, intent(in) :: h_neglect !< A negligibly small width for the !! purpose of cell reconstructions - !! in the same units as h + !! in the same units as h [Z ~> m] real, optional, intent(in) :: h_neglect_edge !< A negligibly small width !! for the purpose of edge value calculations - !! in the same units as h + !! in the same units as h [Z ~> m] ! Local variables integer :: k, m integer :: count_nonzero_layers @@ -349,9 +349,9 @@ end subroutine copy_finite_thicknesses subroutine old_inflate_layers_1d( min_thickness, nk, h ) ! Argument - real, intent(in) :: min_thickness !< Minimum allowed thickness, in m + real, intent(in) :: min_thickness !< Minimum allowed thickness [H ~> m or kg m-2] integer, intent(in) :: nk !< Number of layers in the grid - real, dimension(:), intent(inout) :: h !< Layer thicknesses, in m + real, dimension(:), intent(inout) :: h !< Layer thicknesses [H ~> m or kg m-2] ! Local variable integer :: k diff --git a/src/ALE/coord_zlike.F90 b/src/ALE/coord_zlike.F90 index 98bfa36fae..1f4949431d 100644 --- a/src/ALE/coord_zlike.F90 +++ b/src/ALE/coord_zlike.F90 @@ -13,11 +13,11 @@ module coord_zlike !> Number of levels to be generated integer :: nk - !> Minimum thickness allowed for layers, in the same thickness units that will - !! be used in all subsequent calls to build_zstar_column with this structure. + !> Minimum thickness allowed for layers, in the same thickness units (perhaps [H ~> m or kg m-2]) + !! that will be used in all subsequent calls to build_zstar_column with this structure. real :: min_thickness - !> Target coordinate resolution, usually in Z (often m) + !> Target coordinate resolution, usually in [Z ~> m] real, allocatable, dimension(:) :: coordinateResolution end type zlike_CS @@ -29,7 +29,7 @@ module coord_zlike subroutine init_coord_zlike(CS, nk, coordinateResolution) type(zlike_CS), pointer :: CS !< Unassociated pointer to hold the control structure integer, intent(in) :: nk !< Number of levels in the grid - real, dimension(:), intent(in) :: coordinateResolution !< Target coordinate resolution, in Z (often m) + real, dimension(:), intent(in) :: coordinateResolution !< Target coordinate resolution [Z ~> m] if (associated(CS)) call MOM_error(FATAL, "init_coord_zlike: CS already associated!") allocate(CS) diff --git a/src/core/MOM_PressureForce_analytic_FV.F90 b/src/core/MOM_PressureForce_analytic_FV.F90 index 044aef35a4..97bc80ef7f 100644 --- a/src/core/MOM_PressureForce_analytic_FV.F90 +++ b/src/core/MOM_PressureForce_analytic_FV.F90 @@ -38,7 +38,7 @@ module MOM_PressureForce_AFV real :: Rho0 !< The density used in the Boussinesq !! approximation [kg m-3]. real :: GFS_scale !< A scaling of the surface pressure gradients to - !! allow the use of a reduced gravity model. + !! allow the use of a reduced gravity model [nondim]. type(time_type), pointer :: Time !< A pointer to the ocean model's clock. type(diag_ctrl), pointer :: diag !< A structure that is used to regulate the !! timing of diagnostic output. @@ -103,7 +103,7 @@ subroutine PressureForce_AFV_nonBouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p type(ocean_grid_type), intent(in) :: G !< Ocean grid structure type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type - real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness (kg/m2) + real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness [H ~> kg/m2] type(thermo_var_ptrs), intent(in) :: tv !< Thermodynamic variables real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), intent(out) :: PFu !< Zonal acceleration [m s-2] real, dimension(SZI_(G),SZJB_(G),SZK_(G)), intent(out) :: PFv !< Meridional acceleration [m s-2] @@ -121,17 +121,19 @@ subroutine PressureForce_AFV_nonBouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p real, dimension(SZI_(G),SZJ_(G),SZK_(G)+1) :: p ! Interface pressure in Pa. real, dimension(SZI_(G),SZJ_(G),SZK_(G)), target :: & T_tmp, & ! Temporary array of temperatures where layers that are lighter - ! than the mixed layer have the mixed layer's properties, in C. + ! than the mixed layer have the mixed layer's properties [degC]. S_tmp ! Temporary array of salinities where layers that are lighter ! than the mixed layer have the mixed layer's properties [PSU]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)) :: & - S_t, S_b, T_t, T_b ! Top and bottom edge values for linear reconstructions - ! of salinity and temperature within each layer. + S_t, & ! Top and bottom edge values for linear reconstructions + S_b, & ! of salinity within each layer [ppt]. + T_t, & ! Top and bottom edge values for linear reconstructions + T_b ! of temperature within each layer [degC]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)) :: & dza, & ! The change in geopotential anomaly between the top and bottom ! of a layer [m2 s-2]. intp_dza ! The vertical integral in depth of the pressure anomaly less - ! the pressure anomaly at the top of the layer, in Pa m2 s-2. + ! the pressure anomaly at the top of the layer [Pa m2 s-2]. real, dimension(SZI_(G),SZJ_(G)) :: & dp, & ! The (positive) change in pressure across a layer [Pa]. SSH, & ! The sea surface height anomaly, in depth units [Z ~> m]. @@ -146,16 +148,16 @@ subroutine PressureForce_AFV_nonBouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p ! density near-surface layer [kg m-3]. real, dimension(SZIB_(G),SZJ_(G)) :: & intx_za ! The zonal integral of the geopotential anomaly along the - ! interface below a layer, divided by the grid spacing, m2 s-2. + ! interface below a layer, divided by the grid spacing [m2 s-2]. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)) :: & intx_dza ! The change in intx_za through a layer [m2 s-2]. real, dimension(SZI_(G),SZJB_(G)) :: & inty_za ! The meridional integral of the geopotential anomaly along the - ! interface below a layer, divided by the grid spacing, m2 s-2. + ! interface below a layer, divided by the grid spacing [m2 s-2]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)) :: & inty_dza ! The change in inty_za through a layer [m2 s-2]. real :: p_ref(SZI_(G)) ! The pressure used to calculate the coordinate - ! density, in Pa (usually 2e7 Pa = 2000 dbar). + ! density, [Pa] (usually 2e7 Pa = 2000 dbar). real :: dp_neglect ! A thickness that is so small it is usually lost ! in roundoff and can be neglected [Pa]. @@ -444,14 +446,14 @@ subroutine PressureForce_AFV_Bouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_at type(ocean_grid_type), intent(in) :: G !< Ocean grid structure type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type - real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness (kg/m2) + real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness [H ~> m] type(thermo_var_ptrs), intent(in) :: tv !< Thermodynamic variables real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), intent(out) :: PFu !< Zonal acceleration [m s-2] real, dimension(SZI_(G),SZJB_(G),SZK_(G)), intent(out) :: PFv !< Meridional acceleration [m s-2] type(PressureForce_AFV_CS), pointer :: CS !< Finite volume PGF control structure type(ALE_CS), pointer :: ALE_CSp !< ALE control structure real, dimension(:,:), optional, pointer :: p_atm !< The pressure at the ice-ocean - !! or atmosphere-ocean interface in Pa. + !! or atmosphere-ocean interface [Pa]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)), optional, intent(out) :: pbce !< The baroclinic pressure !! anomaly in each layer due to eta anomalies !! [m2 s-2 H-1 ~> m s-2 or m4 s-2 kg-1]. @@ -469,7 +471,7 @@ subroutine PressureForce_AFV_Bouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_at Rho_cv_BL ! The coordinate potential density in the deepest variable ! density near-surface layer [kg m-3]. real, dimension(SZI_(G),SZJ_(G)) :: & - dz, & ! The change in geopotential thickness through a layer, m2 s-2. + dz, & ! The change in geopotential thickness through a layer [m2 s-2]. pa, & ! The pressure anomaly (i.e. pressure + g*RHO_0*e) at the ! the interface atop a layer [Pa]. dpa, & ! The change in pressure anomaly between the top and bottom @@ -487,7 +489,7 @@ subroutine PressureForce_AFV_Bouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_at real, dimension(SZI_(G),SZJ_(G),SZK_(G)), target :: & T_tmp, & ! Temporary array of temperatures where layers that are lighter - ! than the mixed layer have the mixed layer's properties, in C. + ! than the mixed layer have the mixed layer's properties [degC]. S_tmp ! Temporary array of salinities where layers that are lighter ! than the mixed layer have the mixed layer's properties [PSU]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)) :: & @@ -495,13 +497,13 @@ subroutine PressureForce_AFV_Bouss(h, tv, PFu, PFv, G, GV, US, CS, ALE_CSp, p_at ! of salinity and temperature within each layer. real :: rho_in_situ(SZI_(G)) ! The in situ density [kg m-3]. real :: p_ref(SZI_(G)) ! The pressure used to calculate the coordinate - ! density, in Pa (usually 2e7 Pa = 2000 dbar). - real :: p0(SZI_(G)) ! An array of zeros to use for pressure in Pa. + ! density, [Pa] (usually 2e7 Pa = 2000 dbar). + real :: p0(SZI_(G)) ! An array of zeros to use for pressure [Pa]. real :: h_neglect ! A thickness that is so small it is usually lost - ! in roundoff and can be neglected, in m. + ! in roundoff and can be neglected [H ~> m]. real :: g_Earth_z ! A scaled version of g_Earth [m2 Z-1 s-2 ~> m s-2]. real :: I_Rho0 ! 1/Rho0 [m3 kg-1]. - real :: G_Rho0 ! G_Earth / Rho0 in m5 Z-1 s-2 kg-1. + real :: G_Rho0 ! G_Earth / Rho0 in [m5 Z-1 s-2 kg-1 ~> m4 s-2 kg-1]. real :: Rho_ref ! The reference density [kg m-3]. real :: dz_neglect ! A minimal thickness [Z ~> m], like e. logical :: use_p_atm ! If true, use the atmospheric pressure. diff --git a/src/core/MOM_barotropic.F90 b/src/core/MOM_barotropic.F90 index 9f83205fc6..889cce741d 100644 --- a/src/core/MOM_barotropic.F90 +++ b/src/core/MOM_barotropic.F90 @@ -566,7 +566,7 @@ subroutine btstep(U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, forces, pbce, dyn_coef_eta, & ! The coefficient relating the changes in eta to the ! dynamic surface pressure under rigid ice ! [m2 s-2 H-1 ~> m s-2 or m4 s-2 kg-1]. - p_surf_dyn ! A dynamic surface pressure under rigid ice, in m2 s-2. + p_surf_dyn ! A dynamic surface pressure under rigid ice [m2 s-2]. type(local_BT_cont_u_type), dimension(SZIBW_(CS),SZJW_(CS)) :: & BTCL_u ! A repackaged version of the u-point information in BT_cont. type(local_BT_cont_v_type), dimension(SZIW_(CS),SZJBW_(CS)) :: & diff --git a/src/core/MOM_continuity.F90 b/src/core/MOM_continuity.F90 index 66ec869e0c..931370a7d0 100644 --- a/src/core/MOM_continuity.F90 +++ b/src/core/MOM_continuity.F90 @@ -44,9 +44,9 @@ subroutine continuity(u, v, hin, h, uh, vh, dt, G, GV, CS, uhbt, vhbt, OBC, & type(ocean_grid_type), intent(inout) :: G !< Ocean grid structure. type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), & - intent(in) :: u !< Zonal velocity, in m/s. + intent(in) :: u !< Zonal velocity [m s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)), & - intent(in) :: v !< Meridional velocity, in m/s. + intent(in) :: v !< Meridional velocity [m s-1]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)), & intent(in) :: hin !< Initial layer thickness [H ~> m or kg m-2]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)), & @@ -79,10 +79,10 @@ subroutine continuity(u, v, hin, h, uh, vh, dt, G, GV, CS, uhbt, vhbt, OBC, & !! Non-dimensional between 0 (at the bottom) and 1 (far above the bottom). real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), & optional, intent(out) :: u_cor !< The zonal velocities that - !! give uhbt as the depth-integrated transport, in m/s. + !! give uhbt as the depth-integrated transport [m s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)), & optional, intent(out) :: v_cor !< The meridional velocities that - !! give vhbt as the depth-integrated transport, in m/s. + !! give vhbt as the depth-integrated transport [m s-1]. real, dimension(SZIB_(G),SZJ_(G)), & optional, intent(in) :: uhbt_aux !< A second summed zonal !! volume flux in m3/s. @@ -91,10 +91,10 @@ subroutine continuity(u, v, hin, h, uh, vh, dt, G, GV, CS, uhbt, vhbt, OBC, & !! volume flux in m3/s. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), & optional, intent(inout) :: u_cor_aux !< The zonal velocities - !! that give uhbt_aux as the depth-integrated transport, in m/s. + !! that give uhbt_aux as the depth-integrated transport [m s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)), & optional, intent(inout) :: v_cor_aux !< The meridional velocities - !! that give vhbt_aux as the depth-integrated transport, in m/s. + !! that give vhbt_aux as the depth-integrated transport [m s-1]. type(BT_cont_type), & optional, pointer :: BT_cont !< A structure with elements !! that describe the effective open face areas as a function of barotropic flow. diff --git a/src/core/MOM_open_boundary.F90 b/src/core/MOM_open_boundary.F90 index 6e9d6cccf1..f7ce76969f 100644 --- a/src/core/MOM_open_boundary.F90 +++ b/src/core/MOM_open_boundary.F90 @@ -251,10 +251,10 @@ module MOM_open_boundary real, pointer, dimension(:,:,:) :: cff_normal => NULL() !< Array storage for restarts real :: silly_h !< A silly value of thickness outside of the domain that !! can be used to test the independence of the OBCs to - !! this external data, in m. + !! this external data [H ~> m or kg m-2]. real :: silly_u !< A silly value of velocity outside of the domain that !! can be used to test the independence of the OBCs to - !! this external data, in m/s. + !! this external data [m s-1]. end type ocean_OBC_type !> Control structure for open boundaries that read from files. diff --git a/src/diagnostics/MOM_PointAccel.F90 b/src/diagnostics/MOM_PointAccel.F90 index 4b6f3982c8..a642cd0205 100644 --- a/src/diagnostics/MOM_PointAccel.F90 +++ b/src/diagnostics/MOM_PointAccel.F90 @@ -85,9 +85,9 @@ subroutine write_u_accel(I, j, um, hin, ADp, CDp, dt, G, GV, US, CS, vel_rpt, st !! call to PointAccel_init. real, intent(in) :: vel_rpt !< The velocity magnitude that triggers a report [m s-1]. real, optional, intent(in) :: str !< The surface wind stress integrated over a time - !! step, in m2 s-1. + !! step divided by the Boussinesq density [m2 s-1]. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), & - optional, intent(in) :: a !< The layer coupling coefficients from vertvisc, Z s-1. + optional, intent(in) :: a !< The layer coupling coefficients from vertvisc [Z s-1 ~> m s-1]. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)), & optional, intent(in) :: hv !< The layer thicknesses at velocity grid points, !! from vertvisc [H ~> m or kg m-2]. @@ -416,9 +416,9 @@ subroutine write_v_accel(i, J, vm, hin, ADp, CDp, dt, G, GV, US, CS, vel_rpt, st !! call to PointAccel_init. real, intent(in) :: vel_rpt !< The velocity magnitude that triggers a report [m s-1]. real, optional, intent(in) :: str !< The surface wind stress integrated over a time - !! step, in m2 s-1. + !! step divided by the Boussinesq density [m2 s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)), & - optional, intent(in) :: a !< The layer coupling coefficients from vertvisc, Z s-1. + optional, intent(in) :: a !< The layer coupling coefficients from vertvisc [Z s-1 ~> m s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)), & optional, intent(in) :: hv !< The layer thicknesses at velocity grid points, !! from vertvisc [H ~> m or kg m-2]. diff --git a/src/equation_of_state/MOM_EOS.F90 b/src/equation_of_state/MOM_EOS.F90 index a872d3d5a6..e4435a60df 100644 --- a/src/equation_of_state/MOM_EOS.F90 +++ b/src/equation_of_state/MOM_EOS.F90 @@ -819,11 +819,11 @@ subroutine EOS_manual_init(EOS, form_of_EOS, form_of_TFreeze, EOS_quadrature, Co !! in [kg m-3 degC-1] real , optional, intent(in) :: dRho_dS !< Partial derivative of density with salinity !! in [kg m-3 ppt-1] - real , optional, intent(in) :: TFr_S0_P0 !< The freezing potential temperature at S=0, P=0 in deg C. - real , optional, intent(in) :: dTFr_dS !< The derivative of freezing point with salinity, - !! in deg C PSU-1. - real , optional, intent(in) :: dTFr_dp !< The derivative of freezing point with pressure, - !! in deg C Pa-1. + real , optional, intent(in) :: TFr_S0_P0 !< The freezing potential temperature at S=0, P=0 [degC]. + real , optional, intent(in) :: dTFr_dS !< The derivative of freezing point with salinity + !! in [degC ppt-1]. + real , optional, intent(in) :: dTFr_dp !< The derivative of freezing point with pressure + !! in [degC Pa-1]. if (present(form_of_EOS )) EOS%form_of_EOS = form_of_EOS if (present(form_of_TFreeze)) EOS%form_of_TFreeze = form_of_TFreeze @@ -2385,11 +2385,11 @@ subroutine extract_member_EOS(EOS, form_of_EOS, form_of_TFreeze, EOS_quadrature, !! in [kg m-3 degC-1] real , optional, intent(out) :: dRho_dS !< Partial derivative of density with salinity !! in [kg m-3 ppt-1] - real , optional, intent(out) :: TFr_S0_P0 !< The freezing potential temperature at S=0, P=0 in deg C. - real , optional, intent(out) :: dTFr_dS !< The derivative of freezing point with salinity, - !! in deg C PSU-1. - real , optional, intent(out) :: dTFr_dp !< The derivative of freezing point with pressure, - !! in deg C Pa-1. + real , optional, intent(out) :: TFr_S0_P0 !< The freezing potential temperature at S=0, P=0 [degC]. + real , optional, intent(out) :: dTFr_dS !< The derivative of freezing point with salinity + !! [degC PSU-1]. + real , optional, intent(out) :: dTFr_dp !< The derivative of freezing point with pressure + !! [degC Pa-1]. if (present(form_of_EOS )) form_of_EOS = EOS%form_of_EOS if (present(form_of_TFreeze)) form_of_TFreeze = EOS%form_of_TFreeze diff --git a/src/equation_of_state/MOM_TFreeze.F90 b/src/equation_of_state/MOM_TFreeze.F90 index 99937181c0..50233cae60 100644 --- a/src/equation_of_state/MOM_TFreeze.F90 +++ b/src/equation_of_state/MOM_TFreeze.F90 @@ -13,14 +13,14 @@ module MOM_TFreeze public calculate_TFreeze_linear, calculate_TFreeze_Millero, calculate_TFreeze_teos10 -!> Compute the freezing point potential temperature (in deg C) from salinity (in psu) and -!! pressure (in Pa) using a simple linear expression, with coefficients passed in as arguments. +!> Compute the freezing point potential temperature [degC] from salinity [ppt] and +!! pressure [Pa] using a simple linear expression, with coefficients passed in as arguments. interface calculate_TFreeze_linear module procedure calculate_TFreeze_linear_scalar, calculate_TFreeze_linear_array end interface calculate_TFreeze_linear -!> Compute the freezing point potential temperature (in deg C) from salinity (in psu) and -!! pressure (in Pa) using the expression from Millero (1978) (and in appendix A of Gill 1982), +!> Compute the freezing point potential temperature [degC] from salinity [PSU] and +!! pressure [Pa] using the expression from Millero (1978) (and in appendix A of Gill 1982), !! but with the of the pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an !! expression for potential temperature (not in situ temperature), using a !! value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar). @@ -28,8 +28,8 @@ module MOM_TFreeze module procedure calculate_TFreeze_Millero_scalar, calculate_TFreeze_Millero_array end interface calculate_TFreeze_Millero -!> Compute the freezing point conservative temperature (in deg C) from absolute salinity (in g/kg) -!! and pressure (in Pa) using the TEOS10 package. +!> Compute the freezing point conservative temperature [degC] from absolute salinity [g/kg] +!! and pressure [Pa] using the TEOS10 package. interface calculate_TFreeze_teos10 module procedure calculate_TFreeze_teos10_scalar, calculate_TFreeze_teos10_array end interface calculate_TFreeze_teos10 @@ -37,38 +37,38 @@ module MOM_TFreeze contains !> This subroutine computes the freezing point potential temperature -!! (in deg C) from salinity (in psu), and pressure (in Pa) using a simple +!! [degC] from salinity [ppt], and pressure [Pa] using a simple !! linear expression, with coefficients passed in as arguments. subroutine calculate_TFreeze_linear_scalar(S, pres, T_Fr, TFr_S0_P0, & dTFr_dS, dTFr_dp) - real, intent(in) :: S !< salinity in PSU. - real, intent(in) :: pres !< pressure in Pa. - real, intent(out) :: T_Fr !< Freezing point potential temperature in deg C. - real, intent(in) :: TFr_S0_P0 !< The freezing point at S=0, p=0, in deg C. + real, intent(in) :: S !< salinity [ppt]. + real, intent(in) :: pres !< pressure [Pa]. + real, intent(out) :: T_Fr !< Freezing point potential temperature [degC]. + real, intent(in) :: TFr_S0_P0 !< The freezing point at S=0, p=0 [degC]. real, intent(in) :: dTFr_dS !< The derivative of freezing point with salinity, - !! in deg C PSU-1. + !! [degC ppt-1]. real, intent(in) :: dTFr_dp !< The derivative of freezing point with pressure, - !! in deg C Pa-1. + !! [degC Pa-1]. T_Fr = (TFr_S0_P0 + dTFr_dS*S) + dTFr_dp*pres end subroutine calculate_TFreeze_linear_scalar !> This subroutine computes an array of freezing point potential temperatures -!! (in deg C) from salinity (in psu), and pressure (in Pa) using a simple +!! [degC] from salinity [ppt], and pressure [Pa] using a simple !! linear expression, with coefficients passed in as arguments. subroutine calculate_TFreeze_linear_array(S, pres, T_Fr, start, npts, & TFr_S0_P0, dTFr_dS, dTFr_dp) - real, dimension(:), intent(in) :: S !< salinity in PSU. - real, dimension(:), intent(in) :: pres !< pressure in Pa. - real, dimension(:), intent(out) :: T_Fr !< Freezing point potential temperature in deg C. + real, dimension(:), intent(in) :: S !< salinity [ppt]. + real, dimension(:), intent(in) :: pres !< pressure [Pa]. + real, dimension(:), intent(out) :: T_Fr !< Freezing point potential temperature [degC]. integer, intent(in) :: start !< the starting point in the arrays. integer, intent(in) :: npts !< the number of values to calculate. - real, intent(in) :: TFr_S0_P0 !< The freezing point at S=0, p=0, in deg C. + real, intent(in) :: TFr_S0_P0 !< The freezing point at S=0, p=0, [degC]. real, intent(in) :: dTFr_dS !< The derivative of freezing point with salinity, - !! in deg C PSU-1. + !! [degC PSU-1]. real, intent(in) :: dTFr_dp !< The derivative of freezing point with pressure, - !! in deg C Pa-1. + !! [degC Pa-1]. integer :: j do j=start,start+npts-1 @@ -78,15 +78,15 @@ subroutine calculate_TFreeze_linear_array(S, pres, T_Fr, start, npts, & end subroutine calculate_TFreeze_linear_array !> This subroutine computes the freezing point potential temperature -!! (in deg C) from salinity (in psu), and pressure (in Pa) using the expression +!! [degC] from salinity [ppt], and pressure [Pa] using the expression !! from Millero (1978) (and in appendix A of Gill 1982), but with the of the !! pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an !! expression for potential temperature (not in situ temperature), using a !! value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar). subroutine calculate_TFreeze_Millero_scalar(S, pres, T_Fr) real, intent(in) :: S !< Salinity in PSU. - real, intent(in) :: pres !< Pressure in Pa. - real, intent(out) :: T_Fr !< Freezing point potential temperature in deg C. + real, intent(in) :: pres !< Pressure [Pa]. + real, intent(out) :: T_Fr !< Freezing point potential temperature [degC]. ! Local variables real, parameter :: cS1 = -0.0575, cS3_2 = 1.710523e-3, cS2 = -2.154996e-4 @@ -97,15 +97,15 @@ subroutine calculate_TFreeze_Millero_scalar(S, pres, T_Fr) end subroutine calculate_TFreeze_Millero_scalar !> This subroutine computes the freezing point potential temperature -!! (in deg C) from salinity (in psu), and pressure (in Pa) using the expression +!! [degC] from salinity [ppt], and pressure [Pa] using the expression !! from Millero (1978) (and in appendix A of Gill 1982), but with the of the !! pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an !! expression for potential temperature (not in situ temperature), using a !! value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar). subroutine calculate_TFreeze_Millero_array(S, pres, T_Fr, start, npts) - real, dimension(:), intent(in) :: S !< Salinity in PSU. - real, dimension(:), intent(in) :: pres !< Pressure in Pa. - real, dimension(:), intent(out) :: T_Fr !< Freezing point potential temperature in deg C. + real, dimension(:), intent(in) :: S !< Salinity [PSU]. + real, dimension(:), intent(in) :: pres !< Pressure [Pa]. + real, dimension(:), intent(out) :: T_Fr !< Freezing point potential temperature [degC]. integer, intent(in) :: start !< The starting point in the arrays. integer, intent(in) :: npts !< The number of values to calculate. @@ -122,12 +122,12 @@ subroutine calculate_TFreeze_Millero_array(S, pres, T_Fr, start, npts) end subroutine calculate_TFreeze_Millero_array !> This subroutine computes the freezing point conservative temperature -!! (in deg C) from absolute salinity (in g/kg), and pressure (in Pa) using the +!! [degC] from absolute salinity [g/kg], and pressure [Pa] using the !! TEOS10 package. subroutine calculate_TFreeze_teos10_scalar(S, pres, T_Fr) - real, intent(in) :: S !< Absolute salinity in g/kg. - real, intent(in) :: pres !< Pressure in Pa. - real, intent(out) :: T_Fr !< Freezing point conservative temperature in deg C. + real, intent(in) :: S !< Absolute salinity [g/kg]. + real, intent(in) :: pres !< Pressure [Pa]. + real, intent(out) :: T_Fr !< Freezing point conservative temperature [degC]. ! Local variables real, dimension(1) :: S0, pres0 @@ -142,12 +142,12 @@ subroutine calculate_TFreeze_teos10_scalar(S, pres, T_Fr) end subroutine calculate_TFreeze_teos10_scalar !> This subroutine computes the freezing point conservative temperature -!! (in deg C) from absolute salinity (in g/kg), and pressure (in Pa) using the +!! [degC] from absolute salinity [g/kg], and pressure [Pa] using the !! TEOS10 package. subroutine calculate_TFreeze_teos10_array(S, pres, T_Fr, start, npts) - real, dimension(:), intent(in) :: S !< absolute salinity in g/kg. - real, dimension(:), intent(in) :: pres !< pressure in Pa. - real, dimension(:), intent(out) :: T_Fr !< Freezing point conservative temperature in deg C. + real, dimension(:), intent(in) :: S !< absolute salinity [g/kg]. + real, dimension(:), intent(in) :: pres !< pressure [Pa]. + real, dimension(:), intent(out) :: T_Fr !< Freezing point conservative temperature [degC]. integer, intent(in) :: start !< the starting point in the arrays. integer, intent(in) :: npts !< the number of values to calculate. diff --git a/src/ice_shelf/MOM_ice_shelf.F90 b/src/ice_shelf/MOM_ice_shelf.F90 index affbed728c..8fe71574e6 100644 --- a/src/ice_shelf/MOM_ice_shelf.F90 +++ b/src/ice_shelf/MOM_ice_shelf.F90 @@ -79,14 +79,14 @@ module MOM_ice_shelf type(ocean_grid_type), pointer :: ocn_grid => NULL() !< A pointer to the ocean model grid !! The rest is private real :: flux_factor = 1.0 !< A factor that can be used to turn off ice shelf - !! melting (flux_factor = 0). + !! melting (flux_factor = 0) [nondim]. character(len=128) :: restart_output_dir = ' ' !< The directory in which to write restart files type(ice_shelf_state), pointer :: ISS => NULL() !< A structure with elements that describe !! the ice-shelf state type(ice_shelf_dyn_CS), pointer :: dCS => NULL() !< The control structure for the ice-shelf dynamics. real, pointer, dimension(:,:) :: & - utide => NULL() !< tidal velocity, in m/s + utide => NULL() !< tidal velocity [m s-1] real :: ustar_bg !< A minimum value for ustar under ice shelves [Z s-1 ~> m s-1]. real :: cdrag !< drag coefficient under ice shelves , non-dimensional. @@ -217,8 +217,8 @@ subroutine shelf_calc_flux(state, fluxes, Time, time_step, CS, forces) p_int !< The pressure at the ice-ocean interface [Pa]. real, dimension(SZI_(CS%grid),SZJ_(CS%grid)) :: & - exch_vel_t, & !< Sub-shelf thermal exchange velocity, in m/s - exch_vel_s !< Sub-shelf salt exchange velocity, in m/s + exch_vel_t, & !< Sub-shelf thermal exchange velocity [m s-1] + exch_vel_s !< Sub-shelf salt exchange velocity [m s-1] real, dimension(SZDI_(CS%grid),SZDJ_(CS%grid)) :: & mass_flux !< total mass flux of freshwater across diff --git a/src/ice_shelf/MOM_ice_shelf_initialize.F90 b/src/ice_shelf/MOM_ice_shelf_initialize.F90 index 9a54335544..945b634e91 100644 --- a/src/ice_shelf/MOM_ice_shelf_initialize.F90 +++ b/src/ice_shelf/MOM_ice_shelf_initialize.F90 @@ -30,7 +30,7 @@ subroutine initialize_ice_thickness(h_shelf, area_shelf_h, hmask, G, US, PF) real, dimension(SZDI_(G),SZDJ_(G)), & intent(inout) :: h_shelf !< The ice shelf thickness [Z ~> m]. real, dimension(SZDI_(G),SZDJ_(G)), & - intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf, in m2. + intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf [m2]. real, dimension(SZDI_(G),SZDJ_(G)), & intent(inout) :: hmask !< A mask indicating which tracer points are !! partly or fully covered by an ice-shelf @@ -60,9 +60,9 @@ end subroutine initialize_ice_thickness subroutine initialize_ice_thickness_from_file(h_shelf, area_shelf_h, hmask, G, US, PF) type(ocean_grid_type), intent(in) :: G !< The ocean's grid structure real, dimension(SZDI_(G),SZDJ_(G)), & - intent(inout) :: h_shelf !< The ice shelf thickness, in m. + intent(inout) :: h_shelf !< The ice shelf thickness [m]. real, dimension(SZDI_(G),SZDJ_(G)), & - intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf, in m2. + intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf [m2]. real, dimension(SZDI_(G),SZDJ_(G)), & intent(inout) :: hmask !< A mask indicating which tracer points are !! partly or fully covered by an ice-shelf @@ -72,7 +72,7 @@ subroutine initialize_ice_thickness_from_file(h_shelf, area_shelf_h, hmask, G, U ! This subroutine reads ice thickness and area from a file and puts it into ! h_shelf and area_shelf_h in m (and dimensionless) and updates hmask character(len=200) :: filename,thickness_file,inputdir ! Strings for file/path - character(len=200) :: thickness_varname, area_varname! Variable name in file + character(len=200) :: thickness_varname, area_varname ! Variable name in file character(len=40) :: mdl = "initialize_ice_thickness_from_file" ! This subroutine's name. integer :: i, j, isc, jsc, iec, jec real :: len_sidestress, mask, udh @@ -149,7 +149,7 @@ subroutine initialize_ice_thickness_channel(h_shelf, area_shelf_h, hmask, G, US, real, dimension(SZDI_(G),SZDJ_(G)), & intent(inout) :: h_shelf !< The ice shelf thickness [Z ~> m]. real, dimension(SZDI_(G),SZDJ_(G)), & - intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf, in m2. + intent(inout) :: area_shelf_h !< The area per cell covered by the ice shelf [m2]. real, dimension(SZDI_(G),SZDJ_(G)), & intent(inout) :: hmask !< A mask indicating which tracer points are !! partly or fully covered by an ice-shelf @@ -248,18 +248,18 @@ end subroutine initialize_ice_thickness_channel ! intent(inout) :: u_face_mask_bdry !< A boundary-type mask at C-grid u faces ! real, dimension(SZIB_(G),SZJ_(G)), & ! intent(inout) :: u_flux_bdry_val !< The boundary thickness flux through - !! C-grid u faces, in m2 s-1. + !! C-grid u faces [m2 s-1]. ! real, dimension(SZI_(G),SZJB_(G)), & ! intent(inout) :: v_face_mask_bdry !< A boundary-type mask at C-grid v faces ! real, dimension(SZI_(G),SZJB_(G)), & ! intent(inout) :: v_flux_bdry_val !< The boundary thickness flux through - !! C-grid v faces, in m2 s-1. + !! C-grid v faces [m2 s-1]. ! real, dimension(SZIB_(G),SZJB_(G)), & ! intent(inout) :: u_bdry_val !< The zonal ice shelf velocity at open - !! boundary vertices, in m/yr. + !! boundary vertices [m yr-1]. ! real, dimension(SZIB_(G),SZJB_(G)), & ! intent(inout) :: v_bdry_val !< The meridional ice shelf velocity at open - !! boundary vertices, in m/yr. + !! boundary vertices [m yr-1]. ! real, dimension(SZDI_(G),SZDJ_(G)), & ! intent(inout) :: h_bdry_val !< The ice shelf thickness at open boundaries ! real, dimension(SZDI_(G),SZDJ_(G)), & @@ -304,18 +304,18 @@ end subroutine initialize_ice_thickness_channel ! intent(inout) :: u_face_mask_bdry !< A boundary-type mask at C-grid u faces ! real, dimension(SZIB_(G),SZJ_(G)), & ! intent(inout) :: u_flux_bdry_val !< The boundary thickness flux through - !! C-grid u faces, in m2 s-1. + !! C-grid u faces [m2 s-1]. ! real, dimension(SZI_(G),SZJB_(G)), & ! intent(inout) :: v_face_mask_bdry !< A boundary-type mask at C-grid v faces ! real, dimension(SZI_(G),SZJB_(G)), & ! intent(inout) :: v_flux_bdry_val !< The boundary thickness flux through - !! C-grid v faces, in m2 s-1. + !! C-grid v faces [m2 s-1]. ! real, dimension(SZIB_(G),SZJB_(G)), & ! intent(inout) :: u_bdry_val !< The zonal ice shelf velocity at open - !! boundary vertices, in m/yr. + !! boundary vertices [m yr-1]. ! real, dimension(SZIB_(G),SZJB_(G)), & ! intent(inout) :: v_bdry_val !< The meridional ice shelf velocity at open - !! boundary vertices, in m/yr. + !! boundary vertices [m yr-1]. ! real, dimension(SZDI_(G),SZDJ_(G)), & ! intent(inout) :: h_bdry_val !< The ice shelf thickness at open boundaries ! real, dimension(SZDI_(G),SZDJ_(G)), & diff --git a/src/ice_shelf/MOM_ice_shelf_state.F90 b/src/ice_shelf/MOM_ice_shelf_state.F90 index fe9ec8d74b..414a3389d6 100644 --- a/src/ice_shelf/MOM_ice_shelf_state.F90 +++ b/src/ice_shelf/MOM_ice_shelf_state.F90 @@ -23,9 +23,9 @@ module MOM_ice_shelf_state !> Structure that describes the ice shelf state type, public :: ice_shelf_state real, pointer, dimension(:,:) :: & - mass_shelf => NULL(), & !< The mass per unit area of the ice shelf or sheet, in kg m-2. - area_shelf_h => NULL(), & !< The area per cell covered by the ice shelf, in m2. - h_shelf => NULL(), & !< the thickness of the shelf in m, redundant with mass but may + mass_shelf => NULL(), & !< The mass per unit area of the ice shelf or sheet [kg m-2]. + area_shelf_h => NULL(), & !< The area per cell covered by the ice shelf [m2]. + h_shelf => NULL(), & !< the thickness of the shelf [m], redundant with mass but may !! make the code more readable hmask => NULL(),& !< Mask used to indicate ice-covered or partiall-covered cells !! 1: fully covered, solve for velocity here (for now all @@ -38,16 +38,16 @@ module MOM_ice_shelf_state !! otherwise the wrong nodes will be included in velocity calcs. tflux_ocn => NULL(), & !< The UPWARD sensible ocean heat flux at the - !! ocean-ice interface, in W m-2. + !! ocean-ice interface [m-2]. salt_flux => NULL(), & !< The downward salt flux at the ocean-ice - !! interface, in kg m-2 s-1. + !! interface [kg m-2 s-1]. water_flux => NULL(), & !< The net downward liquid water flux at the - !! ocean-ice interface, in kg m-2 s-1. + !! ocean-ice interface [kg m-2 s-1]. tflux_shelf => NULL(), & !< The UPWARD diffusive heat flux in the ice - !! shelf at the ice-ocean interface, in W m-2. + !! shelf at the ice-ocean interface [W m-2]. tfreeze => NULL() !< The freezing point potential temperature - !! an the ice-ocean interface, in deg C. + !! an the ice-ocean interface [degC]. end type ice_shelf_state diff --git a/src/parameterizations/lateral/MOM_MEKE_types.F90 b/src/parameterizations/lateral/MOM_MEKE_types.F90 index 2b637af239..22ed34c6c2 100644 --- a/src/parameterizations/lateral/MOM_MEKE_types.F90 +++ b/src/parameterizations/lateral/MOM_MEKE_types.F90 @@ -8,18 +8,18 @@ module MOM_MEKE_types type, public :: MEKE_type ! Variables real, dimension(:,:), pointer :: & - MEKE => NULL(), & !< Vertically averaged eddy kinetic energy, in m2 s-2. - GM_src => NULL(), & !< MEKE source due to thickness mixing (GM), in W m-2. - mom_src => NULL(),& !< MEKE source from lateral friction in the momentum equations, in W m-2. - Kh => NULL(), & !< The MEKE-derived lateral mixing coefficient in m2 s-1. - Rd_dx_h => NULL() !< The deformation radius compared with the grid spacing, nondim. + MEKE => NULL(), & !< Vertically averaged eddy kinetic energy [m2 s-2]. + GM_src => NULL(), & !< MEKE source due to thickness mixing (GM) [W m-2]. + mom_src => NULL(),& !< MEKE source from lateral friction in the momentum equations [W m-2]. + Kh => NULL(), & !< The MEKE-derived lateral mixing coefficient [m2 s-1. + Rd_dx_h => NULL() !< The deformation radius compared with the grid spacing [nondim]. !! Rd_dx_h is copied from VarMix_CS. - real, dimension(:,:), pointer :: Ku => NULL() !< The MEKE-derived lateral viscosity coefficient in m2 s-1. + real, dimension(:,:), pointer :: Ku => NULL() !< The MEKE-derived lateral viscosity coefficient [m2 s-1]. !! This viscosity can be negative when representing backscatter !! from unresolved eddies (see Jansen and Held, 2014). ! Parameters - real :: KhTh_fac = 1.0 !< Multiplier to map Kh(MEKE) to KhTh, nondim - real :: KhTr_fac = 1.0 !< Multiplier to map Kh(MEKE) to KhTr, nondim. + real :: KhTh_fac = 1.0 !< Multiplier to map Kh(MEKE) to KhTh [nondim] + real :: KhTr_fac = 1.0 !< Multiplier to map Kh(MEKE) to KhTr [nondim]. real :: backscatter_Ro_pow = 0.0 !< Power in Rossby number function for backscatter. real :: backscatter_Ro_c = 0.0 !< Coefficient in Rossby number function for backscatter. end type MEKE_type diff --git a/src/parameterizations/lateral/MOM_hor_visc.F90 b/src/parameterizations/lateral/MOM_hor_visc.F90 index ce8dbbf773..9150dead11 100644 --- a/src/parameterizations/lateral/MOM_hor_visc.F90 +++ b/src/parameterizations/lateral/MOM_hor_visc.F90 @@ -60,94 +60,94 @@ module MOM_hor_visc !! scales quadratically with the velocity shears. logical :: use_Kh_bg_2d !< Read 2d background viscosity from a file. real :: Kh_bg_min !< The minimum value allowed for Laplacian horizontal - !! viscosity, in m2 s-1. The default is 0.0 + !! viscosity [m2 s-1]. The default is 0.0 logical :: use_land_mask !< Use the land mask for the computation of thicknesses !! at velocity locations. This eliminates the dependence on !! arbitrary values over land or outside of the domain. !! Default is False to maintain answers with legacy experiments !! but should be changed to True for new experiments. logical :: anisotropic !< If true, allow anisotropic component to the viscosity. - real :: Kh_aniso !< The anisotropic viscosity in m2 s-1. + real :: Kh_aniso !< The anisotropic viscosity [m2 s-1]. logical :: dynamic_aniso !< If true, the anisotropic viscosity is recomputed as a function !! of state. This is set depending on ANISOTROPIC_MODE. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: Kh_bg_xx - !< The background Laplacian viscosity at h points, in units - !! of m2 s-1. The actual viscosity may be the larger of this + !< The background Laplacian viscosity at h points [m2 s-1]. + !! The actual viscosity may be the larger of this !! viscosity and the Smagorinsky and Leith viscosities. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: Kh_bg_2d - !< The background Laplacian viscosity at h points, in units - !! of m2 s-1. The actual viscosity may be the larger of this + !< The background Laplacian viscosity at h points [m2 s-1]. + !! The actual viscosity may be the larger of this !! viscosity and the Smagorinsky and Leith viscosities. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: Ah_bg_xx - !< The background biharmonic viscosity at h points, in units - !! of m4 s-1. The actual viscosity may be the larger of this + !< The background biharmonic viscosity at h points [m4 s-1]. + !! The actual viscosity may be the larger of this !! viscosity and the Smagorinsky and Leith viscosities. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: Biharm_Const2_xx !< A constant relating the biharmonic viscosity to the - !! square of the velocity shear, in m4 s. This value is + !! square of the velocity shear [m4 s]. This value is !! set to be the magnitude of the Coriolis terms once the !! velocity differences reach a value of order 1/2 MAXVEL. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: reduction_xx !< The amount by which stresses through h points are reduced !! due to partial barriers. Nondimensional. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: & - Kh_Max_xx, & !< The maximum permitted Laplacian viscosity, m2 s-1. - Ah_Max_xx, & !< The maximum permitted biharmonic viscosity, m4 s-1. + Kh_Max_xx, & !< The maximum permitted Laplacian viscosity [m2 s-1]. + Ah_Max_xx, & !< The maximum permitted biharmonic viscosity [m4 s-1]. n1n2_h, & !< Factor n1*n2 in the anisotropic direction tensor at h-points n1n1_m_n2n2_h !< Factor n1**2-n2**2 in the anisotropic direction tensor at h-points real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: Kh_bg_xy - !< The background Laplacian viscosity at q points, in units - !! of m2 s-1. The actual viscosity may be the larger of this + !< The background Laplacian viscosity at q points [m2 s-1]. + !! The actual viscosity may be the larger of this !! viscosity and the Smagorinsky and Leith viscosities. real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: Ah_bg_xy - !< The background biharmonic viscosity at q points, in units - !! of m4 s-1. The actual viscosity may be the larger of this + !< The background biharmonic viscosity at q points [m4 s-1]. + !! The actual viscosity may be the larger of this !! viscosity and the Smagorinsky and Leith viscosities. real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: Biharm_Const2_xy !< A constant relating the biharmonic viscosity to the - !! square of the velocity shear, in m4 s. This value is + !! square of the velocity shear [m4 s]. This value is !! set to be the magnitude of the Coriolis terms once the !! velocity differences reach a value of order 1/2 MAXVEL. real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: reduction_xy !< The amount by which stresses through q points are reduced - !! due to partial barriers. Nondimensional. + !! due to partial barriers [nondim]. real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: & - Kh_Max_xy, & !< The maximum permitted Laplacian viscosity, m2 s-1. - Ah_Max_xy, & !< The maximum permitted biharmonic viscosity, m4 s-1. + Kh_Max_xy, & !< The maximum permitted Laplacian viscosity [m2 s-1]. + Ah_Max_xy, & !< The maximum permitted biharmonic viscosity [m4 s-1]. n1n2_q, & !< Factor n1*n2 in the anisotropic direction tensor at q-points n1n1_m_n2n2_q !< Factor n1**2-n2**2 in the anisotropic direction tensor at q-points real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: & - dx2h, & !< Pre-calculated dx^2 at h points, in m2 - dy2h, & !< Pre-calculated dy^2 at h points, in m2 - dx_dyT, & !< Pre-calculated dx/dy at h points, nondim - dy_dxT !< Pre-calculated dy/dx at h points, nondim + dx2h, & !< Pre-calculated dx^2 at h points [m2] + dy2h, & !< Pre-calculated dy^2 at h points [m2] + dx_dyT, & !< Pre-calculated dx/dy at h points [nondim] + dy_dxT !< Pre-calculated dy/dx at h points [nondim] real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: & - dx2q, & !< Pre-calculated dx^2 at q points, in m2 - dy2q, & !< Pre-calculated dy^2 at q points, in m2 - dx_dyBu, & !< Pre-calculated dx/dy at q points, nondim - dy_dxBu !< Pre-calculated dy/dx at q points, nondim + dx2q, & !< Pre-calculated dx^2 at q points [m2] + dy2q, & !< Pre-calculated dy^2 at q points [m2] + dx_dyBu, & !< Pre-calculated dx/dy at q points [nondim] + dy_dxBu !< Pre-calculated dy/dx at q points [nondim] real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEM_) :: & - Idx2dyCu, & !< 1/(dx^2 dy) at u points, in m-3 - Idxdy2u !< 1/(dx dy^2) at u points, in m-3 + Idx2dyCu, & !< 1/(dx^2 dy) at u points [m-3] + Idxdy2u !< 1/(dx dy^2) at u points [m-3] real ALLOCABLE_, dimension(NIMEM_,NJMEMB_PTR_) :: & - Idx2dyCv, & !< 1/(dx^2 dy) at v points, in m-3 - Idxdy2v !< 1/(dx dy^2) at v points, in m-3 + Idx2dyCv, & !< 1/(dx^2 dy) at v points [m-3] + Idxdy2v !< 1/(dx dy^2) at v points [m-3] ! The following variables are precalculated time-invariant combinations of ! parameters and metric terms. real ALLOCABLE_, dimension(NIMEM_,NJMEM_) :: & - Laplac_Const_xx, & !< Laplacian metric-dependent constants (nondim) - Biharm_Const_xx, & !< Biharmonic metric-dependent constants (nondim) - Laplac3_Const_xx, & !< Laplacian metric-dependent constants (nondim) - Biharm5_Const_xx !< Biharmonic metric-dependent constants (nondim) + Laplac_Const_xx, & !< Laplacian metric-dependent constants [nondim] + Biharm_Const_xx, & !< Biharmonic metric-dependent constants [nondim] + Laplac3_Const_xx, & !< Laplacian metric-dependent constants [nondim] + Biharm5_Const_xx !< Biharmonic metric-dependent constants [nondim] real ALLOCABLE_, dimension(NIMEMB_PTR_,NJMEMB_PTR_) :: & - Laplac_Const_xy, & !< Laplacian metric-dependent constants (nondim) - Biharm_Const_xy, & !< Biharmonic metric-dependent constants (nondim) - Laplac3_Const_xy, & !< Laplacian metric-dependent constants (nondim) - Biharm5_Const_xy !< Biharmonic metric-dependent constants (nondim) + Laplac_Const_xy, & !< Laplacian metric-dependent constants [nondim] + Biharm_Const_xy, & !< Biharmonic metric-dependent constants [nondim] + Laplac3_Const_xy, & !< Laplacian metric-dependent constants [nondim] + Biharm5_Const_xy !< Biharmonic metric-dependent constants [nondim] type(diag_ctrl), pointer :: diag => NULL() !< structure to regulate diagnostics @@ -199,49 +199,49 @@ subroutine horizontal_viscosity(u, v, h, diffu, diffv, MEKE, VarMix, G, GV, CS, type(ocean_OBC_type), optional, pointer :: OBC !< Pointer to an open boundary condition type ! Local variables real, dimension(SZIB_(G),SZJ_(G)) :: & - u0, & ! Laplacian of u (m-1 s-1) + u0, & ! Laplacian of u [m-1 s-1] h_u ! Thickness interpolated to u points [H ~> m or kg m-2]. real, dimension(SZI_(G),SZJB_(G)) :: & - v0, & ! Laplacian of v (m-1 s-1) + v0, & ! Laplacian of v [m-1 s-1] h_v ! Thickness interpolated to v points [H ~> m or kg m-2]. real, dimension(SZI_(G),SZJ_(G)) :: & - sh_xx, & ! horizontal tension (du/dx - dv/dy) (1/sec) including metric terms - str_xx,& ! str_xx is the diagonal term in the stress tensor (H m2 s-2) - bhstr_xx,& ! A copy of str_xx that only contains the biharmonic contribution (H m2 s-2) - div_xx, & ! horizontal divergence (du/dx + dv/dy) (1/sec) including metric terms - FrictWorkIntz ! depth integrated energy dissipated by lateral friction (W/m2) + sh_xx, & ! horizontal tension (du/dx - dv/dy) including metric terms [s-1] + str_xx,& ! str_xx is the diagonal term in the stress tensor [H m2 s-2 ~> m3 s-2 or kg s-2] + bhstr_xx,& ! A copy of str_xx that only contains the biharmonic contribution [H m2 s-2 ~> m3 s-2 or kg s-2] + div_xx, & ! horizontal divergence (du/dx + dv/dy) including metric terms [s-1] + FrictWorkIntz ! depth integrated energy dissipated by lateral friction [W m-2] real, dimension(SZIB_(G),SZJB_(G)) :: & dvdx, dudy, & ! components in the shearing strain [s-1] - sh_xy, & ! horizontal shearing strain (du/dy + dv/dx) (1/sec) including metric terms - str_xy, & ! str_xy is the cross term in the stress tensor (H m2 s-2) - bhstr_xy, & ! A copy of str_xy that only contains the biharmonic contribution (H m2 s-2) - vort_xy ! vertical vorticity (dv/dx - du/dy) (1/sec) including metric terms + sh_xy, & ! horizontal shearing strain (du/dy + dv/dx) including metric terms [s-1] + str_xy, & ! str_xy is the cross term in the stress tensor [H m2 s-2 ~> m3 s-2 or kg s-2] + bhstr_xy, & ! A copy of str_xy that only contains the biharmonic contribution [H m2 s-2 ~> m3 s-2 or kg s-2] + vort_xy ! vertical vorticity (dv/dx - du/dy) including metric terms [s-1] real, dimension(SZI_(G),SZJB_(G)) :: & - vort_xy_dx, & ! x-derivative of vertical vorticity (d/dx(dv/dx - du/dy)) (m-1 sec-1) including metric terms - div_xx_dy ! y-derivative of horizontal divergence (d/dy(du/dx + dv/dy)) (m-1 sec-1) including metric terms + vort_xy_dx, & ! x-derivative of vertical vorticity (d/dx(dv/dx - du/dy)) including metric terms [m-1 s-1] + div_xx_dy ! y-derivative of horizontal divergence (d/dy(du/dx + dv/dy)) including metric terms [m-1 s-1] real, dimension(SZIB_(G),SZJ_(G)) :: & - vort_xy_dy, & ! y-derivative of vertical vorticity (d/dy(dv/dx - du/dy)) (m-1 sec-1) including metric terms - div_xx_dx ! x-derivative of horizontal divergence (d/dx(du/dx + dv/dy)) (m-1 sec-1) including metric terms + vort_xy_dy, & ! y-derivative of vertical vorticity (d/dy(dv/dx - du/dy)) including metric terms [m-1 s-1] + div_xx_dx ! x-derivative of horizontal divergence (d/dx(du/dx + dv/dy)) including metric terms [m-1 s-1] real, dimension(SZIB_(G),SZJB_(G),SZK_(G)) :: & - Ah_q, & ! biharmonic viscosity at corner points (m4/s) - Kh_q ! Laplacian viscosity at corner points (m2/s) + Ah_q, & ! biharmonic viscosity at corner points [m4 s-1] + Kh_q ! Laplacian viscosity at corner points [m2 s-1] real, dimension(SZI_(G),SZJ_(G),SZK_(G)) :: & - Ah_h, & ! biharmonic viscosity at thickness points (m4/s) - Kh_h, & ! Laplacian viscosity at thickness points (m2/s) - FrictWork ! energy dissipated by lateral friction (W/m2) - - real :: Ah ! biharmonic viscosity (m4/s) - real :: Kh ! Laplacian viscosity (m2/s) - real :: AhSm ! Smagorinsky biharmonic viscosity (m4/s) - real :: KhSm ! Smagorinsky Laplacian viscosity (m2/s) - real :: AhLth ! 2D Leith biharmonic viscosity (m4/s) - real :: KhLth ! 2D Leith Laplacian viscosity (m2/s) + Ah_h, & ! biharmonic viscosity at thickness points [m4 s-1] + Kh_h, & ! Laplacian viscosity at thickness points [m2 s-1] + FrictWork ! energy dissipated by lateral friction [W m-2] + + real :: Ah ! biharmonic viscosity [m4 s-1] + real :: Kh ! Laplacian viscosity [m2 s-1] + real :: AhSm ! Smagorinsky biharmonic viscosity [m4 s-1] + real :: KhSm ! Smagorinsky Laplacian viscosity [m2 s-1] + real :: AhLth ! 2D Leith biharmonic viscosity [m4 s-1] + real :: KhLth ! 2D Leith Laplacian viscosity [m2 s-1] real :: mod_Leith ! nondimensional coefficient for divergence part of modified Leith ! viscosity. Here set equal to nondimensional Laplacian Leith constant. ! This is set equal to zero if modified Leith is not used. @@ -257,12 +257,12 @@ subroutine horizontal_viscosity(u, v, h, diffu, diffv, MEKE, VarMix, G, GV, CS, real :: h_neglect3 ! h_neglect^3 [H3 ~> m3 or kg3 m-6] real :: hrat_min ! minimum thicknesses at the 4 neighboring ! velocity points divided by the thickness at the stress - ! point (h or q point) (nondimensional) + ! point (h or q point) [nondim] real :: visc_bound_rem ! fraction of overall viscous bounds that - ! remain to be applied (nondim) + ! remain to be applied [nondim] real :: Kh_scale ! A factor between 0 and 1 by which the horizontal - ! Laplacian viscosity is rescaled - real :: RoScl ! The scaling function for MEKE source term + ! Laplacian viscosity is rescaled [nondim] + real :: RoScl ! The scaling function for MEKE source term [nondim] real :: FatH ! abs(f) at h-point for MEKE source term [s-1] real :: local_strain ! Local variable for interpolating computed strain rates [s-1]. @@ -976,8 +976,8 @@ subroutine hor_visc_init(Time, G, param_file, diag, CS) real :: BoundCorConst ! constant (s2/m2) real :: Ah_Limit ! coefficient [s-1] used, along with the ! grid spacing, to limit biharmonic viscosity - real :: Kh ! Lapacian horizontal viscosity (m2/s) - real :: Ah ! biharmonic horizontal viscosity (m4/s) + real :: Kh ! Lapacian horizontal viscosity [m2 s-1] + real :: Ah ! biharmonic horizontal viscosity [m4 s-1] real :: Kh_vel_scale ! this speed [m s-1] times grid spacing gives Lap visc real :: Ah_vel_scale ! this speed [m s-1] times grid spacing cubed gives bih visc real :: Smag_Lap_const ! nondimensional Laplacian Smagorinsky constant @@ -991,7 +991,7 @@ subroutine hor_visc_init(Time, G, param_file, diag, CS) real :: bound_Cor_vel ! grid-scale velocity variations at which value ! the quadratically varying biharmonic viscosity ! balances Coriolis acceleration [m s-1] - real :: Kh_sin_lat ! Amplitude of latitudinally dependent viscosity (m2/s) + real :: Kh_sin_lat ! Amplitude of latitudinally dependent viscosity [m2 s-1] real :: Kh_pwr_of_sine ! Power used to raise sin(lat) when using Kh_sin_lat logical :: bound_Cor_def ! parameter setting of BOUND_CORIOLIS logical :: get_all ! If true, read and log all parameters, regardless of @@ -1618,8 +1618,8 @@ end subroutine hor_visc_init !! With n1=1 and n2=0, this recovers the approach of Large et al, 2001. subroutine align_aniso_tensor_to_grid(CS, n1, n2) type(hor_visc_CS), pointer :: CS !< Control structure for horizontal viscosity - real, intent(in) :: n1 !< i-component of direction vector (nondim) - real, intent(in) :: n2 !< j-component of direction vector (nondim) + real, intent(in) :: n1 !< i-component of direction vector [nondim] + real, intent(in) :: n2 !< j-component of direction vector [nondim] ! Local variables real :: recip_n2_norm diff --git a/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 b/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 index 28ad7bc31f..b1714e174d 100644 --- a/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 +++ b/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 @@ -56,10 +56,10 @@ module MOM_lateral_mixing_coeffs logical :: calculate_Eady_growth_rate !< If true, calculate all the Eady growth rate. !! This parameter is set depending on other parameters. real, dimension(:,:), pointer :: & - SN_u => NULL(), & !< S*N at u-points (s^-1) - SN_v => NULL(), & !< S*N at v-points (s^-1) - L2u => NULL(), & !< Length scale^2 at u-points (m^2) - L2v => NULL(), & !< Length scale^2 at v-points (m^2) + SN_u => NULL(), & !< S*N at u-points [s-1] + SN_v => NULL(), & !< S*N at v-points [s-1] + L2u => NULL(), & !< Length scale^2 at u-points [m2] + L2v => NULL(), & !< Length scale^2 at v-points [m2] cg1 => NULL(), & !< The first baroclinic gravity wave speed [m s-1]. Res_fn_h => NULL(), & !< Non-dimensional function of the ratio the first baroclinic !! deformation radius to the grid spacing at h points. @@ -78,19 +78,19 @@ module MOM_lateral_mixing_coeffs beta_dx2_v => NULL(), & !< The magnitude of the gradient of the Coriolis parameter !! times the grid spacing squared at v points. f2_dx2_h => NULL(), & !< The Coriolis parameter squared times the grid - !! spacing squared at h, in m2 s-2. + !! spacing squared at h [m-2 s-2]. f2_dx2_q => NULL(), & !< The Coriolis parameter squared times the grid - !! spacing squared at q, in m2 s-2. + !! spacing squared at q [m-2 s-2]. f2_dx2_u => NULL(), & !< The Coriolis parameter squared times the grid - !! spacing squared at u, in m2 s-2. + !! spacing squared at u [m-2 s-2]. f2_dx2_v => NULL(), & !< The Coriolis parameter squared times the grid - !! spacing squared at v, in m2 s-2. - Rd_dx_h => NULL() !< Deformation radius over grid spacing (non-dim.) + !! spacing squared at v [m-2 s-2]. + Rd_dx_h => NULL() !< Deformation radius over grid spacing [nondim] real, dimension(:,:,:), pointer :: & - slope_x => NULL(), & !< Zonal isopycnal slope (non-dimensional) - slope_y => NULL(), & !< Meridional isopycnal slope (non-dimensional) - ebt_struct => NULL() !< Vertical structure function to scale diffusivities with (non-dim) + slope_x => NULL(), & !< Zonal isopycnal slope [nondim] + slope_y => NULL(), & !< Meridional isopycnal slope [nondim] + ebt_struct => NULL() !< Vertical structure function to scale diffusivities with [nondim] ! Parameters integer :: VarMix_Ktop !< Top layer to start downward integrals @@ -101,7 +101,7 @@ module MOM_lateral_mixing_coeffs real :: Res_coef_visc !< A non-dimensional number that determines the function !! of resolution, used for lateral viscosity, as: !! F = 1 / (1 + (Res_coef_visc*Ld/dx)^Res_fn_power) - real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers (m2/s) + real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers [m2 s-1] integer :: Res_fn_power_khth !< The power of dx/Ld in the KhTh resolution function. Any !! positive integer power may be used, but even powers !! and especially 2 are coded to be more efficient. @@ -384,11 +384,11 @@ subroutine calc_slope_functions(h, tv, dt, G, GV, US, CS) type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(inout) :: h !< Layer thickness [H ~> m or kg m-2] type(thermo_var_ptrs), intent(in) :: tv !< Thermodynamic variables - real, intent(in) :: dt !< Time increment (s) + real, intent(in) :: dt !< Time increment [s] type(VarMix_CS), pointer :: CS !< Variable mixing coefficients ! Local variables real, dimension(SZI_(G), SZJ_(G), SZK_(G)+1) :: & - e ! The interface heights relative to mean sea level, in m. + e ! The interface heights relative to mean sea level [Z ~> m]. real, dimension(SZIB_(G), SZJ_(G), SZK_(G)+1) :: N2_u ! Square of Brunt-Vaisala freq at u-points [s-2] real, dimension(SZI_(G), SZJB_(G), SZK_(G)+1) :: N2_v ! Square of Brunt-Vaisala freq at v-points [s-2] @@ -425,13 +425,13 @@ subroutine calc_Visbeck_coeffs(h, slope_x, slope_y, N2_u, N2_v, G, GV, CS) type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness [H ~> m or kg m-2] real, dimension(SZIB_(G),SZJ_(G),SZK_(G)+1), intent(in) :: slope_x !< Zonal isoneutral slope - real, dimension(SZIB_(G),SZJ_(G),SZK_(G)+1), intent(in) :: N2_u !< Brunt-Vaisala frequency at u-points (1/s2) + real, dimension(SZIB_(G),SZJ_(G),SZK_(G)+1), intent(in) :: N2_u !< Brunt-Vaisala frequency at u-points [s-2] real, dimension(SZI_(G),SZJB_(G),SZK_(G)+1), intent(in) :: slope_y !< Meridional isoneutral slope - real, dimension(SZI_(G),SZJB_(G),SZK_(G)+1), intent(in) :: N2_v !< Brunt-Vaisala frequency at v-points (1/s2) + real, dimension(SZI_(G),SZJB_(G),SZK_(G)+1), intent(in) :: N2_v !< Brunt-Vaisala frequency at v-points [s-2] type(VarMix_CS), pointer :: CS !< Variable mixing coefficients ! Local variables - real :: S2 ! Interface slope squared (non-dim) + real :: S2 ! Interface slope squared [nondim] real :: N2 ! Brunt-Vaisala frequency [s-1] real :: Hup, Hdn ! Thickness from above, below [H ~> m or kg m-2] real :: H_geom ! The geometric mean of Hup*Hdn [H ~> m or kg m-2]. @@ -587,7 +587,7 @@ subroutine calc_slope_functions_using_just_e(h, G, GV, US, CS, e, calculate_slop real :: H_cutoff ! Local estimate of a minimum thickness for masking [H ~> m or kg m-2] real :: h_neglect ! A thickness that is so small it is usually lost ! in roundoff and can be neglected [H ~> m or kg m-2]. - real :: S2 ! Interface slope squared (non-dim) + real :: S2 ! Interface slope squared [nondim] real :: N2 ! Brunt-Vaisala frequency [s-1] real :: Hup, Hdn ! Thickness from above, below [H ~> m or kg m-2] real :: H_geom ! The geometric mean of Hup*Hdn [H ~> m or kg m-2]. diff --git a/src/parameterizations/lateral/MOM_thickness_diffuse.F90 b/src/parameterizations/lateral/MOM_thickness_diffuse.F90 index d9837e1875..94c02cf2b4 100644 --- a/src/parameterizations/lateral/MOM_thickness_diffuse.F90 +++ b/src/parameterizations/lateral/MOM_thickness_diffuse.F90 @@ -166,7 +166,7 @@ subroutine thickness_diffuse(h, uhtr, vhtr, tv, dt, G, GV, US, MEKE, VarMix, CDp (dt*(G%IdxCv(i,J)*G%IdxCv(i,J) + G%IdyCv(i,J)*G%IdyCv(i,J))) enddo ; enddo - ! Calculates interface heights, e, in m. + ! Calculates interface heights, e, in [Z ~> m]. call find_eta(h, tv, G, GV, US, e, halo_size=1) ! Set the diffusivities. @@ -1225,10 +1225,10 @@ subroutine add_detangling_Kh(h, e, Kh_u, Kh_v, KH_u_CFL, KH_v_CFL, tv, dt, G, GV ! region where the detangling is applied [H ~> m or kg m-2]. real, dimension(SZIB_(G),SZJ_(G),SZK_(G)) :: & Kh_lay_u ! The tentative interface height diffusivity for each layer at - ! u points, in m2 s-1. + ! u points [m2 s-1]. real, dimension(SZI_(G),SZJB_(G),SZK_(G)) :: & Kh_lay_v ! The tentative interface height diffusivity for each layer at - ! v points, in m2 s-1. + ! v points [m2 s-1]. real, dimension(SZI_(G),SZJ_(G)) :: & de_bot ! The distances from the bottom of the region where the ! detangling is applied [H ~> m or kg m-2]. @@ -1241,7 +1241,7 @@ subroutine add_detangling_Kh(h, e, Kh_u, Kh_v, KH_u_CFL, KH_v_CFL, tv, dt, G, GV ! normalized by the arithmetic mean thickness. real :: Kh_scale ! A ratio by which Kh_u_CFL is scaled for maximally jagged ! layers [nondim]. - real :: Kh_det ! The detangling diffusivity, in m2 s-1. + real :: Kh_det ! The detangling diffusivity [m2 s-1]. real :: h_neglect ! A thickness that is so small it is usually lost ! in roundoff and can be neglected [H ~> m or kg m-2]. @@ -1252,8 +1252,8 @@ subroutine add_detangling_Kh(h, e, Kh_u, Kh_v, KH_u_CFL, KH_v_CFL, tv, dt, G, GV real :: IRsl ! The (limited) inverse of Rsl [nondim]. 1 < IRsl <= 1e9. real :: dH ! The thickness gradient divided by the damping timescale ! and the ratio of the face length to the adjacent cell - ! areas for comparability with the diffusivities, in m2 s-1. - real :: adH ! The absolute value of dH, in m2 s-1. + ! areas for comparability with the diffusivities [m2 s-1]. + real :: adH ! The absolute value of dH [m2 s-1]. real :: sign ! 1 or -1, with the same sign as the layer thickness gradient. real :: sl_K ! The sign-corrected slope of the interface above [nondim]. real :: sl_Kp1 ! The sign-corrected slope of the interface below [nondim]. @@ -1263,22 +1263,22 @@ subroutine add_detangling_Kh(h, e, Kh_u, Kh_v, KH_u_CFL, KH_v_CFL, tv, dt, G, GV ! the damping timescale [s-1]. real :: Fn_R ! A function of Rsl, such that Rsl < Fn_R < 1. real :: denom, I_denom ! A denominator and its inverse, various units. - real :: Kh_min ! A local floor on the diffusivity, in m2 s-1. - real :: Kh_max ! A local ceiling on the diffusivity, in m2 s-1. + real :: Kh_min ! A local floor on the diffusivity [m2 s-1]. + real :: Kh_max ! A local ceiling on the diffusivity [m2 s-1]. real :: wt1, wt2 ! Nondimensional weights. ! Variables used only in testing code. ! real, dimension(SZK_(G)) :: uh_here ! real, dimension(SZK_(G)+1) :: Sfn - real :: dKh ! An increment in the diffusivity, in m2 s-1. + real :: dKh ! An increment in the diffusivity [m2 s-1]. real, dimension(SZIB_(G),SZK_(G)+1) :: & - Kh_bg, & ! The background (floor) value of Kh, in m2 s-1. - Kh, & ! The tentative value of Kh, in m2 s-1. - Kh_detangle, & ! The detangling diffusivity that could be used, in m2 s-1. + Kh_bg, & ! The background (floor) value of Kh [m2 s-1]. + Kh, & ! The tentative value of Kh [m2 s-1]. + Kh_detangle, & ! The detangling diffusivity that could be used [m2 s-1]. Kh_min_max_p, & ! The smallest ceiling that can be placed on Kh(I,K) - ! based on the value of Kh(I,K+1), in m2 s-1. + ! based on the value of Kh(I,K+1) [m2 s-1]. Kh_min_max_m, & ! The smallest ceiling that can be placed on Kh(I,K) - ! based on the value of Kh(I,K-1), in m2 s-1. + ! based on the value of Kh(I,K-1) [m2 s-1]. ! The following are variables that define the relationships between ! successive values of Kh. ! Search for Kh that satisfy... @@ -1287,13 +1287,13 @@ subroutine add_detangling_Kh(h, e, Kh_u, Kh_v, KH_u_CFL, KH_v_CFL, tv, dt, G, GV ! Kh(I,K) <= Kh_max_m(I,K)*Kh(I,K-1) + Kh0_max_m(I,K) ! Kh(I,K) <= Kh_max_p(I,K)*Kh(I,K+1) + Kh0_max_p(I,K) Kh_min_m , & ! See above [nondim]. - Kh0_min_m , & ! See above, in m2 s-1. + Kh0_min_m , & ! See above [m2 s-1]. Kh_max_m , & ! See above [nondim]. - Kh0_max_m, & ! See above, in m2 s-1. + Kh0_max_m, & ! See above [m2 s-1]. Kh_min_p , & ! See above [nondim]. - Kh0_min_p , & ! See above, in m2 s-1. + Kh0_min_p , & ! See above [m2 s-1]. Kh_max_p , & ! See above [nondim]. - Kh0_max_p ! See above, in m2 s-1. + Kh0_max_p ! See above [m2 s-1]. real, dimension(SZIB_(G)) :: & Kh_max_max ! The maximum diffusivity permitted in a column. logical, dimension(SZIB_(G)) :: & diff --git a/src/parameterizations/vertical/MOM_CVMix_ddiff.F90 b/src/parameterizations/vertical/MOM_CVMix_ddiff.F90 index 07d6216be1..e636672817 100644 --- a/src/parameterizations/vertical/MOM_CVMix_ddiff.F90 +++ b/src/parameterizations/vertical/MOM_CVMix_ddiff.F90 @@ -170,27 +170,27 @@ subroutine compute_ddiff_coeffs(h, tv, G, GV, US, j, Kd_T, Kd_S, CS) real, dimension(SZI_(G),SZJ_(G),SZK_(G)), intent(in) :: h !< Layer thickness [H ~> m or kg m-2]. type(thermo_var_ptrs), intent(in) :: tv !< Thermodynamics structure. real, dimension(SZI_(G),SZJ_(G),SZK_(G)+1), intent(out) :: Kd_T !< Interface double diffusion diapycnal - !! diffusivity for temp (Z2/sec). + !! diffusivity for temp [Z2 s-1 ~> m2 s-1]. real, dimension(SZI_(G),SZJ_(G),SZK_(G)+1), intent(out) :: Kd_S !< Interface double diffusion diapycnal - !! diffusivity for salt (Z2/sec). + !! diffusivity for salt [Z2 s-1 ~> m2 s-1]. type(CVMix_ddiff_cs), pointer :: CS !< The control structure returned !! by a previous call to CVMix_ddiff_init. integer, intent(in) :: j !< Meridional grid indice. ! Local variables real, dimension(SZK_(G)) :: & - cellHeight, & !< Height of cell centers (m) + cellHeight, & !< Height of cell centers [m] dRho_dT, & !< partial derivatives of density wrt temp [kg m-3 degC-1] dRho_dS, & !< partial derivatives of density wrt saln [kg m-3 ppt-1] - pres_int, & !< pressure at each interface (Pa) - temp_int, & !< temp and at interfaces (degC) - salt_int, & !< salt at at interfaces + pres_int, & !< pressure at each interface [Pa] + temp_int, & !< temp and at interfaces [degC] + salt_int, & !< salt at at interfaces [ppt] alpha_dT, & !< alpha*dT across interfaces beta_dS, & !< beta*dS across interfaces - dT, & !< temp. difference between adjacent layers (degC) - dS !< salt difference between adjacent layers + dT, & !< temp. difference between adjacent layers [degC] + dS !< salt difference between adjacent layers [ppt] real, dimension(SZK_(G)+1) :: & - Kd1_T, & !< Diapycanal diffusivity of temperature, in m2 s-1. - Kd1_S !< Diapycanal diffusivity of salinity, in m2 s-1. + Kd1_T, & !< Diapycanal diffusivity of temperature [m2 s-1]. + Kd1_S !< Diapycanal diffusivity of salinity [m2 s-1]. real, dimension(SZK_(G)+1) :: iFaceHeight !< Height of interfaces (m) integer :: kOBL !< level of OBL extent diff --git a/src/parameterizations/vertical/MOM_energetic_PBL.F90 b/src/parameterizations/vertical/MOM_energetic_PBL.F90 index ec5d7dc5c0..8c35442461 100644 --- a/src/parameterizations/vertical/MOM_energetic_PBL.F90 +++ b/src/parameterizations/vertical/MOM_energetic_PBL.F90 @@ -270,7 +270,7 @@ subroutine energetic_PBL(h_3d, u_3d, v_3d, tv, fluxes, dt, Kd_int, G, GV, US, CS u, & ! The zonal velocity [m s-1]. v ! The meridional velocity [m s-1]. real, dimension(SZI_(G),SZK_(GV)+1) :: & - Kd, & ! The diapycnal diffusivity, in m2 s-1. + Kd, & ! The diapycnal diffusivity [Z2 s-1 ~> m2 s-1]. pres, & ! Interface pressures [Pa]. pres_Z, & ! Interface pressures with a rescaling factor to convert interface height ! movements into changes in column potential energy [J m-2 Z-1 ~> J m-3]. @@ -1632,13 +1632,13 @@ subroutine find_PE_chg(Kddt_h0, dKddt_h, hp_a, hp_b, Th_a, Sh_a, Th_b, Sh_b, & real :: hps ! The sum of the two effective pivot thicknesses [H ~> m or kg m-2]. real :: bdt1 ! A product of the two pivot thicknesses plus a diffusive term [H2 ~> m2 or kg2 m-4]. - real :: dT_c ! The core term in the expressions for the temperature changes [degC H ~> degC m or degC kg m-2]2. - real :: dS_c ! The core term in the expressions for the salinity changes, in psu H2. + real :: dT_c ! The core term in the expressions for the temperature changes [degC H2 ~> degC m2 or degC kg2 m-4]. + real :: dS_c ! The core term in the expressions for the salinity changes [ppt H2 ~> ppt m2 or ppt kg2 m-4]. real :: PEc_core ! The diffusivity-independent core term in the expressions - ! for the potential energy changes, J m-3. + ! for the potential energy changes [J m-3]. real :: ColHt_core ! The diffusivity-independent core term in the expressions - ! for the column height changes, J m-3. - real :: ColHt_chg ! The change in the column height, in m. + ! for the column height changes [J m-3]. + real :: ColHt_chg ! The change in the column height [H ~> m or kg m-2]. real :: y1 ! A local temporary term, in units of H-3 or H-4 in various contexts. ! The expression for the change in potential energy used here is derived @@ -1777,7 +1777,7 @@ subroutine find_PE_chg_orig(Kddt_h, h_k, b_den_1, dTe_term, dSe_term, & ! reversed. real :: b1 ! b1 is used by the tridiagonal solver [H-1 ~> m-1 or m2 kg-1]. - real :: b1Kd ! Temporary array (nondim.) + real :: b1Kd ! Temporary array [nondim] real :: ColHt_chg ! The change in column thickness [Z ~> m]. real :: dColHt_max ! The change in column thickness for infinite diffusivity [Z ~> m]. real :: dColHt_dKd ! The partial derivative of column thickness with diffusivity [s Z-1 ~> s m-1]. @@ -1857,7 +1857,7 @@ subroutine energetic_PBL_get_MLD(CS, MLD, G, US, m_to_MLD_units) type(energetic_PBL_CS), pointer :: CS !< Control structure for ePBL type(ocean_grid_type), intent(in) :: G !< Grid structure type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type - real, dimension(SZI_(G),SZJ_(G)), intent(out) :: MLD !< Depth of ePBL active mixing layer, in m + real, dimension(SZI_(G),SZJ_(G)), intent(out) :: MLD !< Depth of ePBL active mixing layer [m or other units] real, optional, intent(in) :: m_to_MLD_units !< A conversion factor to the desired units for MLD ! Local variables real :: scale ! A dimensional rescaling factor @@ -2019,16 +2019,9 @@ subroutine energetic_PBL_init(Time, G, GV, US, param_file, diag, CS) type(diag_ctrl), target, intent(inout) :: diag !< A structure that is used to regulate diagnostic output type(energetic_PBL_CS), pointer :: CS !< A pointer that is set to point to the control !! structure for this module -! Arguments: Time - The current model time. -! (in) G - The ocean's grid structure. -! (in) GV - The ocean's vertical grid structure. -! (in) param_file - A structure indicating the open file to parse for -! model parameter values. -! (in) diag - A structure that is used to regulate diagnostic output. -! (in/out) CS - A pointer that is set to point to the control structure -! for this module -! This include declares and sets the variable "version". -#include "version_variable.h" + ! Local variables + ! This include declares and sets the variable "version". +# include "version_variable.h" character(len=40) :: mdl = "MOM_energetic_PBL" ! This module's name. real :: omega_frac_dflt integer :: isd, ied, jsd, jed diff --git a/src/parameterizations/vertical/MOM_kappa_shear.F90 b/src/parameterizations/vertical/MOM_kappa_shear.F90 index b4eab1c9ea..3037f49e0b 100644 --- a/src/parameterizations/vertical/MOM_kappa_shear.F90 +++ b/src/parameterizations/vertical/MOM_kappa_shear.F90 @@ -431,7 +431,7 @@ subroutine Calc_kappa_shear_vertex(u_in, v_in, h, T_in, S_in, tv, p_surf, kappa_ u, & ! The zonal velocity after a timestep of mixing [m s-1]. v, & ! The meridional velocity after a timestep of mixing [m s-1]. Idz, & ! The inverse of the distance between TKE points [Z-1 ~> m-1]. - T, & ! The potential temperature after a timestep of mixing, in C. + T, & ! The potential temperature after a timestep of mixing [degC]. Sal, & ! The salinity after a timestep of mixing [PSU]. dz, & ! The layer thickness [Z ~> m]. u0xdz, & ! The initial zonal velocity times dz [m Z s-1 ~> m2 s-1]. @@ -1415,7 +1415,7 @@ subroutine find_kappa_tke(N2, S2, kappa_in, Idz, dz_Int, I_L2_bdry, f2, & ! TKE of the layer above when all the kappas below are 0. ! e1 is nondimensional, and 0 < e1 < 1. real :: tke_src ! The net source of TKE due to mixing against the shear - ! and stratification, in m2 s-3. (For convenience, + ! and stratification [m2 s-3]. (For convenience, ! a term involving the non-dissipation of q0 is also ! included here.) real :: bQ, bK ! The inverse of the pivot in the tridiagonal equations [Z-1 ~> m-1]. diff --git a/src/parameterizations/vertical/MOM_set_viscosity.F90 b/src/parameterizations/vertical/MOM_set_viscosity.F90 index caf6c52ee5..00945505ed 100644 --- a/src/parameterizations/vertical/MOM_set_viscosity.F90 +++ b/src/parameterizations/vertical/MOM_set_viscosity.F90 @@ -183,7 +183,7 @@ subroutine set_viscous_BBL(u, v, h, tv, visc, G, GV, US, CS, symmetrize) real :: U_bg_sq ! The square of an assumed background ! velocity, for calculating the mean ! magnitude near the bottom for use in the - ! quadratic bottom drag, in m2 s-2. + ! quadratic bottom drag [m2 s-2]. real :: hwtot ! Sum of the thicknesses used to calculate ! the near-bottom velocity magnitude [H ~> m or kg m-2]. real :: hutot ! Running sum of thicknesses times the @@ -242,7 +242,7 @@ subroutine set_viscous_BBL(u, v, h, tv, visc, G, GV, US, CS, symmetrize) real :: ustH ! ustar converted to units of H s-1 [H s-1 ~> m s-1 or kg m-2 s-1]. real :: root ! A temporary variable [H s-1 ~> m s-1 or kg m-2 s-1]. - real :: Cell_width ! The transverse width of the velocity cell, in m. + real :: Cell_width ! The transverse width of the velocity cell [m]. real :: Rayleigh ! A nondimensional value that is multiplied by the layer's ! velocity magnitude to give the Rayleigh drag velocity, times ! a lateral to vertical distance conversion factor [Z L-1 ~> 1]. @@ -1074,7 +1074,7 @@ subroutine set_viscous_ML(u, v, h, tv, forces, visc, dt, G, GV, US, CS, symmetri real :: u_at_v ! The zonal velocity at a meridonal velocity point [m s-1]. real :: gHprime ! The mixed-layer internal gravity wave speed squared, based ! on the mixed layer thickness and density difference across - ! the base of the mixed layer, in m2 s-2. + ! the base of the mixed layer [m2 s-2]. real :: RiBulk ! The bulk Richardson number below which water is in the ! viscous mixed layer, including reduction for turbulent ! decay. Nondimensional. @@ -1097,7 +1097,7 @@ subroutine set_viscous_ML(u, v, h, tv, forces, visc, dt, G, GV, US, CS, symmetri ! the present layer [H ~> m or kg m-2]. real :: U_bg_sq ! The square of an assumed background velocity, for ! calculating the mean magnitude near the top for use in - ! the quadratic surface drag, in m2 s-2. + ! the quadratic surface drag [m2 s-2]. real :: h_tiny ! A very small thickness [H ~> m or kg m-2]. Layers that are less than ! h_tiny can not be the deepest in the viscous mixed layer. real :: absf ! The absolute value of f averaged to velocity points, s-1. diff --git a/src/parameterizations/vertical/MOM_vert_friction.F90 b/src/parameterizations/vertical/MOM_vert_friction.F90 index 178eeff516..94eb79eca1 100644 --- a/src/parameterizations/vertical/MOM_vert_friction.F90 +++ b/src/parameterizations/vertical/MOM_vert_friction.F90 @@ -40,11 +40,11 @@ module MOM_vert_friction real :: Hmix !< The mixed layer thickness in thickness units [H ~> m or kg m-2]. real :: Hmix_stress !< The mixed layer thickness over which the wind !! stress is applied with direct_stress [H ~> m or kg m-2]. - real :: Kvml !< The mixed layer vertical viscosity in m2 s-1. - real :: Kv !< The interior vertical viscosity in m2 s-1. + real :: Kvml !< The mixed layer vertical viscosity [Z2 s-1 ~> m2 s-1]. + real :: Kv !< The interior vertical viscosity [Z2 s-1 ~> m2 s-1]. real :: Hbbl !< The static bottom boundary layer thickness [H ~> m or kg m-2]. real :: Kvbbl !< The vertical viscosity in the bottom boundary - !! layer, in m2 s-1. + !! layer [Z2 s-1 ~> m2 s-1]. real :: maxvel !< Velocity components greater than maxvel are truncated [m s-1]. real :: vel_underflow !< Velocity components smaller than vel_underflow @@ -601,10 +601,8 @@ subroutine vertvisc_coef(u, v, h, forces, visc, dt, G, GV, US, CS, OBC) real, dimension(SZIB_(G)) :: & kv_bbl, & ! The bottom boundary layer viscosity [Z2 s-1 ~> m2 s-1]. bbl_thick, & ! The bottom boundary layer thickness [H ~> m or kg m-2]. - I_Hbbl, & ! The inverse of the bottom boundary layer thickness, in units - ! of H-1 (i.e., m-1 or m2 kg-1). - I_Htbl, & ! The inverse of the top boundary layer thickness, in units - ! of H-1 (i.e., m-1 or m2 kg-1). + I_Hbbl, & ! The inverse of the bottom boundary layer thickness [H-1 ~> m-1 or m2 kg-1]. + I_Htbl, & ! The inverse of the top boundary layer thickness [H-1 ~> m-1 or m2 kg-1]. zcol1, & ! The height of the interfaces to the north and south of a zcol2, & ! v-point [H ~> m or kg m-2]. Ztop_min, & ! The deeper of the two adjacent surface heights [H ~> m or kg m-2]. @@ -613,10 +611,10 @@ subroutine vertvisc_coef(u, v, h, forces, visc, dt, G, GV, US, CS, OBC) zh, & ! An estimate of the interface's distance from the bottom ! based on harmonic mean thicknesses [H ~> m or kg m-2]. h_ml ! The mixed layer depth [H ~> m or kg m-2]. - real, allocatable, dimension(:,:) :: hML_u ! Diagnostic of the mixed layer depth at u points, in m. - real, allocatable, dimension(:,:) :: hML_v ! Diagnostic of the mixed layer depth at v points, in m. - real, allocatable, dimension(:,:,:) :: Kv_u !< Total vertical viscosity at u-points, in m2 s-1. - real, allocatable, dimension(:,:,:) :: Kv_v !< Total vertical viscosity at v-points, in m2 s-1. + real, allocatable, dimension(:,:) :: hML_u ! Diagnostic of the mixed layer depth at u points [H ~> m or kg m-2]. + real, allocatable, dimension(:,:) :: hML_v ! Diagnostic of the mixed layer depth at v points [H ~> m or kg m-2]. + real, allocatable, dimension(:,:,:) :: Kv_u !< Total vertical viscosity at u-points [Z2 s-1 ~> m2 s-1]. + real, allocatable, dimension(:,:,:) :: Kv_v !< Total vertical viscosity at v-points [Z2 s-1 ~> m2 s-1]. real :: zcol(SZI_(G)) ! The height of an interface at h-points [H ~> m or kg m-2]. real :: botfn ! A function which goes from 1 at the bottom to 0 much more ! than Hbbl into the interior. @@ -1072,7 +1070,7 @@ subroutine find_coupling_coef(a_cpl, hvel, do_i, h_harm, bbl_thick, kv_bbl, z_i, ! h_ml, & ! The mixed layer depth [H ~> m or kg m-2]. nk_visc, & ! The (real) interface index of the base of mixed layer. z_t, & ! The distance from the top, sometimes normalized - ! by Hmix, in H or nondimensional. + ! by Hmix, [H ~> m or kg m-2] or [nondim]. kv_tbl, & ! The viscosity in a top boundary layer under ice [Z2 s-1 ~> m2 s-1]. tbl_thick real, dimension(SZIB_(G),SZK_(GV)) :: & @@ -1579,8 +1577,8 @@ subroutine vertvisc_init(MIS, Time, G, GV, US, param_file, diag, ADp, dirs, & ! Local variables real :: hmix_str_dflt - real :: Kv_dflt ! A default viscosity in m2 s-1. - real :: Hmix_m ! A boundary layer thickness, in m. + real :: Kv_dflt ! A default viscosity [m2 s-1]. + real :: Hmix_m ! A boundary layer thickness [m]. integer :: isd, ied, jsd, jed, IsdB, IedB, JsdB, JedB, nz ! This include declares and sets the variable "version". #include "version_variable.h" diff --git a/src/tracer/MOM_tracer_hor_diff.F90 b/src/tracer/MOM_tracer_hor_diff.F90 index 7884823acc..efd8ea2e2d 100644 --- a/src/tracer/MOM_tracer_hor_diff.F90 +++ b/src/tracer/MOM_tracer_hor_diff.F90 @@ -123,26 +123,26 @@ subroutine tracer_hordiff(h, dt, MEKE, VarMix, G, GV, CS, Reg, tv, do_online_fla real, dimension(SZI_(G),SZJ_(G)) :: & Ihdxdy, & ! The inverse of the volume or mass of fluid in a layer in a - ! grid cell, in m-3 or kg-1. - Kh_h, & ! The tracer diffusivity averaged to tracer points, in m2 s-1. + ! grid cell [H-1 m-2 ~> m-3 or kg-1]. + Kh_h, & ! The tracer diffusivity averaged to tracer points [m2 s-1]. CFL, & ! A diffusive CFL number for each cell [nondim]. dTr ! The change in a tracer's concentration, in units of - ! concentration. + ! concentration [Conc]. real, dimension(SZIB_(G),SZJ_(G)) :: & khdt_x, & ! The value of Khtr*dt times the open face width divided by - ! the distance between adjacent tracer points, in m2. + ! the distance between adjacent tracer points [m2]. Coef_x, & ! The coefficients relating zonal tracer differences ! to time-integrated fluxes [H m2 ~> m3 or kg]. - Kh_u ! Tracer mixing coefficient at u-points, in m2 s-1. + Kh_u ! Tracer mixing coefficient at u-points [m2 s-1]. real, dimension(SZI_(G),SZJB_(G)) :: & khdt_y, & ! The value of Khtr*dt times the open face width divided by - ! the distance between adjacent tracer points, in m2. + ! the distance between adjacent tracer points [m2]. Coef_y, & ! The coefficients relating meridional tracer differences ! to time-integrated fluxes [H m2 ~> m3 or kg]. - Kh_v ! Tracer mixing coefficient at u-points, in m2 s-1. + Kh_v ! Tracer mixing coefficient at u-points [m2 s-1]. - real :: khdt_max ! The local limiting value of khdt_x or khdt_y, in m2. + real :: khdt_max ! The local limiting value of khdt_x or khdt_y [m2]. real :: max_CFL ! The global maximum of the diffusive CFL number. logical :: use_VarMix, Resoln_scaled, do_online, use_Eady integer :: S_idx, T_idx ! Indices for temperature and salinity if needed @@ -152,8 +152,8 @@ subroutine tracer_hordiff(h, dt, MEKE, VarMix, G, GV, CS, Reg, tv, do_online_fla ! layer for this iteration [nondim]. real :: Idt ! The inverse of the time step [s-1]. real :: h_neglect ! A thickness that is so small it is usually lost - ! in roundoff and can be neglected, in m. - real :: Kh_loc ! The local value of Kh, in m2 s-1. + ! in roundoff and can be neglected [H ~> m or kg m-2]. + real :: Kh_loc ! The local value of Kh [m2 s-1]. real :: Res_Fn ! The local value of the resolution function [nondim]. real :: Rd_dx ! The local value of deformation radius over grid-spacing [nondim]. real :: normalize ! normalization used for diagnostic Kh_h; diffusivity averaged to h-points. @@ -575,7 +575,7 @@ subroutine tracer_epipycnal_ML_diff(h, dt, Tr, ntr, khdt_epi_x, khdt_epi_y, G, & k0b_Rv, k0a_Rv ! in each pair of mixing at v-faces. real, dimension(SZI_(G), SZJ_(G), SZK_(G)) :: & - tr_flux_conv ! The flux convergence of tracers, in TR m3 or TR kg. + tr_flux_conv ! The flux convergence of tracers [conc H m2 ~> conc m3 or conc kg] real, dimension(SZI_(G), SZJ_(G), SZK_(G)) :: Tr_flux_3d, Tr_adj_vert_L, Tr_adj_vert_R real, dimension(SZI_(G), SZK_(G), SZJ_(G)) :: & @@ -614,14 +614,14 @@ subroutine tracer_epipycnal_ML_diff(h, dt, Tr, ntr, khdt_epi_x, khdt_epi_y, G, & real :: I_maxitt ! The inverse of the maximum number of iterations. real :: rho_pair, rho_a, rho_b ! Temporary densities [kg m-3]. real :: Tr_min_face ! The minimum and maximum tracer concentrations - real :: Tr_max_face ! associated with a pairing, in conc. + real :: Tr_max_face ! associated with a pairing [Conc] real :: Tr_La, Tr_Lb ! The 4 tracer concentrations that might be - real :: Tr_Ra, Tr_Rb ! associated with a pairing, in conc. + real :: Tr_Ra, Tr_Rb ! associated with a pairing [Conc] real :: Tr_av_L ! The average tracer concentrations on the left and right - real :: Tr_av_R ! sides of a pairing, in conc. - real :: Tr_flux ! The tracer flux from left to right in a pair, in conc m3. + real :: Tr_av_R ! sides of a pairing [Conc]. + real :: Tr_flux ! The tracer flux from left to right in a pair [conc H m2 ~> conc m3 or conc kg]. real :: Tr_adj_vert ! A downward vertical adjustment to Tr_flux between the - ! two cells that make up one side of the pairing, in conc m3. + ! two cells that make up one side of the pairing [conc H m2 ~> conc m3 or conc kg]. real :: h_L, h_R ! Thicknesses to the left and right [H ~> m or kg m-2]. real :: wt_a, wt_b ! Fractional weights of layers above and below [nondim]. real :: vol ! A cell volume or mass [H m2 ~> m3 or kg]. diff --git a/src/user/BFB_surface_forcing.F90 b/src/user/BFB_surface_forcing.F90 index 811d8ca5b6..5bf7584cb7 100644 --- a/src/user/BFB_surface_forcing.F90 +++ b/src/user/BFB_surface_forcing.F90 @@ -67,7 +67,7 @@ subroutine BFB_buoyancy_forcing(state, fluxes, day, dt, G, CS) !! returned by a previous call to !! BFB_surface_forcing_init. ! Local variables - real :: Temp_restore ! The temperature that is being restored toward, in C. + real :: Temp_restore ! The temperature that is being restored toward [degC]. real :: Salin_restore ! The salinity that is being restored toward [PSU]. real :: density_restore ! The potential density that is being restored ! toward [kg m-3]. diff --git a/src/user/MOM_wave_interface.F90 b/src/user/MOM_wave_interface.F90 index 47d9b7b6fe..260512ecfa 100644 --- a/src/user/MOM_wave_interface.F90 +++ b/src/user/MOM_wave_interface.F90 @@ -692,14 +692,14 @@ end subroutine Update_Stokes_Drift !! using the data_override procedures. subroutine Surface_Bands_by_data_override(day_center, G, GV, US, CS) use NETCDF - type(time_type), intent(in) :: day_center !< Center of timestep (s) + type(time_type), intent(in) :: day_center !< Center of timestep type(wave_parameters_CS), pointer :: CS !< Wave structure type(ocean_grid_type), intent(inout) :: G !< Grid structure type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type ! Local variables - real :: temp_x(SZI_(G),SZJ_(G)) ! Pseudo-zonal and psuedo-meridional - real :: temp_y(SZI_(G),SZJ_(G)) ! Stokes drift of band at h-points, in m/s + real :: temp_x(SZI_(G),SZJ_(G)) ! Pseudo-zonal Stokes drift of band at h-points [m s-1] + real :: temp_y(SZI_(G),SZJ_(G)) ! Psuedo-meridional Stokes drift of band at h-points [m s-1] real :: Top, MidPoint integer :: b integer :: i, j