Skip to content

Commit

Permalink
+*Revise units of arguments to vert_fill_TS
Browse files Browse the repository at this point in the history
  Pass dt_kappa_smooth to calc_isoneutral_slopes and vert_fill_TS in units of
[H Z ~> m2 or kg m-1] instead of [Z2 ~> m2] for consistency with the units of
other diffusivities in the code and to reduce the depenency on the  Boussinesq
reference density in non-Boussinesq configurations.  In addition to the changes
to the units of these two arguments, there is a new unit_scale_type argument to
vert_fill_TS and MOM_calc_varT and a new verticalGrid_type argument to
MOM_stoch_eos_init.  The units of 4 vertical diffusivities in the control
structures in 4 different modules are also changed accordingly.

  All answers are bitwise identical in Boussinesq mode, but they can change for
some non-Boussinesq configurations.  There are new mandatory arguments to three
publicly visible routines.
  • Loading branch information
Hallberg-NOAA committed Jul 11, 2023
1 parent 77b5881 commit 3b6c495
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 39 deletions.
4 changes: 2 additions & 2 deletions src/core/MOM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1089,7 +1089,7 @@ subroutine step_MOM_dynamics(forces, p_surf_begin, p_surf_end, dt, dt_thermo, &
call cpu_clock_end(id_clock_stoch)
call cpu_clock_begin(id_clock_varT)
if (CS%use_stochastic_EOS) then
call MOM_calc_varT(G, GV, h, CS%tv, CS%stoch_eos_CS, dt)
call MOM_calc_varT(G, GV, US, h, CS%tv, CS%stoch_eos_CS, dt)
if (associated(CS%tv%varT)) call pass_var(CS%tv%varT, G%Domain, clock=id_clock_pass, halo=1)
endif
call cpu_clock_end(id_clock_varT)
Expand Down Expand Up @@ -3001,7 +3001,7 @@ subroutine initialize_MOM(Time, Time_init, param_file, dirs, CS, restart_CSp, &

new_sim = is_new_run(restart_CSp)
if (use_temperature) then
CS%use_stochastic_EOS = MOM_stoch_eos_init(Time, G, US, param_file, diag, CS%stoch_eos_CS, restart_CSp)
CS%use_stochastic_EOS = MOM_stoch_eos_init(Time, G, GV, US, param_file, diag, CS%stoch_eos_CS, restart_CSp)
else
CS%use_stochastic_EOS = .false.
endif
Expand Down
34 changes: 19 additions & 15 deletions src/core/MOM_isopycnal_slopes.F90
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ subroutine calc_isoneutral_slopes(G, GV, US, h, e, tv, dt_kappa_smooth, use_stan
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)+1), intent(in) :: e !< Interface heights [Z ~> m]
type(thermo_var_ptrs), intent(in) :: tv !< A structure pointing to various
!! thermodynamic variables
real, intent(in) :: dt_kappa_smooth !< A smoothing vertical diffusivity
!! times a smoothing timescale [Z2 ~> m2].
real, intent(in) :: dt_kappa_smooth !< A smoothing vertical
!! diffusivity times a smoothing
!! timescale [H Z ~> m2 or kg m-1]
logical, intent(in) :: use_stanley !< turn on stanley param in slope
real, dimension(SZIB_(G),SZJ_(G),SZK_(GV)+1), intent(inout) :: slope_x !< Isopycnal slope in i-dir [Z L-1 ~> nondim]
real, dimension(SZI_(G),SZJB_(G),SZK_(GV)+1), intent(inout) :: slope_y !< Isopycnal slope in j-dir [Z L-1 ~> nondim]
Expand Down Expand Up @@ -142,7 +143,7 @@ subroutine calc_isoneutral_slopes(G, GV, US, h, e, tv, dt_kappa_smooth, use_stan


h_neglect = GV%H_subroundoff ; h_neglect2 = h_neglect**2
dz_neglect = GV%H_subroundoff * GV%H_to_Z
dz_neglect = GV%dZ_subroundoff

local_open_u_BC = .false.
local_open_v_BC = .false.
Expand Down Expand Up @@ -195,9 +196,9 @@ subroutine calc_isoneutral_slopes(G, GV, US, h, e, tv, dt_kappa_smooth, use_stan

if (use_EOS) then
if (present(halo)) then
call vert_fill_TS(h, tv%T, tv%S, dt_kappa_smooth, T, S, G, GV, halo+1)
call vert_fill_TS(h, tv%T, tv%S, dt_kappa_smooth, T, S, G, GV, US, halo+1)
else
call vert_fill_TS(h, tv%T, tv%S, dt_kappa_smooth, T, S, G, GV, 1)
call vert_fill_TS(h, tv%T, tv%S, dt_kappa_smooth, T, S, G, GV, US, 1)
endif
endif

Expand Down Expand Up @@ -341,9 +342,10 @@ subroutine calc_isoneutral_slopes(G, GV, US, h, e, tv, dt_kappa_smooth, use_stan
slope = slope * max(g%mask2dT(i,j),g%mask2dT(i+1,j))
endif
slope_x(I,j,K) = slope
if (present(dzSxN)) dzSxN(I,j,K) = sqrt( G_Rho0 * max(0., wtL * ( dzaL * drdkL ) &
+ wtR * ( dzaR * drdkR )) / (wtL + wtR) ) & ! dz * N
* abs(slope) * G%mask2dCu(I,j) ! x-direction contribution to S^2
if (present(dzSxN)) &
dzSxN(I,j,K) = sqrt( G_Rho0 * max(0., wtL * ( dzaL * drdkL ) &
+ wtR * ( dzaR * drdkR )) / (wtL + wtR) ) & ! dz * N
* abs(slope) * G%mask2dCu(I,j) ! x-direction contribution to S^2

enddo ! I
enddo ; enddo ! end of j-loop
Expand Down Expand Up @@ -477,9 +479,10 @@ subroutine calc_isoneutral_slopes(G, GV, US, h, e, tv, dt_kappa_smooth, use_stan
slope = slope * max(g%mask2dT(i,j),g%mask2dT(i,j+1))
endif
slope_y(i,J,K) = slope
if (present(dzSyN)) dzSyN(i,J,K) = sqrt( G_Rho0 * max(0., wtL * ( dzaL * drdkL ) &
+ wtR * ( dzaR * drdkR )) / (wtL + wtR) ) & ! dz * N
* abs(slope) * G%mask2dCv(i,J) ! x-direction contribution to S^2
if (present(dzSyN)) &
dzSyN(i,J,K) = sqrt( G_Rho0 * max(0., wtL * ( dzaL * drdkL ) &
+ wtR * ( dzaR * drdkR )) / (wtL + wtR) ) & ! dz * N
* abs(slope) * G%mask2dCv(i,J) ! x-direction contribution to S^2

enddo ! i
enddo ; enddo ! end of j-loop
Expand All @@ -488,14 +491,15 @@ end subroutine calc_isoneutral_slopes

!> Returns tracer arrays (nominally T and S) with massless layers filled with
!! sensible values, by diffusing vertically with a small but constant diffusivity.
subroutine vert_fill_TS(h, T_in, S_in, kappa_dt, T_f, S_f, G, GV, halo_here, larger_h_denom)
subroutine vert_fill_TS(h, T_in, S_in, kappa_dt, T_f, S_f, G, GV, US, halo_here, larger_h_denom)
type(ocean_grid_type), intent(in) :: G !< The ocean's grid structure
type(verticalGrid_type), intent(in) :: GV !< The ocean's vertical grid structure
type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(in) :: h !< Layer thicknesses [H ~> m or kg m-2]
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(in) :: T_in !< Input temperature [C ~> degC]
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(in) :: S_in !< Input salinity [S ~> ppt]
real, intent(in) :: kappa_dt !< A vertical diffusivity to use for smoothing
!! times a smoothing timescale [Z2 ~> m2].
!! times a smoothing timescale [H Z ~> m2 or kg m-1]
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(out) :: T_f !< Filled temperature [C ~> degC]
real, dimension(SZI_(G),SZJ_(G),SZK_(GV)), intent(out) :: S_f !< Filled salinity [S ~> ppt]
integer, optional, intent(in) :: halo_here !< Number of halo points to work on,
Expand Down Expand Up @@ -525,10 +529,10 @@ subroutine vert_fill_TS(h, T_in, S_in, kappa_dt, T_f, S_f, G, GV, halo_here, lar
is = G%isc-halo ; ie = G%iec+halo ; js = G%jsc-halo ; je = G%jec+halo ; nz = GV%ke

h_neglect = GV%H_subroundoff
kap_dt_x2 = (2.0*kappa_dt)*GV%Z_to_H**2
kap_dt_x2 = (2.0*kappa_dt) * (US%Z_to_m*GV%m_to_H) ! Usually the latter term is GV%Z_to_H.
h0 = h_neglect
if (present(larger_h_denom)) then
if (larger_h_denom) h0 = 1.0e-16*sqrt(kappa_dt)*GV%Z_to_H
if (larger_h_denom) h0 = 1.0e-16*sqrt(0.5*kap_dt_x2)
endif

if (kap_dt_x2 <= 0.0) then
Expand Down
12 changes: 7 additions & 5 deletions src/core/MOM_stoch_eos.F90
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ module MOM_stoch_eos
real :: stanley_coeff !< Coefficient correlating the temperature gradient
!! and SGS T variance [nondim]; if <0, turn off scheme in all codes
real :: stanley_a !< a in exp(aX) in stochastic coefficient [nondim]
real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers [Z2 T-1 ~> m2 s-1]
real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers [H Z T-1 ~> m2 s-1 or kg m-1 s-1]

!>@{ Diagnostic IDs
integer :: id_stoch_eos = -1, id_stoch_phi = -1, id_tvar_sgs = -1
Expand All @@ -51,9 +51,10 @@ module MOM_stoch_eos
contains

!> Initializes MOM_stoch_eos module, returning a logical indicating whether this module will be used.
logical function MOM_stoch_eos_init(Time, G, US, param_file, diag, CS, restart_CS)
logical function MOM_stoch_eos_init(Time, G, GV, US, param_file, diag, CS, restart_CS)
type(time_type), intent(in) :: Time !< Time for stochastic process
type(ocean_grid_type), intent(in) :: G !< The ocean's grid structure.
type(verticalGrid_type), intent(in) :: GV !< Vertical grid structure
type(unit_scale_type), intent(in) :: US !< A dimensional unit scaling type
type(param_file_type), intent(in) :: param_file !< structure indicating parameter file to parse
type(diag_ctrl), target, intent(inout) :: diag !< Structure used to control diagnostics
Expand All @@ -80,7 +81,7 @@ logical function MOM_stoch_eos_init(Time, G, US, param_file, diag, CS, restart_C
call get_param(param_file, "MOM_stoch_eos", "KD_SMOOTH", CS%kappa_smooth, &
"A diapycnal diffusivity that is used to interpolate "//&
"more sensible values of T & S into thin layers.", &
units="m2 s-1", default=1.0e-6, scale=US%m_to_Z**2*US%T_to_s, &
units="m2 s-1", default=1.0e-6, scale=GV%m2_s_to_HZ_T, &
do_not_log=(CS%stanley_coeff<0.0))

! Don't run anything if STANLEY_COEFF < 0
Expand Down Expand Up @@ -193,9 +194,10 @@ subroutine post_stoch_EOS_diags(CS, tv, diag)
end subroutine post_stoch_EOS_diags

!> Computes a parameterization of the SGS temperature variance
subroutine MOM_calc_varT(G, GV, h, tv, CS, dt)
subroutine MOM_calc_varT(G, GV, US, h, tv, CS, dt)
type(ocean_grid_type), intent(in) :: G !< The ocean's 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 [H ~> m]
type(thermo_var_ptrs), intent(inout) :: tv !< Thermodynamics structure
Expand All @@ -219,7 +221,7 @@ subroutine MOM_calc_varT(G, GV, h, tv, CS, dt)
! extreme gradients along layers which are vanished against topography. It is
! still a poor approximation in the interior when coordinates are strongly tilted.
if (.not. associated(tv%varT)) allocate(tv%varT(G%isd:G%ied, G%jsd:G%jed, GV%ke), source=0.0)
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_smooth*dt, T, S, G, GV, halo_here=1, larger_h_denom=.true.)
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_smooth*dt, T, S, G, GV, US, halo_here=1, larger_h_denom=.true.)

do k=1,G%ke
do j=G%jsc,G%jec
Expand Down
3 changes: 2 additions & 1 deletion src/parameterizations/lateral/MOM_MEKE.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1577,7 +1577,8 @@ subroutine ML_MEKE_calculate_features(G, GV, US, CS, Rd_dx_h, u, v, tv, h, dt, f
h_v(i,J,k) = 0.5*(h(i,j,k)*G%mask2dT(i,j) + h(i,j+1,k)*G%mask2dT(i,j+1)) + GV%Angstrom_H
enddo; enddo; enddo;
call find_eta(h, tv, G, GV, US, e, halo_size=2)
call calc_isoneutral_slopes(G, GV, US, h, e, tv, dt*1.e-7, .false., slope_x, slope_y)
! Note the hard-coded dimenisional constant in the following line.
call calc_isoneutral_slopes(G, GV, US, h, e, tv, dt*1.e-7*GV%m2_s_to_HZ_T, .false., slope_x, slope_y)
call pass_vector(slope_x, slope_y, G%Domain)
do j=js-1,je+1; do i=is-1,ie+1
slope_x_vert_avg(I,j) = vertical_average_interface(slope_x(i,j,:), h_u(i,j,:), GV%H_subroundoff)
Expand Down
4 changes: 2 additions & 2 deletions src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ module MOM_lateral_mixing_coeffs
!! F = 1 / (1 + (Res_coef_visc*Ld/dx)^Res_fn_power)
real :: depth_scaled_khth_h0 !< The depth above which KHTH is linearly scaled away [Z ~> m]
real :: depth_scaled_khth_exp !< The exponent used in the depth dependent scaling function for KHTH [nondim]
real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers [Z2 T-1 ~> m2 s-1]
real :: kappa_smooth !< A diffusivity for smoothing T/S in vanished layers [H Z T-1 ~> m2 s-1 or kg m-1 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.
Expand Down Expand Up @@ -1264,7 +1264,7 @@ subroutine VarMix_init(Time, G, GV, US, param_file, diag, CS)
call get_param(param_file, mdl, "KD_SMOOTH", CS%kappa_smooth, &
"A diapycnal diffusivity that is used to interpolate "//&
"more sensible values of T & S into thin layers.", &
units="m2 s-1", default=1.0e-6, scale=US%m_to_Z**2*US%T_to_s)
units="m2 s-1", default=1.0e-6, scale=GV%m2_s_to_HZ_T)
endif

if (CS%calculate_Eady_growth_rate) then
Expand Down
10 changes: 5 additions & 5 deletions src/parameterizations/lateral/MOM_thickness_diffuse.F90
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ module MOM_thickness_diffuse
real :: Kh_eta_bg !< Background isopycnal height diffusivity [L2 T-1 ~> m2 s-1]
real :: Kh_eta_vel !< Velocity scale that is multiplied by the grid spacing to give
!! the isopycnal height diffusivity [L T-1 ~> m s-1]
real :: slope_max !< Slopes steeper than slope_max are limited in some way [Z L-1 ~> nondim].
real :: kappa_smooth !< Vertical diffusivity used to interpolate more
!! sensible values of T & S into thin layers [Z2 T-1 ~> m2 s-1].
real :: slope_max !< Slopes steeper than slope_max are limited in some way [Z L-1 ~> nondim]
real :: kappa_smooth !< Vertical diffusivity used to interpolate more sensible values
!! of T & S into thin layers [H Z T-1 ~> m2 s-1 or kg m-1 s-1]
logical :: thickness_diffuse !< If true, interfaces heights are diffused.
logical :: use_FGNV_streamfn !< If true, use the streamfunction formulation of
!! Ferrari et al., 2010, which effectively emphasizes
Expand Down Expand Up @@ -776,7 +776,7 @@ subroutine thickness_diffuse_full(h, e, Kh_u, Kh_v, tv, uhD, vhD, cg1, dt, G, GV

if (use_EOS) then
halo = 1 ! Default halo to fill is 1
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_smooth*dt, T, S, G, GV, halo, larger_h_denom=.true.)
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_smooth*dt, T, S, G, GV, US, halo, larger_h_denom=.true.)
endif

if (CS%use_FGNV_streamfn .and. .not. associated(cg1)) call MOM_error(FATAL, &
Expand Down Expand Up @@ -2087,7 +2087,7 @@ subroutine thickness_diffuse_init(Time, G, GV, US, param_file, diag, CDp, CS)
call get_param(param_file, mdl, "KD_SMOOTH", CS%kappa_smooth, &
"A diapycnal diffusivity that is used to interpolate "//&
"more sensible values of T & S into thin layers.", &
units="m2 s-1", default=1.0e-6, scale=US%m_to_Z**2*US%T_to_s)
units="m2 s-1", default=1.0e-6, scale=GV%m2_s_to_HZ_T)
call get_param(param_file, mdl, "KHTH_USE_FGNV_STREAMFUNCTION", CS%use_FGNV_streamfn, &
"If true, use the streamfunction formulation of "//&
"Ferrari et al., 2010, which effectively emphasizes "//&
Expand Down
6 changes: 3 additions & 3 deletions src/parameterizations/vertical/MOM_internal_tide_input.F90
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ module MOM_int_tide_input
real :: TKE_itide_max !< Maximum Internal tide conversion
!! available to mix above the BBL [R Z3 T-3 ~> W m-2]
real :: kappa_fill !< Vertical diffusivity used to interpolate sensible values
!! of T & S into thin layers [Z2 T-1 ~> m2 s-1].
!! of T & S into thin layers [H Z T-1 ~> m2 s-1 or kg m-1 s-1]

real, allocatable, dimension(:,:) :: TKE_itidal_coef
!< The time-invariant field that enters the TKE_itidal input calculation [R Z3 T-2 ~> J m-2].
Expand Down Expand Up @@ -118,7 +118,7 @@ subroutine set_int_tide_input(u, v, h, tv, fluxes, itide, dt, G, GV, US, CS)

! Smooth the properties through massless layers.
if (use_EOS) then
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_fill*dt, T_f, S_f, G, GV, larger_h_denom=.true.)
call vert_fill_TS(h, tv%T, tv%S, CS%kappa_fill*dt, T_f, S_f, G, GV, US, larger_h_denom=.true.)
endif

call find_N2_bottom(h, tv, T_f, S_f, itide%h2, fluxes, G, GV, US, N2_bot)
Expand Down Expand Up @@ -352,7 +352,7 @@ subroutine int_tide_input_init(Time, G, GV, US, param_file, diag, CS, itide)
call get_param(param_file, mdl, "KD_SMOOTH", CS%kappa_fill, &
"A diapycnal diffusivity that is used to interpolate "//&
"more sensible values of T & S into thin layers.", &
units="m2 s-1", default=1.0e-6, scale=US%m2_s_to_Z2_T)
units="m2 s-1", default=1.0e-6, scale=GV%m2_s_to_HZ_T)

call get_param(param_file, mdl, "UTIDE", utide, &
"The constant tidal amplitude used with INT_TIDE_DISSIPATION.", &
Expand Down
12 changes: 6 additions & 6 deletions src/parameterizations/vertical/MOM_set_diffusivity.F90
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ module MOM_set_diffusivity
real :: Kd_add !< uniform diffusivity added everywhere without
!! filtering or scaling [Z2 T-1 ~> m2 s-1].
real :: Kd_smooth !< Vertical diffusivity used to interpolate more
!! sensible values of T & S into thin layers [Z2 T-1 ~> m2 s-1].
!! sensible values of T & S into thin layers [H Z T-1 ~> m2 s-1 or kg m-1 s-1]
type(diag_ctrl), pointer :: diag => NULL() !< structure to regulate diagnostic output timing

logical :: limit_dissipation !< If enabled, dissipation is limited to be larger
Expand Down Expand Up @@ -274,7 +274,7 @@ subroutine set_diffusivity(u, v, h, u_h, v_h, tv, fluxes, optics, visc, dt, Kd_i

integer :: i, j, k, is, ie, js, je, nz, isd, ied, jsd, jed

real :: kappa_dt_fill ! diffusivity times a timestep used to fill massless layers [Z2 ~> m2]
real :: kappa_dt_fill ! diffusivity times a timestep used to fill massless layers [H Z ~> m2 or kg m-1]

is = G%isc ; ie = G%iec ; js = G%jsc ; je = G%jec ; nz = GV%ke
isd = G%isd ; ied = G%ied ; jsd = G%jsd ; jed = G%jed
Expand All @@ -289,7 +289,7 @@ subroutine set_diffusivity(u, v, h, u_h, v_h, tv, fluxes, optics, visc, dt, Kd_i

if (CS%answer_date < 20190101) then
! These hard-coded dimensional parameters are being replaced.
kappa_dt_fill = US%m_to_Z**2 * 1.e-3 * 7200.
kappa_dt_fill = 1.e-3*GV%m2_s_to_HZ_T * 7200.*US%s_to_T
else
kappa_dt_fill = CS%Kd_smooth * dt
endif
Expand Down Expand Up @@ -340,7 +340,7 @@ subroutine set_diffusivity(u, v, h, u_h, v_h, tv, fluxes, optics, visc, dt, Kd_i
call cpu_clock_begin(id_clock_kappaShear)
if (CS%Vertex_shear) then
call full_convection(G, GV, US, h, tv, T_f, S_f, fluxes%p_surf, &
(GV%Z_to_H**2)*kappa_dt_fill, halo=1)
GV%Z_to_H*kappa_dt_fill, halo=1)

call calc_kappa_shear_vertex(u, v, h, T_f, S_f, tv, fluxes%p_surf, visc%Kd_shear, &
visc%TKE_turb, visc%Kv_shear_Bu, dt, G, GV, US, CS%kappaShear_CSp)
Expand Down Expand Up @@ -380,7 +380,7 @@ subroutine set_diffusivity(u, v, h, u_h, v_h, tv, fluxes, optics, visc, dt, Kd_i
call hchksum(tv%S, "before vert_fill_TS tv%S", G%HI, scale=US%S_to_ppt)
call hchksum(h, "before vert_fill_TS h",G%HI, scale=GV%H_to_m)
endif
call vert_fill_TS(h, tv%T, tv%S, kappa_dt_fill, T_f, S_f, G, GV, larger_h_denom=.true.)
call vert_fill_TS(h, tv%T, tv%S, kappa_dt_fill, T_f, S_f, G, GV, US, larger_h_denom=.true.)
if (CS%debug) then
call hchksum(tv%T, "after vert_fill_TS tv%T", G%HI, scale=US%C_to_degC)
call hchksum(tv%S, "after vert_fill_TS tv%S", G%HI, scale=US%S_to_ppt)
Expand Down Expand Up @@ -2211,7 +2211,7 @@ subroutine set_diffusivity_init(Time, G, GV, US, param_file, diag, CS, int_tide_
call get_param(param_file, mdl, "KD_SMOOTH", CS%Kd_smooth, &
"A diapycnal diffusivity that is used to interpolate "//&
"more sensible values of T & S into thin layers.", &
units="m2 s-1", default=1.0e-6, scale=US%m2_s_to_Z2_T)
units="m2 s-1", default=1.0e-6, scale=GV%m2_s_to_HZ_T)

call get_param(param_file, mdl, "DEBUG", CS%debug, &
"If true, write out verbose debugging data.", &
Expand Down

0 comments on commit 3b6c495

Please sign in to comment.