This module computes cloud related quantities for radiation computations.Knowledge of cloud properties and their vertical structure is important for meteorological studies due to their impact on both the Earth's radiation budget and adiabatic heating within the atmosphere. Cloud properties in the US National Oceanic and Atmospheric Administration National Centers for Environmental Prediction Global Forecast System (GFS) include (i) cloud liquid/ice water path; (ii) the fraction of clouds; (iii) effective radius of water/ice droplet: More...
Modules | |
| module | module_radiation_clouds |
| This module computes cloud related quantities for radiation computations. | |
Functions/Subroutines | |
| subroutine, public | module_radiation_clouds::cld_init (si, nlay, imp_physics, me, con_g, con_rd, errflg, errmsg) |
| This subroutine is an initialization program for cloud-radiation calculations and sets up boundary layer cloud top. | |
| subroutine, public | module_radiation_clouds::radiation_clouds_prop (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, ccnd, ncndl, cnvw, cnvc, tracer1, xlat, xlon, slmsk, dz, delp, ix, lm, nlay, nlp1, deltaq, sup, dcorr_con, me, icloud, kdt, ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, ntclamt, imp_physics, imp_physics_nssl, imp_physics_fer_hires, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_tempo, imp_physics_mg, iovr, iovr_rand, iovr_maxrand, iovr_max, iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, do_mynnedmf, lgfdlmprad, xr_cnvcld, uni_cld, lmfshal, lmfdeep2, cldcov, clouds1, effrl, effri, effrr, effrs, effr_in, effrl_inout, effri_inout, effrs_inout, lwp_ex, iwp_ex, lwp_fc, iwp_fc, dzlay, latdeg, julian, yearlen, gridkm, top_at_1, si, xr_con, xr_exp, con_ttp, con_pi, con_g, con_rd, con_thgni, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow, clds, mtop, mbot, de_lgth, alpha) |
| Subroutine radiation_clouds_prop computes cloud related quantities for different cloud microphysics schemes. | |
| subroutine, public | module_radiation_clouds::progcld_gfdl_lin (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, clw, cnvw, cnvc, xlat, xlon, slmsk, cldtot, dz, delp, ix, nlay, nlp1, dzlay, cldtot1, cldcnv, lcrick, lcnorm, con_ttp, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow) |
| This subroutine computes cloud related quantities using GFDL Lin MP prognostic cloud microphysics scheme. | |
| subroutine, public | module_radiation_clouds::progcld_fer_hires (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, clw, xlat, xlon, slmsk, dz, delp, ntrac, ntcw, ntiw, ntrw, ix, nlay, nlp1, icloud, xr_con, xr_exp, uni_cld, lmfshal, lmfdeep2, cldcov, re_cloud, re_ice, re_snow, dzlay, cldtot, cldcnv, lcnorm, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow) |
| This subroutine computes cloud related quantities using Ferrier-Aligo cloud microphysics scheme. | |
| subroutine, public | module_radiation_clouds::progcld_thompson_wsm6 (plyr, plvl, tlyr, qlyr, qstl, rhly, clw, xlat, xlon, slmsk, dz, delp, ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, con_ttp, xr_cnvcld, ix, nlay, nlp1, xr_con, xr_exp, uni_cld, lmfshal, lmfdeep2, cldcov, cnvw, re_cloud, re_ice, re_snow, lwp_ex, iwp_ex, lwp_fc, iwp_fc, dzlay, cldtot, cldcnv, lcnorm, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow) |
| This subroutine is used by Thompson/WSM6/NSSL cloud microphysics (EMC) | |
| subroutine, public | module_radiation_clouds::progcld_thompson (plyr, plvl, tlyr, qlyr, qstl, rhly, clw, xlat, xlon, slmsk, dz, delp, ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, ix, nlay, nlp1, uni_cld, lmfshal, lmfdeep2, cldcov, re_cloud, re_ice, re_snow, lwp_ex, iwp_ex, lwp_fc, iwp_fc, dzlay, gridkm, top_at_1, cldtot, cldcnv, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow) |
| This subroutine added by G. Thompson specifically to account for explicit (microphysics-produced) cloud liquid water, cloud ice, and snow with 100% cloud fraction. Also, a parameterization for cloud fraction less than 1.0 but greater than 0.0 follows Mocko and Cotton (1996) from Sundqvist et al. (1989) with cloud fraction increasing as RH increases above a critical value. In locations with non-zero (but less than 1.0) cloud fraction, there MUST be a value assigned to cloud liquid water and ice or else there is zero impact in the RRTMG radiation scheme. | |
| subroutine, public | module_radiation_clouds::progclduni (plyr, plvl, tlyr, tvly, ccnd, ncnd, xlat, xlon, slmsk, dz, delp, ix, nlay, nlp1, cldtot, effrl, effri, effrr, effrs, effr_in, dzlay, cldtot1, cldcnv, lcrick, lcnorm, con_ttp, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow) |
| This subroutine computes cloud related quantities using for unified cloud microphysics scheme. | |
| subroutine, public | module_radiation_clouds::gethml (plyr, ptop1, cldtot, cldcnv, dz, de_lgth, alpha, ix, nlay, iovr, iovr_rand, iovr_maxrand, iovr_max, iovr_dcorr, iovr_exp, iovr_exprand, top_at_1, si, clds, mtop, mbot) |
| This subroutine computes high, mid, low, total, and boundary cloud fractions and cloud top/bottom layer indices for model diagnostic output. The three cloud domain boundaries are defined by ptopc. The cloud overlapping method is defined by control flag 'iovr', which is also used by LW and SW radiation programs. | |
| subroutine, public | module_radiation_clouds::cal_cldfra3 (cldfra, qv, qc, qi, qs, dz, p, t, xland, gridkm, modify_qvapor, max_relh, kts, kte, debug_flag) |
| Cloud fraction scheme by G. Thompson (NCAR-RAL), not intended for combining with any cumulus or shallow cumulus parameterization scheme cloud fractions. This is intended as a stand-alone for cloud fraction and is relatively good at getting widespread stratus and stratoCu without caring whether any deep/shallow Cu param schemes is making sub-grid-spacing clouds/precip. Under the hood, this scheme follows Mocko and Cotton (1995) in application of the Sundqvist et al (1989) scheme but using a grid-scale dependent RH threshold, one each for land v. ocean points based on experiences with HWRF testing. | |
| subroutine, public | module_radiation_clouds::find_cloudlayers (qvs1d, cfr1d, t1d, p1d, dz1d, entrmnt, debugfl, qc1d, qi1d, qs1d, kts, kte) |
| From cloud fraction array, find clouds of multi-level depth and compute a reasonable value of LWP or IWP that might be contained in that depth, unless existing LWC/IWC is already there. | |
| subroutine, public | module_radiation_clouds::adjust_cloudice (cfr, qi, qs, qvs, t, dz, entr, k1, k2, kts, kte) |
| subroutine, public | module_radiation_clouds::adjust_cloudh2o (cfr, qc, qvs, t, dz, entr, k1, k2, kts, kte) |
| subroutine, public | module_radiation_clouds::adjust_cloudfinal (cfr, qc, qi, rho, dz, kts, kte) |
| Do not alter any grid-explicitly resolved hydrometeors, rather only the supposed amounts due to the cloud fraction scheme. | |
| real(kind_phys) function, public | module_radiation_clouds::cld_frac_xurandall (p_lay, qs_lay, relhum, cld_mr, alpha, lambda, factor, cond_cfrac_onrh) |
| This function computes the cloud-fraction following Xu-Randall(1996) [200]. | |
| subroutine | module_microphysics::rsipath2 (plyr, plvl, tlyr, qlyr, qcwat, qcice, qrain, rrime, im, levs, iflip, flgmin, cwatp, cicep, rainp, snowp, recwat, rerain, resnow, snden) |
| This program is a modified version of Ferrier's original "rshipath" subprogram. It computes layer's cloud liquid, ice, rain, and snow water condensate path and the partical effective radius for liquid droplet, rain drop, and snow flake. | |
Variables | |
| integer, parameter, public | module_radiation_clouds::nf_clds = 9 |
| number of fields in cloud array | |
| integer, parameter, public | module_radiation_clouds::nk_clds = 3 |
| number of cloud vertical domains | |
This module computes cloud related quantities for radiation computations.
Knowledge of cloud properties and their vertical structure is important for meteorological studies due to their impact on both the Earth's radiation budget and adiabatic heating within the atmosphere. Cloud properties in the US National Oceanic and Atmospheric Administration National Centers for Environmental Prediction Global Forecast System (GFS) include (i) cloud liquid/ice water path; (ii) the fraction of clouds; (iii) effective radius of water/ice droplet:
Cloud overlapping method (namelist control parameter - IOVR)
IOVR=0: randomly overlapping vertical cloud layers
IOVR=1: maximum-random overlapping vertical cloud layers
IOVR=2: maximum overlapping vertical cloud layers
IOVR=3: decorrelation length overlapping vertical cloud layers
IOVR=4: exponential overlapping vertical cloud layers
IOVR=5: exponential-random overlapping vertical cloud layers
Sub-grid cloud approximation (namelist control parameter - ISUBC_LW=2, ISUBC_SW=2)
ISUBC=0: grid averaged quantities, without sub-grid cloud approximation
ISUBC=1: with McICA sub-grid approximation (use prescribed permutation seeds)
ISUBC=2: with McICA sub-grid approximation (use random permutation seeds)
| subroutine, public module_radiation_clouds::adjust_cloudfinal | ( | real, dimension(kts:kte), intent(in) | cfr, |
| real, dimension(kts:kte), intent(inout) | qc, | ||
| real, dimension(kts:kte), intent(inout) | qi, | ||
| real, dimension(kts:kte), intent(in) | rho, | ||
| real, dimension(kts:kte), intent(in) | dz, | ||
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte | ||
| ) |
Do not alter any grid-explicitly resolved hydrometeors, rather only the supposed amounts due to the cloud fraction scheme.
Definition at line 3091 of file radiation_clouds.f.
Referenced by cal_cldfra3().
| subroutine, public module_radiation_clouds::adjust_cloudh2o | ( | real, dimension(kts:kte), intent(in) | cfr, |
| real, dimension(kts:kte), intent(inout) | qc, | ||
| real, dimension(kts:kte), intent(in) | qvs, | ||
| real, dimension(kts:kte), intent(in) | t, | ||
| real, dimension(kts:kte), intent(in) | dz, | ||
| real, intent(in) | entr, | ||
| integer, intent(in) | k1, | ||
| integer, intent(in) | k2, | ||
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte | ||
| ) |
Definition at line 3047 of file radiation_clouds.f.
| subroutine, public module_radiation_clouds::adjust_cloudice | ( | real, dimension(kts:kte), intent(in) | cfr, |
| real, dimension(kts:kte), intent(inout) | qi, | ||
| real, dimension(kts:kte), intent(in) | qs, | ||
| real, dimension(kts:kte), intent(in) | qvs, | ||
| real, dimension(kts:kte), intent(in) | t, | ||
| real, dimension(kts:kte), intent(in) | dz, | ||
| real, intent(in) | entr, | ||
| integer, intent(in) | k1, | ||
| integer, intent(in) | k2, | ||
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte | ||
| ) |
Definition at line 3005 of file radiation_clouds.f.
| subroutine, public module_radiation_clouds::cal_cldfra3 | ( | real, dimension(kts:kte), intent(inout) | cldfra, |
| real, dimension(kts:kte), intent(inout) | qv, | ||
| real, dimension(kts:kte), intent(inout) | qc, | ||
| real, dimension(kts:kte), intent(inout) | qi, | ||
| real, dimension(kts:kte), intent(in) | qs, | ||
| real, dimension(kts:kte), intent(in) | dz, | ||
| real, dimension(kts:kte), intent(in) | p, | ||
| real, dimension(kts:kte), intent(in) | t, | ||
| real, intent(in) | xland, | ||
| real, intent(in) | gridkm, | ||
| logical, intent(in) | modify_qvapor, | ||
| real, intent(in) | max_relh, | ||
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte, | ||
| logical, intent(in) | debug_flag | ||
| ) |
Cloud fraction scheme by G. Thompson (NCAR-RAL), not intended for combining with any cumulus or shallow cumulus parameterization scheme cloud fractions. This is intended as a stand-alone for cloud fraction and is relatively good at getting widespread stratus and stratoCu without caring whether any deep/shallow Cu param schemes is making sub-grid-spacing clouds/precip. Under the hood, this scheme follows Mocko and Cotton (1995) in application of the Sundqvist et al (1989) scheme but using a grid-scale dependent RH threshold, one each for land v. ocean points based on experiences with HWRF testing.
Definition at line 2705 of file radiation_clouds.f.
References adjust_cloudfinal(), find_cloudlayers(), module_mp_thompson::rsif(), and module_mp_thompson::rslf().
Referenced by progcld_thompson().
| real(kind_phys) function, public module_radiation_clouds::cld_frac_xurandall | ( | real(kind_phys), intent(in) | p_lay, |
| real(kind_phys), intent(in) | qs_lay, | ||
| real(kind_phys), intent(in) | relhum, | ||
| real(kind_phys), intent(in) | cld_mr, | ||
| real(kind_phys), intent(in) | alpha, | ||
| real(kind_phys), intent(in) | lambda, | ||
| real(kind_phys), intent(in) | factor, | ||
| logical, intent(in), optional | cond_cfrac_onrh | ||
| ) |
This function computes the cloud-fraction following Xu-Randall(1996) [200].
| p_lay | Pressure (100Pa) |
| qs_lay | Saturation vapor-pressure (Pa) |
| relhum | Relative humidity |
| cld_mr | Total cloud mixing ratio |
| alpha | Scheme parameter (default=100) |
Definition at line 3133 of file radiation_clouds.f.
References cld_frac_xurandall().
Referenced by cld_frac_xurandall(), progcld_fer_hires(), and progcld_thompson_wsm6().
| subroutine, public module_radiation_clouds::cld_init | ( | real (kind=kind_phys), dimension(:), intent(in) | si, |
| integer, intent(in) | nlay, | ||
| integer, intent(in) | imp_physics, | ||
| integer, intent(in) | me, | ||
| real (kind=kind_phys), intent(in) | con_g, | ||
| real (kind=kind_phys), intent(in) | con_rd, | ||
| integer, intent(out) | errflg, | ||
| character(len=*), intent(out) | errmsg | ||
| ) |
This subroutine is an initialization program for cloud-radiation calculations and sets up boundary layer cloud top.
| si | model vertical sigma layer interface |
| NLAY | vertical layer number |
| imp_physics | cloud microphysics scheme control flag =11: GFDL microphysics cloud =8: Thompson microphysics =6: WSM6 microphysics =10: MG microphysics =15: Ferrier-Aligo microphysics =17/18: NSSL microphysics |
| me | print control flag |
Definition at line 250 of file radiation_clouds.f.
| subroutine, public module_radiation_clouds::find_cloudlayers | ( | real, dimension(kts:kte), intent(in) | qvs1d, |
| real, dimension(kts:kte), intent(inout) | cfr1d, | ||
| real, dimension(kts:kte), intent(in) | t1d, | ||
| real, dimension(kts:kte), intent(in) | p1d, | ||
| real, dimension(kts:kte), intent(in) | dz1d, | ||
| real, intent(in) | entrmnt, | ||
| logical, intent(in) | debugfl, | ||
| real, dimension(kts:kte), intent(inout) | qc1d, | ||
| real, dimension(kts:kte), intent(inout) | qi1d, | ||
| real, dimension(kts:kte), intent(in) | qs1d, | ||
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte | ||
| ) |
From cloud fraction array, find clouds of multi-level depth and compute a reasonable value of LWP or IWP that might be contained in that depth, unless existing LWC/IWC is already there.
Definition at line 2850 of file radiation_clouds.f.
Referenced by cal_cldfra3().
| subroutine, public module_radiation_clouds::gethml | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | ptop1, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldtot, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldcnv, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:), intent(in) | de_lgth, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | alpha, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | iovr, | ||
| iovr_rand, | |||
| iovr_maxrand, | |||
| iovr_max, | |||
| iovr_dcorr, | |||
| iovr_exp, | |||
| iovr_exprand, | |||
| logical, intent(in) | top_at_1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | si, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
| integer, dimension(:,:), intent(out) | mtop, | ||
| integer, dimension(:,:), intent(out) | mbot | ||
| ) |
This subroutine computes high, mid, low, total, and boundary cloud fractions and cloud top/bottom layer indices for model diagnostic output. The three cloud domain boundaries are defined by ptopc. The cloud overlapping method is defined by control flag 'iovr', which is also used by LW and SW radiation programs.
| plyr | (IX,NLAY), model layer mean pressure in mb (100Pa) |
| ptop1 | (IX,4), pressure limits of cloud domain interfaces (sfc,low,mid,high) in mb (100Pa) |
| cldtot | (IX,NLAY), total or stratiform cloud profile in fraction |
| cldcnv | (IX,NLAY), convective cloud (for diagnostic scheme only) |
| dz | (IX,NLAY), layer thickness (km) |
| de_lgth | (IX), clouds decorrelation length (km) |
| alpha | (IX,NLAY), alpha decorrelation parameter |
| IX | horizontal dimension |
| NLAY | vertical layer dimensions |
| iovr_rand | flag for random cloud overlap method |
| iovr_maxrand | flag for maximum-random cloud overlap method |
| iovr_max | flag for maximum cloud overlap method |
| iovr_dcorr | flag for decorrelation-length cloud overlap method |
| iovr_exp | flag for exponential cloud overlap method |
| iovr_exprand | flag for exponential-random cloud overlap method |
| clds | (IX,5), fraction of clouds for low, mid, hi, tot, bl |
| mtop | (IX,3),vertical indices for low, mid, hi cloud tops |
| mbot | (IX,3),vertical indices for low, mid, hi cloud bases |
Definition at line 2263 of file radiation_clouds.f.
References nk_clds.
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::progcld_fer_hires | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tvly, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qstl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | rhly, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | clw, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ntrac, | ||
| integer, intent(in) | ntcw, | ||
| integer, intent(in) | ntiw, | ||
| integer, intent(in) | ntrw, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| integer, intent(in) | icloud, | ||
| real (kind=kind_phys), intent(in) | xr_con, | ||
| real (kind=kind_phys), intent(in) | xr_exp, | ||
| logical, intent(in) | uni_cld, | ||
| logical, intent(in) | lmfshal, | ||
| logical, intent(in) | lmfdeep2, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldcov, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | re_cloud, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | re_ice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | re_snow, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldtot, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldcnv, | ||
| logical, intent(in) | lcnorm, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_resnow | ||
| ) |
This subroutine computes cloud related quantities using Ferrier-Aligo cloud microphysics scheme.
Definition at line 1087 of file radiation_clouds.f.
References cld_frac_xurandall().
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::progcld_gfdl_lin | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tvly, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qstl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | rhly, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | clw, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cnvw, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cnvc, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldtot, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cldtot1, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldcnv, | ||
| logical, intent(in) | lcrick, | ||
| logical, intent(in) | lcnorm, | ||
| real (kind=kind_phys) | con_ttp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_resnow | ||
| ) |
This subroutine computes cloud related quantities using GFDL Lin MP prognostic cloud microphysics scheme.
Definition at line 848 of file radiation_clouds.f.
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::progcld_thompson | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qstl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | rhly, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | clw, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ntrac, | ||
| integer, intent(in) | ntcw, | ||
| integer, intent(in) | ntiw, | ||
| integer, intent(in) | ntrw, | ||
| integer, intent(in) | ntsw, | ||
| integer, intent(in) | ntgl, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| logical, intent(in) | uni_cld, | ||
| logical, intent(in) | lmfshal, | ||
| logical, intent(in) | lmfdeep2, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldcov, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_cloud, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_ice, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_snow, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lwp_ex, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | iwp_ex, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lwp_fc, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | iwp_fc, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real(kind=kind_phys), dimension(:), intent(in) | gridkm, | ||
| logical, intent(in) | top_at_1, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldtot, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldcnv, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_resnow | ||
| ) |
This subroutine added by G. Thompson specifically to account for explicit (microphysics-produced) cloud liquid water, cloud ice, and snow with 100% cloud fraction. Also, a parameterization for cloud fraction less than 1.0 but greater than 0.0 follows Mocko and Cotton (1996) from Sundqvist et al. (1989) with cloud fraction increasing as RH increases above a critical value. In locations with non-zero (but less than 1.0) cloud fraction, there MUST be a value assigned to cloud liquid water and ice or else there is zero impact in the RRTMG radiation scheme.
Definition at line 1677 of file radiation_clouds.f.
References cal_cldfra3().
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::progcld_thompson_wsm6 | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qstl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | rhly, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | clw, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ntrac, | ||
| integer, intent(in) | ntcw, | ||
| integer, intent(in) | ntiw, | ||
| integer, intent(in) | ntrw, | ||
| integer, intent(in) | ntsw, | ||
| integer, intent(in) | ntgl, | ||
| real (kind=kind_phys), intent(in) | con_ttp, | ||
| logical, intent(in) | xr_cnvcld, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| real (kind=kind_phys), intent(in) | xr_con, | ||
| real (kind=kind_phys), intent(in) | xr_exp, | ||
| logical, intent(in) | uni_cld, | ||
| logical, intent(in) | lmfshal, | ||
| logical, intent(in) | lmfdeep2, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldcov, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cnvw, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_cloud, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_ice, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | re_snow, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lwp_ex, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | iwp_ex, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lwp_fc, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | iwp_fc, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldtot, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldcnv, | ||
| logical, intent(in) | lcnorm, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_resnow | ||
| ) |
This subroutine is used by Thompson/WSM6/NSSL cloud microphysics (EMC)
Definition at line 1341 of file radiation_clouds.f.
References cld_frac_xurandall().
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::progclduni | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tvly, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | ccnd, | ||
| integer, intent(in) | ncnd, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldtot, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effri, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrs, | ||
| logical, intent(in) | effr_in, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cldtot1, | ||
| real (kind=kind_phys), dimension(ix,nlay) | cldcnv, | ||
| logical, intent(in) | lcrick, | ||
| logical, intent(in) | lcnorm, | ||
| real (kind=kind_phys), intent(in) | con_ttp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(inout) | cld_resnow | ||
| ) |
This subroutine computes cloud related quantities using for unified cloud microphysics scheme.
Definition at line 1957 of file radiation_clouds.f.
Referenced by radiation_clouds_prop().
| subroutine, public module_radiation_clouds::radiation_clouds_prop | ( | real (kind=kind_phys), dimension(:,:), intent(in) | plyr, |
| real (kind=kind_phys), dimension(:,:), intent(in) | plvl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | tvly, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qlyr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | qstl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | rhly, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | ccnd, | ||
| integer, intent(in) | ncndl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cnvw, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cnvc, | ||
| real (kind=kind_phys), dimension(:,:,:), intent(in) | tracer1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dz, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | delp, | ||
| integer, intent(in) | ix, | ||
| integer, intent(in) | lm, | ||
| integer, intent(in) | nlay, | ||
| integer, intent(in) | nlp1, | ||
| real(kind=kind_phys), dimension(:,:) | deltaq, | ||
| real (kind=kind_phys), intent(in) | sup, | ||
| real (kind=kind_phys), intent(in) | dcorr_con, | ||
| integer, intent(in) | me, | ||
| integer, intent(in) | icloud, | ||
| integer, intent(in) | kdt, | ||
| integer, intent(in) | ntrac, | ||
| integer, intent(in) | ntcw, | ||
| integer, intent(in) | ntiw, | ||
| integer, intent(in) | ntrw, | ||
| integer, intent(in) | ntsw, | ||
| integer, intent(in) | ntgl, | ||
| integer, intent(in) | ntclamt, | ||
| integer, intent(in) | imp_physics, | ||
| imp_physics_nssl, | |||
| imp_physics_fer_hires, | |||
| imp_physics_gfdl, | |||
| imp_physics_thompson, | |||
| imp_physics_wsm6, | |||
| imp_physics_tempo, | |||
| imp_physics_mg, | |||
| integer, intent(in) | iovr, | ||
| iovr_rand, | |||
| iovr_maxrand, | |||
| iovr_max, | |||
| iovr_dcorr, | |||
| iovr_exp, | |||
| iovr_exprand, | |||
| idcor, | |||
| idcor_con, | |||
| idcor_hogan, | |||
| idcor_oreopoulos, | |||
| logical, intent(in) | lcrick, | ||
| logical, intent(in) | lcnorm, | ||
| integer, intent(in) | imfdeepcnv, | ||
| integer, intent(in) | imfdeepcnv_gf, | ||
| integer, intent(in) | imfdeepcnv_c3, | ||
| logical, intent(in) | do_mynnedmf, | ||
| logical, intent(in) | lgfdlmprad, | ||
| logical, intent(in) | xr_cnvcld, | ||
| logical, intent(in) | uni_cld, | ||
| logical, intent(in) | lmfshal, | ||
| logical, intent(in) | lmfdeep2, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | cldcov, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | clouds1, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrl, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effri, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrr, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | effrs, | ||
| logical, intent(in) | effr_in, | ||
| real(kind=kind_phys), dimension(:,:), intent(inout) | effrl_inout, | ||
| real(kind=kind_phys), dimension(:,:), intent(inout) | effri_inout, | ||
| real(kind=kind_phys), dimension(:,:), intent(inout) | effrs_inout, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | lwp_ex, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | iwp_ex, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | lwp_fc, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | iwp_fc, | ||
| real (kind=kind_phys), dimension(:,:), intent(in) | dzlay, | ||
| real(kind=kind_phys), dimension(:), intent(in) | latdeg, | ||
| real(kind=kind_phys), intent(in) | julian, | ||
| integer, intent(in) | yearlen, | ||
| real(kind=kind_phys), dimension(:), intent(in) | gridkm, | ||
| logical, intent(in) | top_at_1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | si, | ||
| real (kind=kind_phys), intent(in) | xr_con, | ||
| real (kind=kind_phys), intent(in) | xr_exp, | ||
| real (kind=kind_phys), intent(in) | con_ttp, | ||
| real (kind=kind_phys), intent(in) | con_pi, | ||
| real (kind=kind_phys), intent(in) | con_g, | ||
| real (kind=kind_phys), intent(in) | con_rd, | ||
| real (kind=kind_phys), intent(in) | con_thgni, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_frac, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_lwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_reliq, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_iwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_reice, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_rwp, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_rerain, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_swp, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | cld_resnow, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
| integer, dimension(:,:), intent(out) | mtop, | ||
| integer, dimension(:,:), intent(out) | mbot, | ||
| real (kind=kind_phys), dimension(:), intent(out) | de_lgth, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | alpha | ||
| ) |
Subroutine radiation_clouds_prop computes cloud related quantities for different cloud microphysics schemes.
Definition at line 331 of file radiation_clouds.f.
References gethml(), nk_clds, progcld_fer_hires(), progcld_gfdl_lin(), progcld_thompson(), progcld_thompson_wsm6(), and progclduni().
| subroutine module_microphysics::rsipath2 | ( | real, dimension(:,:), intent(in) | plyr, |
| real, dimension(:,:), intent(in) | plvl, | ||
| real, dimension(:,:), intent(in) | tlyr, | ||
| real, dimension(:,:), intent(in) | qlyr, | ||
| real, dimension(:,:), intent(in) | qcwat, | ||
| real, dimension(:,:), intent(in) | qcice, | ||
| real, dimension(:,:), intent(in) | qrain, | ||
| real, dimension(:,:), intent(in) | rrime, | ||
| integer, intent(in) | im, | ||
| integer, intent(in) | levs, | ||
| integer, intent(in) | iflip, | ||
| real, dimension(:), intent(in) | flgmin, | ||
| real, dimension(:,:), intent(out) | cwatp, | ||
| real, dimension(:,:), intent(out) | cicep, | ||
| real, dimension(:,:), intent(out) | rainp, | ||
| real, dimension(:,:), intent(out) | snowp, | ||
| real, dimension(:,:), intent(out) | recwat, | ||
| real, dimension(:,:), intent(out) | rerain, | ||
| real, dimension(:,:), intent(out) | resnow, | ||
| real, dimension(:,:), intent(out) | snden | ||
| ) |
This program is a modified version of Ferrier's original "rshipath" subprogram. It computes layer's cloud liquid, ice, rain, and snow water condensate path and the partical effective radius for liquid droplet, rain drop, and snow flake.
Definition at line 2897 of file module_bfmicrophysics.f.
| integer, parameter, public module_radiation_clouds::nf_clds = 9 |
number of fields in cloud array
Definition at line 182 of file radiation_clouds.f.
| integer, parameter, public module_radiation_clouds::nk_clds = 3 |
number of cloud vertical domains
Definition at line 183 of file radiation_clouds.f.
Referenced by gethml(), and radiation_clouds_prop().