geopos Subroutine

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.

 TJD    = TT JULIAN DATE (IN)
 LOCATN = INTEGER CODE SPECIFYING LOCATION OF OBSERVER (IN)
          SET LOCATN=0 FOR OBSERVER AT GEOCENTER
          SET LOCATN=1 FOR OBSERVER ON SURFACE OF EARTH
          SET LOCATN=2 FOR OBSERVER ON NEAR-EARTH SPACECRAFT
 OBSERV = ARRAY OF DATA SPECIFYING LOCATION OF OBSERVER (IN)
          FOR LOCATN=0, THIS ARRAY NOT USED
          FOR LOCATN=1,
          OBSERV(1) = GEODETIC LONGITUDE (WGS-84) OF OBSERVER
                      (EAST +) IN DEGREES (IN)
          OBSERV(2) = GEODETIC LATITUDE (WGS-84) OF OBSERVER
                      (NORTH +) IN DEGREES (IN)
          OBSERV(3) = HEIGHT OF OBSERVER ABOVE ELLIPSOID
                      IN METERS (IN)
          OBSERV(4) = VALUE OF DELTA-T IN SECONDS (IN)
                      (DELTA-T=TT-UT1)
          OBSERV(5) = (NOT USED, RESERVED FOR FUTURE USE)
          OBSERV(6) = (NOT USED, RESERVED FOR FUTURE USE)
          FOR LOCATN=2,
          OBSERV(1) = GEOCENTRIC X IN KILOMETERS
          OBSERV(2) = GEOCENTRIC Y IN KILOMETERS
          OBSERV(3) = GEOCENTRIC Z IN KILOMETERS
          OBSERV(4) = GEOCENTRIC X-DOT IN KILOMETERS/SECOND
          OBSERV(5) = GEOCENTRIC Y-DOT IN KILOMETERS/SECOND
          OBSERV(6) = GEOCENTRIC Z-DOT IN KILOMETERS/SECOND
          WITH RESPECT TO TRUE EQUATOR AND EQUINOX OF DATE
 POS    = POSITION VECTOR OF OBSERVER, WITH RESPECT TO ORIGIN
          AT GEOCENTER, REFERRED TO GCRS AXES, COMPONENTS
          IN AU (OUT)
 VEL    = VELOCITY VECTOR OF OBSERVER, WITH RESPECT TO ORIGIN
          AT GEOCENTER, REFERRED TO GCRS AXES, COMPONENTS
          IN AU/DAY (OUT)

NOTE 1: IF LOCATN=1 AND OBSERV(4)=0.D0, THE VALUE OF DELTA-T WILL BE OBTAINED FROM GETDT, WHICH PROVIDES THE LAST VALUE OF DELTA-T DEFINED BY USER VIA CALL TO SETDT.

NOTE 2: THIS SUBROUTINE CALLS SUBROUTINE TERRA FOR AN OBSERVER ON THE SURFACE OF THE EARTH. TERRA NEGLECTS POLAR MOTION, AN APPROXIMATION WHICH MAY YIELD UP TO 15 METERS ERROR IN POSITION AND SEVERAL MILLIMETERS/SEC ERROR IN VELOCITY.

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

Calls

proc~~geopos~~CallsGraph proc~geopos novas_module::geopos eqinox eqinox proc~geopos->eqinox getdt getdt proc~geopos->getdt placst placst proc~geopos->placst proc~astcon novas_module::astcon proc~geopos->proc~astcon proc~etilt novas_module::etilt proc~geopos->proc~etilt proc~frame novas_module::frame proc~geopos->proc~frame proc~nutate novas_module::nutate proc~geopos->proc~nutate proc~preces novas_module::preces proc~geopos->proc~preces proc~sidtim novas_module::sidtim proc~geopos->proc~sidtim proc~terra novas_module::terra proc~geopos->proc~terra resume resume proc~geopos->resume proc~etilt->proc~frame proc~etilt->proc~preces celpol celpol proc~etilt->celpol getmod getmod proc~etilt->getmod proc~eect2000 novas_module::eect2000 proc~etilt->proc~eect2000 proc~funarg novas_module::funarg proc~etilt->proc~funarg proc~nod~2 novas_module::nod proc~etilt->proc~nod~2 proc~nutate->proc~etilt proc~sidtim->getdt proc~sidtim->proc~etilt proc~sidtim->proc~frame proc~sidtim->proc~nutate proc~sidtim->proc~preces proc~sidtim->getmod proc~ciobas novas_module::ciobas proc~sidtim->proc~ciobas proc~cioloc novas_module::cioloc proc~sidtim->proc~cioloc proc~eqxra novas_module::eqxra proc~sidtim->proc~eqxra proc~erot novas_module::erot proc~sidtim->proc~erot proc~times novas_module::times proc~sidtim->proc~times proc~terra->proc~astcon proc~ciobas->proc~frame proc~ciobas->proc~nutate proc~ciobas->proc~preces proc~cioloc->proc~eqxra proc~ciord novas_module::ciord proc~cioloc->proc~ciord proc~anmp novas_module::anmp proc~eect2000->proc~anmp proc~eqxra->proc~etilt proc~nod~2->getmod proc~nu2000a novas_module::nu2000a proc~nod~2->proc~nu2000a proc~nu2000k novas_module::nu2000k proc~nod~2->proc~nu2000k ciofil ciofil proc~ciord->ciofil proc~nu2000k->proc~funarg

Called by

proc~~geopos~~CalledByGraph proc~geopos novas_module::geopos proc~place novas_module::place proc~place->proc~geopos proc~mpstar novas_module::mpstar proc~mpstar->proc~place proc~places novas_module::places proc~places->proc~place