PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

## Module astronomy_mod

Contact: fil
Reviewers:
Change History: WebCVS Log

#### OVERVIEW

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.

#### OTHER MODULES USED

             fms_mod
    time_manager_mod
       constants_mod

#### PUBLIC INTERFACE

astronomy_init:
  astronomy_init is the constructor for astronomy_mod.
get_period_integer:
  get_period_integer returns the length of the year as an integer number of seconds.
get_period_time_type:
  get_period_time_type returns the length of the year as a time_type variable.
set_period_integer:
  set_period_integer saves as the input length of the year (an integer) in a time_type module variable.
set_orbital_parameters:
  set_orbital_parameters saves the input values of eccentricity, obliquity and perihelion time as module variables for use by astronomy_mod.
get_orbital_parameters:
  get_orbital_parameters retrieves the orbital parameters for use by another module.
set_ref_date_of_ae:
  set_ref_date_of_ae provides a means of specifying the reference date of the NH autumnal equinox for a particular year.
get_ref_date_of_ae:
  get_ref_date_of_ae retrieves the reference date of the autumnal equinox as integer variables.
diurnal_solar_2d:
  diurnal_solar_2d returns 2d fields of cosine of zenith angle, daylight fraction and earth-sun distance at the specified lati- tudes, longitudes and time. these values may be instantaneous or averaged over a specified time interval.
diurnal_solar_1d:
  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.
diurnal_solar_0d:
  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.
diurnal_solar_cal_2d:
  diurnal_solar_cal_2d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
diurnal_solar_cal_1d:
  diurnal_solar_cal_1d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
diurnal_solar_cal_0d:
  diurnal_solar_cal_0d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
daily_mean_solar_2d:
  daily_mean_solar_2d computes the daily mean astronomical parameters for the input points at latitude lat and time of year time_since_ae.
daily_mean_solar_1d:
  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.
daily_mean_solar_2level:
  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.
daily_mean_solar_0d:
  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.
daily_mean_solar_cal_2d:
  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.
daily_mean_solar_cal_1d:
  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.
daily_mean_solar_cal_2level:
  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.
daily_mean_solar_cal_0d:
  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.
annual_mean_solar_2d:
  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.
annual_mean_solar_1d:
  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.
annual_mean_solar_2level:
  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.
astronomy_end:
  astronomy_init is the destructor for 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).
r_inv_squared:
  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.
angle:
  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.
declination:
  declination returns the solar declination angle at orbital position ang in earth's orbit.
half_day_2d:
  half_day_2d returns a 2-d array of half-day lengths at the latitudes and declination provided.
half_day_0d:
  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.
orbital_time:
  orbital time returns the time (1 year = 2*pi) since autumnal equinox
universal_time:
  universal_time returns the time of day at longitude = 0.0 (1 day = 2*pi)

#### PUBLIC DATA

None.

#### PUBLIC ROUTINES

1. #### astronomy_init

       call astronomy_init (latb, lonb)

   DESCRIPTION
     astronomy_init is the constructor for astronomy_mod.
   INPUT

     `latb` | array of model latitudes at cell boundaries [radians] [real]
     `lonb` | array of model longitudes at cell boundaries [radians] [real]

2. #### get_period_integer

       call get_period_integer (period_out)

   DESCRIPTION
     get_period_integer returns the length of the year as an integer number of seconds.
   OUTPUT

     `period_out` | number of seconds as the length of the year [integer]

3. #### get_period_time_type

       call get_period_time_type (period_out)

   DESCRIPTION
     get_period_time_type returns the length of the year as a time_type variable.
   OUTPUT

     `period_out` | the length of the year as a time_type [time_type]

4. #### set_period_integer

       call set_period_integer (period_in)

   DESCRIPTION
     set_period_integer saves as the input length of the year (an integer) in a time_type module variable.
   INPUT

     `period_in` | the length of the year as a time_type [time_type]

5. #### set_orbital_parameters

       call set_orbital_parameters (ecc_in, obliq_in, per_in)

   DESCRIPTION
     set_orbital_parameters saves the input values of eccentricity, obliquity and perihelion time as module variables for use by astronomy_mod.
   INPUT

     `ecc_in` | eccentricity of orbital ellipse [real]
     `obliq_in` | obliquity fof orbital ellipse [real]
     `per_in` | longitude of perihelion with respect to autumnal equinox in northern hemisphere [real]

6. #### get_orbital_parameters

       call get_orbital_parameters (ecc_out, obliq_out, per_out)

   DESCRIPTION
     get_orbital_parameters retrieves the orbital parameters for use by another module.
   OUTPUT

     `ecc_out` | eccentricity of orbital ellipse [real]
     `obliq_out` | obliquity fof orbital ellipse [real]
     `per_out` | longitude of perihelion with respect to autumnal equinox in northern hemisphere [real]

