subroutine gdvgc (alt,gdlat,rkm,gclat,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 adap. CNES - JC KOSIK - janvier 1991 c*AUT port. CISI c* c*ROL Theme : Changements de coordonnees c*ROL Transformation des composantes geodesiques c*ROL en composantes geocentriques. c* c*PAR alt (I) : altitude (kilometres) c*PAR gdlat (I) : latitude geodesique (radians) c* c*PAR rkm (O) : distance geocentrique (kilometres) c*PAR gclat (O) : latitude geocentrique (radians) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*NOT common : util c* c*INF utilise : sans objet 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 alt double precision gdlat double precision rkm, gclat 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 variables locales c --------------------------------- c double precision ab2,ep2,sinlat,coslat,sinth,costh,rgeoid double precision x,y 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 ab2 /1.0067397d0/ data ep2 /.0067397d0/ c c ****************** c Debut de programme c ****************** c c ---------------------------------------------------- c*FON Calcul de la transformation c*FON La reference geoid est celle adoptee par IAU en 1964 c*FON rayt = 6378.16, b = 6356.7746, f = 1 / 298.25 c ---------------------------------------------------- c ier = 0 c sinlat = sin(gdlat) coslat = sqrt(1.d0 - sinlat**2) costh = sinlat / sqrt((ab2 * coslat)**2 + sinlat**2) sinth = sqrt(1.d0 - costh**2) c rgeoid = rayt / sqrt(1.d0 + ep2 * costh**2) c x = rgeoid * sinth + alt * coslat y = rgeoid * costh + alt * sinlat c rkm = sqrt(x * x + y * y) gclat = atan(y / x) c c **************** c Fin de programme c **************** c return end