subroutine caldis (ityp,isw,xgse,ygse,zgse,distby,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.01 - 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 distance d'un satellite a une frontiere : c*ROL magnetopause ou onde de choc. c* c*PAR ityp (I) : parametre permettant de fixer le choix de frontiere c*PAR : --> 1 magnetopause c*PAR : --> 2 onde de choc c* c*PAR isw (I) : valeur de l'indice de variabilite du vent solaire c* c*PAR xgse (I) : coordonnee solaire ecliptique x (rayons terrestres) c*PAR ygse (I) : coordonnee solaire ecliptique y (rayons terrestres) c*PAR zgse (I) : coordonnee solaire ecliptique y (rayons terrestres) c* c*PAR distby (O) : distance satellite frontiere (rayons terrestres) c* c*PAR ier (O) : code de retour c* c*NOT isw : 1 a 5 c*NOT isw : 1 : distance subsolaire = 12.6 rayons terrestres c*NOT isw : 2 : distance subsolaire = 11.7 rayons terrestres c*NOT isw : 3 : distance subsolaire = 11. rayons terrestres c*NOT isw : 4 : distance subsolaire = 10. rayons terrestres c*NOT isw : 5 : distance subsolaire = 8.8 rayons terrestres c* c*NOT ier : sans objet c* c*INF utilise : aberrm, inipbs, form, ptnew, boundy, disgb c* c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.06.01 - 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 ityp,isw double precision xgse,ygse,zgse double precision distby integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer ier0,ier1,ier2,ier3,ier4,ier5 c*LOC ier1,ier2,ier3,ier4,ier5 : codes retour des modules appeles c double precision xgsa,ygsa,zgsa c*LOC xgsa,ygsa,zgsa : coordonnees solaires ecliptiques x, y et z corrigees c double precision pa,pb,pc,pd,pe c*LOC pa,pb,pc,pd,pe : parametres decrivant l'expression quadratique c*LOC : de la frontiere dans le repere solaire ecliptique c double precision ga,gb,gc,gd,ge c*LOC ga,gb,gc,gd,ge : parametres decrivant l'expression quadratique c*LOC : de la frontiere dans un repere annulant le terme xy c double precision xss c*LOC xss : parametre decrivant l'expression quadratique de la frontiere c double precision posby c*LOC posby : position par rapport a la magnetopause ou a l'onde de choc c double precision tetby c*LOC tetby : angle de rotation qui amene le repere solaire c*LOC : ecliptique dans le nouveau repere c double precision rosnew c*LOC rosnew : distance du satellite a l'axe de symetrie axiale c double precision xsnew c*LOC xsnew : coordonnee x du satellite dans le repere de symetrie axiale 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 ier0 = 0 ier1 = 0 ier2 = 0 ier3 = 0 ier4 = 0 ier5 = 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. degres c ------------------------------------------------------------- c call aberrm(xgse,ygse,zgse,xgsa,ygsa,zgsa,ier0) c c ---------------------------------------------------------- c*FON Initialisation des parametres du modele de magnetopause et c*FON du modele d'onde de choc c ---------------------------------------------------------- c call inipbs(ityp,isw,pa,pb,pc,pd,pe,xss,ier1) c c ------------------------------------------------------------- c*FON Calcul de l'equation de la frontiere dans un repere cartesien c*FON lui donnant la symetrie axiale c ------------------------------------------------------------- c call form(pa,pb,pc,pd,pe,ga,gb,gc,gd,ge,tetby,ier2) c c ------------------------------------------------------------------ c*FON Calcul des coordonnees d'un point du repere solaire ecliptique c*FON dans le repere offrant la symetrie de revolution pour la frontiere c ------------------------------------------------------------------- c call ptnew(tetby,xgsa,ygsa,zgsa,xsnew,rosnew,ier3) c c ---------------------------------------------------------------- c*FON Determination de la position du point par rapport a la frontiere c ---------------------------------------------------------------- c call boundy(ga,gd,ge,xsnew,rosnew,posby,ier4) c c ---------------------------------------------------- c*FON Calcul de la distance du satellite a la frontiere en c*FON conformite avec le standard trotignon c ---------------------------------------------------- c call disgb(ityp,xsnew,rosnew,ga,gd,ge,posby,distby,ier5) c c **************** c Fin de programme c **************** c return end