PROGRAM Read_V8SBUV_comp ! Read a V8 SBUV compressed ACSII file. ! IMPLICIT NONE ! Declare variables LOGICAL :: readerr = .FALSE. CHARACTER(len = 30) :: filename CHARACTER(len = 120) :: header INTEGER :: nval = 0 INTEGER :: i, status,year, day, gmt,EFlag REAL :: Lat, Lon, SZA, Toto3, Refl, AI, Resqc,& Ly1Prf, Ly2Prf, Ly3Prf,Ly4Prf,Ly5Prf,Ly6Prf,Ly7Prf,Ly8Prf,& Ly9Prf, Ly10Prf, Ly11Prf, Ly12Prf, Ly13Prf, LayPrf,& P1MV, P2MV,P3MV,P4MV,P5MV,P6MV,P7MV,P8MV,P9MV,& P10MV, P11MV, P12MV, P13MV, P14MV,P15MV ! WRITE(*,*) 'Please enter file name: ' READ(*,*) filename WRITE(*,1000) filename 1000 FORMAT(' ','The input file is: ', A/) ! OPEN(UNIT=3, FILE=filename, STATUS='OLD', ACTION='READ',& IOSTAT=status) ! IF (status == 0) THEN ! Write a header message DO i=1,8 READ(3,'(A120)') header WRITE(*,*) header END DO DO READ(3, 1010, IOSTAT=status) year, day, gmt, Lat, Lon, SZA, Toto3,& Refl, AI, Resqc, EFlag, Ly1Prf, Ly2Prf, & Ly3Prf,Ly4Prf,Ly5Prf,Ly6Prf,Ly7Prf,Ly8Prf, & Ly9Prf, Ly10Prf, Ly11Prf, Ly12Prf, Ly13Prf,& P1MV, P2MV,P3MV,P4MV,P5MV,P6MV,P7MV,P8MV,P9MV,& P10MV, P11MV, P12MV, P13MV, P14MV,P15MV IF (status /= 0) EXIT nval = nval+1 ! WRITE(*,1010) year, day, gmt, Lat, Lon, SZA, Toto3,& ! Refl, AI, Resqc, EFlag, Ly1Prf, Ly2Prf, & ! Ly3Prf,Ly4Prf,Ly5Prf,Ly6Prf,Ly7Prf,Ly8Prf, & ! Ly9Prf, Ly10Prf, Ly11Prf, Ly12Prf, Ly13Prf,& ! P1MV, P2MV,P3MV,P4MV,P5MV,P6MV,P7MV,P8MV,P9MV,& ! P10MV, P11MV, P12MV, P13MV, P14MV,P15MV 1010 FORMAT(1x,i4,i4,i6,f7.2,f8.2,f6.2,f6.1,f7.3,f6.1,f6.3,i4,/,& 3f7.2,7f7.3,3f7.4,/,15f7.3) ENDDO IF (status > 0) THEN WRITE(*,1020) nval+1 1020 FORMAT(' ','An error occurred reading line ', I6) readerr = .TRUE. ELSE WRITE(*,1030) nval 1030 FORMAT(' ', 'End of file reached. There were ',I6, & ' records in the file.') END IF ELSE WRITE(*,1040) status 1040 FORMAT (' ', 'Error opening file: IOSTAT = ', I6) readerr = .TRUE. END IF ! CLOSE(unit=3) END PROGRAM