FV3 Bundle
astronomy.F90 File Reference
#include <file_version.h>
Include dependency graph for astronomy.F90:

Go to the source code of this file.

Data Types

interface  astronomy_mod::diurnal_solar
 
interface  astronomy_mod::daily_mean_solar
 
interface  astronomy_mod::annual_mean_solar
 
interface  astronomy_mod::get_period
 
interface  astronomy_mod::set_period
 
interface  astronomy_mod::half_day
 

Modules

module  astronomy_mod
 astronomy_mod provides astronomical variables for use by other modules within fms. The only currently used interface is for determination of astronomical values needed by the shortwave radiation packages.
 

Functions/Subroutines

subroutine, public astronomy_mod::astronomy_init (latb, lonb)
 astronomy_init is the constructor for astronomy_mod. More...
 
subroutine astronomy_mod::get_period_integer (period_out)
 get_period_integer returns the length of the year as an integer number of seconds. More...
 
subroutine astronomy_mod::get_period_time_type (period_out)
 get_period_time_type returns the length of the year as a time_type variable. More...
 
subroutine astronomy_mod::set_period_integer (period_in)
 set_period_integer saves as the input length of the year (an integer) in a time_type module variable. More...
 
subroutine astronomy_mod::set_period_time_type (period_in)
 Set_period_time_type saves the length of the year (input as a time_type variable) into a time_type module variable. More...
 
subroutine, public astronomy_mod::set_orbital_parameters (ecc_in, obliq_in, per_in)
 set_orbital_parameters saves the input values of eccentricity, obliquity and perihelion time as module variables for use by astronomy_mod. More...
 
subroutine, public astronomy_mod::get_orbital_parameters (ecc_out, obliq_out, per_out)
 get_orbital_parameters retrieves the orbital parameters for use by another module. More...
 
subroutine, public astronomy_mod::set_ref_date_of_ae (day_in, month_in, year_in, second_in, minute_in, hour_in)
 set_ref_date_of_ae provides a means of specifying the reference date of the NH autumnal equinox for a particular year. More...
 
subroutine, public astronomy_mod::get_ref_date_of_ae (day_out, month_out, year_out, second_out, minute_out, hour_out)
 get_ref_date_of_ae retrieves the reference date of the autumnal equinox as integer variables. More...
 
subroutine astronomy_mod::diurnal_solar_2d (lat, lon, gmt, time_since_ae, cosz, fracday, rrsun, dt, allow_negative_cosz, half_day_out)
 diurnal_solar_2d returns 2d fields of cosine of zenith angle, daylight fraction and earth-sun distance at the specified latitudes, longitudes and time. These values may be instantaneous or averaged over a specified time interval. More...
 
subroutine astronomy_mod::diurnal_solar_1d (lat, lon, gmt, time_since_ae, cosz, fracday, rrsun, dt, allow_negative_cosz, half_day_out)
 diurnal_solar_1d takes 1-d input fields, adds a second dimension and calls diurnal_solar_2d. on return, the 2d fields are returned to the original 1d fields. More...
 
subroutine astronomy_mod::diurnal_solar_0d (lat, lon, gmt, time_since_ae, cosz, fracday, rrsun, dt, allow_negative_cosz, half_day_out)
 diurnal_solar_0d takes scalar input fields, makes them into 2d arrays dimensioned (1,1), and calls diurnal_solar_2d. on return, the 2d fields are converted back to the desired scalar output. More...
 
subroutine astronomy_mod::diurnal_solar_cal_2d (lat, lon, time, cosz, fracday, rrsun, dt_time, allow_negative_cosz, half_day_out)
 diurnal_solar_cal_2d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::diurnal_solar_cal_1d (lat, lon, time, cosz, fracday, rrsun, dt_time, allow_negative_cosz, half_day_out)
 diurnal_solar_cal_1d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::diurnal_solar_cal_0d (lat, lon, time, cosz, fracday, rrsun, dt_time, allow_negative_cosz, half_day_out)
 diurnal_solar_cal_0d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::daily_mean_solar_2d (lat, time_since_ae, cosz, h_out, rr_out)
 daily_mean_solar_2d computes the daily mean astronomical parameters for the input points at latitude lat and time of year time_since_ae. More...
 
subroutine astronomy_mod::daily_mean_solar_1d (lat, time_since_ae, cosz, h_out, rr_out)
 daily_mean_solar_1d takes 1-d input fields, adds a second dimension and calls daily_mean_solar_2d. on return, the 2d fields are returned to the original 1d fields. More...
 
subroutine astronomy_mod::daily_mean_solar_2level (lat, time_since_ae, cosz, solar)
 daily_mean_solar_2level takes 1-d input fields, adds a second dimension and calls daily_mean_solar_2d. on return, the 2d fields are returned to the original 1d fields. More...
 
subroutine astronomy_mod::daily_mean_solar_0d (lat, time_since_ae, cosz, h_out, rr_out)
 daily_mean_solar_1d takes 1-d input fields, adds a second dimension and calls daily_mean_solar_2d. on return, the 2d fields are returned to the original 1d fields. More...
 
subroutine astronomy_mod::daily_mean_solar_cal_2d (lat, time, cosz, fracday, rrsun)
 daily_mean_solar_cal_2d receives time_type inputs, converts them to real variables and then calls daily_mean_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::daily_mean_solar_cal_1d (lat, time, cosz, fracday, rrsun)
 daily_mean_solar_cal_1d receives time_type inputs, converts them to real, 2d variables and then calls daily_mean_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::daily_mean_solar_cal_2level (lat, time, cosz, solar)
 daily_mean_solar_cal_2level receives 1d arrays and time_type input, converts them to real, 2d variables and then calls daily_mean_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::daily_mean_solar_cal_0d (lat, time, cosz, fracday, rrsun)
 daily_mean_solar_cal_0d converts scalar input fields to real, 2d variables and then calls daily_mean_solar_2d to compute desired astronomical variables. More...
 