7. #### set_ref_date_of_ae

       call set_ref_date_of_ae (day_in,month_in,year_in, & second_in,minute_in,hour_in)

   DESCRIPTION
     set_ref_date_of_ae provides a means of specifying the reference date of the NH autumnal equinox for a particular year. it is only used if calls are made to the calandar versions of the routines diurnal_solar and daily_mean_solar. if the NOLEAP calendar is used, then the date of autumnal equinox will be the same every year. if JULIAN is used, then the date of autumnal equinox will return to the same value every 4th year.
   INPUT

     `day_in` | day of reference autumnal equinox [integer]
     `month_in` | month of reference autumnal equinox [integer]
     `year_in` | year of reference autumnal equinox [integer]
     `second_in` | OPTIONAL: second of reference autumnal equinox [real]
     `minute_in` | OPTIONAL: minute of reference autumnal equinox [real]
     `hour_in` | OPTIONAL: hour of reference autumnal equinox [real]

8. #### get_ref_date_of_ae

       call get_ref_date_of_ae (day_out,month_out,year_out, & second_out, minute_out,hour_out)

   DESCRIPTION
     get_ref_date_of_ae retrieves the reference date of the autumnal equinox as integer variables.
   OUTPUT

     `day_out` | day of reference autumnal equinox [integer]
     `month_out` | month of reference autumnal equinox [integer]
     `year_out` | year of reference autumnal equinox [integer]
     `second_out` | second of reference autumnal equinox [real]
     `minute_out` | minute of reference autumnal equinox [real]
     `hour_out` | hour of reference autumnal equinox [real]

9. #### diurnal_solar_2d

       call diurnal_solar_2d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt_time)

   DESCRIPTION
     diurnal_solar_2d returns 2d fields of cosine of zenith angle, daylight fraction and earth-sun distance at the specified lati- tudes, longitudes and time. these values may be instantaneous or averaged over a specified time interval.
   INPUT

     `lat` | latitudes of model grid points [real]
     `lon` | longitude of model grid points [real]
     `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
     `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
     `dt` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [real]

   OUTPUT

     `cosz` | cosine of solar zenith angle [real]
     `fracday` | daylight fraction of time interval [real]
     `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

10. #### diurnal_solar_1d

        call diurnal_solar_1d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `lon` | longitude of model grid points [real]
      `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
      `dt` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

11. #### diurnal_solar_0d

        call diurnal_solar_0d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `lon` | longitude of model grid points [real]
      `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
      `dt` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

12. #### diurnal_solar_cal_2d

        call diurnal_solar_cal_2d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt)

    DESCRIPTION
      diurnal_solar_cal_2d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
    INPUT

      `lat` | latitudes of model grid points [real]
      `lon` | longitude of model grid points [real]
      `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
      `dt_time` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

