I encountered what I believe to be an issue with run-time error checking and formatted reads.
Reading a floating point using the 'A' format specifier should yield a run-time error, or an error that can be 'trapped' at least.
The following code demonstrates this using both a floating point and a logical and reading with the 'A' format specifier. The floating point read works (and gives a weird value, but the logical will throw a run-time error.
real abcd
logical my_log
character*32:: buffer='1234.5'
abcd = 0.0
my_log = .false.
read(buffer,'(a)',err=2000,end=1000)abcd
print *,abcd
read(buffer,'(a)')my_log ! this will cause the run time format/data mismatch error
stop
2000 continue
print *,'Error Detected'
stop
1000 continue
print *,'EOF Detected'
stop
end