PRO DET_ELLIP,d,gra,grb,tet
;+
; Cette routine permet de connaitre les ellipses que l'on peut determiner
; avec 3 distances consecutives du tableau d
; APPEL:
; d: tableau des distances calculées par trv_dist
; gra: tableau des 8 petits axes
; grb: tableau des 8 grands axes
; tet: tableau des angles d'inclinaisons des ellipses
;-

	FOR i=0,7,2 DO BEGIN
		q0=1/(d(i)*d(i))
		q4=1/(d(i+1)*d(i+1))
		q2=1/(d(i+2)*d(i+2))
		tet2=2.*q4-(q0+q2)
		r1=q0-q2
		IF (r1 EQ 0.0) THEN BEGIN
			tet(i)=!PI/4
			gra(i)=q4
			grb(i)=q0
;			grb(i)=0.5*SQRT(q0-gra(i)/2.)
		ENDIF ELSE BEGIN
			tet(i)=ATAN(tet2/r1)/2.
			co=COS(i*!PI/2.-2*tet(i))
			sc=1+co
			dc=1-co
			gra(i)=(q0*sc-q2*dc)/(2*co)
			grb(i)=(q2*sc-q0*dc)/(2*co)
;			PRINT,'GRA',gra(i),'===  GRB ',grb(i)
		ENDELSE

;		PRINT,'tet	: ',tet
;		PRINT,'A',SQRT(1/gra(i)),'B',SQRT(1/grb(i))
	ENDFOR
	FOR i=1,7,2 DO BEGIN
		q0=1/(d(i)*d(i))
		q4=1/(d(i+1)*d(i+1))
		q2=1/(d(i+2)*d(i+2))
		tet2=q2-q0
		r1=2.*q4-(q0+q2)
		IF (r1 EQ 0.0) THEN BEGIN
			tet(i)=!PI/4
			gra(i)=q4
			grb(i)=q0
;			grb(i)=0.5*SQRT(q0-gra(i)/2.)
		ENDIF ELSE BEGIN
			tet(i)=ATAN(tet2/r1)/2.
			co=COS(i*!PI/2.-2*tet(i))
			sc=1+co
			dc=1-co
			gra(i)=(q0*sc-q2*dc)/(2*co)
			grb(i)=(q2*sc-q0*dc)/(2*co)
;			PRINT,'GRA',gra(i),'===  GRB ',grb(i)
		ENDELSE
	ENDFOR
END