subroutine astronomy_mod::annual_mean_solar_2d (js, je, lat, cosz, solar, fracday, rrsun)
 annual_mean_solar_2d returns 2d fields of annual mean values of the cosine of zenith angle, daylight fraction and earth-sun distance at the specified latitude. More...
 
subroutine astronomy_mod::annual_mean_solar_1d (jst, jnd, lat, cosz, solar, fracday, rrsun_out)
 annual_mean_solar_1d creates 2-d input fields from 1-d input fields and then calls annual_mean_solar_2d to obtain 2-d output fields which are then stored into 1-d fields for return to the calling subroutine. More...
 
subroutine astronomy_mod::annual_mean_solar_2level (lat, cosz, solar)
 annual_mean_solar_2level creates 2-d input fields from 1-d input fields and then calls annual_mean_solar_2d to obtain 2-d output fields which are then stored into 1-d fields for return to the calling subroutine. This subroutine will be called during model initialization. More...
 
subroutine, public astronomy_mod::astronomy_end
 astronomy_end is the destructor for astronomy_mod. More...
 
subroutine, private astronomy_mod::orbit
 Orbit computes and stores a table of value of orbital angles as a function of orbital time (both the angle and time are zero at autumnal equinox in the NH, and range from 0 to 2*pi). More...
 
real function, private astronomy_mod::r_inv_squared (ang)
 r_inv_squared returns the inverse of the square of the earth-sun distance relative to the mean distance at angle ang in the Earth's orbit. More...
 
real function, private astronomy_mod::angle (t)
 angle determines the position within the earth's orbit at time t in the year (t = 0 at NH autumnal equinox) by interpolating into the orbital position table. More...
 
real function, private astronomy_mod::declination (ang)
 Declination returns the solar declination angle at orbital position ang in earth's orbit. More...
 
real function, dimension(size(latitude, 1), size(latitude, 2)) astronomy_mod::half_day_2d (latitude, dec)
 half_day_2d returns a 2-d array of half-day lengths at the latitudes and declination provided. More...
 
real function astronomy_mod::half_day_0d (latitude, dec)
 half_day_0d takes scalar input fields, makes them into 2-d fields dimensioned (1,1), and calls half_day_2d. On return, the 2-d fields are converted to the desired scalar output. More...
 
real function, public astronomy_mod::orbital_time (time)
 Orbital time returns the time (1 year = 2*pi) since autumnal equinox. More...
 
real function, public astronomy_mod::universal_time (time)
 universal_time returns the time of day at longitude = 0.0 (1 day = 2*pi) More...
 

Variables

real astronomy_mod::ecc = 0.01671
 Eccentricity of Earth's orbit [dimensionless]. More...
 
real astronomy_mod::obliq = 23.439
 Obliquity [degrees]. More...
 
real astronomy_mod::per = 102.932
 Longitude of perihelion with respect to autumnal equinox in NH [degrees]. More...
 
integer astronomy_mod::period = 0
 Specified length of year [seconds]; must be specified to override default value given by length_of_year in time_manager_mod. More...
 
integer astronomy_mod::day_ae = 23
 Day of specified autumnal equinox. More...
 
integer astronomy_mod::month_ae = 9
 Month of specified autumnal equinox. More...
 
integer astronomy_mod::year_ae = 1998
 Year of specified autumnal equinox. More...
 
integer astronomy_mod::hour_ae = 5
 Hour of specified autumnal equinox. More...
 
integer astronomy_mod::minute_ae = 37
 Minute of specified autumnal equinox. More...
 
integer astronomy_mod::second_ae = 0
 Second of specified autumnal equinox. More...
 
integer astronomy_mod::num_angles = 3600
 Number of intervals into which the year is divided to compute orbital positions. More...
 
type(time_type) astronomy_mod::autumnal_eq_ref
 time_type variable containing specified time of reference NH autumnal equinox More...
 
type(time_type) astronomy_mod::period_time_type
 time_type variable containing period of one orbit More...
 
real, dimension(:), allocatable astronomy_mod::orb_angle
 table of orbital positions (0 to 2*pi) as a function of time used to find actual orbital position via interpolation More...
 
real astronomy_mod::seconds_per_day =86400.
 seconds in a day More...
 
real astronomy_mod::deg_to_rad
 conversion from degrees to radians More...
 
real astronomy_mod::twopi
 2 *PI More...
 
logical astronomy_mod::module_is_initialized =.false.
 has the module been initialized ? More...
 
real, dimension(:,:), allocatable astronomy_mod::cosz_ann
 annual mean cos of zenith angle More...
 
real, dimension(:,:), allocatable astronomy_mod::solar_ann
 annual mean solar factor More...
 
real, dimension(:,:), allocatable astronomy_mod::fracday_ann
 annual mean daylight fraction More...
 
real astronomy_mod::rrsun_ann
 annual mean earth-sun distance More...
 
logical astronomy_mod::annual_mean_calculated =.false.
 have the annual mean values been calculated? More...
 
integer astronomy_mod::num_pts = 0
 count of grid_boxes for which annual mean astronomy values have been calculated More...
 
integer astronomy_mod::total_pts
 number of grid boxes owned by the processor More...