CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
module_sf_mynn Module Reference

This module contain routines to calculate stability parameters, kinematic siscosity in MYNN surface layer scheme.

Functions/Subroutines

subroutine sfclay_mynn (u3d, v3d, t3d, qv3d, p3d, dz8w, th3d, pi3d, qc3d, psfcpa, pblh, mavail, xland, dx, isfflx, isftcflx, lsm, lsm_ruc, compute_flux, compute_diag, iz0tlnd, psi_opt, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, redrag, sfc_z0_type, itimestep, iter, flag_iter, flag_restart, wet, dry, icy, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, qsfc_wat, qsfc_lnd, qsfc_ice, snowh_wat, snowh_lnd, snowh_ice, znt_wat, znt_lnd, znt_ice, ust_wat, ust_lnd, ust_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, fm_wat, fm_lnd, fm_ice, fh_wat, fh_lnd, fh_ice, fm10_wat, fm10_lnd, fm10_ice, fh2_wat, fh2_lnd, fh2_ice, hflx_wat, hflx_lnd, hflx_ice, qflx_wat, qflx_lnd, qflx_ice, ch, chs, chs2, cqs2, cpm, znt, ustm, zol, mol, rmol, psim, psih, hflx, hfx, qflx, qfx, lh, flhc, flqc, qgh, qsfc, u10, v10, th2, t2, q2, gz1oz0, wspd, wstar, spp_sfc, pattern_spp_sfc, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte, errmsg, errflg)
 This subroutine.
 
subroutine sfclay1d_mynn (flag_iter, j, u1d, v1d, t1d, qv1d, p1d, dz8w1d, u1d2, v1d2, dz2w1d, psfcpa, pblh, mavail, xland, dx, isfflx, isftcflx, iz0tlnd, psi_opt, compute_flux, compute_diag, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, redrag, sfc_z0_type, itimestep, iter, flag_restart, lsm, lsm_ruc, wet, dry, icy, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, qsfc_wat, qsfc_lnd, qsfc_ice, snowh_wat, snowh_lnd, snowh_ice, znt_wat, znt_lnd, znt_ice, ust_wat, ust_lnd, ust_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, psix_wat, psix_lnd, psix_ice, psit_wat, psit_lnd, psit_ice, psix10_wat, psix10_lnd, psix10_ice, psit2_wat, psit2_lnd, psit2_ice, hflx_wat, hflx_lnd, hflx_ice, qflx_wat, qflx_lnd, qflx_ice, ch, chs, chs2, cqs2, cpm, znt, ustm, zol, mol, rmol, psim, psih, hflx, hfx, qflx, qfx, lh, flhc, flqc, qgh, qsfc, u10, v10, th2, t2, q2, gz1oz0, wspd, wstar, qstar, spp_sfc, rstoch1d, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte, errmsg, errflg)
 This subroutine calculates u*, z/L, and the exchange coefficients which are passed to subsequent scheme to calculate the fluxes. This scheme has options to calculate the fluxes and near-surface diagnostics, as was needed in WRF, but these are skipped for FV3.
 
subroutine zilitinkevich_1995 (z_0, zt, zq, restar, ustar, karman, landsea, iz0tlnd2, spp_sfc, rstoch)
 This subroutine returns the thermal and moisture roughness lengths from Zilitinkevich (1995) and Zilitinkevich et al. (2001) over land and water, respectively.
 
subroutine davis_etal_2008 (z_0, ustar)
 
subroutine taylor_yelland_2001 (z_0, ustar, wsp10)
 This formulation for roughness length was designed account for. wave steepness.
 
subroutine charnock_1955 (z_0, ustar, wsp10, visc, zu)
 This version of Charnock's relation employs a varying Charnock parameter, similar to COARE3.0 [Fairall et al. (2003)]. The Charnock parameter CZC is varied from .011 to .018. between 10-m wsp = 10 and 18..
 
subroutine edson_etal_2013 (z_0, ustar, wsp10, visc, zu)
 This version of Charnock's relation employs a varying Charnock parameter, taken from COARE 3.5 [Edson et al. (2001, JPO)]. The Charnock parameter CZC is varied from about .005 to .028 between 10-m wind speeds of 6 and 19 m/s.
 
