C	*************************************************************************************
C	Programme SATELLITE fourni comme exemple de calcul des coordonnees
C	rectangulaires equatoriales 1950.0 des 8 premiers satellites de Saturne
C	Ce programme utilise les subroutines relatives aux 8 premiers satellites de Saturne :
C	MIMAS,ENCELADE,TETHYS,DIONE,RHEA,TITAN,HYPERION,JAPET
C	Ces subroutines font appel a 5 autres subroutines :
C	DANNO	: Calcule les angles J et N du plan orbital de SATURNE

C	a partir de leurs elements elliptiques.
C	EKEPLR	: Resoud l'equation de Kepler
C	ROTA	: Transforme les coordonnees rectangulaires par rotation des 3 angles d'Euler
C	ECOREQAN	: Permet de calculer les elements orbitaux des 4 satellites exterieurs
C	en les rapportant aux memes plans que les 4 satellites interieurs.
C	Une fonction est aussi necessaire :
C	OBLI	: Calcule l'obliquite de l'ecliptique.
C	Les valeurs des elements orbitaux sont contenues dans le fichier SATVAL.DOB
C	dont on devra disposer et qui sera lu lors de l'execution (acces sequentiel).
C	Les resultats du calcul sont ecrits dans un fichier a acces sequentiel qui est cree
C	sous le nom de : SATELLITE.RES
C	***********************************************************************************
C	DEFINITION DES DIMENSIONS,DES COMMONS ET DES DATAS
C	**************************************************

	IMPLICIT REAL*8(A-H,O-Z)
	CHARACTER*8 NOMSAT(8),NOM(8,24)
	DIMENSION IEL(8),R(3),X(3,8)
	COMMON/BLKSANOM/NOMSAT
	COMMON/BLKMIVAL/EL1(8,24)
	COMMON/BLKENVAL/EL2(8,24)
	COMMON/BLKTEVAL/EL3(8,24)
	COMMON/BLKDIVAL/EL4(8,24)
	COMMON/BLKRHVAL/EL5(8,24)
	COMMON/BLKTIVAL/EL6(8,24)
	COMMON/BLKHYVAL/EL7(8,24)
	COMMON/BLKJAVAL/EL8(8,24)
	COMMON/BLKPI/PI,DPI,DEGRAD,RADEG
	COMMON/BLKDAT/DATECAT,DATE2000,ANJBES
	PI=4*ATAN(1.)
	DPI=2*PI
	DEGRAD=PI/180
	RADEG=180/PI
	DATECAT=2433282.42345905D0
	DATE2000=2451545.D0
	ANJBES=365.242198781D0
	DATA IEL/19,19,18,19,15,15,21,19/

C	********************************************************************
C	LECTURE DES VALEURS DES ELEMENTS ORBITAUX DANS LE FICHIER SATVAL.DOB
C	********************************************************************

	OPEN(UNIT=8,NAME='SATVAL.DOB',TYPE='OLD',READONLY,
	1CARRIAGECONTROL='LIST',RECL=132)

	READ(8,'(X,A)')NOMSAT(1)
	READ(8,100) ((EL1(I,J),I=1,8),NOM(1,J),J=1,IEL(1))
	READ(8,'(X,A)')NOMSAT(2)
	READ(8,100) ((EL2(I,J),I=1,8),NOM(2,J),J=1,IEL(2))
	READ(8,'(X,A)')NOMSAT(3)
	READ(8,100) ((EL3(I,J),I=1,8),NOM(3,J),J=1,IEL(3))
	READ(8,'(X,A)')NOMSAT(4)
	READ(8,100) ((EL4(I,J),I=1,8),NOM(4,J),J=1,IEL(4))
	READ(8,'(X,A)')NOMSAT(5)
	READ(8,100) ((EL5(I,J),I=1,8),NOM(5,J),J=1,IEL(5))
	READ(8,'(X,A)')NOMSAT(6)
	READ(8,100) ((EL6(I,J),I=1,8),NOM(6,J),J=1,IEL(6))
	READ(8,'(X,A)')NOMSAT(7)
	READ(8,100) ((EL7(I,J),I=1,8),NOM(7,J),J=1,IEL(7))
	READ(8,'(X,A)')NOMSAT(8)
	READ(8,100) ((EL8(I,J),I=1,8),NOM(8,J),J=1,IEL(8))
100	FORMAT(8F14.8,X,A)
	CLOSE(UNIT=8)

C	************************************************************************	
C	CALCUL DES COORDONNEES RECTANGULAIRES EQUATORIALES 1950.0 DES SATELLITES
C	************************************************************************

1	WRITE(6,200)
200	FORMAT('$ ENTRER LA DATE JULIENNE (8 DECIMALES MAXI) : ')
	READ(5,300)DAY
300	FORMAT(D22.15)
	OPEN (UNIT=1,NAME='SATELLITE.RES',STATUS='UNKNOWN',ACCESS='APPEND')
	WRITE(6,400)DAY
	WRITE(1,400)DAY
400	FORMAT(X,' DATE JULIENNE = ',7PD22.15)
	CALL MIMAS (DAY,7,R)
	DO K=1,3
	X(K,1)=R(K)
	END DO
	CALL ENCELADE(DAY,7,R)
	DO K=1,3
	X(K,2)=R(K)
	END DO
	CALL TETHYS(DAY,7,R)
	DO K=1,3
	X(K,3)=R(K)
	END DO
	CALL DIONE (DAY,7,R)
	DO K=1,3
	X(K,4)=R(K)
	END DO
	CALL RHEA (DAY,7,R)
	DO K=1,3
	X(K,5)=R(K)
	END DO
	CALL TITAN(DAY,7,R)
	DO K=1,3
	X(K,6)=R(K)
	END DO
	CALL HYPERION(DAY,7,R)
	DO K=1,3
	X(K,7)=R(K)
	END DO
	CALL JAPET(DAY,7,R)
	DO K=1,3
	X(K,8)=R(K)
	END DO
	WRITE(6,500)(NOMSAT(L),(X(K,L),K=1,3),L=1,8)	!	X(K,L) COORD.RECT.EQUAT.1950.0 SATELLITE No:L 
	WRITE(1,500)(NOMSAT(L),(X(K,L),K=1,3),L=1,8)	!	X(K,L) COORD.RECT.EQUAT.1950.0 SATELLITE No:L 
500	FORMAT(5X,A,5X,'X=',2X,0PD22.15,5X,'Y=',2X,D22.15,5X,'Z=',2X,D22.15)
	CLOSE (UNIT=1)
	GO TO 1
	END
	


