subroutine mpsib (xgsm,ygsm,zgsm,imp,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.31 - V 2.0 c*VER 03.01.06 - V 2.1 c* c*AUT spec. CNES - JC KOSIK - janvier 1991 c*AUT port. CISI c* c*ROL Theme : Frontieres et regions c*ROL Calcul de l'appartenance d'un satellite a la magnetopause c*ROL de Sibeck. c*ROL On prend deux valeurs moyennes de l'activite du vent c*ROL solaire pour calculer les frontieres internes et externes. c* c*PAR xgsm (I) : coordonnee solaire magnetospherique x (rayons terrestres) c*PAR ygsm (I) : coordonnee solaire magnetospherique y (rayons terrestres) c*PAR zgsm (I) : coordonnee solaire magnetospherique z (rayons terrestres) c* c*PAR imp (O) : indicateur d'appartenance du satellite a la c*PAR : magnetopause de Sibeck c* c*PAR ier (O) : code de retour c* c*NOT imp : 0 = satellite en deca de la magnetopause, dans la magnetosphere c*NOT imp : 1 = satellite dans la magnetopause c*NOT imp : 2 = satellite au dela de la magnetopause c* c*NOT ier : sans objet c* c*INF utilise : aberrm c c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.05.31 - 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 xgsm, ygsm, zgsm integer imp integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer i c*LOC i : indice de boucles c integer ier1 c*LOC ier1 : code retour des modules appeles c double precision xgsa,ygsa,zgsa c*LOC xgsa,ygsa,zgsa : coordonnees solaires magnetospheriques x, y et z c*LOC : corrigees c double precision aa(5),bb(5),cc(5),b1,b2,r2,x2 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(i), i = 1, 5) > /0.19d0, 0.19d0, 0.14d0, 0.15d0, 0.18d0/ data (bb(i), i = 1, 5) > /19.3d0, 18.7d0, 18.2d0, 17.3d0, 14.2d0/ data (cc(i), i = 1, 5)/ > -272.4d0, -243.9d0, -217.2d0, -187.4d0, -139.2d0/ c c ****************** c Debut de programme c ****************** c ier = 0 ier1 = 0 c c ------------------------------------------------------------- c*FON Prise en compte de l'aberration du au deplacement de la terre c*FON l'angle d'aberration est fixe a 4.0d0 degres c ------------------------------------------------------------- c call aberrm(xgsm,ygsm,zgsm,xgsa,ygsa,zgsa,ier1) c c --------------------------------------------------------- c*FON Calculs pour la determination de la position du satellite c --------------------------------------------------------- c r2 = ygsa * ygsa + zgsa * zgsa x2 = xgsa * xgsa b2 = r2 + aa(2) * x2 + bb(2) * xgsa + cc(2) b1 = r2 + aa(4) * x2 + bb(4) * xgsa + cc(4) c imp = 0 c c ----------------------------------------- c*FON Determination de la position du satellite c ----------------------------------------- c if (b1 .ge. 0.d0 .and. b2 .le. 0.d0) then c c satellite a l'interieur de la magnetopause c imp = 1 else if (b1 .lt. 0.d0) then c c satellite a l'interieur de la magnetosphere c imp = 0 else if (b2 .gt. 0.d0) then c c satellite a l'exterieur de la magnetosphere, (magnetopause) c imp = 2 endif c c **************** c Fin de programme c **************** c return end