novas_module Module

NOVAS : NAVAL OBSERVATORY VECTOR ASTROMETRY SOFTWARE

Author

  • G. H. KAPLAN, U.S. NAVAL OBSERVATORY

Version

  • NOVAS FORTRAN VERS F3.1 of 2011 MARCH 21
  • Modernized by Jacob Williams, May 2021

Uses

  • module~~novas_module~~UsesGraph module~novas_module novas_module iso_fortran_env iso_fortran_env module~novas_module->iso_fortran_env

Used by

  • module~~novas_module~~UsedByGraph module~novas_module novas_module proc~solsys NOVAS_F3.1_solsys3.f90::solsys proc~solsys->module~novas_module

Variables

Type Visibility Attributes Name Initial
real(kind=wp), private, parameter :: pi = acos(-1.0_wp)
real(kind=wp), private, parameter :: halfpi = 0.5_wp*pi
real(kind=wp), private, parameter :: twopi = 2.0_wp*pi
real(kind=wp), private, parameter :: jd_j2000 = 2451545.0_wp

t0 = TDB julian date of epoch J2000.0 (TT)

real(kind=wp), private, parameter :: seccon = 180.0_wp*3600.0_wp/pi
real(kind=wp), private, parameter :: degrad = pi/180.0_wp
real(kind=wp), private, parameter :: raddeg = 180.0_wp/pi

Functions

public function eect2000(date1, date2)

Equation of the equinoxes complementary terms, consistent with IAU 2000 resolutions.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: date1
real(kind=wp) :: date2

Return Value real(kind=wp)

public pure elemental function anmp(a) result(w)

Normalize angle into the range -pi <= A < +pi.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: a

Return Value real(kind=wp)


Subroutines

public subroutine place(tjd, object, locatn, icoord, star, observ, skypos)

THIS SUBROUTINE COMPUTES THE APPARENT DIRECTION OF A STAR OR SOLAR SYSTEM BODY AT A SPECIFIED TIME AND IN A SPECIFIED COORDINATE SYSTEM. BASED ON KAPLAN, ET AL. (1989), ASTRONOMICAL JOURNAL 97, 1197-1210, WITH SOME ENHANCEMENTS FROM KLIONER (2003), ASTRONOMICAL JOURNAL 125, 1580-1597.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
character(len=*) :: object
integer :: locatn
integer :: icoord
real(kind=wp), dimension(*) :: star
real(kind=wp), dimension(6) :: observ
real(kind=wp), dimension(*) :: skypos

public subroutine places()

THE ENTRIES TO THIS SUBROUTINE PROVIDE 'FRONT ENDS' TO SUBROUTINE PLACE, TAILORED TO SPECIFIC PLACE TYPES. THEY PROVIDE COMPATIBILITY WITH PREVIOUSLY SUPPORTED CALLING SEQUENCES.

Arguments

None

public subroutine mpstar(tjd, n, ra, dec, rai, deci)

THIS SUBROUTINE COMPUTES THE ICRS POSITION OF A STAR, GIVEN ITS APPARENT PLACE AT DATE TJD. PROPER MOTION, PARALLAX, AND RADIAL VELOCITY ARE ASSUMED TO BE ZERO.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: n
real(kind=wp) :: ra
real(kind=wp) :: dec
real(kind=wp) :: rai
real(kind=wp) :: deci

public subroutine sidtim(tjdh, tjdl, k, gst)

THIS SUBROUTINE COMPUTES THE GREENWICH SIDEREAL TIME (EITHER MEAN OR APPARENT) AT JULIAN DATE TJDH + TJDL.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjdh
real(kind=wp) :: tjdl
integer :: k
real(kind=wp) :: gst

public subroutine ciora(tjd, racio)

THIS SUBROUTINE COMPUTES THE TRUE RIGHT ASCENSION OF THE CELESTIAL INTERMEDIATE ORIGIN (CIO) AT A GIVEN TT JULIAN DATE. THIS IS -(EQUATION OF THE ORIGINS).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp) :: racio

public subroutine tercel(tjdh, tjdl, xp, yp, vec1, vec2)

