subroutine mf75 (indval,tilt,xsm,ysm,zsm,bxsm,bysm,bzsm,bsm,ier) c* c*********************************************************************** c* c* "Copyright [c] CNES 98 - tous droits reserves" c* ********************************************** c* c*PRO MAGLIB c* c*VER 01.05.30 - V 2.0 c*VER 03.01.06 - V 2.1 c* c*AUT spec. CNES - JC KOSIK - fevrier 2001 c*AUT port. CS-SI c* c*ROL Theme : Modeles de champs magnetiques c*ROL Calcul du champ magnetique de Mead - fairfield en gammas. c* c*PAR indval (I) : indice geomagnetique : niveau d'amplitude du champ c* c*PAR tilt (I) : angle de tilt (radians) c* c*PAR xsm (I) : coordonnee en x dans le repere solaire magnetique c*PAR : (rayons terrestres) c*PAR ysm (I) : coordonnee en y dans le repere solaire magnetique c*PAR : (rayons terrestres) c*PAR zsm (I) : coordonnee en z dans le repere solaire magnetique c*PAR : (rayons terrestres) c* c*PAR bxsm (O) : coordonnee en x du champ dans le repere SM (nanoteslas) c*PAR bysm (O) : coordonnee en y du champ dans le repere SM (nanoteslas) c*PAR bzsm (O) : coordonnee en z du champ dans le repere SM (nanoteslas) c* c*PAR bsm (O) : module champ magnetique (nanoteslas) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : sans objet c* c*HST version 2.0 - 01.05.30 - Enrichissement de la maglib au CDPP 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 integer indval double precision tilt double precision xsm,ysm,zsm double precision bxsm,bysm,bzsm,bsm integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer i,j c*LOC i,j : indices de boucles c double precision ca(4,7),cb(4,3),cd(4,7) double precision x,y,z,x2,y2,z2,t 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((ca(i,j),j=1,7),i=1,4)/ > 17.93, -5.79, 2.98, -2.57, -0.30, -1.47, 1.05, > 21.79, -7.03, 3.02, -2.99, -0.62, -1.22, 0.95, > 33.16, -6.39, 4.30, -3.25, -0.44, -1.27, 0.45, > 39.48, -2.91, 5.17, -3.86, -1.04, -1.29, -1.14/ c data((cb(i,j),j=1,3),i=1,4)/ > -10.11, -1.98,0.09, > -11.84, -2.57, -0.28, > -16.54, -3.08, 0.22, > -19.10, -3.50, 0.23/ c data((cd(i,j),j=1,7),i=1,4)/ > -9.41, 15.07, 13.16, 8.36, 7.95, 4.55, 0.51, > -11.96, 17.87, 15.88, 9.77, 9.43, 5.57, 1.53, > -19.88, 20.23, 22.72, 13.23, 11.46, 6.33, 0.67, > -22.90, 22.70, 26.50, 15.54, 11.00, 7.36, 1.85/ c c ****************** c Debut de programme c ****************** c c ------------------------- c*FON Initialisations de depart c ------------------------- c ier = 0 c x = xsm / 10. y = ysm / 10. z = zsm / 10. x2 = x * x y2 = y * y z2 = z * z t = tilt / 10. i = indval c bxsm = ca(i,1) * z + ca(i,2) * x * z + > t * (ca(i,3) + ca(i,4) * x + > ca(i,5) * x2 + ca(i,6) * y2 + ca(i,7) * z2) c bysm = cb(i,1) * y * z + > t * (cb(i,2) * y + cb(i,3) * x * y) c bzsm = cd(i,1) + cd(i,2) * x + cd(i,3) * x2 + > cd(i,4) * y2 + cd(i,5) * z2 + > t * (cd(i,6) * z + cd(i,7) * x * z) c bsm = sqrt(bxsm*bxsm + bzsm*bzsm + bysm*bysm) c c **************** c Fin de programme c **************** c return end