subroutine inmag (magin,year,rre,thet,phi,bri,bti,bpi,bi,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.05.30 - V 2.0 c*VER 03.01.06 - V 2.1 c*VER 01.01.07 - V 3.0 c*VER 13.10.10 - V 4.0 c*VER 2017.02.24 - V 5.0 c* c*AUT spec. CNES - JC KOSIK - juin 1995 c*AUT port. CISI c*AUT adapt. AKKA c* c*ROL Theme : Calculs de geophysique c*ROL Calcul du champ magnetique d'origine interne. c* c*PAR magin (I) : type de champ magnetique interne c* c*PAR year (I) : annee fractionnaire (>= 2000. pour magin = 2 ; c*PAR : >= 2005. pour magin = 3) c*PAR : >= 2010. pour magin = 4) c*PAR : >= 2015. pour magin = 1 ou 5) c* c*PAR rre (I) : distance radiale geocentrique (rayons terrestres) c*PAR thet (I) : colatitude geocentrique (radians) c*PAR phi (I) : longitude geocentrique (radians) c* c*PAR bri (O) : composante radiale du champ magnetique le long du c* : meridien positive vers l'exterieur (gauss) c*PAR bti (O) : composante tangentielle du champ magnetique le long c*PAR : du meridien positive vers le sud (gauss) c*PAR bp (O) : composante azimuthale du champ magnetique, positive c*PAR : vers l'est (gauss) c* c*PAR bi (O) : module du champ (gauss) c* c*PAR ier (O) : code de retour c* c*NOT magin : 1 = dipole + g11 + h11 c*NOT magin : 2 = champ IGRF 2000 c*NOT magin : 3 = champ DGRF 2005 c*NOT magin : 4 = champ DGRF 2010 c*NOT magin : 5 = champ IGRF 2015 c* c*NOT ier : sans objet c* c*INF utilise : dipol, dgrf00, dgrf05, dgrf10, igrf15 c* c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.05.30 - correction de commentaires de code c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77 c*HST version 3.0 - 01.01.07 - utilisation du champ 2005 c*HST version 4.0 - 13.10.10 - Introduction du champ igrf10 et c*HST passage de igrf05 a dgrf05 c*HST version 5.0 - 2017.02.24 - Introduction du champ igrf15 et c*HST passage de igrf10 a dgrf10 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 integer magin double precision year double precision rre, thet, phi double precision bri, bti, bpi, bi integer ier 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 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 c ------------------------------------ c*FON Calcul du champ (dipole + g11 + h11) c ------------------------------------ c if (magin .eq. 1) then c call dipol(year,rre,thet,phi,bri,bti,bpi,bi,ier1) c c ------------------------- c*FON Calcul du champ DGRF 2000 c ------------------------- c else if (magin .eq. 2) then c call dgrf00(year,rre,thet,phi,bri,bti,bpi,bi,ier2) c c ------------------------- c*FON Calcul du champ DGRF 2005 c ------------------------- c else if (magin .eq. 3) then c call dgrf05(year,rre,thet,phi,bri,bti,bpi,bi,ier2) c c ------------------------- c*FON Calcul du champ DGRF 2010 c ------------------------- c else if (magin .eq. 4) then c call dgrf10(year,rre,thet,phi,bri,bti,bpi,bi,ier2) c c ------------------------- c*FON Calcul du champ IGRF 2015 c ------------------------- c else if (magin .eq. 5) then c call igrf15(year,rre,thet,phi,bri,bti,bpi,bi,ier2) c endif c c **************** c Fin de programme c **************** c return end