subroutine garratt_1992 (zt, zq, z_0, ren, landsea)
 This formulation for the thermal and moisture roughness lengths (Zt and Zq) relates them to Z0 via the roughness Reynolds number (Ren). This formula comes from Fairall et al. (2003). It is modified from the original Garratt-Brutsaert model to better fit the COARE/HEXMAX data. The formula for land uses a constant ratio (Z_0/7.4) taken from Garratt (1992).
 
subroutine fairall_etal_2003 (zt, zq, ren, ustar, visc, rstoch, spp_sfc)
 This formulation for thermal and moisture roughness length (Zt and Zq) as a function of the roughness Reynolds number (Ren) comes from the COARE3.0 formulation, empirically derived from COARE and HEXMAX data [Fairall et al. (2003)]. Edson et al. (2004; JGR) suspected that this relationship overestimated the scalar roughness lengths for low Reynolds number flows, so an optional smooth flow relationship, taken from Garratt (1992, p. 102), is available for flows with Ren < 2.
 
subroutine fairall_etal_2014 (zt, zq, ren, ustar, visc, rstoch, spp_sfc)
 This formulation for thermal and moisture roughness length (Zt and Zq) as a function of the roughness Reynolds number (Ren) comes from the COARE 3.5/4.0 formulation, empirically derived from COARE and HEXMAX data The actual reference is unknown. This was passed along by Jim Edson (personal communication). This is for use over water only, preferably open ocean.
 
subroutine yang_2008 (z_0, zt, zq, ustar, tstar, qst, ren, visc)
 This is a modified version of Yang et al (2002 QJRMS, 2008 JAMC) and Chen et al (2010, J of Hydromet). Although it was originally designed for arid regions with bare soil, it is modified here to perform over a broader spectrum of vegetation.
 
subroutine gfs_z0_lnd (z0max, shdmax, z1, vegtype, ivegsrc, z0pert)
 
subroutine gfs_zt_lnd (ztmax, z0max, sigmaf, ztpert, ustar_lnd)
 
subroutine gfs_z0_wat (z0rl_wat, ustar_wat, wspd, z1, sfc_z0_type, redrag)
 
subroutine gfs_zt_wat (ztmax, z0rl_wat, restar, wspd, z1, sfc_z0_type, device_errmsg, device_errflg)
 
subroutine znot_m_v6 (uref, znotm)
 add fitted z0,zt curves for hurricane application (used in HWRF/HMON) Weiguo Wang, 2019-0425
 
subroutine znot_t_v6 (uref, znott)
 Calculate scalar roughness over water with input 10-m wind For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF.
 
subroutine znot_m_v7 (uref, znotm)
 Calculate areodynamical roughness over water with input 10-m wind For low-to-moderate winds, try to match the Cd-U10 relationship from COARE V3.5 (Edson et al. 2013) For high winds, try to fit available observational data Comparing to znot_t_v6, slightly decrease Cd for higher wind speed.
 
subroutine znot_t_v7 (uref, znott)
 Calculate scalar roughness over water with input 10-m wind For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF To be compatible with the slightly decreased Cd for higher wind speed.
 
subroutine andreas_2002 (z_0, bvisc, ustar, zt, zq)
 This is taken from Andreas (2002; J. of Hydromet) and Andreas et al. (2005; BLM).
 
subroutine psi_hogstrom_1996 (psi_m, psi_h, zl, zt, z_0, za)
 This subroutine returns the stability functions based off of Hogstrom (1996).
 
subroutine psi_dyerhicks (psi_m, psi_h, zl, zt, z_0, za)
 This subroutine returns the stability functions based off of Hogstrom (1996), but with different constants compatible with Dyer and Hicks (1970/74?). This formulation is used for testing/development by Nakanishi (personal communication).
 
subroutine psi_beljaars_holtslag_1991 (psi_m, psi_h, zl)
 This subroutine returns the stability functions based off of Beljaar and Holtslag 1991, which is an extension of Holtslag and Debruin 1989.
 
