subroutine conjdip (rgdip,rdipg,rre,thet,phi,thetn,phin, > thets,phis,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.01 - 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 : Calculs de geophysique c*ROL Calcul des conjugues au sol d'un point dans le champ c*ROL magnetique d'un dipole incline. c* c*PAR rgdip (I) : matrice (3,3) de passage du repere geographique c*PAR : au repere dipolaire c*PAR rdipg (I) : matrice de passage d'un repere dipolaire c*PAR : vers un repere geocentrique c* c*PAR rre (I) : distance geocentrique du point (rayons terrestres) c*PAR thet (I) : colatitude geocentrique du point (radians) c*PAR phi (I) : longitude geocentrique du point (radians) c* c*PAR thetn (O) : colatitude geocentrique du point conjugue nord (radians) c*PAR phin (O) : longitude geocentrique du point conjugue nord (radians) c* c*PAR thets (O) : colatitude geocentrique du point conjugue sud (radians) c*PAR phis (O) : longitude geocentrique du point conjugue sud (radians) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : spcar, geodip, carsp, dipgeo c* c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.06.01 - 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), rdipg(3,3) double precision rre, thet, phi double precision thetn, phin double precision thets, phis integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer ier1,ier2,ier3,ier4,ier5,ier6 c*LOC ier1,ier2,ier3,ier4,ier5,ier6 : codes retour des modules appeles c double precision xg,yg,zg double precision xg1,yg1,zg1 double precision xg2,yg2,zg2 c*LOC xg,yg,zg : coordonnees cartesiennes en x, y et z c double precision xdip,ydip,zdip double precision xdip1,ydip1,zdip1 double precision xdip2,ydip2,zdip2 c*LOC xdip,ydip,zdip : coordonnees cartesiennes en x, y et z dans le c*LOC : repere dipolaire c double precision r1,rr2 c*LOC r1,rr2 : distances radiales geocentriques c double precision rr,rr3,rp,den1,rp2 c*LOC Variables intermediaires de calculs des distances radiales 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 ier4 = 0 ier5 = 0 ier6 = 0 c c ----------------------------------------- c*FON Transformation des coordonnees spheriques c*FON en cartesiennes geocentriques c ----------------------------------------- c call spcar (rre,thet,phi,xg,yg,zg,ier1) c c ----------------------------------------------- c*FON Transformation des composantes geocentriques en c*FON composantes dipolaires c ----------------------------------------------- c call geodip (rgdip,xg,yg,zg,xdip,ydip,zdip,ier2) c rr2 = xdip * xdip + ydip * ydip + zdip * zdip rr = sqrt(rr2) rr3 = rr2 * rr rp = sqrt(xdip * xdip + ydip * ydip) den1 = sqrt(rr3) rp2 = rp * rp xdip1 = xdip / den1 ydip1 = ydip / den1 zdip1 = sqrt(1.0d0 - rp2 / rr3) c c -------------------------------------------- c*FON Transformation des composantes dipolaires en c*FON composantes geocentriques c -------------------------------------------- c call dipgeo (rdipg,xdip1,ydip1,zdip1,xg1,yg1,zg1,ier3) c c -------------------------------------------- c*FON Transformation des coordonnees geocentriques c*FON cartesiennes en coordonnees spheriques c -------------------------------------------- c call carsp (xg1,yg1,zg1,r1,thetn,phin,ier4) c xdip2 = xdip1 ydip2 = ydip1 zdip2 = -zdip1 c c -------------------------------------------- c*FON Transformation des composantes dipolaires en c*FON composantes geocentriques c -------------------------------------------- c call dipgeo (rdipg,xdip2,ydip2,zdip2,xg2,yg2,zg2,ier5) c c -------------------------------------------- c*FON Transformation des coordonnees cartesiennes c*FON geocentriques en spheriques c -------------------------------------------- c call carsp (xg2,yg2,zg2,rr2,thets,phis,ier6) c c **************** c Fin de programme c **************** c return end