subroutine oval (tgml,xlatgm,ioval,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 1991 c*AUT port. CISI c* c*ROL Theme : Frontieres et regions c*ROL Calcul de l appartenance d'un satellite a l'ovale aurorale c*ROL de Feldstein. c* c*PAR tgml (I) : temps geomagnetique local du point conjugue c*PAR : nord du satellite (heures fractionnaires) c*PAR xlatgm (I) : latitude geomagnetique du point conjugue nord c*PAR : du satellite (radians) c* c*PAR ioval (O) : appartenance du satellite a l'oval auroral c* c*PAR ier (O) : code de retour c* c*NOT Cet ovale auroral est defini pour deux valeurs c*NOT de Kp, (1 et 6). On adopte une valeur intermediaire en c*NOT faisant la 1/2 somme des angles delimitant les frontieres. c*NOT Les frontieres nord et sud de l'oval auroral sont calculees c*NOT pour un indice geomagnetique moyen. c* c*NOT ioval : 1 = si appartenance a l'oval auroral c*NOT ioval : 0 = si non appartenance c* c*NOT ier : sans objet c* c*NOT common : util 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 tgml, xlatgm integer ioval integer ier c c ---------------------------------- c*FON Declaration des variables communes c ---------------------------------- c double precision pi,dpi,rad,deg,pid,xmu,rayt c c*COM pi : constante pi (obtenue a partir de acos(-1.)) c*COM dpi : constante 2 * pi c*COM pid : constante pi / 2 c*COM rad : facteur de conversion degres ----> radians c*COM deg : facteur de conversion radians ----> degres c*COM xmu : constante de gravitation terrestre (km**3/sec**2) c*COM rayt : rayon equatorial terrestre (km) c common/util/pi,dpi,rad,deg,pid,xmu,rayt c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer i,k c*LOC i,k : indices de boucles c double precision tthetn(2),tthets(2) double precision a1n(2),a2n(2),a3n(2),a1s(2),a2s(2),a3s(2) double precision thetp,t,alfas,alfan,xthetn,xthets 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 (a1s(i),i=1,2) /17.36d0, 23.18d0/ data (a2s(i),i=1,2) / 3.03d0, 4.85d0/ data (a3s(i),i=1,2) / 3.3d0, 3.3d0/ data (a1n(i),i=1,2) /15.22d0, 16.71d0/ data (a2n(i),i=1,2) / 2.41d0, 0.37d0/ data (a3n(i),i=1,2) / 3.d0, 3.d0/ c c ****************** c Debut de programme c ****************** c ier = 0 ioval = 0 c c --------------------------------------------------- c*FON Calcul des frontieres nord et sud de l'oval auroral c --------------------------------------------------- c thetp = pid - xlatgm t = tgml * 15.d0 t = mod(t,360.d0) c do 10 k = 1, 2 alfas = t + a3s(k) alfan = t + a3n(k) tthetn(k) = a1n(k) + a2n(k) * cos(alfan * rad) tthets(k) = a1s(k) + a2s(k) * cos(alfas * rad) 10 continue c xthetn = (tthetn(1) + tthetn(2)) * rad / 2.d0 xthets = (tthets(1) + tthets(2)) * rad / 2.d0 c c ------------------------------------------ c*FON Appartenance du satellite a l'oval auroral c ------------------------------------------ c if (thetp .ge. xthetn .and. thetp .le. xthets) then ioval = 1 endif c c **************** c Fin de programme c **************** c return end