![]() |
libTheSky
Routines to compute sky positions of Sun, Moon, planets and more
|
Procedures to determine rise, transit and set times. More...
Functions/Subroutines | |
| subroutine | riset (jd, pl, rt, tt, st, rh, ta, sh, rsalt, for_night, ltime, cwarn, converge) |
| Rise, transit and set times routine for Sun, Moon, planets and asteroids. This version recomputes positions (low accuracy first, then full accuracy) during the convergence process. See riset_ipol() for a version using interpolation, to be used for planets only(!) | |
| subroutine | riset_ipol (jd, pl, rt, tt, st, rh, ta, sh, rsalt, for_night, ltime, cwarn) |
| Old routine for rise, transit and set times for planets and asteroids - don't use this for Sun and Moon Computes three sets of planet positions, and interpolates between them. | |
| subroutine | riset_ad (jd, ra, dec, rt, tt, st, rh, ta, sh, rsalt, for_night, cwarn) |
| Rise, transit and set times routine for an object with fixed ra & dec. | |
| subroutine | best_obs_date (jd00, ra0, m, d) |
| Compute the date (m,d) at which an object with ra can be observed best, i.e., it transits at midnight | |
| real(double) function | rsipol (y1, y2, y3, n) |
| Quadratic interpolation of rise/set times for riset_ipol(). | |
Procedures to determine rise, transit and set times.
| subroutine thesky_riset::best_obs_date | ( | real(double), intent(in) | jd00, |
| real(double), intent(in) | ra0, | ||
| integer, intent(out) | m, | ||
| integer, intent(out) | d ) |
Compute the date (m,d) at which an object with ra can be observed best, i.e., it transits at midnight
| jd00 | Julian day? |
| ra0 | Right ascension |
| m | Month of best observation (output) |
| d | Day of month of best observation (output) |
Definition at line 702 of file riset.f90.
References thesky_datetime::gettz(), thesky_planetdata::nplanpos, thesky_planets::planet_position(), thesky_planetdata::planpos, riset(), and thesky_local::tz.

| subroutine thesky_riset::riset | ( | real(double), intent(in) | jd, |
| integer, intent(in) | pl, | ||
| real(double), intent(out) | rt, | ||
| real(double), intent(out) | tt, | ||
| real(double), intent(out) | st, | ||
| real(double), intent(out) | rh, | ||
| real(double), intent(out) | ta, | ||
| real(double), intent(out) | sh, | ||
| real(double), intent(in) | rsalt, | ||
| logical, intent(in), optional | for_night, | ||
| logical, intent(in), optional | ltime, | ||
| logical, intent(in), optional | cwarn, | ||
| integer, dimension(3), intent(out), optional | converge ) |
Rise, transit and set times routine for Sun, Moon, planets and asteroids. This version recomputes positions (low accuracy first, then full accuracy) during the convergence process. See riset_ipol() for a version using interpolation, to be used for planets only(!)
| jd | Julian day number. The rise/transit and set data are computed for the (calendar) DAY of this JD (midnight-midnight), unless for_night=.true. in which case this happens for the NIGHT starting at JD. |
| pl | Planet/object number (-1 - 9: ES, Moon, Mer-Plu; >10000: asteroids) |
| rt | Rise time (hours) (output) |
| tt | Transit time (hours) (output) |
| st | Set time (hours) (output) |
| rh | Rising wind direction (rad) (output) |
| ta | Transit altitude (rad) (output) |
| sh | Setting wind direction (rad) (output) |
| rsAlt | Altitude to return rise/set data for (degrees; 0. is actual rise/set). rsAlt>90: compute transit only |
| for_night | Compute rise/tranit/set data for the NIGHT starting at the indicated JD, rather than the calendar day. Times between 0h and 12h are for the NEXT calendar day! (optional; default: false) |
| ltime | Passed to planet_position(). If .true., include light time, doubling the CPU time while gaining a bit of accuracy (optional; default: false) |
| cWarn | Warn upon convergence failure (optional; default: true) |
| converge | Number of iterations needed to converge (optional) (output) |
Definition at line 82 of file riset.f90.
References thesky_local::deltat, thesky_local::lat0, thesky_local::lon0, thesky_planets::planet_position(), thesky_planets::planet_position_la(), thesky_planetdata::planpos, thesky_coordinates::refract(), riset_ipol(), and thesky_local::tz.
Referenced by best_obs_date(), thesky_visibility::best_planet_visibility(), and thesky_visibility::planet_visibility_tonight().

