subroutine tgeogr (norb,tvect,djd,rgdip,rgsm, + rggsm,rgse,tgraph,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 : Calculs de geophysique c*ROL Calcul des quantites geographiques et des parametres c*ROL magnetospheriques locaux pour une date et une orbite c*ROL donnes. c* c*PAR norb (I) : numero d'orbite c* c*PAR tvect (I) : tableau des coordonnees inertielles (km,km/s) c* c*PAR djd (I) : date julienne CNES fractionnaire (depuis le 01/01/1950) c* c*PAR rgdip (I) : matrice (3,3) de passage du repere geographique c*PAR : au repere dipolaire c*PAR rgsm (I) : matrice de passage du repere geocentrique au repere c*PAR : solaire magnetique c*PAR rggsm (I) : matrice de passage du repere geocentrique c*PAR : au repere solaire magnetospherique c*PAR rgse (I) : matrice de passage du repere geocentrique c*PAR : au repere solaire eclyptique c* c*PAR tgraph (O) : tableau des grandeurs geographiques c* c*PAR ier (O) : code de retour c* c*NOT tvect : 1 a 3 : positions en kilometres c*NOT tvect : 4 a 6 : vitesses en kilometres/secondes c* c*NOT tgraph : tgraph(01) = date julienne c*NOT tgraph : tgraph(02) = numero d'orbite c*NOT tgraph : tgraph(03) = position geographique en x (kilometres) c*NOT tgraph : tgraph(04) = position geographique en y (kilometres) c*NOT tgraph : tgraph(05) = position geographique en z (kilometres) c*NOT tgraph : tgraph(06) = vitesse geographique en x c* : (kilometres/secondes) c*NOT tgraph : tgraph(07) = vitesse geographique en y c* : (kilometres/secondes) c*NOT tgraph : tgraph(08) = vitesse geographique en z c* : (kilometres/secondes) c*NOT tgraph : tgraph(09) = altitude geocentrique (kilometres) c*NOT tgraph : tgraph(10) = latitude geographique (radians) c*NOT tgraph : tgraph(11) = longitude geographique (radians) c*NOT tgraph : tgraph(12) = distance radiale geographique c* : (rayons terrestres) c*NOT tgraph : tgraph(13) = colatitude geocentrique (radians) c*NOT tgraph : tgraph(14) = longitude geocentrique (radians) c*NOT tgraph : tgraph(15) = coordonnee solaire ecliptique en x c* : (rayons terrestres) c*NOT tgraph : tgraph(16) = coordonnee solaire ecliptique en y c* : (rayons terrestres) c*NOT tgraph : tgraph(17) = coordonnee solaire ecliptique en z c* : (rayons terrestres) c*NOT tgraph : tgraph(18) = coordonnee solaire magnetospherique en x c* : (rayons terrestres) c*NOT tgraph : tgraph(19) = coordonnee solaire magnetospherique en y c* : (rayons terrestres) c*NOT tgraph : tgraph(20) = coordonnee solaire magnetospherique en z c* : (rayons terrestres) c*NOT tgraph : tgraph(21) = latitude geomagnetique (radians) c*NOT tgraph : tgraph(22) = longitude geomagnetique (radians) c*NOT tgraph : tgraph(23) = temps geomagnetique local c*NOT tgraph : (heures fractionnaires) c* c*NOT ier : sans objet c* c*NOT common : util c* c*INF utilise : pvig, geogkm, gcvgd, georre, geose, c*INF utilise : geogsm, ggeom, tgml 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 integer norb double precision tvect(6) double precision djd double precision rgdip(3,3), rgsm(3,3), rggsm(3,3), rgse(3,3) double precision tgraph(23) 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 ier1,ier2,ier3,ier4,ier5,ier6,ier7,ier8 c*LOC ier1 a ier8 : codes retour des modules appeles c double precision xg,yg,zg c*LOC xg,yg,zg : composantes cartesiennes en x,y et z c double precision xi,yi,zi,vxi,vyi,vzi,vgx,vgy,vgz c double precision rgc,dlatr,dlonr,alt,dlatgr c double precision rre,thetr,phir c*LOC rre,thetr,phir : coordonnees spheriques c double precision xgse,ygse,zgse c*LOC xgse,ygse,zgse : composantes solaires ecliptiques en x,y et z c double precision xgsm,ygsm,zgsm c*LOC xgsm,ygsm,zgsm : composantes solaires magnetospheriques en x,y et z c double precision xlatgr,xlongr,tgl,xre,yre,zre c SAVE c c --------------------------------- c*FON Affectation identificateur rcs_id c --------------------------------- c data rcs_id /" >$Id$"/ c c ****************** c Debut de programme c ****************** c ier1 = 0 ier2 = 0 ier3 = 0 ier4 = 0 ier5 = 0 ier6 = 0 ier7 = 0 ier8 = 0 ier = 0 c c ----------------------------------------------------------------- c*FON Passage des coordonnees inertielles aux coordonnees geographiques c ----------------------------------------------------------------- c xi = tvect(1) yi = tvect(2) zi = tvect(3) vxi = tvect(4) vyi = tvect(5) vzi = tvect(6) c call pvig(djd,xi,yi,zi,vxi,vyi,vzi,xg,yg,zg,vgx,vgy,vgz,ier1) c tgraph(1) = djd tgraph(2) = norb tgraph(3) = xg tgraph(4) = yg tgraph(5) = zg tgraph(6) = vgx tgraph(7) = vgy tgraph(8) = vgz c c -------------------------------------------------- c*FON Calcul des coordonnees spheriques en km et radians c -------------------------------------------------- c call geogkm(xg,yg,zg,rgc,dlatr,dlonr,ier2) c c --------------------------------------------------- c*FON Calcul des coordonnees geodesiques en km et radians c --------------------------------------------------- c call gcvgd(rgc,dlatr,alt,dlatgr,ier3) c tgraph(9) = alt tgraph(10) = dlatgr tgraph(11) = dlonr c c --------------------------------------------------------------- c*FON Calcul des coordonnees geocentriques cartesiennes et spheriques c*FON en rayons terrestres et colatitude en radians et longitude c*FON en radians c --------------------------------------------------------------- c call georre(xg,yg,zg,xre,yre,zre,rre,thetr,phir,ier4) c tgraph(12) = rre tgraph(13) = thetr tgraph(14) = phir c c ------------------------------------------ c*FON Calcul des coordonnees solaire-ecliptiques c ------------------------------------------ c call geose(rgse,xre,yre,zre,xgse,ygse,zgse,ier5) c tgraph(15) = xgse tgraph(16) = ygse tgraph(17) = zgse c c ------------------------------------------------- c*FON Calcul des coordonnees solaires magnetospheriques c ------------------------------------------------- c call geogsm(rggsm,xre,yre,zre,xgsm,ygsm,zgsm,ier6) c tgraph(18) = xgsm tgraph(19) = ygsm tgraph(20) = zgsm c c ------------------------------------------------------- c*FON Calcul de la latitude et de la longitude geomagnetiques c ------------------------------------------------------- c call ggeom(rgdip,thetr,phir,xlatgr,xlongr,ier7) c tgraph(21) = xlatgr tgraph(22) = xlongr c c ---------------------------------------------------- c*FON Calcul du temps geomagnetique local au satellite tgl c ---------------------------------------------------- c call tgml(rgsm,thetr,phir,tgl,ier8) c tgraph(23) = tgl c c **************** c Fin de programme c **************** c return end