This module sets up astronomical quantities for solar radiation calculations. More...
Modules | |
| module | module_radiation_astronomy |
| This module sets up astronomy quantities for solar radiation calculations. | |
Functions/Subroutines | |
| subroutine, public | module_radiation_astronomy::sol_init (mpicomm, mpirank, mpiroot, isolar, solar_file, con_solr, con_solr_old, con_pi) |
| This subroutine initializes astronomy process, and set up module constants. | |
| subroutine, public | module_radiation_astronomy::sol_update (jdate, kyear, deltsw, deltim, lsol_chg, mpicomm, mpirank, mpiroot, slag, sdec, cdec, solcon, con_pi, errmsg, errflg) |
| This subroutine computes solar parameters at forecast 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. | |
Variables | |
| real(kind=kind_phys), public | module_radiation_astronomy::solc0 |
This module sets up astronomical quantities for solar radiation calculations.
Operational GFS selection for Solar constant value (namelist control parameter - ISOL = 2)
ISOL=0: presribed value = 1366 \(W m^{-2}\) (old)
ISOL=10: prescibed value = 1361 \(W m^{-2}\) (new)
ISOL=1: NOAA old yearly solar constant table with 11-year cycle (range: 1944-2006)
ISOL=2: NOAA new yearly solar constant table with 11-year cycle (range: 1850-2019)
ISOL=3: CMIP5 yearly solar constant table with 11-year cycle (range: 1610-2008)
ISOL=4: CMIP5 monthly solar constant table with 11-year cycle (range: 1882-2008)
| 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 | grids' longitudes in radians, work both on zonal, 0->2pi and -pi->+pi arrangements |
| sinlat | sine of the corresponding latitudes |
| coslat | cosine of the corresponding latitudes |
| solhr | time after 00z in hours |
| IM | num of grids in horizontal dimension |
| me | print message control flag |
| coszen | average of cosz for daytime only in sw call interval |
| coszdg | average of cosz over entire sw call interval |
Definition at line 862 of file radiation_astronomy.f.
| subroutine, public module_radiation_astronomy::sol_init | ( | type(mpi_comm), intent(in) | mpicomm, |
| integer, intent(in) | mpirank, | ||
| integer, intent(in) | mpiroot, | ||
| integer, intent(in) | isolar, | ||
| character(len=26), intent(in) | solar_file, | ||
| real(kind=kind_phys), intent(in) | con_solr, | ||
| real(kind=kind_phys), intent(in) | con_solr_old, | ||
| real(kind=kind_phys), intent(in) | con_pi | ||
| ) |
This subroutine initializes astronomy process, and set up module constants.
| me | print message control flag |
Definition at line 149 of file radiation_astronomy.f.
| 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, | ||
| type(mpi_comm), intent(in) | mpicomm, | ||
| integer, intent(in) | mpirank, | ||
| integer, intent(in) | mpiroot, | ||
| 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, | ||
| real (kind=kind_phys), intent(in) | con_pi, | ||
| character(len=*), intent(out) | errmsg, | ||
| integer, intent(out) | errflg | ||
| ) |
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 345 of file radiation_astronomy.f.
| real (kind=kind_phys), public module_radiation_astronomy::solc0 |
Definition at line 116 of file radiation_astronomy.f.