Radiation Scheme in CCPP
|
This file is the radiation driver module. it prepares atmospheric profiles and invokes main radiation calculation. More...
Functions/Subroutines | |
subroutine, public | radinit |
This subroutine is the initialization of radiation calculations. More... | |
subroutine, public | radupdate |
This subroutine calls many update subroutines to check and update radiation required but time varying data sets and module variables. More... | |
subroutine, public | 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... | |
Variables | |
character(40), parameter | vtagrad ='NCEP-Radiation_driver v5.2 Jan 2013 ' |
real(kind=kind_phys) | qmin |
real(kind=kind_phys) | qme5 |
real(kind=kind_phys) | qme6 |
real(kind=kind_phys) | epsq |
real, parameter | prsmin = 1.0e-6 |
integer | itsfc =0 |
integer | month0 =0 |
integer | iyear0 =0 |
integer | monthd =0 |
logical | loz1st =.true. |
integer, parameter | ltp = 0 |
logical, parameter | lextop = (LTP > 0) |
module_radiation_driver prepares atmospheric profile, invokes main radiation calculations, and computes radiative fluxes and heating rates for some arbitrary number of vertical colums.There are three externally accessible subroutines: radinit, radupdate, and grrad.
subroutine, public module_radiation_driver::grrad | ( | ) |
[in] | prsi | (IX,LM+1),model level pressure in Pa |
[in] | prsl | (IX,LM),model layer mean pressure in Pa |
[in] | prslk | (IX,LM),exner function = \( (p/p0)^{rocp} \) |
[in] | tgrs | (IX,LM),model layer mean temperature in K |
[in] | qgrs | (IX,LM),layer specific humidity in gm/gm |
[in] | tracer | (IX,LM,NTRAC),layer prognostic tracer amount/mixing-ration; incl: oz,cwc,aeros,etc |
[in] | vvl | (IX,LM),layer mean vertical velocity in pa/sec |
[in] | slmsk | (IM),sea/land mask array (sea:0,land:1,sea-ice:2) |
[in] | xlon | (IM),grid longitude in radians,ok for both 0->2pi or -pi->+pi ranges |
[in] | xlat | (IM),grid latitude in radians, default to pi/2->-pi/2 range, otherwise adj in subr called |
[in] | tsfc | (IM),surface temperature in K |
[in] | snowd | (IM),snow depth water equivalent in mm |
[in] | sncovr | (IM),snow cover in fraction |
[in] | snoalb | (IM),maximum snow albedo in fraction |
[in] | zorl | (IM),surface roughness in cm |
[in] | hprim | (IM),topographic standard deviation in m |
[in] | alvsf | (IM),mean vis albedo with strong cosz dependency |
[in] | alnsf | (IM),mean nir albedo with strong cosz dependency |
[in] | alvwf | (IM),mean vis albedo with weak cosz dependency |
[in] | alnwf | (IM),mean nir albedo with weak cosz dependency |
[in] | facsf | (IM),fractional coverage with strong cosz dependency |
[in] | facwf | (IM),fractional coverage with weak cosz dependency |
[in] | fice | (IM),ice fraction over open water grid |
[in] | tisfc | (IM),surface temperature over ice fraction |
[in] | sinlat | (IM),sine of the grids' corresponding latitudes |
[in] | coslat | (IM),cosine of the grids' corresponding latitudes |
[in] | solhr | hour time after 00z at the t-stepe |
[in] | jdate | (8),current forecast date and time (yr, mon, day, t-zone, hr, min, sec, mil-sec) |
[in] | solcon | solar constant (sun-earth distant adjusted) |
[in] | cv | (IM),fraction of convective cloud |
[in] | cvt,cvb | (IM),convective cloud top/bottom pressure in pa |
[in] | fcice | (IX,LM),fraction of cloud ice (in ferrier scheme) |
[in] | frain | (IX,LM),fraction of rain water (in ferrier scheme) |
[in] | rrime | (IX,LM),mass ratio of total to unrimed ice ( >= 1 ) |
[in] | flgmin | (IM),minimim large ice fraction |
[in] | icsdsw,icsdlw | (IM),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 ! |
[in] | ntcw | =0 no cloud condensate calculated; >0 array index location for cloud condensate |
[in] | ncld | only used when ntcw .gt. 0 |
[in] | ntoz | =0 climatological ozone profile; >0 interactive ozone profile |
[in] | NTRAC | dimension veriable for array oz |
[in] | NFXR | second dimension of input/output array fluxr |
[in] | dtlw,dtsw | time duration for lw/sw radiation call in sec |
[in] | lsswr,lslwr | logical flags for sw/lw radiation calls |
[in] | lssav | logical flag for store 3-d cloud field |
[in] | IX,IM | horizontal dimention and num of used points |
[in] | LM | vertical layer dimension |
[in] | me | control flag for parallel process |
[in] | lprnt | control flag for diagnostic print out |
[in] | ipt | index for diagnostic printout point |
[in] | kdt | time-step number |
[in] | deltaq | (IX,LM),half width of uniform total water distribution |
[in] | sup | supersaturation in pdf cloud when t is very low |
[in] | cnvw | (IX.LM),layer convective cloud water |
[in] | cnvc | (IX,LM),layer convective cloud cover |
[out] | htrsw | (IX,LM),total sky sw heating rate in k/sec |
[out] | topfsw | (IM),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) |
[out] | sfcfsw | (IM),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) |
[out] | dswcmp | (IX,4),dn 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 |
[out] | uswcmp | (IX,4),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 |
[out] | sfalb | (IM),mean surface diffused sw albedo |
[out] | coszen | (IM),mean cos of zenith angle over rad call period |
[out] | coszdg | (IM),daytime mean cosz over rad call period |
[out] | htrlw | (IX,LM),total sky lw heating rate in k/sec |
[out] | topflw | (IM),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) |
[out] | sfcflw | (IM),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) |
[out] | semis | (IM),surface lw emissivity in fraction |
[out] | cldcov | (IX,LM),3-d cloud fraction |
[out] | tsflw | (IM),surface air temp during lw calculation in K |
[in,out] | fluxr | (IX,NFXR),to save 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 ! |
[out] | htrswb | (IX,LM,NBDSW),spectral band total sky sw heating rate |
[out] | htrlwb | (IX,LM,NBDLW),spectral band total sky lw heating rate |
Definition at line 811 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, lextop, ltp, module_radlw_main::lwrad(), module_radlw_parameters::nbdlw, module_radsw_parameters::nbdsw, 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 | ( | ) |
[in] | si | model vertical sigma interface |
[in] | nlay | number of model vertical layers |
[in] | me | print control flag |
Definition at line 261 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, iyear0, physparam::lcnorm, physparam::lcrick, lextop, physparam::lnoprec, loz1st, physparam::lsashal, ltp, month0, monthd, module_radlw_main::rlwinit(), module_radsw_main::rswinit(), module_radiation_surface::sfc_init(), module_radiation_astronomy::sol_init(), and vtagrad.
Referenced by rad_initialize().
subroutine, public module_radiation_driver::radupdate | ( | ) |
[in] | idate(8) | ncep absolute date and time of intial condition (yr,mon,day,t-zone,hr,min,sec,mil-sec) |
[in] | jdate(8) | ncep absolute date and time at fcst time (yr,mon,day,t-zone,hr,min,sec,mil-sec) |
[in] | deltsw | sw radiation calling frequency in seconds |
[in] | deltim | model timestep in seconds |
[in] | lsswr | logical flags for sw radiation calculations |
[in] | me | print control flag |
[out] | slag | equation of time in radians |
[out] | sdec,cdec | sin and cos of the solar declination angle |
[out] | solcon | sun-earth distance adjusted solar constant (w/m2) |
Definition at line 495 of file grrad.f.
References module_radiation_aerosols::aer_update(), module_radiation_gases::gas_update(), physparam::ictmflg, physparam::isolar, iyear0, loz1st, month0, monthd, and module_radiation_astronomy::sol_update().
|
private |
|
private |
|
private |
Definition at line 235 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
|
private |
Definition at line 236 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
|
private |
Definition at line 235 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
Definition at line 235 of file grrad.f.
Referenced by radinit(), and radupdate().
|
private |
|
private |
|
private |
|
private |