SUBROUTINE RD_IGS_EOP ( FINAM, MP, NP, JD, XP_VAL, XP_ERR, & & YP_VAL, YP_ERR, UR_VAL, UR_ERR, CH_FLAG, IUER ) ! ************************************************************************ ! * * ! * ! * * ! * ### 25-JUN-2006 v1.0 (c) L. Petrov 01-DEC-2006 ### * ! * * ! ************************************************************************ IMPLICIT NONE INCLUDE 'astro_constants.i' INTEGER*4 MP, NP, IUER REAL*8 JD(MP), XP_VAL(MP), XP_ERR(MP), YP_VAL(MP), YP_ERR(MP), & & UR_VAL(MP), UR_ERR(MP) CHARACTER CH_FLAG(MP)*(*) INTEGER*4 MBUF PARAMETER ( MBUF = 16384 ) CHARACTER FINAM*(*), BUF(MBUF)*160, STR1*80, STR2*80 REAL*8 MJD_R8 LOGICAL*4 FL_LAST_SES INTEGER*4 NBUF, J1, IO, IUR, IVAL, IER INTEGER*4, EXTERNAL :: I_LEN, ILEN ! ! --- Read the file ! CALL ERR_PASS ( IUER, IER ) CALL RD_TEXT ( FINAM, MBUF, BUF, NBUF, IER ) IF ( IER .NE. 0 ) THEN CALL ERR_LOG ( 8221, IUER, 'RD_GPS_EOP', 'Error in reading '// & & 'file '//FINAM ) RETURN END IF ! NP = 0 FL_LAST_SES = .FALSE. DO 410 J1=2,NBUF IF ( ILEN(BUF(J1)) == 0 ) GOTO 410 ! IF ( BUF(J1)(6:6) == '.' .AND. & & BUF(J1)(9:10) == ' ' ) THEN ! NP = NP + 1 READ ( UNIT=BUF(J1)(1:8), FMT='(F8.3)', IOSTAT=IO ) MJD_R8 JD(NP) = MJD_R8 + 2400000.5D0 IF ( IO .NE. 0 ) GOTO 710 ! READ ( UNIT=BUF(J1)(11:17), FMT='(I7)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 XP_VAL(NP) = IVAL*1.D-6*ARCSEC__TO__RAD ! READ ( UNIT=BUF(J1)(20:26), FMT='(I7)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 YP_VAL(NP) = IVAL*1.D-6*ARCSEC__TO__RAD ! READ ( UNIT=BUF(J1)(29:36), FMT='(I7)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 UR_VAL(NP) = UR_VAL(NP)*1.D4*MSEC__TO__RAD ! READ ( UNIT=BUF(J1)(45:50), FMT='(I6)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 XP_ERR(NP) = IVAL*1.D-6*ARCSEC__TO__RAD ! READ ( UNIT=BUF(J1)(52:57), FMT='(I6)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 YP_ERR(NP) = IVAL*1.D-6*ARCSEC__TO__RAD ! READ ( UNIT=BUF(J1)(60:65), FMT='(I6)', IOSTAT=IO ) IVAL IF ( IO .NE. 0 ) GOTO 710 UR_ERR(NP) = IVAL*1.D4*MSEC__TO__RAD END IF 410 CONTINUE 710 CONTINUE ! IF ( IO .NE. 0 ) THEN CALL CLRCH ( STR1 ) CALL INCH ( IO, STR1 ) CALL CLRCH ( STR2 ) CALL INCH ( J1, STR2 ) CALL ERR_LOG ( 8222, IUER, 'RD_GPS_EOP', 'Error '// & & STR1(1:I_LEN(STR1))//' at the '//STR2(1:I_LEN(STR2))// & & '-th line '//BUF(J1)(1:I_LEN(BUF(J1)))//' of the USNO '// & & 'finals eop file '//FINAM ) RETURN END IF CALL ERR_LOG ( 0, IUER ) RETURN END SUBROUTINE RD_IGS_EOP !#!#