Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Problem loading large files (IOSTAT=100)

  1. Sep 14, 2009 #1
    Hi.
    I am having problem loading large data files. The files consist of values defined as (with a extra space at the end of each line):
    Code (Text):
    +1.326000e-005 -1.159306e+000 -1.171263e+000
    +1.327000e-005 -1.159202e+000 -1.173770e+000
    +1.328000e-005 -1.159563e+000 -1.175345e+000
    The problem is when the number of colomns in my data file becomes more than 99. It is not a memory issue as 99 colomns with 4001 rows works, but 100 colomns with 1001 rows does not work. I am loading the files for 99 colomns like (var2 needs to be larger for later use):
    Code (Text):
    REAL var1(1001,99), var2(1001,194)
    WRITE(READFMT,'(1H(I2,5HE15.61H))')99
    open(1,file='folder/file1',FORM='FORMATTED',IOSTAT=IOS,RECL=1486)
    open(2,file='folder/file2',FORM='FORMATTED',IOSTAT=IOS,RECL=1471)
    DO t=1,1001
     READ(1,FMT=READFMT,IOSTAT=IOS)(var1(t,x),x=1,99)
     READ(2,FMT=READFMT,IOSTAT=IOS)(var2(t,x),x=1,98)
    ENDDO
    close(1)
    close(2)
    and for 100 colomns like:
    Code (Text):
    REAL var1(1001,100), var2(1001,195)
    WRITE(READFMT,'(1H(I2,5HE15.61H))')100
    open(1,file='folder/file1',FORM='FORMATTED',IOSTAT=IOS,RECL=1501)
    open(2,file='folder/file2',FORM='FORMATTED',IOSTAT=IOS,RECL=1486)
    DO t=1,1001
     READ(1,FMT=READFMT,IOSTAT=IOS)(var1(t,x),x=1,100)
     READ(2,FMT=READFMT,IOSTAT=IOS)(var2(t,x),x=1,99)
    ENDDO
    close(1)
    close(2)
    I have looked at the IOSTAT value, it returns 100. I have found many values for IOSTAT but not for 100.
    I am noticing that as the XXX value in WRITE(READFMT,'(1H(I2,5HE15.61H))')XXX becomes a three digit number the loading is failing i.e. the files can be any size, if the XXX value is larger than 99 the variables, var1 and var2, will be zero.
    How can this be solved?

    Kind regards!
    /Z

    I changed the
    Code (Text):
    READ(1,FMT=READFMT,IOSTAT=IOS)(var1(t,x),x=1,100)
    READ(2,FMT=READFMT,IOSTAT=IOS)(var2(t,x),x=1,99)
    to
    Code (Text):
    READ(1,FMT=*,IOSTAT=IOS)(var1(t,x),x=1,100)
    READ(2,FMT=*,IOSTAT=IOS)(var2(t,x),x=1,99)
    and the problem was solved! :)
     
    Last edited: Sep 15, 2009
  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted



Similar Discussions: Problem loading large files (IOSTAT=100)
Loading...