GFS Operational Physics Documentation  gsm/branches/DTC/phys-doc-all phys-doc-all R82971

This module sets up astronomical quantities for solar radiation calculations. More...

Detailed Description

This module sets up astronomical quantities for solar radiation calculations.

Version
NCEP-Radiation_astronomy v5.2 Jan 2013
Collaboration diagram for module_radiation_astronomy:

Parameter constants

real(kind=kind_phys), parameter module_radiation_astronomy::degrad = 180.0/con_pi
 
real(kind=kind_phys), parameter module_radiation_astronomy::tpi = 2.0 * con_pi
 
real(kind=kind_phys), parameter module_radiation_astronomy::hpi = 0.5 * con_pi
 
real(kind=kind_phys), parameter module_radiation_astronomy::f12 = 12.0
 
real(kind=kind_phys), parameter module_radiation_astronomy::f3600 = 3600.0
 
real(kind=kind_phys), parameter module_radiation_astronomy::czlimt = 0.0001
 
real(kind=kind_phys), parameter module_radiation_astronomy::pid12 = (2.0*asin(1.0))/f12
 

Module variable (to be set in module_radiation_astronomy::sol_init):

real(kind=kind_phys), public module_radiation_astronomy::solc0 = con_solr
 
integer module_radiation_astronomy::isolflg = 10
 
character(26) module_radiation_astronomy::solar_fname = ' '
 

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.
 

Function/Subroutine Documentation

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.

Parameters
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
solhrtime after 00z in hours
IMnum of grids in horizontal dimension
meprint 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().

Here is the caller graph for this function:

subroutine, public module_radiation_astronomy::sol_init ( integer, intent(in)  me)

This subroutine initializes astronomy process, and set up module constants.

Parameters
meprint 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().

Here is the caller graph for this function:

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.

Parameters
jdatencep absolute date and time at fcst time (yr, mon, day, t-zone, hr, min, sec, mil-sec)
kyearusually 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.
deltswtime duration in seconds per sw calculation
deltimtimestep in seconds
lsol_chglogical flags for change solar constant
meprint message control flag
slagequation of time in radians
sdec,cdecsin and cos of the solar declination angle
solconsun-earth distance adjusted solar constant \((w/m^2)\)

General Algorithm

  1. Call solar()
  2. Call prtime()

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().

Here is the call graph for this function:

Here is the caller graph for this function: