This module computes cloud related quantities for radiation computations. More...
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:
This module has six externally accessible subroutines:
and two internally accessable only subroutines:
\sigma =RH^{k_{1}}\left[1-exp\left(-\frac{k_{2}q_{l}}{\left[\left(1-RH\right)q_{s}\right]^{k_{3}}}\right)\right]
r_{ew} = 5+5 \times F
r_{ei}=\begin{cases}(1250/9.917)IWC^{0.109} & T <-50^0C \\(1250/9.337)IWC^{0.080} & -50^0C \leq T<-40^0C\\(1250/9.208)IWC^{0.055} & -40^0C\leq T <-30^0C\\(1250/9.387)IWC^{0.031} & -30^0C \leq T\end{cases}
IWP_{\triangle Z}=\int_{\triangle Z} IWCdZ
subroutine, public | module_radiation_clouds::cld_init (si, NLAY, me) |
This subroutine is an initialization program for cloud-radiation calculations and sets up boundary layer cloud top. More... | |
subroutine, public | module_radiation_clouds::progcld1 (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, clw, xlat, xlon, slmsk, IX, NLAY, NLP1, uni_cld, lmfshal, lmfdeep2, cldcov, clouds, clds, mtop, mbot ) |
This subroutine computes cloud related quantities using zhao/moorthi's prognostic cloud microphysics scheme. More... | |
subroutine, public | module_radiation_clouds::progcld2 (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, clw, xlat, xlon, slmsk, f_ice, f_rain, r_rime, flgmin, IX, NLAY, NLP1, lmfshal, lmfdeep2, clouds, clds, mtop, mbot ) |
This subroutine computes cloud related quantities using ferrier's prognostic cloud microphysics scheme. More... | |
subroutine, public | module_radiation_clouds::progcld3 (plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, clw, cnvw, cnvc, xlat, xlon, slmsk, ix, nlay, nlp1, deltaq, sup, kdt, me, clouds, clds, mtop, mbot ) |
This subroutine computes cloud related quantities using zhao/moorthi's prognostic cloud microphysics scheme + pdfcld. More... | |
subroutine, public | module_radiation_clouds::progclduni (plyr, plvl, tlyr, tvly, clw, ciw, xlat, xlon, slmsk, IX, NLAY, NLP1, cldcov, clouds, clds, mtop, mbot ) |
This subroutine computes cloud related quantities using zhao/moorthi's prognostic cloud microphysics scheme. More... | |
subroutine, public | module_radiation_clouds::diagcld1 (plyr, plvl, tlyr, rhly, vvel, cv, cvt, cvb, xlat, xlon, slmsk, IX, NLAY, NLP1, clouds, clds, mtop, mbot ) |
This subroutine computes cloud fractions for radiation calculations. More... | |
subroutine | module_radiation_clouds::gethml (plyr, ptop1, cldtot, cldcnv, IX, NLAY, 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. More... | |
subroutine | module_radiation_clouds::rhtable (me , ier) |
cld-rh relations obtained from mitchell-hahn procedure. | |
subroutine, public module_radiation_clouds::cld_init | ( | real (kind=kind_phys), dimension(:), intent(in) | si, |
integer, intent(in) | NLAY, | ||
integer, intent(in) | me | ||
) |
si | model vertical sigma layer interface |
NLAY | vertical layer number |
me | print control flag |
References rhtable().
subroutine, public module_radiation_clouds::diagcld1 | ( | 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) | rhly, | ||
real (kind=kind_phys), dimension(:,:), intent(in) | vvel, | ||
real (kind=kind_phys), dimension(:), intent(in) | cv, | ||
real (kind=kind_phys), dimension(:), intent(in) | cvt, | ||
real (kind=kind_phys), dimension(:), intent(in) | cvb, | ||
real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
integer, intent(in) | IX, | ||
integer, intent(in) | NLAY, | ||
integer, intent(in) | NLP1, | ||
real (kind=kind_phys), dimension(:,:,:), intent(out) | clouds, | ||
real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
integer, dimension(:,:), intent(out) | mtop, | ||
integer, dimension(:,:), intent(out) | mbot | ||
) |
plyr | (IX,NLAY), model layer mean pressure in mb (100Pa) |
plvl | (IX,NLP1), model level pressure in mb (100Pa) |
tlyr | (IX,NLAY), model layer mean temperature in K |
rhly | (IX,NLAY), layer relative humidity |
vvel | (IX,NLAY), layer mean vertical velocity in mb/sec |
cv | (IX), fraction of convective cloud |
cvt,cvb | (IX), conv cloud top/bottom pressure in mb |
xlat | (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
xlon | (IX), grid longitude in radians, ok for both 0->2pi or -pi -> +pi ranges |
slmsk | (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
IX | horizontal dimention |
NLAY,NLP1 | vertical layer/level dimensions |
clouds | (IX,NLAY,NF_CLDS), cloud profiles (:,:,1) - layer total cloud fraction (:,:,2) - layer cloud optical depth (:,:,3) - layer cloud single scattering albedo (:,:,4) - layer cloud asymmetry factor |
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 |
References gethml().
|
private |
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) |
IX | horizontal dimension |
NLAY | vertical layer dimensions |
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 |
Referenced by diagcld1(), progcld1(), progcld2(), progcld3(), and progclduni().
subroutine, public module_radiation_clouds::progcld1 | ( | 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, | ||
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(out) | clouds, | ||
real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
integer, dimension(:,:), intent(out) | mtop, | ||
integer, dimension(:,:), intent(out) | mbot | ||
) |
plyr | (IX,NLAY), model layer mean pressure in mb (100Pa) |
plvl | (IX,NLP1), model level pressure in mb (100Pa) |
tlyr | (IX,NLAY), model layer mean temperature in K |
tvly | (IX,NLAY), model layer virtual temperature in K |
qlyr | (IX,NLAY), layer specific humidity in gm/gm |
qstl | (IX,NLAY), layer saturate humidity in gm/gm |
rhly | (IX,NLAY), layer relative humidity (=qlyr/qstl) |
clw | (IX,NLAY), layer cloud condensate amount |
xlat | (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
xlon | (IX), grid longitude in radians (not used) |
slmsk | (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
IX | horizontal dimention |
NLAY,NLP1 | vertical layer/level dimensions |
clouds | (IX,NLAY,NF_CLDS), cloud profiles (:,:,1) - layer total cloud fraction (:,:,2) - layer cloud liq water path (g/m^2) (:,:,3) - mean eff radius for liq cloud (micron) (:,:,4) - layer cloud ice water path (g/m^2) (:,:,5) - mean eff radius for ice cloud (micron) (:,:,6) - layer rain drop water path (not assigned) (:,:,7) - mean eff radius for rain drop (micron) (:,:,8) - layer snow flake water path (not assigned) (:,:,9) - mean eff radius for snow flake (micron) *** fu's scheme need to be normalized by snow density (g/m^3/1.0e6) |
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 |
References gethml().
subroutine, public module_radiation_clouds::progcld2 | ( | 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) | f_ice, | ||
real (kind=kind_phys), dimension(:,:), intent(in) | f_rain, | ||
real (kind=kind_phys), dimension(:,:), intent(in) | r_rime, | ||
real (kind=kind_phys), dimension(:), intent(in) | flgmin, | ||
integer, intent(in) | IX, | ||
integer, intent(in) | NLAY, | ||
integer, intent(in) | NLP1, | ||
logical, intent(in) | lmfshal, | ||
logical, intent(in) | lmfdeep2, | ||
real (kind=kind_phys), dimension(:,:,:), intent(out) | clouds, | ||
real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
integer, dimension(:,:), intent(out) | mtop, | ||
integer, dimension(:,:), intent(out) | mbot | ||
) |
plyr | (IX,NLAY), model layer mean pressure in mb (100Pa) |
plvl | (IX,NLP1), model level pressure in mb (100Pa) |
tlyr | (IX,NLAY), model layer mean temperature in K |
tvly | (IX,NLAY), model layer virtual temperature in K |
qlyr | (IX,NLAY), layer specific humidity in gm/gm |
qstl | (IX,NLAY), layer saturate humidity in gm/gm |
rhly | (IX,NLAY), layer relative humidity (=qlyr/qstl) |
clw | (IX,NLAY), layer cloud condensate amount |
f_ice | (IX,NLAY), fraction of layer cloud ice (ferrier micro-phys) |
f_rain | (IX,NLAY), fraction of layer rain water (ferrier micro-phys) |
r_rime | (IX,NLAY), mass ratio of total ice to unrimed ice (>=1) |
flgmin | (IX), minimum large ice fraction |
xlat | (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
xlon | (IX), grid longitude in radians (not used) |
slmsk | (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
IX | horizontal dimention |
NLAY,NLP1 | vertical layer/level dimensions |
clouds | (IX,NLAY,NF_CLDS), cloud profiles (:,:,1) - layer total cloud fraction (:,:,2) - layer cloud liq water path (g/m^2) (:,:,3) - mean eff radius for liq cloud (micron) (:,:,4) - layer cloud ice water path (g/m^2) (:,:,5) - mean eff radius for ice cloud (micron) (:,:,6) - layer rain drop water path (g/m^2) (:,:,7) - mean eff radius for rain drop (micron) (:,:,8) - layer snow flake water path (g/m^2) (:,:,9) - mean eff radius for snow flake (micron) *** fu's scheme need to be normalized by snow density (g/m**3/1.0e6) |
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 |
References gethml().
subroutine, public module_radiation_clouds::progcld3 | ( | 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(:,:) | cnvw, | ||
real (kind=kind_phys), dimension(:,:) | 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, | ||
integer, intent(in) | ix, | ||
integer, intent(in) | nlay, | ||
integer, intent(in) | nlp1, | ||
real (kind=kind_phys), dimension(:,:) | deltaq, | ||
real (kind=kind_phys), intent(in) | sup, | ||
integer, intent(in) | kdt, | ||
integer | me, | ||
real (kind=kind_phys), dimension(:,:,:), intent(out) | clouds, | ||
real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
integer, dimension(:,:), intent(out) | mtop, | ||
integer, dimension(:,:), intent(out) | mbot | ||
) |
plyr | (ix,nlay), model layer mean pressure in mb (100pa) |
plvl | (ix,nlp1), model level pressure in mb (100pa) |
tlyr | (ix,nlay), model layer mean temperature in K |
tvly | (ix,nlay), model layer virtual temperature in K |
qlyr | (ix,nlay), layer specific humidity in gm/gm |
qstl | (ix,nlay), layer saturate humidity in gm/gm |
rhly | (ix,nlay), layer relative humidity (=qlyr/qstl) |
clw | (ix,nlay), layer cloud condensate amount |
xlat | (ix), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
xlon | (ix), grid longitude in radians (not used) |
slmsk | (ix), sea/land mask array (sea:0,land:1,sea-ice:2) |
ix | horizontal dimention |
nlay,nlp1 | vertical layer/level dimensions |
deltaq | (ix,nlay), half total water distribution width |
sup | supersaturation |
kdt | |
me | print control flag |
clouds | (ix,nlay,nf_clds), cloud profiles (:,:,1) - layer total cloud fraction (:,:,2) - layer cloud liq water path (g/m**2) (:,:,3) - mean eff radius for liq cloud (micron) (:,:,4) - layer cloud ice water path (g/m**2) (:,:,5) - mean eff radius for ice cloud (micron) (:,:,6) - layer rain drop water path not assigned (:,:,7) - mean eff radius for rain drop (micron) (:,:,8) - layer snow flake water path not assigned (:,:,9) - mean eff radius for snow flake(micron) |
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 |
References gethml().
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) | clw, | ||
real (kind=kind_phys), dimension(:,:), intent(in) | ciw, | ||
real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
integer, intent(in) | IX, | ||
integer, intent(in) | NLAY, | ||
integer, intent(in) | NLP1, | ||
real (kind=kind_phys), dimension(:,:), intent(in) | cldcov, | ||
real (kind=kind_phys), dimension(:,:,:), intent(out) | clouds, | ||
real (kind=kind_phys), dimension(:,:), intent(out) | clds, | ||
integer, dimension(:,:), intent(out) | mtop, | ||
integer, dimension(:,:), intent(out) | mbot | ||
) |
plyr | (IX,NLAY), model layer mean pressure in mb (100Pa) |
plvl | (IX,NLP1), model level pressure in mb (100Pa) |
tlyr | (IX,NLAY), model layer mean temperature in K |
tvly | (IX,NLAY), model layer virtual temperature in K |
qlyr | (IX,NLAY), layer specific humidity in gm/gm |
clw | (IX,NLAY), layer cloud liquid water amount |
ciw | (IX,NLAY), layer cloud ice water amount |
xlat | (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
xlon | (IX), grid longitude in radians (not used) |
slmsk | (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
IX | horizontal dimention |
NLAY,NLP1 | vertical layer/level dimensions |
clouds | (IX,NLAY,NF_CLDS), cloud profiles (:,:,1) - layer total cloud fraction (:,:,2) - layer cloud liq water path (g/m^2) (:,:,3) - mean eff radius for liq cloud (micron) (:,:,4) - layer cloud ice water path (g/m^2) (:,:,5) - mean eff radius for ice cloud (micron) (:,:,6) - layer rain drop water path (not assigned) (:,:,7) - mean eff radius for rain drop (micron) (:,:,8) - layer snow flake water path (not assigned) (:,:,9) - mean eff radius for snow flake (micron) *** fu's scheme need to be normalized by snow density (g/m^3/1.0e6) |
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 |
References gethml().