tgml2.f 3.37 KB
      subroutine tgml2 (xsm,ysm,tgl,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. CNES - JC KOSIK - juin 1995
c*AUT port. CISI
c*
c*ROL Theme : Calculs de geophysique
c*ROL         Calcul du temps geomagnetique local en heures fractionnaires
c*ROL         a partir des coordonnees solaires magnetiques.
c*
c*PAR xsm (I) : coordonnee solaire magnetique en x 
c*PAR ysm (I) : coordonnee solaire magnetique en y
c*
c*PAR tgl (O) : temps geomagnetique local (heures fractionnaires)
c*
c*PAR ier (O) : code de retour
c*
c*NOT Si xsm = ysm = 0, le temps est force a 0.
c*
c*NOT ier     : sans objet
c*
c*NOT common  : util
c*
c*INF utilise : angleg
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***********************************************************************
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 xsm,ysm
      double precision tgl 
      integer ier 
c
c     ----------------------------------
c*FON Declaration des variables communes
c     ----------------------------------
c
      double precision pi,dpi,rad,deg,pid,xmu,rayt
c
c*COM pi   : constante pi (obtenue a partir de acos(-1.))
c*COM dpi  : constante 2 * pi
c*COM pid  : constante pi / 2
c*COM rad  : facteur de conversion degres  ----> radians
c*COM deg  : facteur de conversion radians ----> degres
c*COM xmu  : constante de gravitation terrestre (km**3/sec**2)
c*COM rayt : rayon equatorial terrestre (km)
c
      common/util/pi,dpi,rad,deg,pid,xmu,rayt
c
c     ----------------------------------
c*FON Declaration des fonctions externes
c     ----------------------------------
c
      external angleg    
      double precision angleg
c
c     ---------------------------------
c*FON Declaration des variables locales
c     ---------------------------------
c
      integer ier1
c*LOC ier1 : code retour des modules appeles
c
      double precision phs
c*LOC Variable de travail intermediaire
c
      SAVE
c
c     ---------------------------------
c*FON Affectation identificateur rcs_id
c     ---------------------------------
c
      data rcs_id /"
     >$Id$"/
c
c     ******************
c     Debut de programme
c     ******************
c
      ier = 0
      ier1 = 0
c
c     -------------------------------------------------
c*FON Calcul de l'angle entre les directions xsm et ysm
c*FON si xsm = ysm = 0. phs est force a 0.
c     -------------------------------------------------
c
      if (xsm .ne. 0.0d0 .or. ysm .ne. 0.0d0) then
         phs = angleg(xsm,ysm,ier1)
      else
         phs = 0.0d0
      endif
c
c     -----------------------------------
c*FON Calcul du temps geomagnetique local
c     -----------------------------------
c
      tgl = phs * 24.d0 / dpi + 12.d0
      tgl = dmod(tgl,24.d0)
c
c     ****************
c     Fin de programme
c     ****************
c
      return
      end