http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60956
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-05-01
Ever confirmed|0 |1
--- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The attached test executes without error when compiled with 4.3.1 (~232s), but
fails with all the revisions I have tried starting at 4.5 (no exhaustive
tests). From pr44292: "gfortran currently fails if the RECL= is larger than 2
GB", so the failure seems expected.
Work-around:
(1) use unformatted files
OPEN(UNIT=100, FILE='dummy.txt', ACTION='WRITE', STATUS='REPLACE',
FORM='UNFORMATTED', ACCESS='STREAM')
WRITE(100) u
CLOSE(100)
OPEN(UNIT=101, FILE='dummy.txt', ACTION='READ', STATUS='OLD',
FORM='UNFORMATTED', ACCESS='STREAM')
READ(101) v
CLOSE(101)
runtime is ~3.6s CPU time and ~6.3s real time, the file size is 1.6Gb.
(2) use several records
OPEN(UNIT=100, FILE='dummy.txt', ACTION='WRITE', STATUS='REPLACE')
do i = 1, n-1, n/100
write(100,*) u(i:i+n/100-1)
end do
CLOSE(100)
OPEN(UNIT=101, FILE='dummy.txt', ACTION='READ', STATUS='OLD')
do i = 1, n-1, n/100
read(101,*) v(i:i+n/100-1)
end do
CLOSE(101)
runtime is ~166s and the file size is 5.4Gb.