For the fopen:
INTEGER :: fid, fstatus
fid = 10
OPEN(UNIT = fid, FILE = filename, READONLY, ACCESS = 'READ',
+ STATUS = 'OLD', IOSTAT = fstatus)
IF (fstatus .NE. 0) THEN
WRITE(*,*) 'Could not open file'
CALL EXIT(0)
END IF
for the ~ischar(line) I suspect that the context is to detect end of file. If so then with the above code having set up fstatus as the IOSTAT variable, right after you do the read of the line,
IF (fstatus < 0) THEN
EXIT
END IF
for the sscanf, assuming that the result was assigned to INVAR, at some point in the program,
REAL*8 :: INVAR(3)
INTEGER :: I
and the sscanf would be
READ( line, * ) (INVAR(I), I=1,3)
Best Answer