subroutine distdip (r1,thet1r,xlchap,dischap,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 : Calculs de geophysique c*ROL Calcul de la distance minimum d'un point a une ligne c*ROL dipolaire. c* c*PAR r1 (I) : parametre de la ligne dipolaire c* c*PAR thet1r (I) : colatitude geocentrique (rayons terrestres) c* c*PAR xlchap (I) : colatitude du satellite c* c*PAR dischap (O) : distance minimum d'un point a une ligne dipolaire c*PAR : (rayons terrestres) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : rootlf 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* 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 r1, thet1r double precision xlchap double precision dischap integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer ier1 c*LOC ier1 : code retour des modules appeles c double precision rtab(3) c*LOC rtab : coordonnees spheriques c double precision sin2thet,xlpt,poschap,dist 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 Debut de programme c ****************** c c --------------- c*FON Initialisations c --------------- c ier = 0 ier1 = 0 c rtab(1) = xlchap rtab(2) = r1 rtab(3) = thet1r c sin2thet = sin(thet1r) * sin(thet1r) xlpt = r1 / sin2thet c if (xlpt .ge. xlchap) then poschap = 1.d0 else poschap = -1.d0 endif c thet1r = rtab(3) c c -------------------------------------------------------------- c*FON Calcul de la distance minimum d'un point a une ligne dipolaire c -------------------------------------------------------------- c call rootlf(rtab,dist,ier1) c dischap = dist * poschap c c **************** c Fin de programme c **************** c return end