subroutine rovdh (year,rre,thetr,phir,rgvdh,rvdhg,ier) c* c*********************************************************************** c* c* "Copyright [c] CNES 98 - tous droits reserves" c* ********************************************** c* c*PRO MAGLIB c* c*VER 01.05.30 - V 2.0 c*VER 03.01.06 - V 2.1 c*VER 01.01.07 - V 3.0 c*VER 13.10.10 - V 4.0 c*VER 2017.02.24 - V 5.0 c* c*AUT spec. CNES - JC KOSIK - fevrier 2001 c*AUT port. CS-SI c*AUT adapt. AKKA c* c*ROL Theme : Changements de repere c*ROL Calcul de la matrice de transformation du repere c*ROL geocentrique au repere Champ, defini avec zch c*ROL suivant la verticale ascendante, ych est dans le plan zch, c*ROL B ou B est le champ xch complete le triedre. c* c*PAR year (I) : annee fractionnaire c* c*PAR rre (I) : distance radiale geocentrique (rayons terrestres) c*PAR thetr (I) : colatitude geocentrique (radians) c*PAR phir (I) : longitude geocentrique (radians) c* c*PAR rgvdh (O) : matrice de rotation du repere geocentrique au c*ROL : repere Champ c*PAR rvdhg (O) : matrice de rotation du repere Champ au repere c*ROL : geocentrique c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*NOT common : util c* c*INF utilise : angleg, igrf15, promat c* c*HST version 2.0 - 01.05.30 - Enrichissement de la maglib au CDPP c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77 c*HST version 3.0 - 01.01.07 - utilisation du champ IGRF 2005 c*HST version 4.0 - 13.10.10 - Introduction du champ IGRF10 c*HST version 5.0 - 2017.02.24 - Introduction du champ IGRF15 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 year,rre,thetr,phir double precision rgvdh(3,3),rvdhg(3,3) 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 fonctions externes c ---------------------------------- c external angleg double precision angleg c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision br,bt,bp c*COM br,bt,bp : composantes radiale, tangentielle et azimuthale du champ c double precision bb c*COM bb : module du champ magnetique (gauss) c double precision rgp(3,3),rot(3,3) double precision psi,theta 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 ier = 0 c c ------------------------------------------------------------ c*FON Calcul de la matrice de transformation geocentrique vers VDH c ------------------------------------------------------------ c rgp(1,1) = dcos(thetr) * dcos(phir) rgp(1,2) = dcos(thetr) * dsin(phir) rgp(1,3) = -dsin(thetr) rgp(2,1) = -dsin(phir) rgp(2,2) = dcos(phir) rgp(2,3) = 0.d0 rgp(3,1) = dsin(thetr) * dcos(phir) rgp(3,2) = dsin(thetr) * dsin(phir) rgp(3,3) = dcos(thetr) c c ----------------------------------------------------------- c*FON Calcul de l angle de rotation theta permettant d'annuler la c*FON composante vers l'Est par rotation c*FON la composante vers l'est Bp = D c*FON la composante vers le Nord est Bt = - H c*FON Recherche des composantes du champ dans tpar c ----------------------------------------------------------- c call igrf15(year,rre,thetr,phir,br,bt,bp,bb,ier) c psi = angleg(bt,bp,ier) theta = psi - pid c c --------------------------------------------------------- c*FON Calcul de la matrice de rotation passant de VDH au repere c*FON *champ c --------------------------------------------------------- c rot(1,1) = dcos(theta) rot(1,2) = dsin(theta) rot(1,3) = 0.d0 rot(2,1) = -dsin(theta) rot(2,2) = dcos(theta) rot(2,3) = 0.d0 rot(3,1) = 0.d0 rot(3,2) = 0.d0 rot(3,3) = 1.d0 c c ------------------------------------------------------------ c*FON Calcul de la matrice de transformation pour passer du repere c*FON geocentrique au repere champ et inverse c ------------------------------------------------------------ c call promat(rot,rgp,rgvdh,rvdhg,ier) c c **************** c Fin de programme c **************** c return end