subroutine rogse (alfag,alfas,deltas,obliq,rgse,rseg,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 : Changements de repere c*ROL Calcul de la matrice de passage du repere geocentrique au c*ROL repere solaire ecliptique et de la matrice inverse. c* c*PAR alfag (I) : ascension droite de Greenwich (radians) c* c*PAR alfas (I) : ascension droite du soleil (radians) c*PAR deltas (I) : declinaison du soleil (radians) c* c*PAR obliq (I) : obliquite de l'ecliptique (radians) c* c*PAR rgse (O) : matrice (3,3) de passage du repere geocentrique c*PAR : au repere solaire ecliptique c*PAR rseg (O) : matrice (3,3) de passage du repere sola c*ire c*PAR : ecliptique au repere geocentrique c*PAR ier (O) : code de retour c* c*NOT ier : sans objet 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.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 double precision alfag, alfas, deltas, obliq double precision rgse(3,3), rseg(3,3) integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer i,j c*LOC i,j : indices de boucles c double precision cxl,sxl,cobli,sobli,calfag,salfag 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 Calculs intermediaires (angle de la rotation) c --------------------------------------------- c ier = 0 c cxl = cos(alfas) * cos(deltas) sxl = sin(deltas) / sin(obliq) cobli = cos(obliq) sobli = sin(obliq) calfag = cos(alfag) salfag = sin(alfag) c c ------------------------- c*FON Calcul de la matrice rgse c ------------------------- c rgse(1,1) = cxl * calfag + cobli * sxl * salfag rgse(1,2) = - cxl * salfag + cobli * sxl * calfag rgse(1,3) = sobli * sxl rgse(2,1) = - sxl * calfag + cobli * cxl * salfag rgse(2,2) = sxl * salfag + cobli * cxl * calfag rgse(2,3) = sobli * cxl rgse(3,1) = - sobli * salfag rgse(3,2) = - calfag * sobli rgse(3,3) = cobli c c -------------------------------------------- c*FON Calcul de la matrice rseg transposee de rgse c -------------------------------------------- c do 10 i = 1, 3 do 20 j = 1, 3 rseg(i,j) = rgse(j,i) 20 continue 10 continue c c **************** c Fin de programme c **************** c return end