pvig.f 3.82 KB
      subroutine pvig (djd,xi,yi,zi,vxi,vyi,vzi,
     >                 xg,yg,zg,vxg,vyg,vzg,ier)
c*
c***********************************************************************
c*
c*          "Copyright [c] CNES 98 - tous droits reserves"
c*          **********************************************
c*
c*PRO MAGLIB
c*
c*VER 99.03.31 - V 1.0
c*VER 01.06.05 - V 2.0
c*VER 03.01.06 - V 2.1
c*
c*AUT spec. SINITSYN
c*AUT       Institute of Physics, Saint Petersburg University
c*AUT       Stary Petergof 1989 04 Saint Petersburg USSR
c*AUT adap. CNES - JC KOSIK - janvier 1991
c*AUT port. CISI
c*
c*ROL Theme : Astronomie et calculs d'orbite
c*ROL         Passage des elements rectangulaires dans le repere
c*ROL         inertiel aux elements rectangulaires dans le repere
c*ROL         geographique.
c*
c*PAR djd (I) : date julienne
c*
c*PAR xi  (I) : position en x dans le repere inertiel (kilometres)
c*PAR yi  (I) : position en y dans le repere inertiel (kilometres)
c*PAR zi  (I) : position en z dans le repere inertiel (kilometres)
c*
c*PAR vxi (I) : vitesse  en x dans le repere inertiel (kilometres/secondes)
c*PAR vyi (I) : vitesse  en y dans le repere inertiel (kilometres/secondes)
c*PAR vzi (I) : vitesse  en z dans le repere inertiel (kilometres/secondes)
c*
c*PAR xg  (O) : position en x dans le repere geographique (kilometres)
c*PAR yg  (O) : position en y dans le repere geographique (kilometres)
c*PAR zg  (O) : position en z dans le repere geographique (kilometres)
c*
c*PAR vxg (O) : vitesse  en x dans le repere geographique (kilometres/secondes)
c*PAR vyg (O) : vitesse  en y dans le repere geographique (kilometres/secondes)
c*PAR vzg (O) : vitesse  en z dans le repere geographique (kilometres/secondes)
c*PAR ier (O) : code de retour
c*
c*NOT ier     : sans objet
c*
c*INF utilise : tsidrg
c*
c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP
c*HST version 2.0 - 01.06.05 - correction de commentaires de code
c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77
*
c***********************************************************************
c*
      implicit none
c
c     ---------------------------------
c*FON Declaration identificateur rcs_id
c     ---------------------------------
c
      character rcs_id*100
c
c     --------------------------
c*FON Declaration des parametres
c     --------------------------
c
      double precision djd
      double precision xi,yi,zi,vxi,vyi,vzi
      double precision xg,yg,zg,vxg,vyg,vzg
      integer ier
c
c     ----------------------------------
c*FON Declaration des fonctions externes
c     ----------------------------------
c
      external tsidrg
      double precision tsidrg
c
c     ---------------------------------
c*FON Declaration des variables locales
c     ---------------------------------
c
      integer ier1
c*LOC ier1 : code retour des modules appeles
c
      double precision om,alfag,s,c
c*LOC Variables de travail intermediaires
c
      SAVE
c
c     ---------------------------------
c*FON Affectation identificateur rcs_id
c     ---------------------------------
c
      data rcs_id /"
     >$Id$"/
c
c     --------------------------
c*FON Affectation des constantes
c     --------------------------
c
      data om /0.72921157d-4/
c
c     ******************
c     Debut de programme
c     ******************
c
      ier = 0
      ier1 = 0
c
c     -----------------------
c*FON Calcul du temps sideral
c     -----------------------
c
      alfag = tsidrg(djd,ier1)
c
      s  = sin(alfag)
      c  = cos(alfag)
c
c     ------------------------------------
c*FON Calcul des coordonnees geographiques
c     ------------------------------------
c
      xg = c * xi + s * yi
      yg = c * yi - s * xi
      zg = zi
c
      vxg = c * vxi + s * vyi + om * yg
      vyg = c * vyi - s * vxi - om * xg
      vzg = vzi
c
c     ****************
c     Fin de programme
c     ****************
c
      return
      end