THIS SUBROUTINE ROTATES A VECTOR FROM THE TERRESTRIAL TO THE CELESTIAL SYSTEM. SPECIFICALLY, IT TRANSFORMS A VECTOR IN THE ITRS (A ROTATING EARTH-FIXED SYSTEM) TO THE GCRS (A LOCAL SPACE-FIXED SYSTEM) BY APPLYING ROTATIONS FOR POLAR MOTION, EARTH ROTATION, NUTATION, PRECESSION, AND THE DYNAMICAL-TO-GCRS FRAME TIE.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjdh
real(kind=wp) :: tjdl
real(kind=wp) :: xp
real(kind=wp) :: yp
real(kind=wp), dimension(3) :: vec1
real(kind=wp), dimension(3) :: vec2

public subroutine celter(tjdh, tjdl, xp, yp, vec1, vec2)

THIS SUBROUTINE ROTATES A VECTOR FROM THE CELESTIAL TO THE TERRESTRIAL SYSTEM. SPECIFICALLY, IT TRANSFORMS A VECTOR IN THE GCRS (A LOCAL SPACE-FIXED SYSTEM) TO THE ITRS (A ROTATING EARTH-FIXED SYSTEM) BY APPLYING ROTATIONS FOR THE GCRS-TO- DYNAMICAL FRAME TIE, PRECESSION, NUTATION, EARTH ROTATION, AND POLAR MOTION.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjdh
real(kind=wp) :: tjdl
real(kind=wp) :: xp
real(kind=wp) :: yp
real(kind=wp), dimension(3) :: vec1
real(kind=wp), dimension(3) :: vec2

public subroutine gethip(rah, dech, pmrah, pmdech, parxh, rvh, ra2, dec2, pmra2, pmdec2, parx2, rv2)

THIS SUBROUTINE CONVERTS HIPPARCOS DATA AT EPOCH J1991.25 TO EPOCH J2000.0. TO BE USED ONLY FOR HIPPARCOS OR TYCHO STARS WITH LINEAR SPACE MOTION. BOTH INPUT AND OUTPUT DATA IS IN THE ICRS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: rah
real(kind=wp) :: dech
real(kind=wp) :: pmrah
real(kind=wp) :: pmdech
real(kind=wp) :: parxh
real(kind=wp) :: rvh
real(kind=wp) :: ra2
real(kind=wp) :: dec2
real(kind=wp) :: pmra2
real(kind=wp) :: pmdec2
real(kind=wp) :: parx2
real(kind=wp) :: rv2

public subroutine catran(it, date1, ra1, dec1, pmra1, pmdec1, parx1, rv1, date2, ra2, dec2, pmra2, pmdec2, parx2, rv2)

THIS SUBROUTINE TRANSFORMS A STAR'S CATALOG QUANTITIES FOR A CHANGE OF EPOCH AND/OR EQUATOR AND EQUINOX. IT CAN ALSO BE USED TO ROTATE CATALOG QUANTITIES ON THE DYNAMICAL EQUATOR AND EQUINOX OF J2000.0 TO THE ICRS OR VICE VERSA.

Read more…

Arguments

Type IntentOptional Attributes Name
integer :: it
real(kind=wp) :: date1
real(kind=wp) :: ra1
real(kind=wp) :: dec1
real(kind=wp) :: pmra1
real(kind=wp) :: pmdec1
real(kind=wp) :: parx1
real(kind=wp) :: rv1
real(kind=wp) :: date2
real(kind=wp) :: ra2
real(kind=wp) :: dec2
real(kind=wp) :: pmra2
real(kind=wp) :: pmdec2
real(kind=wp) :: parx2
real(kind=wp) :: rv2

public subroutine zdaz(ujd, xp, yp, glon, glat, ht, ra, dec, irefr, zd, az, rar, decr)

