Skip to content

Commit

Permalink
Added modified mixed layer restratification parameterization (Bodner …
Browse files Browse the repository at this point in the history
…et al., 2023). Time-filtering of mixed layer variables are now also available for the current mixed layer restratification parameterization (Fox-Kemper et al., 2008).
  • Loading branch information
matsbn committed Apr 21, 2024
1 parent 178839e commit 2cfaacc
Show file tree
Hide file tree
Showing 11 changed files with 592 additions and 127 deletions.
136 changes: 124 additions & 12 deletions cime_config/namelist_definition_blom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,130 @@
<desc>Method of applying eddy-induced transport in the remap</desc>
</entry>

<entry id="mlrmth">
<type>char</type>
<category>limits</category>
<group>limits</group>
<values>
<value>fox08</value>
</values>
<desc>Mixed layer restratification method</desc>
</entry>

<entry id="ce">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>.06</value>
<value ocn_grid="tnx1v4" blom_vcoord="isopyc_bulkml" ocn_ncpl="24">.5</value>
<value ocn_grid="tnx0.25v4" blom_vcoord="isopyc_bulkml">1.0</value>
</values>
<desc>Efficiency factor for the restratification by mixed layer</desc>
</entry>

<entry id="cl">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>.25</value>
</values>
<desc>Scaling of the efficiency factor for the restratification by mixed layer eddies (Bodner et al., 2023)</desc>
</entry>

<entry id="tau_mlr">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>86400.</value>
</values>
<desc>Timescale for momentum mixing across mixed layer</desc>
</entry>

<entry id="tau_growing_hbl">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>300.</value>
</values>
<desc>Time-scale for running mean filter when signal is greater than filtered value (used for boundary layer thickness and vertical momentum flux)</desc>
</entry>

<entry id="tau_decaying_hbl">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>86400.</value>
</values>
<desc>Time-scale for running mean filter when signal is less than filtered value (used for boundary layer thickness and vertical momentum flux)</desc>
</entry>

<entry id="tau_growing_hml">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>3600.</value>
</values>
<desc>Time-scale for running mean filter when signal is greater than filtered value (used for mixed layer thickness)</desc>
</entry>

<entry id="tau_decaying_hml">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>259200.</value>
</values>
<desc>Time-scale for running mean filter when signal is less than filtered value (used for mixed layer thickness)</desc>
</entry>

<entry id="lfmin">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>5000.</value>
<value blom_unit="cgs">5000.e2</value>
</values>
<desc>Minimum length scale of mixed layer fronts</desc>
</entry>

<entry id="mstar">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>.5</value>
</values>
<desc>Scaling of boundary layer turbulence due to friction velocity (Bodner et al., 2023)</desc>
</entry>

<entry id="nstar">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>.066</value>
</values>
<desc>Scaling of boundary layer turbulence due to convective velocity (Bodner et al., 2023)</desc>
</entry>

<entry id="wpup_min">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>1.e-7</value>
<value blom_unit="cgs">1.e-3</value>
</values>
<desc>Minimum vertical momentum flux (Bodner et al., 2023)</desc>
</entry>

<entry id="mlrttp">
<type>char</type>
<category>limits</category>
Expand Down Expand Up @@ -411,18 +535,6 @@
<desc>Efficiency factor of TKE generation by momentum</desc>
</entry>

<entry id="ce">
<type>real</type>
<category>limits</category>
<group>limits</group>
<values>
<value>.06</value>
<value ocn_grid="tnx1v4" blom_vcoord="isopyc_bulkml" ocn_ncpl="24">.5</value>
<value ocn_grid="tnx0.25v4" blom_vcoord="isopyc_bulkml">1.0</value>
</values>
<desc>Efficiency factor for the restratification by mixed layer</desc>
</entry>

