[COLOR=#a020f0]program[/color] oakleybloke
[COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
[COLOR=#2e8b57][b]integer[/b][/color] j
[COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]80[/color]) :: line
[COLOR=#2e8b57][b]real[/b][/color] :: a([COLOR=#ff00ff]5[/color])
[COLOR=#0000ff]! This works with method 01[/color]
line [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]'Row iy= 1: 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#008080]call[/color] process_line_01([COLOR=#008080]adjustl[/color]([COLOR=#008080]trim[/color](line)), a, [COLOR=#ff00ff]5[/color])
[COLOR=#0000ff]! This doesn't work with method 01[/color]
[COLOR=#0000ff]! line = 'Row iy= 1 : 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#0000ff]! call process_line_01(adjustl(trim(line)), a, 5)[/color]
[COLOR=#0000ff]! This all work with method 02[/color]
line [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]'Row iy= 1: 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#008080]call[/color] process_line_02([COLOR=#008080]adjustl[/color]([COLOR=#008080]trim[/color](line)), a, [COLOR=#ff00ff]5[/color])
line [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]'Row iy= 1 : 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#008080]call[/color] process_line_02([COLOR=#008080]adjustl[/color]([COLOR=#008080]trim[/color](line)), a, [COLOR=#ff00ff]5[/color])
line [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]'Row iy = 1 : 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#008080]call[/color] process_line_02([COLOR=#008080]adjustl[/color]([COLOR=#008080]trim[/color](line)), a, [COLOR=#ff00ff]5[/color])
line [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]'These are my numbers : 298.881 298.882 298.883 298.884 298.885'[/color]
[COLOR=#008080]call[/color] process_line_02([COLOR=#008080]adjustl[/color]([COLOR=#008080]trim[/color](line)), a, [COLOR=#ff00ff]5[/color])
[COLOR=#a020f0]end program[/color] oakleybloke
[COLOR=#a020f0]subroutine[/color] process_line_01(line, array, n)
[COLOR=#0000ff]! input parameters[/color]
[COLOR=#2e8b57][b]character[/b][/color]([COLOR=#804040][b]*[/b][/color]), [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]in[/b][/color]) :: line
[COLOR=#2e8b57][b]integer[/b][/color], [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]in[/b][/color]) :: n
[COLOR=#0000ff]! output parameters[/color]
[COLOR=#2e8b57][b] real[/b][/color], [COLOR=#2e8b57][b]dimension[/b][/color](n), [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]out[/b][/color]) :: array
[COLOR=#0000ff]! temporary variables[/color]
[COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]10[/color]) :: atemp, btemp, ctemp
[COLOR=#2e8b57][b]integer[/b][/color] :: j
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'Processing line :'[/color]
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]"'"[/color], line, [COLOR=#ff00ff]"'"[/color]
array [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]
[COLOR=#0000ff]! parse numbers from line[/color]
[COLOR=#804040][b]read[/b][/color] (line,[COLOR=#804040][b]*[/b][/color]) atemp, btemp, ctemp, (array(j), j[COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]1[/color],n)
[COLOR=#0000ff]! print out resulting array[/color]
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'Resulting array :'[/color]
[COLOR=#804040][b]do[/b][/color] j[COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]1[/color], n
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'a['[/color],j,[COLOR=#ff00ff]']='[/color], array(j)
[COLOR=#804040][b]end do[/b][/color]
[COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color])
[COLOR=#a020f0]end subroutine[/color] process_line_01
[COLOR=#a020f0]subroutine[/color] process_line_02(line, array, n)
[COLOR=#0000ff]! input parameters[/color]
[COLOR=#2e8b57][b]character[/b][/color]([COLOR=#804040][b]*[/b][/color]), [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]in[/b][/color]) :: line
[COLOR=#2e8b57][b]integer[/b][/color], [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]in[/b][/color]) :: n
[COLOR=#0000ff]! output parameters[/color]
[COLOR=#2e8b57][b] real[/b][/color], [COLOR=#2e8b57][b]dimension[/b][/color](n), [COLOR=#2e8b57][b]intent[/b][/color]([COLOR=#2e8b57][b]out[/b][/color]) :: array
[COLOR=#0000ff]! temporary variables[/color]
[COLOR=#2e8b57][b]character[/b][/color]([COLOR=#ff00ff]80[/color]) :: numeric_data
[COLOR=#2e8b57][b]integer[/b][/color] :: j
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'Processing line :'[/color]
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]"'"[/color], line, [COLOR=#ff00ff]"'"[/color]
[COLOR=#0000ff]! numeric_data part of line[/color]
[COLOR=#804040][b]if[/b][/color] ([COLOR=#008080]index[/color](line,[COLOR=#ff00ff]':'[/color]) [COLOR=#804040][b]>[/b][/color] [COLOR=#ff00ff]0[/color]) [COLOR=#804040][b]then[/b][/color]
numeric_data [COLOR=#804040][b]=[/b][/color] [COLOR=#008080]adjustl[/color](line([COLOR=#008080]index[/color](line,[COLOR=#ff00ff]':'[/color])[COLOR=#804040][b]+[/b][/color][COLOR=#ff00ff]1[/color]:))
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'numeric_data part of the line :'[/color]
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]"'"[/color], [COLOR=#008080]trim[/color](numeric_data), [COLOR=#ff00ff]"'"[/color]
[COLOR=#804040][b]else[/b][/color]
[COLOR=#0000ff]! take whole line[/color]
numeric_data [COLOR=#804040][b]=[/b][/color] line
[COLOR=#804040][b]end if[/b][/color]
array [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]0[/color]
[COLOR=#0000ff]! parse numbers from the numeric_data part of the line[/color]
[COLOR=#804040][b]read[/b][/color] (numeric_data,[COLOR=#804040][b]*[/b][/color]) (array(j), j[COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]1[/color],n)
[COLOR=#0000ff]! print out resulting array[/color]
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'Resulting array :'[/color]
[COLOR=#804040][b]do[/b][/color] j[COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]1[/color], n
[COLOR=#804040][b]write[/b][/color] ([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color]) [COLOR=#ff00ff]'a['[/color],j,[COLOR=#ff00ff]']='[/color], array(j)
[COLOR=#804040][b]end do[/b][/color]
[COLOR=#804040][b]write[/b][/color]([COLOR=#804040][b]*[/b][/color],[COLOR=#804040][b]*[/b][/color])
[COLOR=#a020f0]end subroutine[/color] process_line_02