subroutine ggeom (rgdip,thetr,phir,xlatgm,xlongm,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 - janvier 1991 c*AUT port. CISI c* c*ROL Theme : Changements de repere c*ROL Transformation des coordonnees spheriques geocentriques c*ROL en coordonnees geomagnetiques. c* c*PAR rgdip (I) : matrice (3,3) de passage du repere geographique c*PAR : au repere dipolaire c* c*PAR thetr (I) : colatitude geocentrique (radians) c*PAR phir (I) : longitude geocentrique (radians) c*PAR xlatgm (O) : latitude geomagnetique (radians) c*PAR xlongm (O) : longitude geomagnetique (radians) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*NOT common : util c* c*INF utilise : spcar, geodip, carsp 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 rgdip(3,3) double precision thetr, phir double precision xlatgm, xlongm 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 integer ier1,ier2,ier3 c*LOC ier1,ier2,ier3 : codes retour des modules appeles c double precision rmag,thetdr,phidr c*LOC rmag,thetdr,phidr : coordonnees spheriques c double precision r c*LOC r : distance radiale c double precision xg,yg,zg c*LOC xg,yg,zg : coordonnees cartesiennes c double precision xdip,ydip,zdip c*LOC xdip,ydip,zdip : composantes en x, y et z dans le repere dipolaire 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 ier2 = 0 ier3 = 0 c r = 1.0d0 c c --------------------------------------------------------- c*FON Transformation des coordonnees spheriques en cartesiennes c --------------------------------------------------------- c call spcar(r,thetr,phir,xg,yg,zg,ier1) c c ------------------------------------------------- c*FON Calcul des coordonnees dipolaires en fonction des c*FON coordonnees geographiques c ------------------------------------------------- c call geodip(rgdip,xg,yg,zg,xdip,ydip,zdip,ier2) c c --------------------------------------------------------- c*FON Transformation des coordonnees cartesiennes en spheriques c --------------------------------------------------------- c call carsp(xdip,ydip,zdip,rmag,thetdr,phidr,ier3) c c ------------------------------------------------- c*FON Calcul de la longitude et latitude geomagnetiques c ------------------------------------------------- c xlatgm = pid - thetdr xlongm = phidr c c **************** c Fin de programme c **************** c return end