I'm updating a Fortran program for my needs. The program compiles using f95 and gcc version 4.1.2 (I know it is old, but I can't update it). I want to read parameters from a file and I try this via

 inquire (file="resLast", exist=resExist) if (readStart.eq.1.and.resExist) then open (unit=18,file='resLast', status='old', action='read') read (18) startConf read (18) avlength, stdlength, avenergy read (18) i,h2(1) read (18) i,h2(2) read (18) i,h2(4) read (18) i,h2(5) read (18) i,h2(8) read (18) i,h2(9) read (18) i,h2(13) read (18) i,h2(16) read (18) i,h2(17) read (18) i,h2(18) read (18) i,h2(20) read (18) i,h2(25) read (18) i,h2(32) close (18) else startConf = 0 do i=1,32 h2(i)=0 comh2(i)=0 enddo avlength=0d0 stdlength=0d0 avenergy=0d0 endif 

The input file looks like

 0 196.090732114834 38451.5752213317 53.4452884569457 1 9.188750409521163E-004 2 4.548226133920252E-004 4 8.704101492185146E-005 5 2.175445697503164E-004 8 4.992044341634028E-005 9 2.108949411194772E-005 13 4.304789035813883E-005 16 4.693072696682066E-005 17 8.976260141935199E-005 18 2.737747854553163E-005 20 5.637826689053327E-005 25 3.860405195155181E-005 32 3.193027441739105E-005 

When I try to run this I get an error

Fortran runtime error: Missing format for FORMATTED data transfer done 

Which points to the first read line. The startConf variable, as well asi`` is an integer. The rest of the variables are double precision.

I've used this method to read data into integers previously (even in the same code) without problem, where is my current fault?

2 Answers

As you do not specify it explicitely, your open statement assumes a formatted (text) file. When reading from a text file, you have to provide a format as well:

read(18, *) i1 

Alternatively, if your file is unformatted (binary), open your file accordingly:

 open (unit=18, file='resLast', status='old', action='read', form='unformatted') 
1

read(18,*)is a better choice. you can try this.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy