Reading data file in Fortran with known number of lines but unknown number of entries in each line

One method: read the line into a string, using a string that is at least as long as the longest expected line. Then you go about parsing the string. E.g., if the numbers are always split by spaces, use that to figure out the substring boundaries. Then you can use “internal reads” to read from each sub-string to obtain the numeric values. An internal read uses a string instead of a unit number and obtains the data from the string — at least you don’t have to recreate the conversion of characters to numeric values, the read statement will do that for you. The intrinsic functions provided with Fortran will make the parsing easier.

Leave a Comment