| subroutine thesky_riset::riset_ad | ( | real(double), intent(in) | jd, |
| real(double), intent(in) | ra, | ||
| real(double), intent(in) | dec, | ||
| real(double), intent(out) | rt, | ||
| real(double), intent(out) | tt, | ||
| real(double), intent(out) | st, | ||
| real(double), intent(out) | rh, | ||
| real(double), intent(out) | ta, | ||
| real(double), intent(out) | sh, | ||
| real(double), intent(in) | rsalt, | ||
| logical, intent(in), optional | for_night, | ||
| logical, intent(in), optional | cwarn ) |
Rise, transit and set times routine for an object with fixed ra & dec.
| jd | Julian day number |
| ra | Right ascension (rad) |
| dec | Declination (rad) |
| rt | Rise time (hours) (output) |
| tt | Transit time (hours) (output) |
| st | Set time (hours) (output) |
| rh | Rising wind direction (rad) (output) |
| ta | Transit altitude (rad) (output) |
| sh | Setting wind direction (rad) (output) |
| rsAlt | Altitude to return rise/set data for (degrees; 0. is actual rise/set). rsAlt>90: compute transit only |
| for_night | Compute rise/tranit/set data for the NIGHT starting at the indicated JD, rather than the calendar day. Times between 0h and 12h are for the NEXT calendar day! (optional; default: false) |
| cWarn | Warn upon convergence failure (optional; default: true) |
for rsAlt = 0., rise and set times are computed for rsAlt.ne.0, the routine calculates when alt=rsAlt is reached use rsAlt=-6,-12,-18 for the sun for twilight calculations (rsAlt is expressed in degrees).
Definition at line 564 of file riset.f90.
References thesky_local::lat0, thesky_local::lon0, thesky_planets::planet_position(), thesky_planetdata::planpos, and thesky_local::tz.

| subroutine thesky_riset::riset_ipol | ( | real(double), intent(in) | jd, |
| integer, intent(in) | pl, | ||
| real(double), intent(out) | rt, | ||
| real(double), intent(out) | tt, | ||
| real(double), intent(out) | st, | ||
| real(double), intent(out) | rh, | ||
| real(double), intent(out) | ta, | ||
| real(double), intent(out) | sh, | ||
| real(double), intent(in) | rsalt, | ||
| logical, intent(in), optional | for_night, | ||
| logical, intent(in), optional | ltime, | ||
| logical, intent(in), optional | cwarn ) |
Old routine for rise, transit and set times for planets and asteroids - don't use this for Sun and Moon Computes three sets of planet positions, and interpolates between them.
| jd | Julian day number. The rise/transit and set data are computed for the (calendar) DAY of this JD (midnight-midnight), unless for_night=.true. in which case this happens for the NIGHT starting at JD. |
| pl | Planet/object number (-1 - 9: ES, Moon, Mer-Plu; >10000: asteroids) |
| rt | Rise time (hours) (output) |
| tt | Transit time (hours) (output) |
| st | Set time (hours) (output) |
| rh | Rising wind direction (rad) (output) |
| ta | Transit altitude (rad) (output) |
| sh | Setting wind direction (rad) (output) |
| rsAlt | Altitude to return rise/set data for (degrees; 0. is actual rise/set). rsAlt>90: compute transit only |
| for_night | Compute rise/tranit/set data for the NIGHT starting at the indicated JD, rather than the calendar day. Times between 0h and 12h are for the NEXT calendar day! (optional; default: false) |
| ltime | Passed to planet_position(). If .true., include light time, doubling the CPU time while gaining a bit of accur. |
| cWarn | Warn upon convergence failure (optional; default: true) |
Definition at line 318 of file riset.f90.
References thesky_local::deltat, thesky_local::lat0, thesky_local::lon0, thesky_planets::planet_position(), thesky_planetdata::planpos, thesky_coordinates::refract(), rsipol(), and thesky_local::tz.
Referenced by riset().

| real(double) function thesky_riset::rsipol | ( | real(double), intent(in) | y1, |
| real(double), intent(in) | y2, | ||
| real(double), intent(in) | y3, | ||
| real(double), intent(in) | n ) |
Quadratic interpolation of rise/set times for riset_ipol().
| y1 | Coordinate for day 1 |
| y2 | Coordinate for day 2 |
| y3 | Coordinate for day 3 |
| n | Fraction of day |
| rsIpol | Interpolated coordinate |
Definition at line 773 of file riset.f90.
References rsipol().
Referenced by riset_ipol(), and rsipol().
