Gli Algoritmi della Libreria SOFA
Prev

5. Interpolazione per il calcolo delle coordinate affinate del Polo Celeste (X,Y) e di DUT1=UT1-UTC

Prima di procedere con la descrizione, voglio ringraziare Aldo Nicola, che mi ha permesso di pubblicare questo suo algoritmo in Fortran90. Per la routine principale (interp.f) egli ha fatto riferimento a questo lavoro con gli autori citati qui ed ho quindi ritenuto doveroso farne menzione.

Per poter compilare il codice del programma di interpolazione (.f90), conviene creare un'apposita cartella. per es. 'interpolation', e trasferirvi il primo gruppo di file:

   
    -------------------  
      /interpolation
    -------------------
        3.494 day2.f90   -> programma principale (con data/tempo da tastiera)
        2.815 day3.f90   -> programma principale (con data/tempo all'interno)
        2.323 iers1.for  -> 1^ routine da richiamare con la compilazione
     16.743 interp2.for  -> 2^ routine da richiamare con la compilazione
     1.728.493 000.for   -> Sofa routines (#167), agg.2010
    2.673.594 iers2000A.dat -> database IERS delle grandezze da interpolare
    -------------------
     [ ... Facoltativi ...]
     File di utilità  
         90 comp.sh     -> per compilare in ambiente Linux
         98 fortn.bat   -> per compilare in ambiente Windows
    -------------------     
     [... Comando per compilare ...]    
       gfortran nome.f90 000.for iers1.for interp2.for  
    -------------------
     [... Dopo la compilazione ...]
     File di output
     365.609 day2        -> eseguibile linux di day2.f90
     365.609 day3        -> eseguibile linux di day3.f90
     604 day2-knoppix-output.txt -> risultati interpolazione ottenuti con linux (day2)
     374 knoppix-day3-output.txt -> risultati interpolazione ottenuti con linux (day3)
     
     734.067 day2.exe     -> eseguibile DOS di day2.f90
     732.019 day3.exe     -> eseguibile DOS di day3.f90
   57 day2-output-f90.txt -> risultati interpolazione ottenuti con DOS(day3)
      
   

La cartella completa (con listati, eseguibili e dbase) può essere prelevata da questo file gzippato.

Primo esempio (interpolazione su epoca futura)

Riguarda l'output dell'interpolazione di (X,Y,DUT1) di day3.f90 con i decimali spinti oltre i correnti valori di utilizzazione (4 per X,Y e 5 per DUT1)
      Date: 2010-10-15   Time: 14:49:26.50
 TT   55484.6184338425883 MJD
 UT1  55484.6176668704284 MJD
 UTC  55484.6176678240736 MJD
 TAI  55484.6180613425895 MJD
 UT1-UTC  -.0823951740811 sec.
 XP       0.2102009669647 arcsec.
 YP       0.3566734483475 arcsec.
 NUTLONG  0.0000788480584 rad.
 NUTOBLI  0.0000072097329 rad.
    

Secondo esempio (interpolazione su epoca passata)

Controlliamo se il DUT1 scelto nel lavoro indicato in figura è corretto.

 Date Jan-15-2006

Applicando uno dei due programmi descritti sopra, day2 con input da tastiera oppure day3 con input all'interno del listato fortran, otteniamo:

    Date and Time of Interpolation
    ==============================
    Year: 2006
   Month: 1
     Day: 15
   Hours: 21
 Minutes: 24
 Seconds (including fraction, if any): 37.5

   Date: 2006- 1-15   Time: 21:24:37.50
 TT   53750.8928551388890 MJD
 UT1  53750.8921045613242 MJD
 UTC  53750.8921006944438 MJD
 TAI  53750.8924826388902 MJD
 
 UT1-UTC  0.3340985882203 sec.   <--- in perfetta armonia con la 
                                      pubblicazione [0.3341 s]
 XP       0.0504563526187 arcsec.
 YP       0.3799335271423 arcsec.
 NUTLONG  -.0000051939672 rad.
 NUTOBLI  0.0000419695567 rad.
 

(Pagina web elaborata il 24-8-2010, punto di riferimento delle epoche, futura e passata, dei due esempi)

Valid XHTML 1.0 Strict