Radiation Scheme in CCPP
|
This module computes cloud related quantities for radiation computations.
Functions/Subroutines | |
subroutine | gethml |
This subroutine computes high, mid, low, total, and boundary cloud fractions and cloud top/bottom layer indices for model diagnostic output. More... | |
subroutine | rhtable |
cld-rh relations obtained from mitchell-hahn procedure. More... | |
subroutine, public | cld_init |
This subroutine is an initialization program for cloud-radiation calculations. It sets up boundary layer cloud top. More... | |
subroutine, public | progcld1 |
This subroutine computes cloud related quantities using zhao/moorthi's prognostic cloud microphysics scheme. More... | |
subroutine, public | progcld2 |
This subroutine computes cloud related quantities using ferrier's prognostic cloud microphysics scheme. More... | |
subroutine, public | progcld3 |
This subroutine computes cloud related quantities using zhao/moorthi's prognostic cloud microphysics scheme + pdfcld. More... | |
subroutine, public | diagcld1 |
This subroutine computes cloud fractions for radiation calculations. More... | |
Variables | |
character(40), parameter | vtagcld ='NCEP-Radiation_clouds v5.1 Nov 2012 ' |
real(kind=kind_phys), parameter | gfac =1.0e5/con_g |
real(kind=kind_phys), parameter | gord =con_g/con_rd |
integer, parameter, public | nf_clds = 9 |
number of fields in cloud array More... | |
integer, parameter, public | nk_clds = 3 |
number of cloud vertical domains More... | |
real(kind=kind_phys), dimension(nk_clds+1, 2), save | ptopc |
real(kind=kind_phys), parameter | climit = 0.001 |
real(kind=kind_phys), parameter | climit2 =0.05 |
real(kind=kind_phys), parameter | ovcst = 1.0 - 1.0e-8 |
real(kind=kind_phys), parameter | reliq_def = 10.0 |
real(kind=kind_phys), parameter | reice_def = 50.0 |
real(kind=kind_phys), parameter | rrain_def = 1000.0 |
real(kind=kind_phys), parameter | rsnow_def = 250.0 |
integer, parameter | nbin =100 |
integer, parameter | nlon =2 |
integer, parameter | nlat =4 |
integer, parameter | mcld =4 |
integer, parameter | nseal =2 |
real(kind=kind_phys), parameter | cldssa_def = 0.99 |
real(kind=kind_phys), parameter | cldasy_def = 0.84 |
real(kind=kind_phys), parameter | xlim =5.0 |
real(kind=kind_phys), dimension(3) | xlabdy |
real(kind=kind_phys), dimension(3) | xlobdy |
real(kind=kind_phys), parameter | vvcld1 = 0.0003e0 |
real(kind=kind_phys), parameter | vvcld2 =-0.0005e0 |
real(kind=kind_phys), dimension(nbin, nlon, nlat, mcld, nseal) | rhcl |
integer | llyr = 2 |
integer | iovr = 1 |
subroutine, public module_radiation_clouds::cld_init | ( | ) |
[in] | si | real, model vertical sigma layer interface |
[in] | NLAY | integer, vertical layer number |
[in] | me | integer, print control flag |
[out] | NONE |
Definition at line 231 of file radiation_clouds.f.
References physparam::icldflg, physparam::icmphys, iovr, physparam::iovrlw, physparam::iovrsw, physparam::ivflip, llyr, rhtable(), and vtagcld.
Referenced by module_radiation_driver::radinit().
subroutine, public module_radiation_clouds::diagcld1 | ( | ) |
[in] | plyr | real, (IX,NLAY), model layer mean pressure in mb (100Pa) |
[in] | plvl | real, (IX,NLP1), model level pressure in mb (100Pa) |
[in] | tlyr | real, (IX,NLAY), model layer mean temperature in K |
[in] | rhly | real, (IX,NLAY), layer relative humidity |
[in] | vvel | real, (IX,NLAY), layer mean vertical velocity in mb/sec |
[in] | cv | real, (IX), fraction of convective cloud |
[in] | cvt,cvb | real, (IX), conv cloud top/bottom pressure in mb |
[in] | xlat | real, (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
[in] | xlon | real, (IX), grid longitude in radians, ok for both 0->2pi or -pi -> +pi ranges |
[in] | slmsk | real, (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
[in] | IX | integer, horizontal dimention |
[in] | NLAY,NLP1 | integer, vertical layer/level dimensions |
[out] | clouds | real, (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 |
[out] | clds | real, (IX,5), fraction of clouds for low, mid, hi, tot, bl |
[out] | mtop | integer, (IX,3), vertical indices for low, mid, hi cloud tops |
[out] | mbot | real, (IX,3), vertical indices for low, mid, hi cloud bases |
Definition at line 1789 of file radiation_clouds.f.
References cldasy_def, cldssa_def, climit, physcons::con_pi, physcons::con_rocp, physcons::con_ttp, gethml(), physparam::ivflip, llyr, mcld, nbin, nlon, nseal, ptopc, rhcl, vvcld1, vvcld2, xlabdy, xlim, and xlobdy.
Referenced by module_radiation_driver::grrad().
|
private |
Definition at line 2410 of file radiation_clouds.f.
References climit, iovr, physparam::ivflip, llyr, nk_clds, and ovcst.
Referenced by diagcld1(), progcld1(), progcld2(), and progcld3().
subroutine, public module_radiation_clouds::progcld1 | ( | ) |
[in] | plyr | real, (IX,NLAY), model layer mean pressure in mb (100Pa) |
[in] | plvl | real, (IX,NLP1), model level pressure in mb (100Pa) |
[in] | tlyr | real, (IX,NLAY), model layer mean temperature in K |
[in] | tvly | real, (IX,NLAY), model layer virtual temperature in K |
[in] | qlyr | real, (IX,NLAY), layer specific humidity in gm/gm |
[in] | qstl | real, (IX,NLAY), layer saturate humidity in gm/gm |
[in] | rhly | real, (IX,NLAY), layer relative humidity \( (=qlyr/qstl) \) |
[in] | clw | real, (IX,NLAY), layer cloud condensate amount |
[in] | xlat | real, (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
[in] | xlon | real, (IX), grid longitude in radians (not used) |
[in] | slmsk | real, (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
[in] | IX | integer, horizontal dimention |
[in] | NLAY,NLP1 | integer, vertical layer/level dimensions |
[out] | clouds | real, (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)\) |
[out] | clds | real, (IX,5), fraction of clouds for low, mid, hi, tot, bl |
[out] | mtop | integer, (IX,3), vertical indices for low, mid, hi cloud tops |
[out] | mbot | integer, (IX,3), vertical indices for low, mid, hi cloud bases |
Definition at line 384 of file radiation_clouds.f.
References climit, climit2, physcons::con_pi, physcons::con_ttp, gethml(), gfac, gord, physparam::ivflip, physparam::lcnorm, physparam::lcrick, physparam::lsashal, nf_clds, ptopc, reice_def, reliq_def, rrain_def, and rsnow_def.
Referenced by module_radiation_driver::grrad().
subroutine, public module_radiation_clouds::progcld2 | ( | ) |
[in] | plyr | real, (IX,NLAY), model layer mean pressure in mb (100Pa) |
[in] | plvl | real, (IX,NLP1), model level pressure in mb (100Pa) |
[in] | tlyr | real, (IX,NLAY), model layer mean temperature in K |
[in] | tvly | real, (IX,NLAY), model layer virtual temperature in K |
[in] | qlyr | real, (IX,NLAY), layer specific humidity in gm/gm |
[in] | qstl | real, (IX,NLAY), layer saturate humidity in gm/gm |
[in] | rhly | real, (IX,NLAY), layer relative humidity (=qlyr/qstl) |
[in] | clw | real, (IX,NLAY), layer cloud condensate amount |
[in] | f_ice | real, (IX,NLAY), fraction of layer cloud ice (ferrier micro-phys) |
[in] | f_rain | real, (IX,NLAY), fraction of layer rain water (ferrier micro-phys) |
[in] | r_rime | real, (IX,NLAY), mass ratio of total ice to unrimed ice (>=1) |
[in] | flgmin | real, (IX), minimim large ice fraction |
[in] | xlat | real, (IX), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
[in] | xlon | real, (IX), grid longitude in radians (not used) |
[in] | slmsk | real, (IX), sea/land mask array (sea:0,land:1,sea-ice:2) |
[in] | IX | integer, horizontal dimention |
[in] | NLAY,NLP1 | integer, vertical layer/level dimensions |
[out] | clouds | real, (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) |
[out] | clds | real, (IX,5), fraction of clouds for low, mid, hi, tot, bl |
[out] | mtop | integer, (IX,3), vertical indices for low, mid, hi cloud tops |
[out] | mbot | integer, (IX,3), vertical indices for low, mid, hi cloud bases |
Definition at line 844 of file radiation_clouds.f.
References climit, climit2, physcons::con_g, physcons::con_pi, physcons::con_rd, physcons::con_t0c, physcons::con_ttp, gethml(), physparam::ivflip, physparam::lcnorm, physparam::lcrick, physparam::lnoprec, physparam::lsashal, ptopc, reice_def, reliq_def, rrain_def, module_microphysics::rsipath2(), and rsnow_def.
Referenced by module_radiation_driver::grrad().
subroutine, public module_radiation_clouds::progcld3 | ( | ) |
[in] | plyr | real, (ix,nlay), model layer mean pressure in mb (100pa) |
[in] | plvl | real, (ix,nlp1), model level pressure in mb (100pa) |
[in] | tlyr | real, (ix,nlay), model layer mean temperature in K |
[in] | tvly | real, (ix,nlay), model layer virtual temperature in K |
[in] | qlyr | real, (ix,nlay), layer specific humidity in gm/gm |
[in] | qstl | real, (ix,nlay), layer saturate humidity in gm/gm |
[in] | rhly | real, (ix,nlay), layer relative humidity (=qlyr/qstl) |
[in] | clw | real, (ix,nlay), layer cloud condensate amount |
[in] | xlat | real, (ix), grid latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
[in] | xlon | real, (ix), grid longitude in radians (not used) |
[in] | slmsk | real, (ix), sea/land mask array (sea:0,land:1,sea-ice:2) |
[in] | ix | integer, horizontal dimention |
[in] | nlay,nlp1 | integer, vertical layer/level dimensions |
[in] | deltaq | real, (ix,nlay), half total water distribution width |
[in] | sup | real, supersaturation |
[in] | kdt | integer |
[in] | me | integer, print control flag |
[out] | clouds | real, (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) |
[out] | clds | real, (ix,5), fraction of clouds for low, mid, hi, tot, bl |
[out] | mtop | integer, (ix,3), vertical indices for low, mid, hi cloud tops |
[out] | mbot | integer, (ix,3), vertical indices for low, mid, hi cloud bases |
Definition at line 1357 of file radiation_clouds.f.
References climit, climit2, physcons::con_pi, physcons::con_thgni, physcons::con_ttp, gethml(), gfac, gord, physparam::ivflip, physparam::lcnorm, physparam::lcrick, nf_clds, ptopc, reice_def, reliq_def, rrain_def, and rsnow_def.
Referenced by module_radiation_driver::grrad().
|
private |
Definition at line 2733 of file radiation_clouds.f.
References mcld, nbin, nlat, nlon, nseal, and rhcl.
Referenced by cld_init().
|
private |
Definition at line 192 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 191 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 175 of file radiation_clouds.f.
Referenced by diagcld1(), gethml(), progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 175 of file radiation_clouds.f.
Referenced by progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 161 of file radiation_clouds.f.
Referenced by progcld1(), and progcld3().
|
private |
Definition at line 161 of file radiation_clouds.f.
Referenced by progcld1(), and progcld3().
|
private |
Definition at line 211 of file radiation_clouds.f.
Referenced by cld_init(), and gethml().
|
private |
Definition at line 210 of file radiation_clouds.f.
Referenced by cld_init(), diagcld1(), and gethml().
|
private |
Definition at line 188 of file radiation_clouds.f.
Referenced by diagcld1(), and rhtable().
|
private |
Definition at line 185 of file radiation_clouds.f.
Referenced by diagcld1(), and rhtable().
integer, parameter, public module_radiation_clouds::nf_clds = 9 |
Definition at line 164 of file radiation_clouds.f.
Referenced by progcld1(), and progcld3().
integer, parameter, public module_radiation_clouds::nk_clds = 3 |
Definition at line 166 of file radiation_clouds.f.
Referenced by gethml().
|
private |
Definition at line 187 of file radiation_clouds.f.
Referenced by rhtable().
|
private |
Definition at line 186 of file radiation_clouds.f.
Referenced by diagcld1(), and rhtable().
|
private |
Definition at line 189 of file radiation_clouds.f.
Referenced by diagcld1(), and rhtable().
|
private |
Definition at line 176 of file radiation_clouds.f.
Referenced by gethml().
|
private |
Definition at line 169 of file radiation_clouds.f.
Referenced by diagcld1(), progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 180 of file radiation_clouds.f.
Referenced by progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 179 of file radiation_clouds.f.
Referenced by progcld1(), progcld2(), and progcld3().
Definition at line 208 of file radiation_clouds.f.
Referenced by diagcld1(), and rhtable().
|
private |
Definition at line 181 of file radiation_clouds.f.
Referenced by progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 182 of file radiation_clouds.f.
Referenced by progcld1(), progcld2(), and progcld3().
|
private |
Definition at line 156 of file radiation_clouds.f.
Referenced by cld_init().
|
private |
Definition at line 202 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 203 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 197 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 196 of file radiation_clouds.f.
Referenced by diagcld1().
|
private |
Definition at line 197 of file radiation_clouds.f.
Referenced by diagcld1().