subroutine k899k (tilt,facrc,c20,rre,thet,phi,bre,bte,bpe,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 du courant de l'anneau du champ magnetique. c* c*PAR tilt (I) : angle de tilt (radians) c* c*PAR facrc (I) : coefficient du courant de l'anneau c*PAR c20 (I) : coefficient du courant de l'anneau c* c*PAR rre (I) : distance radiale (kilometres ou rayons terrestres) c*PAR thet (I) : colatitude geocentrique GSM (radians) c*PAR phi (I) : colatitude geocentrique GSM (radians) c* c*PAR bre (O) : distante radiale geocentrique (idem input) c*PAR bte (O) : colatitude geocentrique (radians) c*PAR bpe (O) : colatitude geocentrique (radians) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : sans objet 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 tilt, facrc, c20, rre, thet, phi double precision bre, bte, bpe integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision br,bt,bp c*LOC br,bt,bp : composantes radiale, tangentielle et azimuthale du champ c double precision brtilt,bttilt,bptilt c*LOC brtilt,bttilt,bptilt : composantes radiale, tangentielle et azimuthale c double precision c10,c21,xk1,xk2,xk2t,r2,r3 double precision fons1,fons2,fons2t,ct,st,s2t,c2t,cp,sp double precision dfons1, dfons2, dfons2t 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 Debut de programme c ****************** c ier = 0 c c10 = -1.5d0 c21 = 0.11d0 c xk1 = 0.04d0 xk2 = 0.01d0 xk2t = 0.005d0 c r2 = rre * rre r3 = r2 * rre c fons1 = r3 * dexp(-xk1 * r2) fons2 = r3 * dexp(-xk2 * r2) fons2t = r2 * dexp(-xk2t * r2) c ct = dcos(thet) st = dsin(thet) s2t = 2.d0 * st * ct c2t = ct * ct - st * st cp = dcos(phi) sp = dsin(phi) c dfons1 = (4.d0 - 2.d0 * xk1 * r2) * fons1 / rre dfons2 = (4.d0 - 2.d0 * xk2 * r2) * fons2 / rre dfons2t = (3.d0 - 2.d0 * xk2t * r2) * fons2t / rre c br = 2.d0 * c10 * fons1*ct > / rre + 6.d0 * c21 * ct * st * cp * fons2 / rre bt = -c10 * dfons1 * st + 1.732d0 * c21 * c2t * cp * dfons2 bp = -1.732d0 * c21 * ct * sp * dfons2 c br = br * facrc bt = bt * facrc bp = bp * facrc c brtilt = +c20 * (6.d0 * c2t - 2.d0) * dsin(tilt) > * facrc * fons2t / rre bttilt = -c20 * s2t * dsin(tilt) * dfons2t * facrc bptilt = 0.d0 c bre = br * dcos(tilt) + brtilt bte = bt * dcos(tilt) + bttilt bpe = bp * dcos(tilt) + bptilt c c **************** c Fin de programme c **************** c 999 continue return end