THIS SUBROUTINE TRANSFORMS TOPOCENTRIC RIGHT ASCENSION AND DECLINATION TO ZENITH DISTANCE AND AZIMUTH. THIS ROUTINE USES A METHOD THAT PROPERLY ACCOUNTS FOR POLAR MOTION, WHICH IS SIGNIFICANT AT THE SUB-ARCSECOND LEVEL. THIS SUBROUTINE CAN ALSO ADJUST COORDINATES FOR ATMOSPHERIC REFRACTION.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: ujd
real(kind=wp) :: xp
real(kind=wp) :: yp
real(kind=wp) :: glon
real(kind=wp) :: glat
real(kind=wp) :: ht
real(kind=wp) :: ra
real(kind=wp) :: dec
integer :: irefr
real(kind=wp) :: zd
real(kind=wp) :: az
real(kind=wp) :: rar
real(kind=wp) :: decr

public subroutine gcrseq(tjd, icoord, rag, decg, ra, dec)

THIS SUBROUTINE CONVERTS GCRS RIGHT ASCENSION AND DECLINATION TO COORDINATES WITH RESPECT TO THE EQUATOR OF DATE (MEAN OR TRUE). FOR COORDINATES WITH RESPECT TO THE TRUE EQUATOR OF DATE, THE ORIGIN OF RIGHT ASCENSION CAN BE EITHER THE TRUE EQUINOX OR THE CELESTIAL INTERMEDIATE ORIGIN (CIO).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: icoord
real(kind=wp) :: rag
real(kind=wp) :: decg
real(kind=wp) :: ra
real(kind=wp) :: dec

public subroutine eqecl(tjd, icoord, ra, dec, elon, elat)

THIS SUBROUTINE CONVERTS RIGHT ASCENSION AND DECLINATION TO ECLIPTIC LONGITUDE AND LATITUDE.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: icoord
real(kind=wp) :: ra
real(kind=wp) :: dec
real(kind=wp) :: elon
real(kind=wp) :: elat

public subroutine eqec(tjd, icoord, pos1, pos2)

THIS SUBROUTINE CONVERTS AN EQUATORIAL POSITION VECTOR TO AN ECLIPTIC POSITION VECTOR.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: icoord
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pos2

public subroutine eceq(tjd, icoord, pos1, pos2)

THIS SUBROUTINE CONVERTS AN ECLIPTIC POSITION VECTOR TO AN EQUATORIAL POSITION VECTOR.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: icoord
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pos2

public subroutine eqgal(ra, dec, glon, glat)

THIS SUBROUTINE CONVERTS ICRS RIGHT ASCENSION AND DECLINATION TO GALACTIC LONGITUDE AND LATITUDE. IT USES THE TRANSFORMATION GIVEN IN THE HIPPARCOS AND TYCHO CATALOGUES, VOL. 1, SECTION 1.5.3.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: ra
real(kind=wp) :: dec
real(kind=wp) :: glon
real(kind=wp) :: glat

public subroutine vectrs(ra, dec, pmra, pmdec, parllx, rv, pos, vel)

THIS SUBROUTINE CONVERTS ANGULAR QUANTITIES RELATED TO A STAR'S POSITION AND MOTION TO VECTORS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: ra
real(kind=wp) :: dec
real(kind=wp) :: pmra
real(kind=wp) :: pmdec
real(kind=wp) :: parllx
real(kind=wp) :: rv
real(kind=wp), dimension(3) :: pos
real(kind=wp), dimension(3) :: vel

public subroutine angles(pos, ra, dec)

THIS SUBROUTINE CONVERTS A VECTOR TO ANGULAR QUANTITIES.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos
real(kind=wp) :: ra
real(kind=wp) :: dec

public subroutine propmo(tjd1, pos1, vel1, tjd2, pos2)

THIS SUBROUTINE APPLIES PROPER MOTION, INCLUDING FORESHORTENING EFFECTS, TO A STAR'S POSITION.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd1
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: vel1
real(kind=wp) :: tjd2
real(kind=wp), dimension(3) :: pos2

public subroutine geocen(pos1, pe, pos2, tlight)

