The GFS radiation driver module. 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:
|
Constant values | |
| real(kind=kind_phys) | module_radiation_driver::qmin |
| QMIN=1.0e-10. | |
| real(kind=kind_phys) | module_radiation_driver::qme5 |
| QME5=1.0e-7. | |
| real(kind=kind_phys) | module_radiation_driver::qme6 |
| QME6=1.0e-7. | |
| real(kind=kind_phys) | module_radiation_driver::epsq |
| EPSQ=1.0e-12. | |
| real, parameter | module_radiation_driver::prsmin = 1.0e-6 |
| toa pressure minimum value in mb (hPa) | |
| integer | module_radiation_driver::itsfc =0 |
| control flag for lw sfc air/ground interface temp setting | |
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 | |
| integer, parameter | module_radiation_driver::ltp = 0 |
| optional extra top layer on top of low ceiling models LTP=0: no extra top layer | |
| 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, |
| 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 |
| 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... | |
| subroutine, public module_radiation_driver::grrad | ( | ) |
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 944 of file grrad.f.
References module_radiation_astronomy::coszmn(), module_radiation_clouds::diagcld1(), epsq, module_radiation_gases::getgases(), module_radiation_gases::getozn(), physparam::icmphys, itsfc, physparam::ivflip, ltp, module_radlw_main::lwrad(), module_radiation_clouds::progcld1(), module_radiation_clouds::progcld2(), module_radiation_clouds::progcld3(), prsmin, qme5, qme6, qmin, module_radiation_aerosols::setaer(), module_radiation_surface::setalb(), module_radiation_surface::setemis(), and module_radsw_main::swrad().

| 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 module_radiation_aerosols::aer_init(), module_radiation_clouds::cld_init(), module_radiation_gases::gas_init(), 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, physparam::lcnorm, physparam::lcrick, physparam::lnoprec, loz1st, ltp, module_radlw_main::rlwinit(), module_radsw_main::rswinit(), module_radiation_surface::sfc_init(), and module_radiation_astronomy::sol_init().

| 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 | ||
| ) |
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 626 of file grrad.f.
References module_radiation_aerosols::aer_update(), module_radiation_gases::gas_update(), physparam::ictmflg, physparam::isolar, loz1st, and module_radiation_astronomy::sol_update().
