* ================================================= * ASPECT DES ANNEAUX DE SATURNE * * Exemple de programme d'utilisation * des coefficients de Tchebychev. pour * le calcul des parametres geometriques * concernant l'anneau de Saturne * ================================================= * * les coefficients sont dans les fichiers eletcxx.dat * ou xx sont les deux deerniers chiffres de l'annee * on y trouve: * une premiere ligne donnant les parametres de tchebychevisation * puis 3 paquets de 15 coefficients representant les parametres * geometriques suivants: * * X DISTANCE TERRE SATURNE (UA): pour connaitre le facteur d'echelle * Y OUVERTURE: rapport petit axe/grand axe de l ellipse apparente * signe + si depuis la Terre on voit la face nord des anneaux * Z ORIENTATION: angle (rad) du petit axe par rapport a l axe Y (nord) * compte positivement de X(est) vers Y(nord) * * ================================================= * IMPLICIT DOUBLE PRECISION(A-H,P-Z) character *40 fich1 DIMENSION AX(50),AY(50),AZ(50) * 1000 write(*,'(5x,a)') 'Nom du fichier a traiter' read(*,'(a40)') fich1 write(*,'(5x,a,a40)') 'Ouverture de ',fich1 open (15,file=fich1) * write(*,'(5x,a)') *'nombre de points' read(*,*) npt write(*,'(5x,a)') 'Ecriture sur un fichier ? (0:non / 1: oui)' read(*,*) iwrit if (iwrit.eq.1) then write(*,'(5x,a)') 'Nom du fichier a ecrire' read(*,'(a40)') fich2 write(*,'(5x,a,a40)') 'Ouverture de ',fich2 open (16,file=fich2) endif * * *************************************** * write(*,'(/1x,a)') '=========================================' write(*,'(///1x,a/)') 'parametres de sortie:' write(*,'(1x,a,a40)') 'Lecture de :',fich1 write(*,'(1x,a,i3)') 'nbr de pts : ',npt write(*,'(/1x,a)') '=========================================' * write(*,'(/1x,a)') 'ok pour la suite ? (0/1)' read(*,*) isuit if(isuit.eq.0) go to 1000 * *************************************** read(15,200) TO, DT,NCOEF, kk read(15,201) (ax(k),k=1,ncoef) read(15,201) (ay(k),k=1,ncoef) read(15,201) (az(k),k=1,ncoef) do 600 k=1,ncoef 600 write(*,202) k,ax(k),ay(k),az(k) * 200 format(2f16.6,2i3) 201 format(4d20.14) 202 format(5x,i3,3d20.14) * XPAS= DT/(NPT+1) DJD= TO + 1.D0 -XPAS * DO 500 K=1,NPT DJD=DJD+ XPAS * CALL ANNOTC(DJD,DT,TO,AX,AY,AZ,NCOEF,XO,XI,XX) * WRITE(*,882) DJD,XO,XI,XX 882 FORMAT(5X,'VALEURS TCHEB POUR ',F15.6,' : ',3F17.8) * if (iwrit.eq.1) then WRITE(16,883) DJD,XO,XI,XX 883 FORMAT(5X,F15.6,3F17.8) endif 500 continue STOP END SUBROUTINE ANNOTC( T,DT,TO,AX,AY,AZ,M,X,Y,Z) * ------------------------------------ * CALCUL DES INC ORIENT DIST ANNEAU * A PARTIR DES COEFFICIENTS TCHEBYCHEV * * AX TABLEAU DES COEFFICIENTS DISTANCE TERRE SATURNE * AY TABLEAU DES COEFFICIENTS OUVERTURE ANNEAU * AZ TABLEAU DES COEFFICIENTS ORIENTATION ANNEAU * M DIMENSION DE CE TABLEAU * DT INTERVALLE DE VALIDITE * * en sortie: * ========= * * X DISTANCE TERRE SATURNE (UA): pour connaitre le facteur d'echelle * Y OUVERTURE: rapport petit axe/grand axe de l ellipse apparente * signe + si depuis la Terre on voit la face nord des anneaux * Z ORIENTATION: angle (rad) du petit axe par rapport a l axe Y (nord) * compte positivement de X(est) vers Y(nord) * * ------------------------------------ IMPLICIT DOUBLE PRECISION(A-H,P-Z) DIMENSION AX(50),AY(50),AZ(50) * X=-1.D0+2*( T-TO)/DT TETA=DACOS(X) * Y=AY(1) X=AX(1) Z=AZ(1) DO 5 I=2,M I1=I-1 POL=DCOS(I1*TETA) X=X+AX(I)*POL Y=Y+AY(I)*POL Z=Z+AZ(I)*POL 5 CONTINUE * RETURN END