THIS SUBROUTINE MOVES THE ORIGIN OF COORDINATES FROM THE BARYCENTER OF THE SOLAR SYSTEM TO THE OBSERVER (OR THE GEOCENTER). I.E., THIS SUBROUTINE ACCOUNTS FOR PARALLAX (ANNUAL+GEOCENTRIC OR JUST ANNUAL).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pe
real(kind=wp), dimension(3) :: pos2
real(kind=wp) :: tlight

public subroutine geopos(tjd, locatn, observ, pos, vel)

THIS SUBROUTINE COMPUTES THE GEOCENTRIC POSITION AND VELOCITY OF AN OBSERVER ON THE SURFACE OF THE EARTH OR ON A NEAR-EARTH SPACECRAFT. THE FINAL VECTORS ARE EXPRESSED IN THE GCRS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: locatn
real(kind=wp), dimension(6) :: observ
real(kind=wp), dimension(3) :: pos
real(kind=wp), dimension(3) :: vel

public subroutine littim(tjd, idbody, pose, tlite, pos, tlight)

THIS SUBROUTINE COMPUTES THE POSITION OF A SOLAR SYSTEM BODY, AS ANTEDATED FOR LIGHT-TIME.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: idbody
real(kind=wp), dimension(3) :: pose
real(kind=wp) :: tlite
real(kind=wp), dimension(3) :: pos
real(kind=wp) :: tlight

public subroutine dlight(pos1, pe, diflt)

THIS SUBROUTINE RETURNS THE DIFFERENCE IN LIGHT-TIME, FOR A STAR, BETWEEN THE BARYCENTER OF THE SOLAR SYSTEM AND THE OBSERVER (OR THE GEOCENTER).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pe
real(kind=wp) :: diflt

public subroutine grvdef(tjd, loc, pos1, pobs, pos2)

THIS SUBROUTINE COMPUTES THE TOTAL GRAVITATIONAL DEFLECTION OF LIGHT FOR THE OBSERVED OBJECT DUE TO THE MAJOR GRAVITATING BODIES IN THE SOLAR SYSTEM. THIS SUBROUTINE VALID FOR AN OBSERVED BODY WITHIN THE SOLAR SYSTEM AS WELL AS FOR A STAR. SEE KLIONER (2003), ASTRONOMICAL JOURNAL 125, 1580-1597, SECTION 6.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: loc
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pobs
real(kind=wp), dimension(3) :: pos2

public subroutine grvd(pos1, pobs, pbody, rmass, pos2)

THIS SUBROUTINE CORRECTS POSITION VECTOR FOR THE DEFLECTION OF LIGHT IN THE GRAVITATIONAL FIELD OF AN ARBITRARY BODY. ADAPTED FROM MURRAY (1981) MON. NOTICES ROYAL AST. SOCIETY 195, 639-648. SEE ALSO FORMULAE IN SECTION B OF THE ASTRONOMICAL ALMANAC, OR KAPLAN ET AL. (1989) ASTRONOMICAL JOURNAL 97, 1197-1210, SECTION III F. THIS SUBROUTINE VALID FOR AN OBSERVED BODY WITHIN THE SOLAR SYSTEM AS WELL AS FOR A STAR.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pobs
real(kind=wp), dimension(3) :: pbody
real(kind=wp) :: rmass
real(kind=wp), dimension(3) :: pos2

public subroutine aberat(pos1, ve, tlight, pos2)

THIS SUBROUTINE CORRECTS POSITION VECTOR FOR ABERRATION OF LIGHT. ALGORITHM INCLUDES RELATIVISTIC TERMS. ADAPTED FROM MURRAY (1981) MON. NOTICES ROYAL AST. SOCIETY 195, 639-648.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: ve
real(kind=wp) :: tlight
real(kind=wp), dimension(3) :: pos2

public subroutine radvl(pos, vel, velobs, star, dist, rv)