subroutine psi_zilitinkevich_esau_2007 (psi_m, psi_h, zl)
 This subroutine returns the stability functions come from Zilitinkevich and Esau (2007, BM), which are formulatioed from the "generalized similarity theory" and tuned to the LES DATABASE64 to determine their dependence on z/L.
 
subroutine psi_businger_1971 (psi_m, psi_h, zl)
 This subroutine returns the flux-profile relationships of Businger el al. 1971.
 
subroutine psi_suselj_sood_2010 (psi_m, psi_h, zl)
 This subroutine returns flux-profile relatioships based off of Lobocki (1993), which is derived from the MY-level 2 model. Suselj and Sood (2010) applied the surface layer length scales from Nakanishi (2001) to get this new relationship. These functions are more agressive (larger magnitude) than most formulations. They showed improvement over water, but untested over land.
 
subroutine psi_cb2005 (psim1, psih1, zl, z0l)
 This subroutine returns the stability functions based off of Cheng and Brutseart (2005, BLM), for use in stable conditions only. The returned values are the combination of psi((za+zo)/L) - psi(z0/L)
 
subroutine li_etal_2010 (zl, rib, zaz0, z0zt)
 This subroutine returns a more robust z/L that best matches the z/L from Hogstrom (1996) for unstable conditions and Beljaars and Holtslag (1991) for stable conditions.
 
real(kind_phys) function zolri (ri, za, z0, zt, zol1, psi_opt)
 
real(kind_phys) function zolri2 (zol2, ri2, za, z0, zt, psi_opt)
 
real(kind_phys) function zolrib (ri, za, z0, zt, logz0, logzt, zol1, psi_opt)
 
subroutine psi_init (psi_opt, errmsg, errflg)
 
real(kind_phys) function psim_stable_full (zolf)
 
real(kind_phys) function psih_stable_full (zolf)
 
real(kind_phys) function psim_unstable_full (zolf)
 
real(kind_phys) function psih_unstable_full (zolf)
 
real(kind_phys) function psim_stable_full_gfs (zolf)
 
real(kind_phys) function psih_stable_full_gfs (zolf)
 
real(kind_phys) function psim_unstable_full_gfs (zolf)
 
real(kind_phys) function psih_unstable_full_gfs (zolf)
 
real(kind_phys) function psim_stable (zolf, psi_opt)
 look-up table functions - or, if beyond -10 < z/L < 10, recalculate
 
real(kind_phys) function psih_stable (zolf, psi_opt)
 
real(kind_phys) function psim_unstable (zolf, psi_opt)
 
real(kind_phys) function psih_unstable (zolf, psi_opt)
 

Variables

real(kind_phys), parameter ep3 = 1.-ep2
 
real(kind_phys), parameter g_inv = 1.0/grav
 
real(kind_phys), parameter rvovrd = Rv/Rd
 
real(kind_phys), parameter wmin = 0.1
 
real(kind_phys), parameter karman = 0.4
 
real(kind_phys), parameter svp1 = 0.6112
 
real(kind_phys), parameter svp2 = 17.67
 
real(kind_phys), parameter svp3 = 29.65
 
real(kind_phys), parameter svpt0 = 273.15
 
real(kind_phys), parameter vconvc = 1.25
 
real(kind_phys), parameter onethird = 1./3.
 
real(kind_phys), parameter sqrt3 = 1.7320508075688773
 
real(kind_phys), parameter atan1 = 0.785398163397
 
real(kind_phys), parameter log01 = log(0.01)
 
real(kind_phys), parameter log05 = log(0.05)
 
real(kind_phys), parameter log07 = log(0.07)
 
real(kind_phys), parameter snowz0 = 0.011
 
real(kind_phys), parameter coare_opt = 3.0
 
integer, parameter debug_code = 0
 
real(kind_phys), dimension(0:1000), save psim_stab
 
real(kind_phys), dimension(0:1000), save psim_unstab
 
real(kind_phys), dimension(0:1000), save psih_stab
 
real(kind_phys), dimension(0:1000), save psih_unstab