This module sets up astronomical quantities for solar radiation calculations. More...
This module sets up astronomical quantities for solar radiation calculations.
Module variables (to be set in module_radiation_astronomy::sol_update) | |
real(kind=kind_phys) | module_radiation_astronomy::sollag =0.0 |
equation of time | |
real(kind=kind_phys) | module_radiation_astronomy::sindec =0.0 |
sine of the solar declination angle | |
real(kind=kind_phys) | module_radiation_astronomy::cosdec =0.0 |
cosine of the solar declination angle | |
real(kind=kind_phys) | module_radiation_astronomy::anginc =0.0 |
solar angle increment per interation of cosz calc | |
real(kind=kind_phys), dimension(12) | module_radiation_astronomy::smon_sav |
saved monthly solar constants (isolflg=4 only) | |
integer | module_radiation_astronomy::iyr_sav =0 |
saved year of data used | |
integer | module_radiation_astronomy::nstp =6 |
total number of zenith angle iterations | |
subroutine, public | module_radiation_astronomy::sol_init (me) |
This subroutine initializes astronomy process, and set up module constants. More... | |
subroutine, public | module_radiation_astronomy::sol_update (jdate, kyear, deltsw, deltim, lsol_chg, me, slag, sdec, cdec, solcon ) |
This subroutine computes solar parameters at forecast time. More... | |
subroutine | module_radiation_astronomy::solar (jd, fjd, r1, dlt, alp ) |
This subroutine computes radius vector, declination and right ascension of sun, and equation of time. | |
subroutine, public | module_radiation_astronomy::coszmn (xlon, sinlat, coslat, solhr, IM, me, coszen, coszdg ) |
This subroutine computes mean cos solar zenith angle over SW calling interval. More... | |
subroutine | module_radiation_astronomy::prtime (jd, fjd, dlt, alp, r1, solc ) |
This subroutine prints out forecast date, time, and astronomy quantities. | |
subroutine, public module_radiation_astronomy::coszmn | ( | real (kind=kind_phys), dimension(:), intent(in) | xlon, |
real (kind=kind_phys), dimension(:), intent(in) | sinlat, | ||
real (kind=kind_phys), dimension(:), intent(in) | coslat, | ||
real (kind=kind_phys), intent(in) | solhr, | ||
integer, intent(in) | IM, | ||
integer, intent(in) | me, | ||
real (kind=kind_phys), dimension(:), intent(out) | coszen, | ||
real (kind=kind_phys), dimension(:), intent(out) | coszdg | ||
) |
This subroutine computes mean cos solar zenith angle over SW calling interval.
xlon | (IM), grids' longitudes in radians, work both on zonal, 0->2pi and -pi->+pi arrangements |
sinlat | (IM), sine of the corresponding latitudes |
coslat | (IM), cosine of the corresponding latitudes |
solhr | time after 00z in hours |
IM | num of grids in horizontal dimension |
me | print message control flag |
coszen | (IM), average of cosz for daytime only in sw call interval |
coszdg | (IM), average of cosz over entire sw call interval |
Definition at line 805 of file radiation_astronomy.f.
References anginc, cosdec, nstp, sindec, and sollag.
Referenced by module_radiation_driver::grrad().
subroutine, public module_radiation_astronomy::sol_init | ( | integer, intent(in) | me | ) |
This subroutine initializes astronomy process, and set up module constants.
me | print message control flag |
Definition at line 147 of file radiation_astronomy.f.
References physcons::con_solr, physcons::con_solr_old, physparam::isolar, iyr_sav, nstp, and physparam::solar_file.
Referenced by module_radiation_driver::radinit().
subroutine, public module_radiation_astronomy::sol_update | ( | integer, dimension(:), intent(in) | jdate, |
integer, intent(in) | kyear, | ||
real (kind=kind_phys), intent(in) | deltsw, | ||
real (kind=kind_phys), intent(in) | deltim, | ||
logical, intent(in) | lsol_chg, | ||
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 computes solar parameters at forecast time.
jdate | ncep absolute date and time at fcst time (yr, mon, day, t-zone, hr, min, sec, mil-sec) |
kyear | 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. |
deltsw | time duration in seconds per sw calculation |
deltim | timestep in seconds |
lsol_chg | logical flags for change solar constant |
me | print message 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/m^2)\) |
Definition at line 324 of file radiation_astronomy.f.
References anginc, cosdec, iyr_sav, nstp, prtime(), sindec, smon_sav, solar(), and sollag.
Referenced by module_radiation_driver::radupdate().