THIS SUBROUTINE PREDICTS THE RADIAL VELOCITY OF THE OBSERVED OBJECT AS IT WOULD BE MEASURED BY SPECTROSCOPIC MEANS. RADIAL VELOCITY IS HERE DEFINED AS THE RADIAL VELOCITY MEASURE (Z) TIMES THE SPEED OF LIGHT. FOR A SOLAR SYSTEM BODY, IT APPLIES TO A FICTITIOUS EMITTER AT THE CENTER OF THE OBSERVED OBJECT, ASSUMED MASSLESS (NO GRAVITATIONAL RED SHIFT), AND DOES NOT IN GENERAL APPLY TO REFLECTED LIGHT. FOR STARS, IT INCLUDES ALL EFFECTS, SUCH AS GRAVITATIONAL RED SHIFT, CONTAINED IN THE CATALOG BARYCENTRIC RADIAL VELOCITY MEASURE, A SCALAR DERIVED FROM SPECTROSCOPY. NEARBY STARS WITH A KNOWN KINEMATIC VELOCITY VECTOR (OBTAINED INDEPENDENTLY OF SPECTROSCOPY) CAN BE TREATED LIKE SOLAR SYSTEM OBJECTS. SEE LINDEGREN & DRAVINS (2003), ASTRONOMY & ASTROPHYSICS 401, 1185-1201.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos
real(kind=wp), dimension(3) :: vel
real(kind=wp), dimension(3) :: velobs
real(kind=wp), dimension(3) :: star
real(kind=wp), dimension(3) :: dist
real(kind=wp) :: rv

public subroutine preces(tjd1, pos1, tjd2, pos2)

THIS SUBROUTINE PRECESSES EQUATORIAL RECTANGULAR COORDINATES FROM ONE EPOCH TO ANOTHER. THE COORDINATES ARE REFERRED TO THE MEAN DYNAMICAL EQUATOR AND EQUINOX OF THE TWO RESPECTIVE EPOCHS. SEE EXPLANATORY SUPPLEMENT TO THE ASTRONOMICAL ALMANAC, PP. 103-104, AND CAPITAINE ET AL. (2003), ASTRONOMY AND ASTROPHYSICS 412, 567-586.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd1
real(kind=wp), dimension(3) :: pos1
real(kind=wp) :: tjd2
real(kind=wp), dimension(3) :: pos2

public subroutine nutate(tjd, pos1, pos2)

THIS SUBROUTINE NUTATES EQUATORIAL RECTANGULAR COORDINATES FROM THE MEAN DYNAMICAL EQUATOR AND EQUINOX OF EPOCH TO THE TRUE EQUATOR AND EQUINOX OF EPOCH. SEE EXPLANATORY SUPPLEMENT TO THE ASTRONOMICAL ALMANAC, PP. 114-115.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pos2

public subroutine spin(angl, pos1, pos2)

THIS SUBROUTINE TRANSFORMS A VECTOR FROM ONE COORDINATE SYSTEM TO ANOTHER WITH SAME ORIGIN AND AXES ROTATED ABOUT THE Z AXIS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: angl
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pos2

public subroutine wobble(tjd, xp, yp, pos1, pos2)

THIS SUBROUTINE CORRECTS A VECTOR IN THE ITRS (A ROTATING EARTH- FIXED SYSTEM) FOR POLAR MOTION, AND ALSO CORRECTS THE LONGITUDE ORIGIN (BY A TINY AMOUNT) TO THE TERRESTRIAL INTERMEDIATE ORIGIN (TIO). THE ITRS VECTOR IS THEREBY TRANSFORMED TO THE TERRESTRIAL INTERMEDIATE SYSTEM, BASED ON THE TRUE (ROTATIONAL) EQUATOR AND THE TERRESTRIAL INTERMEDIATE ORIGIN (TIO). SINCE THE TRUE EQUATOR IS THE PLANE ORTHOGONAL TO THE DIRECTION OF THE CELESTIAL INTERMEDIATE POLE (CIP), THE COMPONENTS OF THE OUTPUT VECTOR ARE REFERRED TO Z AND X AXES TOWARD THE CIP AND TIO, RESPECTIVELY.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp) :: xp
real(kind=wp) :: yp
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: pos2

public subroutine frame(pos1, k, pos2)