13. #### diurnal_solar_cal_1d

        call diurnal_solar_cal_1d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt)

    DESCRIPTION
      diurnal_solar_cal_1d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
    INPUT

      `lat` | latitudes of model grid points [real]
      `lon` | longitude of model grid points [real]
      `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
      `dt_time` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

14. #### diurnal_solar_cal_0d

        call diurnal_solar_cal_0d (lat, lon, gmt, time_since_ae, cosz, & fracday, rrsun, dt_time)

    DESCRIPTION
      diurnal_solar_cal_0d receives time_type inputs, converts them to real variables and then calls diurnal_solar_2d to compute desired astronomical variables.
    INPUT

      `lat` | latitudes of model grid points [real]
      `lon` | longitude of model grid points [real]
      `gmt` | time of day at longitude 0.0; midnight = 0.0, one day = 2 * pi [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]
      `dt_time` | OPTIONAL: time interval after gmt over which the astronomical variables are to be averaged. this produces averaged output rather than instantaneous. [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

15. #### daily_mean_solar_2d

        call daily_mean_solar_2d (lat, time_since_ae, cosz, h_out, rr_out)

    DESCRIPTION
      daily_mean_solar_2d computes the daily mean astronomical parameters for the input points at latitude lat and time of year time_since_ae.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `h_out` | 2-d array of half-day lengths at the latitudes [real]
      `rr_out` | the inverse of the square of the earth-sun distance relative to the mean distance at angle ang in the earth's orbit. [real]

16. #### daily_mean_solar_1d

        call daily_mean_solar_1d (lat, time_since_ae, cosz, h_out, rr_out)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `h_out` | 2-d array of half-day lengths at the latitudes [real]
      `rr_out` | the inverse of the square of the earth-sun distance relative to the mean distance at angle ang in the earth's orbit. [real]

17. #### daily_mean_solar_2level

        call daily_mean_solar_2level (lat, time_since_ae, cosz, solar)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `solar` | shortwave flux factor: cosine of zenith angle * daylight fraction / (earth-sun distance squared) [real]

18. #### daily_mean_solar_0d

        call daily_mean_solar_0d (lat, time_since_ae, cosz, h_out, rr_out)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time_since_ae` | time of year; autumnal equinox = 0.0, one year = 2 * pi [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `h_out` | 2-d array of half-day lengths at the latitudes [real]
      `rr_out` | the inverse of the square of the earth-sun distance relative to the mean distance at angle ang in the earth's orbit. [real]

19. #### daily_mean_solar_cal_2d

        call daily_mean_solar_cal_2d (lat, time, cosz, fracday, rrsun)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

20. #### daily_mean_solar_cal_1d

        call daily_mean_solar_cal_1d (lat, time, cosz, fracday, rrsun)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

21. #### daily_mean_solar_cal_2level

        call daily_mean_solar_cal_2level (lat, time, cosz, solar)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `solar` | shortwave flux factor: cosine of zenith angle * daylight fraction / (earth-sun distance squared) [real]

22. #### daily_mean_solar_cal_0d

        call daily_mean_solar_cal_0d (lat, time, cosz, fracday, rrsun)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

23. #### annual_mean_solar_2d

        call annual_mean_solar_2d (js, je, lat, cosz, solar, fracday, & rrsun)

    DESCRIPTION
      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.
    INPUT

      `js, je` | Starting/ending index of latitude window [real]
      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `solar` | shortwave flux factor: cosine of zenith angle * daylight fraction / (earth-sun distance squared) [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

24. #### annual_mean_solar_1d

        call annual_mean_solar_1d (jst, jnd, lat, cosz, solar, & fracday, rrsun_out)

    DESCRIPTION
      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.
    INPUT

      `jst, jnd` | Starting/ending index of latitude window [real]
      `lat` | latitudes of model grid points [real]
      `time` | time of year; autumnal equinox = 0.0, one year = 2 * pi [time_type]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `solar` | shortwave flux factor: cosine of zenith angle * daylight fraction / (earth-sun distance squared) [real]
      `fracday` | daylight fraction of time interval [real]
      `rrsun_out` | earth-sun distance (r) relative to semi-major axis of orbital ellipse (a) : (a/r)**2 [real]

25. #### annual_mean_solar_2level

        call annual_mean_solar_2level (lat, cosz, solar)

    DESCRIPTION
      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.
    INPUT

      `lat` | latitudes of model grid points [real]

    OUTPUT

      `cosz` | cosine of solar zenith angle [real]
      `solar` | shortwave flux factor: cosine of zenith angle * daylight fraction / (earth-sun distance squared) [real]

26. #### astronomy_end

        call astronomy_end

    DESCRIPTION
      astronomy_init is the destructor for astronomy_mod.

27. #### orbit

        call orbit

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

28. #### r_inv_squared

        r = r_inv_squared (ang)

    DESCRIPTION
      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.
    INPUT

      `ang` | angular position of earth in its orbit, relative to a value of 0.0 at the NH autumnal equinox, value between 0.0 and 2 * pi [real]

29. #### angle

        r = angle (t)

    DESCRIPTION
      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.
    INPUT

      `t` | time of year (between 0 and 2*pi; t=0 at NH autumnal equinox [real]

30. #### declination

        r = declination (ang)

    DESCRIPTION
      declination returns the solar declination angle at orbital position ang in earth's orbit.
    INPUT

      `ang` | solar orbital position ang in earth's orbit [real]

31. #### half_day_2d

        h = half_day_2d (latitude, dec)

    DESCRIPTION
      half_day_2d returns a 2-d array of half-day lengths at the latitudes and declination provided.
    INPUT

      `latitude` | latitutde of view point [real]
      `dec` | solar declination angle at view point [real]

32. #### half_day_0d

        half_day_0d

    DESCRIPTION
      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.
    INPUT

      `latitude` | latitutde of view point [real]
      `dec` | solar declination angle at view point [real]

33. #### orbital_time

        t = orbital_time (time)

    DESCRIPTION
      orbital time returns the time (1 year = 2*pi) since autumnal equinox; autumnal_eq_ref is a module variable of time_type and will have been defined by default or by a call to set_ref_date_of_ae; length_of_year is available through the time manager and is set at the value approriate for the calandar being used
    INPUT

      `time` | time (1 year = 2*pi) since autumnal equinox [time_type]

34. #### universal_time

        t = universal_time (time)

    DESCRIPTION
      universal_time returns the time of day at longitude = 0.0 (1 day = 2*pi)
    INPUT

      `time` | time (1 year = 2*pi) since autumnal equinox [time_type]

#### DATA SETS

None.

#### ERROR MESSAGES

None.

top