subroutine derivs (ds3,dir,indval,tilt,rggsm,rgsmg,xgsm,ygsm,zgsm, > rxp1,rxp2,rxp3,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* c*AUT spec. CNES - JC KOSIK - avril 1996 c*AUT port. CISI c* c*ROL Theme : Calculs de geophysique c*ROL Calcul des pas elementaires rxp1,rxp2,rxp3 au point c*ROL courant xgsm,ygsm,zgsm. c* c*PAR ds3 (I) : pas elementaire d'integration c* c*PAR dir (I) : direction du trace des lignes de champ c* c*PAR indval (I) : indice geomagnetique : niveau d'amplitude du champ c* c*PAR tilt (I) : angle de tilt (radians) c* c*PAR rggsm (I) : matrice de passage du repere geographique au c*PAR : repere solaire magnetospherique c*PAR rgsmg (I) : matrice de passage du repere solaire c*PAR : magnetospherique au repere geographique c* c*PAR xgsm (I) : coordonnee solaire magnetospherique en x (rayons terrestres) c*PAR ygsm (I) : coordonnee solaire magnetospherique en y (rayons terrestres) c*PAR zgsm (I) : coordonnee solaire magnetospherique en z (rayons terrestres) c* c*PAR rxp1 (O) : pas elementaire sur x (au point xgsm) c*PAR rxp2 (O) : pas elementaire sur y (au point ygsm) c*PAR rxp3 (O) : pas elementaire sur z (au point zgsm) c* c*PAR ier (O) : code de retour c* c*NOT dir : +1 = trace vers les altitudes plus elevees c*NOT : (depuis la surface vers l hemisphere oppose) c*NOT : -1 = trace vers les altitudes plus basses c*NOT : (vers la surface du meme hemispher c* c*NOT indval : 1 ---> Kp = 0 , 0+ c*NOT indval : 2 ---> Kp = 1- , 1 , 1+ c*NOT indval : 3 ---> Kp = 2- , 2 , 2+ c*NOT indval : 4 ---> Kp = 3- , 3 , 3+ c*NOT indval : 5 ---> Kp = 4- , 4 , 4+ c*NOT indval : 6 ---> Kp > 5- c* c*NOT ier : sans objet c* c*INF utilise : magtots 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* 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 rggsm(3,3), rgsmg(3,3) double precision ds3, dir double precision xgsm, ygsm, zgsm double precision rxp1, rxp2, rxp3 integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision bt c*LOC bt : composante tangentielle du champ total c double precision bi c*LOC bi : module du champ c double precision bxt,byt,bzt c*LOC bxt,byt,bzt : coordonnees solaires magnetospheriques x,y et z du champ 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 c ------------------------------------------------ c*FON Calcul des derivees pour l' algorithme de Merson c ------------------------------------------------ c call magtots (indval,tilt,rggsm,rgsmg,xgsm,ygsm,zgsm, > bxt,byt,bzt,bt,bi,ier) c bt = sqrt(bxt * bxt + byt * byt + bzt * bzt) c rxp1 = dir * ds3 * bxt / bt rxp2 = dir * ds3 * byt / bt rxp3 = dir * ds3 * bzt / bt c c **************** c Fin de programme c **************** c return end