THIS SUBROUTINE TRANSFORMS A VECTOR FROM THE DYNAMICAL REFERENCE SYSTEM TO THE INTERNATIONAL CELESTIAL REFERENCE SYSTEM (ICRS), OR VICE VERSA. THE DYNAMICAL REFERENCE SYSTEM IS BASED ON THE DYNAMICAL MEAN EQUATOR AND EQUINOX OF J2000.0. THE ICRS IS BASED ON THE SPACE-FIXED ICRS AXES DEFINED BY THE RADIO CATALOG POSITIONS OF SEVERAL HUNDRED EXTRAGALACTIC OBJECTS. THE ROTATION MATRIX USED HERE IS EQUIVALENT TO THAT GIVEN BY HILTON AND HOHENKERK (2004), ASTRONOMY AND ASTROPHYSICS 413, 765-770, EQ. (6) AND (8).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
integer :: k
real(kind=wp), dimension(3) :: pos2

public subroutine terra(glon, glat, ht, st, pos, vel)

THIS SUBROUTINE COMPUTES THE POSITION AND VELOCITY VECTORS OF A TERRESTRIAL OBSERVER WITH RESPECT TO THE GEOCENTER.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: glon
real(kind=wp) :: glat
real(kind=wp) :: ht
real(kind=wp) :: st
real(kind=wp), dimension(3) :: pos
real(kind=wp), dimension(3) :: vel

public subroutine times(tdbjd, ttjd, secdif)

THIS SUBROUTINE COMPUTES THE TERRESTRIAL TIME (TT) JULIAN DATE CORRESPONDING TO A BARYCENTRIC DYNAMICAL TIME (TDB) JULIAN DATE. THE EXPRESSION USED IN THIS VERSION IS A TRUNCATED FORM OF A LONGER AND MORE PRECISE SERIES GIVEN BY FAIRHEAD & BRETAGNON (1990) A&A 229, 240. THE RESULT IS GOOD TO ABOUT 10 MICROSECONDS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tdbjd
real(kind=wp) :: ttjd
real(kind=wp) :: secdif

public subroutine etilt(tjd, oblm, oblt, eqeq, dpsi, deps)

THIS SUBROUTINE COMPUTES QUANTITIES RELATED TO THE ORIENTATION OF THE EARTH'S ROTATION AXIS AT JULIAN DATE TJD.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp) :: oblm
real(kind=wp) :: oblt
real(kind=wp) :: eqeq
real(kind=wp) :: dpsi
real(kind=wp) :: deps

public subroutine funarg(t, el, elp, f, d, omega)

THIS SUBROUTINE COMPUTES FUNDAMENTAL ARGUMENTS (MEAN ELEMENTS) OF THE SUN AND MOON. SEE SIMON ET AL. (1994) ASTRONOMY AND ASTROPHYSICS 282, 663-683, ESPECIALLY SECTIONS 3.4-3.5.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: t
real(kind=wp) :: el
real(kind=wp) :: elp
real(kind=wp) :: f
real(kind=wp) :: d
real(kind=wp) :: omega

public subroutine refrac(height, zdobs, refr)

THIS SUBROUTINE COMPUTES ATMOSPHERIC REFRACTION IN ZENITH DISTANCE. THIS VERSION COMPUTES APPROXIMATE REFRACTION FOR OPTICAL WAVELENGTHS. IT CAN BE USED FOR PLANNING OBSERVATIONS OR TELESCOPE POINTING, BUT SHOULD NOT BE USED FOR THE REDUCTION OF PRECISE OBSERVATIONS. BASIC ALGORITHM IS DESCRIBED IN THE EXPLANATORY SUPPLEMENT TO THE ASTRONOMICAL ALMANAC, P. 144, AND IS AN ADAPTATION OF A FORMULA IN BENNETT (1982), JOURNAL OF NAVIGATION (ROYAL INSTITUTE) 35, 255-259.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: height
real(kind=wp) :: zdobs
real(kind=wp) :: refr

public subroutine limang(pos1, poso, alimb, afrac)

