CIO_file.f90 Source File


Source Code

!
!     C I O _ F I L E
!
!     PROGRAM TO PRODUCE A BINARY DIRECT ACCESS FILE OF RIGHT ASCENSION
!     VALUES OF THE CELESTIAL INTERMEDIATE ORIGIN (CIO), GIVEN A
!     FORMATTED SEQUENTIAL FILE OF THE SAME DATA.  EACH INPUT AND
!     OUTPUT DATA RECORD CONTAINS A TDB JULIAN DATE AND A
!     RIGHT ASCENSION VALUE (WRT GCRS) IN ARCSECONDS.
!
!
program cio_file 

double precision tdbjd, ciora
character infil*24, outfil*24, iden*40

1 format ( a )
2 format ( f16.6,  f24.14 )

!     GET FILE IDENTIFIERS 
infil  = 'CIO_RA.TXT'
outfil = 'CIO_RA.DA'
!      WRITE ( *, * ) 'ENTER INPUT FILENAME: '
!      READ ( *, * ) INFIL
!      WRITE ( *, * ) 'ENTER OUTPUT FILENAME: '
!      READ ( *, * ) OUTFIL

!     OPEN INPUT FILE
open ( unit=18, file=infil, form='FORMATTED', &
     access='SEQUENTIAL', status='OLD' )

!     OPEN OUTPUT FILE
open ( unit=19, file=outfil, form='UNFORMATTED', &
     access='DIRECT', recl=16, status='UNKNOWN' )

!     READ INPUT FILE IDENTIFIER
read ( unit=18, fmt=1 ) iden

n = 1

!     MAIN READ-WRITE LOOP
50 read ( unit=18, fmt=2, end=70 ) tdbjd, ciora
n = n + 1
write ( unit=19, rec=n ) tdbjd, ciora

if ( mod ( n, 1000 ) == 0 ) then
    iyear = nint ( ( tdbjd - 2451545.0 ) / 365.25d0 + 2000.d0 )
    write ( *, * ) 'DONE THROUGH RECORD ', n, '      YEAR ', iyear      !
end if

go to 50

!     WRITE NUMBER OF DATA RECORDS IN FIRST RECORD OF OUTPUT FILE
!     ALONG WITH FIRST 12 CHARACTERS OF INPUT FILE IDENTIFIER
70 write ( unit=19, rec=1 ) n-1, iden(1:12)

!     FINISH UP
write ( *, * ) n, ' TOTAL RECORDS WRITTEN'
close ( unit=18 )
close ( unit=19 )

stop

end program cio_file