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

Problem in Extracting Numercial Values in fortran

  1. May 12, 2013 #1
    Hello all,I have a small doubt. I use F95/90 and IBM compiler.This is a portion of my text file
    -----------------------
    Alpha Singles Amplitudes
    15 3 23 4 -0.186952
    15 3 26 4 0.599918
    15 3 31 4 0.105048
    15 3 23 4 0.186952
    Beta Singles Amplitudes
    15 3 23 4 0.186952
    15 3 26 4 -0.599918
    15 3 31 4 -0.105048
    15 3 23 4 -0.186952
    END
    ---------------------
    I am trying to extract the numerical values from the attached file 1.txt . and I am facing a strange error in the output which I cannot understand. Every time I execute the program it skips the loop between 'Beta' and 'END'. I am trying to read and store the values.
    The number of lines inside the Alpha- and beta loop is not fixed. So a simple 'do loop' is of no use to me. I tried the 'do while' but it gives the output as :
    -------------------------------------------------------------------------------------
    AS 15 3 23 4 -.186952
    AS 15 3 26 4 .599918
    AS 15 3 31 4 .105048
    AS 15 3 23 4 .186952
    1525-097 A READ statement using decimal base input found the invalid digit 'a' in the input file. The program will recover by assuming a zero in its place.
    1525-097 A READ statement using decimal base input found the invalid digit 'e' in the input file. The program will recover by assuming a zero in its place.
    1525-097 A READ statement using decimal base input found the invalid digit 'p' in the input file. The program will recover by assuming a zero in its place.
    1525-097 A READ statement using decimal base input found the invalid digit 'l' in the input file. The program will recover by assuming a zero in its place.
    This is the end
    --------------------------------------------------------------------------------------
    Any suggestions would of of great help. I coudn't find the error in logic in my code.I have attached the code (Text.txt).

    Thanks in advance
     

    Attached Files:

    • 1.txt
      1.txt
      File size:
      378 bytes
      Views:
      54
    • Test.txt
      Test.txt
      File size:
      1.3 KB
      Views:
      50
    Last edited by a moderator: May 18, 2013
  2. jcsd
  3. May 12, 2013 #2

    DrClaude

    User Avatar

    Staff: Mentor

    At one point, you try to execute the statement

    160 read(10,'(a4,i2,a6,i1,a4,i2,a6,i1,f12.6)')du1,b,du2,c,du3,d,du4,e,r

    while the input file contains

    Beta Singles Amplitudes

    obviously, your program does not like that.

    The inelegant solution that comes to my mind is to first read the entire file as text, counting how many AS and BS data there is. Then reread as numbers, skipping text lines. There is probably a more clever way to it, but that should do it.

    And please, please remove the gotos! Having a do while that includes a goto is particularly ugly: at least use an if-then :yuck:
     
  4. May 17, 2013 #3
    Thank you Dr. Claude for the suggestion.. I used that idea and now it seems to work very nicely for the entire data set. :) :)
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Problem in Extracting Numercial Values in fortran
  1. Problems In Fortran (Replies: 2)

  2. Fortran problem (Replies: 1)

Loading...