I get the following error message:
forrtl: severe (67): input statement requires too much data
when running a program that reads a sequential unformatted file (see below) compiled with ifort 16.0.3.
The interesting fact is that this error disappears if I compile with ifort 12.1.0 or if I compile with ifort 16.0.3 using the -qopenmp flag (which is very weird because I don't write the file using this flag).
This is the program that produces the error,
program read integer n0,n1,n2,n3,m1,m2,m3,m4 integer itol, ifr integer i, j, k, l logical ifrhf real*8 eref, erepul, shift, shift1 real*8, allocatable :: fockr(:,:), fockb(:,:) real*8, allocatable :: intr(:,:,:,:),intb(:,:,:,:),intm(:,:,:,:) open(unit=33,file='h8.inf',form='unformatted',& status='old',access='sequential') rewind(33) read(33) n0,n1,n2,n3,ifrhf,itol,ifr,idiis,eref,erepul,shift,& shift1,m1,m2,m3,m4 print *, n0,n1,n2,n3,ifrhf,itol,ifr,idiis,eref,erepul,shift,& shift1,m1,m2,m3,m4 allocate(FockR(N3,N3)) allocate(FockB(N3,N3)) allocate(IntR(N0+1:N3,N0+1:N3,N0+1:N3,N0+1:N3)) allocate(IntB(N0+1:N3,N0+1:N3,N0+1:N3,N0+1:N3)) allocate(IntM(N0+1:N3,N0+1:N3,N0+1:N3,N0+1:N3)) read(33) ((FockR(i,j),i=1,N3),j=1,N3) read(33) ((FockB(i,j),i=1,N3),j=1,N3) read(33) ((((IntR(i,j,k,l),i=N0+1,N3),j=N0+1,N3),& k=N0+1,N3),l=N0+1,N3) read(33) ((((IntM(i,j,k,l),i=N0+1,N3),j=N0+1,N3),& k=N0+1,N3),l=N0+1,N3) read(33) ((((IntB(i,j,k,l),i=N0+1,N3),j=N0+1,N3),& k=N0+1,N3),l=N0+1,N3) deallocate(FockR) deallocate(FockB) deallocate(IntR) deallocate(IntB) deallocate(IntM) close(33) end
Thank you in advance for any advice.