THIS FUNCTION DETERMINES THE ANGLE OF AN OBJECT ABOVE OR BELOW THE EARTH'S LIMB (HORIZON). THE GEOMETRIC LIMB IS COMPUTED, ASSUMING THE EARTH TO BE AN AIRLESS SPHERE (NO REFRACTION OR OBLATENESS IS INCLUDED). THE OBSERVER CAN BE ON OR ABOVE THE EARTH. FOR AN OBSERVER ON THE SURFACE OF THE EARTH, THIS SUBROUTINE RETURNS THE APPROXIMATE UNREFRACTED ALTITUDE.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: pos1
real(kind=wp), dimension(3) :: poso
real(kind=wp) :: alimb
real(kind=wp) :: afrac

public subroutine cioloc(tjd, racio, k)

THIS SUBROUTINE RETURNS THE LOCATION OF THE CELESTIAL INTERMEDIATE ORIGIN (CIO) FOR A GIVEN JULIAN DATE, AS A RIGHT ASCENSION WITH RESPECT TO EITHER THE GCRS (GEOCENTRIC ICRS) ORIGIN OR THE TRUE EQUINOX OF DATE. THE CIO IS ALWAYS LOCATED ON THE TRUE EQUATOR (=INTERMEDIATE EQUATOR) OF DATE.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp) :: racio
integer :: k

public subroutine ciord(tjd, nvals, tlist, ralist, ierr)

GIVEN AN INPUT TDB JULIAN DATE AND THE NUMBER OF DATA POINTS DESIRED, THIS SUBROUTINE RETURNS A SET OF JULIAN DATES AND CORRESPONDING VALUES OF THE GCRS RIGHT ASCENSION OF THE CELESTIAL INTERMEDIATE ORIGIN (CIO). THE RANGE OF DATES IS CENTERED (AT LEAST APPROXIMATELY) ON THE REQUESTED DATE. THE SUBROUTINE OBTAINS THE DATA FROM AN EXTERNAL DATA FILE.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: nvals
real(kind=wp), dimension(nvals) :: tlist
real(kind=wp), dimension(nvals) :: ralist
integer :: ierr

public subroutine ciobas(tjd, racio, k, x, y, z)

THIS SUBROUTINE RETURNS THE ORTHONORMAL BASIS VECTORS, WITH RESPECT TO THE GCRS (GEOCENTRIC ICRS), OF THE CELESTIAL INTERMEDIATE SYSTEM DEFINED BY THE CELESTIAL INTERMEDIATE POLE (CIP) (IN THE Z DIRECTION) AND THE CELESTIAL INTERMEDIATE ORIGIN (CIO) (IN THE X DIRECTION). A TDB JULIAN DATE AND THE RIGHT ASCENSION OF THE CIO AT THAT DATE IS REQUIRED AS INPUT. THE RIGHT ASCENSION OF THE CIO CAN BE WITH RESPECT TO EITHER THE GCRS ORIGIN OR THE TRUE EQUINOX OF DATE -- DIFFERENT ALGORITHMS ARE USED IN THE TWO CASES.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
real(kind=wp) :: racio
integer :: k
real(kind=wp), dimension(3) :: x
real(kind=wp), dimension(3) :: y
real(kind=wp), dimension(3) :: z

public subroutine erot(date1, date2, theta)

THIS SUBROUTINE RETURNS THE VALUE OF THE EARTH ROTATION ANGLE (THETA) FOR A GIVEN UT1 JULIAN DATE. THE EXPRESSION USED IS TAKEN FROM THE NOTE TO IAU RESOLUTION B1.8 OF 2000.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: date1
real(kind=wp) :: date2
real(kind=wp) :: theta

public subroutine eqxra(tjd, k, raeq)

THIS SUBROUTINE COMPUTES THE INTERMEDIATE RIGHT ASCENSION OF THE EQUINOX AT JULIAN DATE TJD, USING AN ANALYTICAL EXPRESSION FOR THE ACCUMULATED PRECESSION IN RIGHT ASCENSION. FOR THE TRUE EQUINOX THE RESULT IS THE EQUATION OF THE ORIGINS.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: tjd
integer :: k
real(kind=wp) :: raeq

