celter Subroutine

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.

 TJDH   = UT1 JULIAN DATE, HIGH-ORDER PART (IN)
 TJDL   = UT1 JULIAN DATE, LOW-ORDER PART (IN)
          THE JULIAN DATE MAY BE SPLIT AT ANY POINT, BUT
          FOR HIGHEST PRECISION, SET TJDH TO BE THE INTEGRAL
          PART OF THE JULIAN DATE, AND SET TJDL TO BE THE
          FRACTIONAL PART
 XP     = CONVENTIONALLY-DEFINED X COORDINATE OF CELESTIAL
          INTERMEDIATE POLE WITH RESPECT TO ITRS POLE,
          IN ARCSECONDS (IN)
 YP     = CONVENTIONALLY-DEFINED Y COORDINATE OF CELESTIAL
          INTERMEDIATE POLE WITH RESPECT TO ITRS POLE,
          IN ARCSECONDS (IN)
 VEC1   = POSITION VECTOR, GEOCENTRIC EQUATORIAL RECTANGULAR
          COORDINATES, REFERRED TO GCRS AXES (CELESTIAL
          SYSTEM) (IN)
 VEC2   = POSITION VECTOR, GEOCENTRIC EQUATORIAL RECTANGULAR
          COORDINATES, REFERRED TO ITRS AXES (TERRESTRIAL
          SYSTEM) (OUT)

NOTE 1: SET XP=YP=0.D0 TO ELIMINATE POLAR MOTION ROTATION.

NOTE 2: SEE ALSO SUBROUTINE SETDT TO SET THE VALUE OF DELTA-T (DELTA-T = TT - UT1) TO BE USED HERE.

NOTE 3: BOTH TJDH AND TJDL SHOULD BE NON-NEGATIVE FOR NORMAL USE (TJDL=0.D0 IS OK). A NEGATIVE VALUE OF TJDH IS USED TO INVOKE A SPECIAL OPTION WHERE THE INPUT VECTOR IS ASSUMED TO BE WITH RESPECT TO THE EQUATOR AND EQUINOX OF DATE, AND THE DATE FOR WHICH THE TRANSFORMATION APPLIES IS TAKEN FROM TJDL ONLY. THIS OPTION WORKS ONLY IN 'EQUINOX' MODE.

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

Calls

proc~~celter~~CallsGraph proc~celter novas_module::celter getdt getdt proc~celter->getdt getmod getmod proc~celter->getmod proc~ciobas novas_module::ciobas proc~celter->proc~ciobas proc~cioloc novas_module::cioloc proc~celter->proc~cioloc proc~erot novas_module::erot proc~celter->proc~erot proc~frame novas_module::frame proc~celter->proc~frame proc~nutate novas_module::nutate proc~celter->proc~nutate proc~preces novas_module::preces proc~celter->proc~preces proc~sidtim novas_module::sidtim proc~celter->proc~sidtim proc~spin novas_module::spin proc~celter->proc~spin proc~times novas_module::times proc~celter->proc~times proc~wobble novas_module::wobble proc~celter->proc~wobble setvec setvec proc~celter->setvec proc~ciobas->proc~frame proc~ciobas->proc~nutate proc~ciobas->proc~preces proc~ciord novas_module::ciord proc~cioloc->proc~ciord proc~eqxra novas_module::eqxra proc~cioloc->proc~eqxra proc~etilt novas_module::etilt proc~nutate->proc~etilt proc~sidtim->getdt proc~sidtim->getmod proc~sidtim->proc~ciobas proc~sidtim->proc~cioloc proc~sidtim->proc~erot proc~sidtim->proc~frame proc~sidtim->proc~nutate proc~sidtim->proc~preces proc~sidtim->proc~times proc~sidtim->proc~eqxra proc~sidtim->proc~etilt ciofil ciofil proc~ciord->ciofil proc~eqxra->proc~etilt proc~etilt->getmod proc~etilt->proc~frame proc~etilt->proc~preces celpol celpol proc~etilt->celpol 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~anmp novas_module::anmp proc~eect2000->proc~anmp proc~nod~2->getmod proc~nu2000a novas_module::nu2000a proc~nod~2->proc~nu2000a proc~nu2000k novas_module::nu2000k proc~nod~2->proc~nu2000k proc~nu2000k->proc~funarg