<entry id="tdfile" is_inputdata="yes">
<type>char</type>
<category>limits</category>
Expand Down
30 changes: 26 additions & 4 deletions cime_config/ocn_in.readme
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,38 @@
! column) (a)
! RMPMTH : Method of applying eddy-induced transport in the remap
! transport algorithm. Valid methods: 'eitvel', 'eitflx' (a)
! MLRMTH : Mixed layer restratification method. Valid methods: 'none',
! 'fox08','bod23' (a)
! CE : Efficiency factor for the restratification by mixed layer
! eddies (Fox-Kemper et al., 2008) () (f)
! CL : Scaling of the efficiency factor for the restratification
! by mixed layer eddies (Bodner et al., 2023) () (f)
! TAU_MLR : Timescale for momentum mixing across mixed layer (s) (f).
! TAU_GROWING_HBL : Time-scale for running mean filter when signal is
! greater than filtered value (used for boundary
! layer thickness and vertical momentum flux) (s) (f)
! TAU_DECAYING_HBL : Time-scale for running mean filter when signal is
! less than filtered value (used for boundary layer
! thickness and vertical momentum flux) (s) (f)
! TAU_GROWING_HML : Time-scale for running mean filter when signal is
! greater than filtered value (used for mixed layer
! thickness) (s) (f)
! TAU_DECAYING_HML : Time-scale for running mean filter when signal is
! less than filtered value (used for mixed layer
! thickness) (s) (f)
! LFMIN : Minimum length scale of mixed layer fronts (cm) (f)
! MSTAR : Scaling of boundary layer turbulence due to friction
! velocity (Bodner et al., 2023) () (f)
! NSTAR : Scaling of boundary layer turbulence due to convective
! velocity (Bodner et al., 2023) () (f)
! WPUP_MIN : Minimum vertical momentum flux (Bodner et al., 2023)
! (cm**2/s**2) (f)
! MLRTTP : Type of mixed layer restratification time scale. Valid
! types: 'variable', 'constant', 'limited' (a)
! RM0 : Efficiency factor of wind TKE generation in the Oberhuber
! (1993) TKE closure () (f)
! RM5 : Efficiency factor of TKE generation by momentum
! entrainment in the Oberhuber (1993) TKE closure () (f)
! CE : Efficiency factor for the restratification by mixed layer
! eddies (Fox-Kemper et al., 2008) () (f)
! TDFILE : Name of file containing tidal wave energy dissipation
! divided by by bottom buoyancy frequency (a)
! NIWGF : Global factor applied to the energy input by near-intertial
Expand Down Expand Up @@ -101,8 +125,6 @@
! EDWMTH : Method to estimate eddy diffusivity weight as a function of
! the ration of Rossby radius of deformation to the
! horizontal grid spacing. Valid methods: 'smooth', 'step' (a)
! MLRTTP : Type of mixed layer restratification time scale. Valid
! types: 'variable', 'constant', 'limited' (a)
! EDDF2D : If true, eddy diffusivity has a 2d structure (l)
! EDSPRS : Apply eddy mixing suppression away from steering level (l)
! EGC : Parameter c in Eden and Greatbatch (2008) parameterization (f)
Expand Down
3 changes: 3 additions & 0 deletions phy/iniphy.F
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ subroutine iniphy
use mod_vcoord, only: vcoord_type_tag, cntiso_hybrid
use mod_tidaldissip, only: read_tidaldissip
use mod_difest, only: init_difest
use mod_eddtra, only: init_eddtra
c
implicit none
c
Expand All @@ -50,6 +51,8 @@ subroutine iniphy
if (vcoord_type_tag == cntiso_hybrid) then
call init_difest
endif
c
call init_eddtra
c
return
end
2 changes: 2 additions & 0 deletions phy/inivar.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ subroutine inivar
use mod_tmsmt, only: inivar_tmsmt
use mod_diffusion, only: inivar_diffusion
use mod_difest, only: inivar_difest
use mod_eddtra, only: inivar_eddtra
use mod_utility, only: inivar_utility
use mod_mxlayr, only: inivar_mxlayr
use mod_seaice, only: inivar_seaice
Expand Down Expand Up @@ -59,6 +60,7 @@ subroutine inivar
call inivar_tmsmt
call inivar_diffusion
call inivar_difest
call inivar_eddtra
call inivar_utility
call inivar_mxlayr
call inivar_seaice
Expand Down
8 changes: 6 additions & 2 deletions phy/mod_difest.F
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ module mod_difest
use mod_cmnfld, only: bfsqi, nnslpx, nnslpy, mlts
use mod_forcing, only: wavsrc_opt, wavsrc_param,
. abswnd, lamult, lasl,
. ustar, ustarb, ustar3,
. ustar, ustarb, ustar3, wstar3,
. buoyfl, t_sw_nonloc, surflx, sswflx, salflx
use mod_tidaldissip, only: twedon
use mod_niw, only: niwgf, niwbf, niwlf, idkedt, niw_ke_tendency
Expand Down Expand Up @@ -113,7 +113,8 @@ module mod_difest
. iL_mks2cgs = 1./L_mks2cgs,
. iM_mks2cgs = 1./M_mks2cgs,
. A_mks2cgs = L_mks2cgs**2,
. A_cgs2mks = 1./(L_mks2cgs*L_mks2cgs)
. A_cgs2mks = 1./(L_mks2cgs*L_mks2cgs),
. V_mks2cgs = L_mks2cgs**3
c
c --- parameters:
c --- iidtyp - type of interface and isopycnal diffusivities. If
Expand Down Expand Up @@ -1366,6 +1367,9 @@ subroutine difest_vertical_hyb(m,n,mm,nn,k1m,k1n)
t_sw_nonloc(i,j,k) = max(t_sw_nonloc(i,j,k),
. nonLocalTrans(k,1))
enddo
c
c --- ------ Compute convective velocity cubed [cm3 s-3].
wstar3(i,j) = max(0.,-surfBuoyFlux)*OBLdepth(i,j)*V_mks2cgs

enddo
enddo
Expand Down
Loading

0 comments on commit 2cfaacc

Please sign in to comment.