subroutine ctrldis (iunitr,rr,theta,phi,ier1,ier2,ier3) 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.30 - 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 : Modules de controle c*ROL Controle des donnees en entree des modules de calcul. c*ROL Validite de r (r >= 1 r.g.m ou >= 6371.2 km) c*ROL Validite de theta (0 <= theta <= pi) c*ROL Validite de phi (0 <= phi <= 2*pi) c* c*PAR iunitr (I) : unite de la distance rr c* : (0 = kilometres , 1 = rayons terrestres) c* c*PAR rr (I) : distance (dans l'unite iunitr) c*PAR theta (I) : angle theta (radians) c*PAR phi (I) : angle phi (radians) c* c*PAR ier1 (O) : indicateur de validite de rr c*PAR ier2 (O) : indicateur de validite de theta c*PAR ier3 (O) : indicateur de validite de phi c* c*NOT ier1 : 0 = OK c*NOT ier1 : 1 = rr incorrect c* c*NOT ier2 : 0 = OK c*NOT ier2 : 1 = theta incorrect c* c*NOT ier3 : 0 = OK c*NOT ier3 : 1 = phi incorrect c* c*NOT common : util, util2 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.05.30 - 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 iunitr double precision rr, theta, phi integer ier1, ier2, ier3 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 double precision rgmt c c*COM rgmt : rayon geocentrique terrestre (km) c common/util2/rgmt c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision rgmin,thetmi,thetma,phimi,phima c*LOC rgmin,thetmi,thetma,phimi,phima : Bornes pour les validations 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 c* Definition des bornes c data rgmin /1.d0/ c data thetmi /0.d0/ thetma = pi c data phimi /0.d0/ phima = dpi c c ****************** c Debut de programme c ****************** c ier1 = 0 ier2 = 0 ier3 = 0 c c --------------------------------- c*FON Controle de la distance satellite c --------------------------------- c c Distance exprimee en kilometres c ------------------------------- c if (iunitr .eq. 0) then c if (rr .lt. rgmt) then ier1 =1 endif c c Distance exprimee en rayons terrestres c -------------------------------------- c elseif (iunitr .eq. 1) then c if (rr .lt. rgmin) then ier1 =1 endif c endif c c ------------------------- c*FON Controle de l'angle theta c ------------------------- c if (theta .lt. thetmi .or. theta .gt. thetma) then ier2 = 1 endif c c ----------------------- c*FON Controle de l'angle phi c ----------------------- c if (phi .lt. phimi .or. phi .gt. phima) then ier3 = 1 endif c c **************** c Fin de programme c **************** c return end