subroutine posps (tilt,xgsm,ygsm,zgsm,dzpshn,dzpshs,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 - juin 1995 c*AUT port. CISI c* c*ROL Theme : Frontieres et regions c*ROL Calcul de la position d'un satellite par rapport a la c*ROL couche de plasma. c* c*PAR tilt (I) : angle de tilt (radians) c* c*PAR xgsm (I) : coordonee solaire magnetospherique x du satellite c*PAR : (rayons terrestres) c*PAR ygsm (I) : coordonee solaire magnetospherique y du satellite c*PAR : (rayons terrestres) c*PAR zgsm (I) : coordonee solaire magnetospherique z du satellite c*PAR : (rayons terrestres) c* c*PAR dzpshn (O) : distance par rapport a la couche de plasma nord c*PAR : (rayons terrestres) c* c*PAR dzpshs (O) : distance par rapport a la couche de plasma sud c*PAR : (rayons terrestres) c* c*PAR ier (O) : code de retour c* c*NOT ipsh : 0 = satellite hors de la couche de plasma c*NOT ipsh : 1 = satellite dans la couche de plasma c* c*NOT La couche de plasma est definie par rapport au modele de c*NOT de couche neutre de Dandouras. c*NOT Le satellite doit etre dans la couche neutre. c*NOT On definit les frontieres nord et sud de la couche de plasma c*NOT par rapport a la couche neutre et on teste zgsm. 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 double precision xgsm, ygsm, zgsm double precision dzpshn, dzpshs integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision a1,b1,ho,yo,dd double precision aygsm,zcpn,zcps,radic double precision rlim,znsh,rp 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 a1 /0.186d0/ data b1 /3.d0/ data ho /10.5d0/ data yo /22.5d0/ data dd /14.d0/ c c ****************** c Debut de programme c ****************** c ier = 0 c c --------------------------------------------------- c*FON Calcul de la position du satellite par rapport a la c*FON couche de plasma si celui ci est pres de cette zone c --------------------------------------------------- c znsh = -dd * sin(tilt) rlim = ho * cos(tilt) c dzpshn = 999.0d0 dzpshs = 999.0d0 c if (xgsm .lt. 0.d0) then c rp = sqrt(xgsm * xgsm + ygsm * ygsm) c if (rp .gt. rlim) then c aygsm = abs(ygsm) if (aygsm .lt. yo) then radic = 1.d0 - (aygsm / yo)**2 znsh = ((ho + dd) * sqrt(radic) - dd) * sin(tilt) endif c zcpn = znsh + a1 * aygsm + b1 zcps = znsh - a1 * aygsm - b1 c dzpshn = zgsm - zcpn dzpshs = zgsm - zcps c endif c endif c c **************** c Fin de programme c **************** c return end