I created a small test program to check what FTN95 does when a formatted read is attempted using E10.2 as the format when the input field does not contain a decimal point, and the file being read has been opened with BLANK = 'ZERO'.
program dread
implicit none
integer ios
real anin
character(18) :: str = 'ANIN =4e19 '
character(200) msg
!
open(10,file = 'inpi.txt', status = 'replace')
write(10,'(A)')str
close(10)
open(11, file='inpi.txt', status='old', blank='zero')
read(11,'(8x,e10.2)', iostat = ios, iomsg = msg) anin
if (ios /= 0) then
print *, 'IOSTAT = ', ios
print *, msg
else
print '(ES15.8)', anin
endif
close(11)
end
With FTN95, the output is
0.00000000E+00
Other compilers give IOSTAT different from zero, and a corresponding message. I think that IOSTAT should be different from zero, after reading section 13.7.2.3.2 of the F2018 standard, but I am somewhat uncertain.
This test problem arose from DanRRight's recent post, https://forums.silverfrost.com/Forum/Topic/4137 .