public subroutine setdt(delt)

THIS SUBROUTINE ALLOWS FOR THE SPECIFICATION OF THE DELTA-T VALUE (DELTA-T = TT - UT1) TO BE USED IN THE CALCULATION OF SIDEREAL TIME AND THE TERRESTRIAL-TO-CELESTIAL TRANSFORMATION. IT ALLOWS THESE CALCULATIONS TO BE PERFORMED, CORRECTLY, USING UT1 AS THE TIME ARGUMENT FOR THE EARTH ROTATION ANGLE AND TDB AS THE TIME ARGUMENT FOR THE PRECESSION AND NUTATION COMPONENTS. THIS SUBROUTINE, IF USED, SHOULD BE CALLED BEFORE ANY SUBROUTINE RELATED TO EARTH ROTATION (E.G., SIDTIM OR TERCEL) FOR A GIVEN DATE. THE VALUE OF DELTA-T SPECIFIED HERE WILL BE USED UNTIL EXPLICITLY CHANGED.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: delt

public subroutine setmod(mode)

THIS SUBROUTINE ALLOWS THE USER TO SPECIFY THE 'MODE' VALUE, WHICH DETERMINES THE METHOD USED FOR THE COMPUTATION OF SIDEREAL TIME AND THE TERRESTRIAL-TO-CELESTIAL TRANSFORMATION, AND THE ACCURACY OF NUTATION AND RELATED CALCULATIONS.

Read more…

Arguments

Type IntentOptional Attributes Name
integer :: mode

public subroutine getvec(unitv)

THIS SUBROUTINE ALLOWS THE USER TO RETRIEVE THE LAST COMPUTED POSITION ON THE SKY AS A UNIT VECTOR.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), dimension(3) :: unitv

public pure subroutine juldat(i, m, k, h, tjd)

This subroutine computes julian date, given calendar date and time. input calendar date must be gregorian. input time value can be in any ut-like time scale (utc, ut1, tt, etc.) - output julian date will have same basis. algorithm by fliegel and van flandern.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i

year

integer, intent(in) :: m

month number

integer, intent(in) :: k

day of month

real(kind=wp), intent(in) :: h

ut hours

real(kind=wp), intent(out) :: tjd

julian date

public pure subroutine caldat(tjd, i, m, k, h)

This subroutine computes calendar date and time, given julian date. input julian date can be based on any ut-like time scale (utc, ut1, tt, etc.) - output time value will have same basis. output calendar date will be gregorian. algorithm by fliegel and van flandern.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: tjd

julian date

integer, intent(out) :: i

year

integer, intent(out) :: m

month number

integer, intent(out) :: k

day of month

real(kind=wp), intent(out) :: h

ut hours

public subroutine astcon(name, factor, const)

THIS SUBROUTINE SUPPLIES THE VALUES OF ASTRONOMICAL CONSTANTS.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=1) :: name*(*)
real(kind=wp) :: factor
real(kind=wp) :: const

public subroutine nod(t, dpsi, deps)

This subroutine returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: t

tdb time in julian centuries since j2000.0

real(kind=wp), intent(out) :: dpsi

nutation in longitude in arcseconds

real(kind=wp), intent(out) :: deps

nutation in obliquity in arcseconds

public subroutine nu2000a(date1, date2, dpsi, deps)

Nutation, IAU 2000A model (MHB_2000 without FCN).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: date1
real(kind=wp) :: date2
real(kind=wp) :: dpsi
real(kind=wp) :: deps

public subroutine nu2000k(date1, date2, dpsi, deps)

Nutation, IAU 2000A model (MHB_2000 without FCN) MODIFIED. Series truncated for speed of execution, and using Simon et al. (1994) fundamental arguments throughout. Accuracy, compared to IAU 2000 A series, is 0.1 mas in delta psi and 0.04 mas in delta epsilon and delta psi sin(epsilon) over 6 centuries centered at year 2000 (99% of errors less than these values).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: date1
real(kind=wp) :: date2
real(kind=wp) :: dpsi
real(kind=wp) :: deps