subroutine excentr (ginc10,ginc20,ginc21,hinc21,rex,thetex, > phiex,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 1998 c*AUT port. CISI c* c*ROL Theme : Modeles de champs magnetiques c*ROL Calcul de l'excentrement du dipole a partir des c*ROL coefficients ginc10, ginc20, ginc21, hinc21 du dipole c*ROL excentre. c*ROL Voir note Kosik DGA/T/TI/MS/AM 97-155. c*ROL L'excentrement est defini par sa distance c*ROL d'excentrement rex, la colatitude d'excentrement c*ROL thetex et la longitude d'excentrement phiex, toutes c*ROL deux evaluees dans le repere du dipole incline. c* c*PAR ginc10 (I) : coefficient du champ dipolaire excentre c*PAR ginc20 (I) : coefficient du champ dipolaire excentre c*PAR ginc21 (I) : coefficient du champ dipolaire excentre c*PAR hinc21 (I) : coefficient du champ dipolaire excentre c* c*PAR rex (O) : distance d'excentrement c*PAR thetex (O) : colatitude d'excentrement c*PAR phiex (O) : longitude d'excentrement c* c*PAR ier (O) : code de retour 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 ginc10, ginc20, ginc21, hinc21 double precision rex, thetex, phiex 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 double precision som1, som2, som, rexsaa, sthetex double precision cthetex, cphiex, sphiex, aa 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 aa /1.d0/ c c ****************** c Debut de programme c ****************** c ier = 0 c c ---------------------------------------------------- c*FON ginc10 doit apparaitre avec le signe - dans la suite c ---------------------------------------------------- c ginc10 = - ginc10 c som1 = (ginc21 / ginc10)**2 + (hinc21 / ginc10)**2 c som2 = (ginc20 / ginc10)**2 c som = 4.d0 * som1 + 3.d0*som2 c rex = aa * dsqrt(som) / dsqrt(12.d0) c rexsaa = rex / aa c sthetex = dsqrt(som1) / rexsaa / dsqrt(3.d0) c cthetex = 0.5d0 * dsqrt(som2) / rexsaa c thetex = angleg(cthetex,sthetex,ier) * deg c cphiex = ginc21 / ginc10 c sphiex = hinc21 / ginc10 c phiex = angleg(cphiex,sphiex,ier) * deg c c **************** c Fin de programme c **************** c return end