The GFS radiation driver module. More...
Modules | |
module | module_radiation_driver |
Constant values | |
real(kind=kind_phys) | module_radiation_driver::qmin |
QMIN=1.0e-10. More... | |
real(kind=kind_phys) | module_radiation_driver::qme5 |
QME5=1.0e-7. More... | |
real(kind=kind_phys) | module_radiation_driver::qme6 |
QME6=1.0e-7. More... | |
real(kind=kind_phys) | module_radiation_driver::epsq |
EPSQ=1.0e-12. More... | |
real, parameter | module_radiation_driver::prsmin = 1.0e-6 |
toa pressure minimum value in mb (hPa) More... | |
integer | module_radiation_driver::itsfc =0 |
control flag for lw sfc air/ground interface temp setting More... | |
input control variables (reset in radupdate): | |
integer | module_radiation_driver::month0 =0 |
integer | module_radiation_driver::iyear0 =0 |
integer | module_radiation_driver::monthd =0 |
logical | module_radiation_driver::loz1st =.true. |
first-time climatological ozone data read flag More... | |
integer, parameter | module_radiation_driver::ltp = 0 |
optional extra top layer on top of low ceiling models LTP=0: no extra top layer More... | |
logical, parameter | module_radiation_driver::lextop = (LTP > 0) |
subroutine, public | module_radiation_driver::radinit (si, NLAY, me) |
This subroutine is the initialization of radiation calculations. More... | |
subroutine, public | module_radiation_driver::radupdate (idate, jdate, deltsw, deltim, lsswr, me, slag, sdec, cdec, solcon) |
This subroutine calls many update subroutines to check and update radiation required but time varying data sets and module variables. More... | |
subroutine, public | module_radiation_driver::grrad (prsi, prsl, prslk, tgrs, qgrs, tracer, vvl, slmsk, xlon, xlat, tsfc, snowd, sncovr, snoalb, zorl, hprim, alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, sinlat, coslat, solhr, jdate, solcon, cv, cvt, cvb, fcice, frain, rrime, flgmin, icsdsw, icsdlw, ntcw, ncld, ntoz, NTRAC, NFXR, dtlw, dtsw, lsswr, lslwr, lssav, uni_cld, lmfshal, lmfdeep2, IX, IM, LM, me, lprnt, ipt, kdt, deltaq, sup, cnvw, cnvc, htrsw, topfsw, sfcfsw, dswcmp, uswcmp, sfalb, coszen, coszdg, htrlw, topflw, sfcflw, tsflw, semis, cldcov, fluxr , htrlw0, htrsw0, htrswb, htrlwb ) |
This subroutine is the driver of radiation calculation subroutines. It sets up profile variables for radiation input, including clouds, surface albedos, atmospheric aerosols, ozone, etc. More... | |
The GFS radiation driver module.
module_radiation_driver prepares the atmospheric profile, invokes the main radiation calculations, and computes radiative fluxes and heating rates for some arbitrary number of vertical columns. There are three externally accessible subroutines:
subroutine, public module_radiation_driver::radinit | ( | real (kind=kind_phys), dimension(:), intent(in) | si, |
integer, intent(in) | NLAY, | ||
integer, intent(in) | me | ||
) |
This subroutine is the initialization of radiation calculations.
si | model vertical sigma interface |
nlay | number of model vertical layers |
me | print control flag |
Definition at line 386 of file grrad.f.
References physparam::iaerflg, physparam::ialbflg, physparam::icldflg, physparam::icmphys, physparam::ico2flg, physparam::ictmflg, physparam::iemsflg, physparam::iovrlw, physparam::iovrsw, physparam::ioznflg, physparam::isolar, physparam::isubclw, physparam::isubcsw, itsfc, physparam::ivflip, iyear0, physparam::lcnorm, physparam::lcrick, lextop, physparam::lnoprec, loz1st, ltp, month0, monthd, and vtagrad.
Referenced by rad_initialize().
subroutine, public module_radiation_driver::radupdate | ( | integer, dimension(:), intent(in) | idate, |
integer, dimension(:), intent(in) | jdate, | ||
real (kind=kind_phys), intent(in) | deltsw, | ||
real (kind=kind_phys), intent(in) | deltim, | ||
logical, intent(in) | lsswr, | ||
integer, intent(in) | me, | ||
real (kind=kind_phys), intent(out) | slag, | ||
real (kind=kind_phys), intent(out) | sdec, | ||
real (kind=kind_phys), intent(out) | cdec, | ||
real (kind=kind_phys), intent(out) | solcon | ||
) |
This subroutine calls many update subroutines to check and update radiation required but time varying data sets and module variables.
idate | NCEP absolute date and time of intial condition (yr,mon,day,t-zone,hr,min,sec,mil-sec) |
jdate | NCEP absolute date and time at fcst time (yr,mon,day,t-zone,hr,min,sec,mil-sec) |
deltsw | SW radiation calling frequency in seconds |
deltim | model timestep in seconds |
lsswr | logical flags for sw radiation calculations |
me | print control flag |
slag | equation of time in radians |
sdec,cdec | sin and cos of the solar declination angle |
solcon | sun-earth distance adjusted solar constant (w/m2) |
Definition at line 627 of file grrad.f.
References physparam::ictmflg, physparam::isolar, iyear0, loz1st, month0, and monthd.
Referenced by gloopr(), and nuopc_physics::nuopc_rad_update().
subroutine, public module_radiation_driver::grrad | ( | real (kind=kind_phys), dimension(ix,lm+1), intent(in) | prsi, |
real (kind=kind_phys), dimension(ix,lm), intent(in) | prsl, | ||
prslk, | |||
tgrs, | |||
qgrs, | |||
tracer, | |||
vvl, | |||
real (kind=kind_phys), dimension(im), intent(in) | slmsk, | ||
xlon, | |||
xlat, | |||
tsfc, | |||
snowd, | |||
sncovr, | |||
snoalb, | |||
zorl, | |||
hprim, | |||
alvsf, | |||
alnsf, | |||
alvwf, | |||
alnwf, | |||
facsf, | |||
facwf, | |||
fice, | |||
tisfc, | |||
sinlat, | |||
coslat, | |||
real (kind=kind_phys), intent(in) | solhr, | ||
integer, dimension(8), intent(in) | jdate, | ||
real (kind=kind_phys), intent(in) | solcon, | ||
cv, | |||
cvt, | |||
cvb, | |||
fcice, | |||
frain, | |||
rrime, | |||
real (kind=kind_phys), dimension(im), intent(in) | flgmin, | ||
integer, dimension(im), intent(in) | icsdsw, | ||
integer, dimension(im), intent(in) | icsdlw, | ||
ntcw, | |||
ncld, | |||
ntoz, | |||
integer, intent(in) | NTRAC, | ||
integer, intent(in) | NFXR, | ||
real (kind=kind_phys), intent(in) | dtlw, | ||
real (kind=kind_phys), intent(in) | dtsw, | ||
logical, intent(in) | lsswr, | ||
logical, intent(in) | lslwr, | ||
logical, intent(in) | lssav, | ||
logical, intent(in) | uni_cld, | ||
logical, intent(in) | lmfshal, | ||
logical, intent(in) | lmfdeep2, | ||
integer, intent(in) | IX, | ||
integer, intent(in) | IM, | ||
integer, intent(in) | LM, | ||
integer, intent(in) | me, | ||
logical, intent(in) | lprnt, | ||
ipt, | |||
kdt, | |||
deltaq, | |||
real(kind=kind_phys), intent(in) | sup, | ||
cnvw, | |||
cnvc, | |||
real (kind=kind_phys), dimension(ix,lm), intent(out) | htrsw, | ||
type (topfsw_type), dimension(im), intent(out) | topfsw, | ||
type (sfcfsw_type), dimension(im), intent(out) | sfcfsw, | ||
real (kind=kind_phys), dimension(ix,4), intent(out) | dswcmp, | ||
uswcmp, | |||
sfalb, | |||
coszen, | |||
coszdg, | |||
real (kind=kind_phys), dimension(ix,lm), intent(out) | htrlw, | ||
type (topflw_type), dimension(im), intent(out) | topflw, | ||
type (sfcflw_type), dimension(im), intent(out) | sfcflw, | ||
real (kind=kind_phys), dimension(im), intent(out) | tsflw, | ||
semis, | |||
real (kind=kind_phys), dimension(ix,lm), intent(inout) | cldcov, | ||
real (kind=kind_phys), dimension(ix,nfxr), intent(inout) | fluxr, | ||
real (kind=kind_phys), dimension(ix,lm), intent(out), optional | htrlw0, | ||
real (kind=kind_phys), dimension(ix,lm), intent(out), optional | htrsw0, | ||
real (kind=kind_phys), dimension(ix,lm,nbdsw), optional | htrswb, | ||
real (kind=kind_phys), dimension(ix,lm,nbdlw), optional | htrlwb | ||
) |
This subroutine is the driver of radiation calculation subroutines. It sets up profile variables for radiation input, including clouds, surface albedos, atmospheric aerosols, ozone, etc.
prsi | model level pressure in Pa |
prsl | model layer mean pressure in Pa |
prslk | exner function = \( (p/p0)^{rocp} \) |
tgrs | model layer mean temperature in K |
qgrs | layer specific humidity in gm/gm |
tracer | layer prognostic tracer amount/mixing-ration; include: oz,cwc,aeros,etc |
vvl | layer mean vertical velocity in pa/sec |
slmsk | sea/land mask array (sea:0,land:1,sea-ice:2) |
xlon | grid longitude in radians,ok for both 0->2pi or -pi->+pi ranges |
xlat | grid latitude in radians, default to pi/2->-pi/2 range, otherwise adj in subr called |
tsfc | surface temperature in K |
snowd | snow depth water equivalent in mm |
sncovr | snow cover in fraction |
snoalb | maximum snow albedo in fraction |
zorl | surface roughness in cm |
hprim | topographic standard deviation in m |
alvsf | mean vis albedo with strong cosz dependency |
alnsf | mean nir albedo with strong cosz dependency |
alvwf | mean vis albedo with weak cosz dependency |
alnwf | mean nir albedo with weak cosz dependency |
facsf | fractional coverage with strong cosz dependency |
facwf | fractional coverage with weak cosz dependency |
fice | ice fraction over open water grid |
tisfc | surface temperature over ice fraction |
sinlat | sine of the grids' corresponding latitudes |
coslat | cosine of the grids' corresponding latitudes |
solhr | hour time after 00z at the t-stepe |
jdate | current forecast date and time (yr, mon, day, t-zone, hr, min, sec, mil-sec) |
solcon | solar constant (sun-earth distant adjusted) |
cv | fraction of convective cloud |
cvt,cvb | convective cloud top/bottom pressure in pa |
fcice | fraction of cloud ice (in ferrier scheme) |
frain | fraction of rain water (in ferrier scheme) |
rrime | mass ratio of total to unrimed ice ( >= 1 ) |
flgmin | minimum large ice fraction |
icsdsw,icsdlw | auxiliary cloud control arrays passed to main radiations. if isubcsw/isubclw (input to init) are set to 2, the arrays contains provided random seeds for sub-column clouds generators |
ntcw | =0 no cloud condensate calculated; >0 array index location for cloud condensate |
ncld | only used when ntcw .gt. 0 |
ntoz | =0 climatological ozone profile; >0 interactive ozone profile |
NTRAC | dimension veriable for array oz |
NFXR | second dimension of input/output array fluxr |
dtlw,dtsw | time duration for lw/sw radiation call in sec |
lsswr,lslwr | logical flags for sw/lw radiation calls |
lssav | logical flag for store 3-d cloud field |
IX,IM | horizontal dimention and num of used points |
LM | vertical layer dimension |
me | control flag for parallel process |
lprnt | control flag for diagnostic print out |
ipt | index for diagnostic printout point |
kdt | time-step number |
deltaq | half width of uniform total water distribution |
sup | supersaturation in pdf cloud when t is very low |
cnvw | layer convective cloud water |
cnvc | layer convective cloud cover |
htrsw | total sky sw heating rate in k/sec |
topfsw | SW radiation fluxes at toa, components: (check module_radsw_parameters for definition) upfxc - total sky upward sw flux at toa ( \(W/m^2\)) dnflx - total sky downward sw flux at toa ( \(W/m^2\)) upfx0 - clear sky upward sw flux at toa ( \(W/m^2\)) |
sfcfsw | SW radiation fluxes at sfc, components: (check module_radsw_parameters for definition) upfxc - total sky upward sw flux at sfc ( \(W/m^2\)) dnfxc - total sky downward sw flux at sfc ( \(W/m^2\)) upfx0 - clear sky upward sw flux at sfc ( \(W/m^2\)) dnfx0 - clear sky downward sw flux at sfc ( \(W/m^2\)) |
dswcmp | down sfc SW spectral components: (:, 1) - total sky sfc downward nir direct flux (:, 2) - total sky sfc downward nir diffused flux (:, 3) - total sky sfc downward uv+vis direct flux (:, 4) - total sky sfc downward uv+vis diff flux |
uswcmp | up sfc SW spectral components: (:, 1) - total sky sfc upward nir direct flux (:, 2) - total sky sfc upward nir diffused flux (:, 3) - total sky sfc upward uv+vis direct flux (:, 4) - total sky sfc upward uv+vis diff flux |
sfalb | mean surface diffused sw albedo |
coszen | mean cos of zenith angle over rad call period |
coszdg | daytime mean cosz over rad call period |
htrlw | total sky LW heating rate in k/sec |
topflw | LW radiation fluxes at top, component: (check module_radlw_paramters for definition) upfxc - total sky upward LW flux at toa ( \(W/m^2\)) upfx0 - clear sky upward LW flux at toa ( \(W/m^2\)) |
sfcflw | LW radiation fluxes at sfc, component: (check module_radlw_paramters for definition) upfxc - total sky upward LW flux at sfc ( \(W/m^2\)) upfx0 - clear sky upward LW flux at sfc ( \(W/m^2\)) dnfxc - total sky downward LW flux at sfc ( \(W/m^2\)) dnfx0 - clear sky downward LW flux at sfc ( \(W/m^2\)) |
semis | surface LW emissivity in fraction |
cldcov | 3-d cloud fraction |
tsflw | surface air temp during LW calculation in K |
fluxr | time accumulated 2-d fields defined as: 1 - toa total sky upwd LW radiation flux 2 - toa total sky upwd SW radiation flux 3 - sfc total sky upwd SW radiation flux 4 - sfc total sky dnwd SW radiation flux 5 - high domain cloud fraction 6 - mid domain cloud fraction 7 - low domain cloud fraction 8 - high domain mean cloud top pressure 9 - mid domain mean cloud top pressure 10 - low domain mean cloud top pressure 11 - high domain mean cloud base pressure 12 - mid domain mean cloud base pressure 13 - low domain mean cloud base pressure 14 - high domain mean cloud top temperature 15 - mid domain mean cloud top temperature 16 - low domain mean cloud top temperature 17 - total cloud fraction 18 - boundary layer domain cloud fraction 19 - sfc total sky dnwd LW radiation flux 20 - sfc total sky upwd LW radiation flux 21 - sfc total sky dnwd SW uv-b radiation flux 22 - sfc clear sky dnwd SW uv-b radiation flux 23 - toa incoming solar radiation flux 24 - sfc vis beam dnwd SW radiation flux 25 - sfc vis diff dnwd SW radiation flux 26 - sfc nir beam dnwd SW radiation flux 27 - sfc nir diff dnwd SW radiation flux 28 - toa clear sky upwd LW radiation flux 29 - toa clear sky upwd SW radiation flux 30 - sfc clear sky dnwd LW radiation flux 31 - sfc clear sky upwd SW radiation flux 32 - sfc clear sky dnwd SW radiation flux 33 - sfc clear sky upwd LW radiation flux optional: 34 - aeros opt depth at 550nm (all components) 35 - aeros opt depth at 550nm for du component 36 - aeros opt depth at 550nm for bc component 37 - aeros opt depth at 550nm for oc component 38 - aeros opt depth at 550nm for su component 39 - aeros opt depth at 550nm for ss component |
htrswb | spectral band total sky sw heating rate |
htrlwb | spectral band total sky lw heating rate |
Definition at line 957 of file grrad.f.
References epsq, funcphys::fpvs(), physparam::icmphys, itsfc, physparam::ivflip, lextop, ltp, prsmin, qme5, qme6, and qmin.
Referenced by gloopr(), and nuopc_physics::nuopc_rad_run().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 359 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
Definition at line 359 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
Definition at line 359 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
first-time climatological ozone data read flag
Definition at line 361 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |