Radiation Scheme in CCPP
|
This module sets up astronomy quantities for solar radiation calculations.
Functions/Subroutines | |
subroutine, public | sol_update |
This subroutine computes solar parameters at forecast time. More... | |
subroutine | solar |
This subroutine computes radius vector, declination and right ascension of sun, and equation of time. More... | |
subroutine, public | coszmn |
This subroutine computes mean cos solar zenith angle over SW calling interval. More... | |
subroutine | prtime |
This subroutine prints out forecast date, time, and astronomy quantities. More... | |
subroutine, public | sol_init |
This subroutine initializes astronomy process, and set up module constants. More... | |
Variables | |
character(40), parameter | vtagast ='NCEP-Radiation_astronomy v5.2 Jan 2013 ' |
real(kind=kind_phys), parameter | degrad = 180.0/con_pi |
real(kind=kind_phys), parameter | tpi = 2.0 * con_pi |
real(kind=kind_phys), parameter | hpi = 0.5 * con_pi |
real(kind=kind_phys), parameter | f12 = 12.0 |
real(kind=kind_phys), parameter | f3600 = 3600.0 |
real(kind=kind_phys), parameter | czlimt = 0.0001 |
real(kind=kind_phys), parameter | pid12 = (2.0*asin(1.0))/f12 |
real(kind=kind_phys), public | solc0 = con_solr |
integer | isolflg = 10 |
character(26) | solar_fname = ' ' |
real(kind=kind_phys) | sollag =0.0 |
real(kind=kind_phys) | sindec =0.0 |
real(kind=kind_phys) | cosdec =0.0 |
real(kind=kind_phys) | anginc =0.0 |
real(kind=kind_phys), dimension(12) | smon_sav |
integer | iyr_sav =0 |
integer | nstp =6 |
subroutine, public module_radiation_astronomy::coszmn | ( | ) |
[in] | xlon | real, (IM), grids' longitudes in radians, work both on zonal, 0->2pi and -pi->+pi arrangements |
[in] | sinlat | real, (IM), sine of the corresponding latitudes |
[in] | coslat | real, (IM), cosine of the corresponding latitudes |
[in] | solhr | real, time after 00z in hours |
[in] | IM | integer, num of grids in horizontal dimension |
[in] | me | integer, print message control flag |
[out] | coszen | real, (IM), average of cosz for daytime only in sw call interval |
[out] | coszdg | real, (IM), average of cosz over entire sw call interval |
Definition at line 788 of file radiation_astronomy.f.
References anginc, cosdec, czlimt, f12, nstp, pid12, sindec, and sollag.
Referenced by module_radiation_driver::grrad().
|
private |
Definition at line 879 of file radiation_astronomy.f.
References degrad, f12, hpi, and sollag.
Referenced by sol_update().
subroutine, public module_radiation_astronomy::sol_init | ( | ) |
[in] | me | print message control flag |
[out] | NONE |
physparam::isolar
- = 0: use the old fixed solar constant in "physcon"
- =10: use the new fixed solar constant in "physcon"
- = 1: use noaa ann-mean tsi tbl abs-scale with cyc apprx
- = 2: use noaa ann-mean tsi tbl tim-scale with cyc apprx
- = 3: use cmip5 ann-mean tsi tbl tim-scale with cyc apprx
- = 4: use cmip5 mon-mean tsi tbl tim-scale with cyc apprx
Definition at line 139 of file radiation_astronomy.f.
References physcons::con_solr, physcons::con_solr_old, physparam::isolar, isolflg, iyr_sav, nstp, physparam::solar_file, solar_fname, solc0, and vtagast.
Referenced by module_radiation_driver::radinit().
subroutine, public module_radiation_astronomy::sol_update | ( | ) |
[in] | jdate | integer, 1, ncep absolute date and time at fcst time (yr, mon, day, t-zone, hr, min, sec, mil-sec) |
[in] | kyear | integer, 1, usually kyear=jdate(1). if not, it is for hindcast mode, and it is usually the init cond time and serves as the upper limit of data can be used. |
[in] | deltsw | real, 1, time duration in seconds per sw calculation |
[in] | deltim | real, 1, timestep in seconds |
[in] | lsol_chg | logical flags for change solar constant |
[in] | me | integer, print message control flag |
[out] | slag | real, equation of time in radians |
[out] | sdec,cdec | real, sin and cos of the solar declination angle |
[out] | solcon | real, sun-earth distance adjusted solar constant \((w/m^2)\) |
Definition at line 310 of file radiation_astronomy.f.
References anginc, cosdec, f3600, isolflg, iyr_sav, nstp, pid12, prtime(), sindec, smon_sav, solar(), solar_fname, solc0, and sollag.
Referenced by module_radiation_driver::radupdate().
|
private |
Definition at line 620 of file radiation_astronomy.f.
References physcons::con_pi, cosdec, degrad, sindec, sollag, and tpi.
Referenced by sol_update().
|
private |
Definition at line 110 of file radiation_astronomy.f.
Referenced by coszmn(), and sol_update().
|
private |
Definition at line 109 of file radiation_astronomy.f.
Referenced by coszmn(), sol_update(), and solar().
|
private |
Definition at line 97 of file radiation_astronomy.f.
Referenced by coszmn().
|
private |
Definition at line 92 of file radiation_astronomy.f.
|
private |
Definition at line 95 of file radiation_astronomy.f.
|
private |
Definition at line 96 of file radiation_astronomy.f.
Referenced by sol_update().
|
private |
Definition at line 94 of file radiation_astronomy.f.
Referenced by prtime().
|
private |
Definition at line 103 of file radiation_astronomy.f.
Referenced by sol_init(), and sol_update().
|
private |
Definition at line 114 of file radiation_astronomy.f.
Referenced by sol_init(), and sol_update().
|
private |
Definition at line 115 of file radiation_astronomy.f.
Referenced by coszmn(), sol_init(), and sol_update().
|
private |
Definition at line 99 of file radiation_astronomy.f.
Referenced by coszmn(), and sol_update().
|
private |
Definition at line 108 of file radiation_astronomy.f.
Referenced by coszmn(), sol_update(), and solar().
|
private |
Definition at line 111 of file radiation_astronomy.f.
Referenced by sol_update().
|
private |
Definition at line 104 of file radiation_astronomy.f.
Referenced by sol_init(), and sol_update().
real (kind=kind_phys), public module_radiation_astronomy::solc0 = con_solr |
Definition at line 102 of file radiation_astronomy.f.
Referenced by sol_init(), and sol_update().
|
private |
Definition at line 107 of file radiation_astronomy.f.
Referenced by coszmn(), prtime(), sol_update(), and solar().
|
private |
Definition at line 93 of file radiation_astronomy.f.
Referenced by solar().
|
private |
Definition at line 87 of file radiation_astronomy.f.
Referenced by sol_init().