https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89783
Bug ID: 89783 Summary: Can do an internal READ of a character array when it is a parameter, but not a scalar character parameter Product: gcc Version: 7.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: urbanjost at comcast dot net Target Milestone: --- Inconsistently, a scalar parameter CHARACTER variable fails with an internal READ, but a vector parameter CHARACTER variable works with an internal READ. Not actually sure which one is wrong, but it is inconsistent. Could not find anything in the Fortran standard that definitively cleared it up, other than saying that ยท "A record of an internal file is a scalar character variable". with emphasis on "variable"(?). It seems one of them should be wrong, though. This fails: program nanio character(len=*),parameter :: VALUE='NaN' read(VALUE,*)float write(*,*)float end program nanio PRODUCES THIS ERROR... read(VALUE,*)float 1 Error: UNIT specification at (1) must be an INTEGER expression or a CHARACTER variable This works: program nanio character(len=*),parameter :: VALUES(*)=[character(len=10) :: 'NaN','NAN','nan','Inf','INF','inf','Infinity'] do i=1,size(VALUES) read(VALUES(i),*)float write(*,*)float enddo end program nanio