c 
c Function qui calcule TAI - UTC en fonction du mjd
c Entrée : mjd (double)
c Sortie : TAI_moins_UTC (double)

c Ce programme remplace l'ancien programme tartuff.f
c Pour les sauts de seconde, il le fichier /obs/ftp/iers/bul/bulc/Leap_Second.dat
 
	        function mjd_to_TAIUTC(mjd)
			
			implicit none
			double precision  mjd, mjd_to_TAIUTC
			character*256 ligne
			character*1 caractere_debut_ligne
			character*6 MJD_FICHIER
			
			double precision TABLEAU_SAUTS_SECONDE(1000)  ! on prévoit 1000 saut de seconde dans le fichier
			integer NB_SAUTS_SECONDE
			
			integer i
			
			double precision TAI_moins_UTC
			

			NB_SAUTS_SECONDE=0
			
			open(4, status='old', file='/obs/ftp/iers/bul/bulc/Leap_Second.dat',err=500)
			
20			read (4,*, end=30) MJD_FICHIER
				
			caractere_debut_ligne=MJD_FICHIER(1:1)
			
			if((caractere_debut_ligne.NE."#").AND.(MJD_FICHIER.NE."")) then
				NB_SAUTS_SECONDE = NB_SAUTS_SECONDE + 1
				read(MJD_FICHIER,*) TABLEAU_SAUTS_SECONDE(NB_SAUTS_SECONDE)	
			endif
				
			goto 20
			

30			continue

			close(4)
		
			if(mjd >= 41317.0)  then
 												
		 		TAI_moins_UTC=9.0
				
				do 40 i=1,NB_SAUTS_SECONDE	
					if(mjd>= TABLEAU_SAUTS_SECONDE(i)) TAI_moins_UTC = TAI_moins_UTC + 1.d0
						
40				continue
			
			else
							
				if(mjd < 41317)  TAI_moins_UTC = 4.213170d0 + (mjd - 39126.d0)*0.002592d0  ! jusqu'au 1 jan  1972
	   			if(mjd < 39887)  TAI_moins_UTC = 4.313170d0 + (mjd - 39126.d0)*0.002592d0  ! jusqu'au 1 fev  1968
			   	if(mjd < 39126)  TAI_moins_UTC = 3.840130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 jan  1966
				if(mjd < 39004)  TAI_moins_UTC = 3.740130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 sept 1965
	   			if(mjd < 38942)  TAI_moins_UTC = 3.640130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 juil 1965
				if(mjd < 38820)  TAI_moins_UTC = 3.540130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 mars 1965
	   			if(mjd < 38761)  TAI_moins_UTC = 3.440130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 jan  1965
	   			if(mjd < 38639)  TAI_moins_UTC = 3.340130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 sept 1964
	   			if(mjd < 38486)  TAI_moins_UTC = 3.240130d0 + (mjd - 38761.d0)*0.001296d0  ! jusqu'au 1 avr  1964
	   			if(mjd < 38395)  TAI_moins_UTC = 1.945858d0 + (mjd - 37665.d0)*0.0011232d0 ! jusqu'au 1 jan  1964
	   			if(mjd < 38334)  TAI_moins_UTC = 1.845858d0 + (mjd - 37665.d0)*0.0011232d0 ! jusqu'au 1 nov  1963
	   			if(mjd < 37665)  TAI_moins_UTC = 1.372818d0 + (mjd - 37300.d0)*0.001296d0  ! jusqu'au 1 jan  1962
	   			if(mjd < 37512)  TAI_moins_UTC = 1.422818d0 + (mjd - 37300.d0)*0.001296d0  ! jusqu'au 1 aout 1961
	   			if(mjd < 37300)  TAI_moins_UTC = 0.d0
				
						
			endif
	   								
			mjd_to_TAIUTC = TAI_moins_UTC
			
400			continue
							
			RETURN
			
500  		write(*,*) "PROBLEME OUVERTURE FICHIER SAUT DE SECONDE !??!"
			goto 400	
				
		    END FUNCTION mjd_to_TAIUTC
		
		
