Fortran 如何从文件‎;中的特定行读取数据;?

Fortran 如何从文件‎;中的特定行读取数据;?,fortran,Fortran,如何从文本文件中读取第n行和第m列中的数字,我遇到了一个问题 下面是文件。我要读取的数字标记为粗体 G07 1437 1437 1437 1437 1437 PRN/#OF OBS G08 1437 1437 1437 1437 OBS G10 1437 1437 1437的PRN/# OBS G13 1437 1437 1437的PRN/# OBS G15 1437 1437 1437的PRN/# OBS G24 809 804 774 774的PRN/# OBS G25 816 748 69

如何从文本文件中读取第
n
行和第
m
列中的数字,我遇到了一个问题

下面是文件。我要读取的数字标记为粗体

G07 1437 1437 1437 1437 1437 PRN/#OF OBS G08 1437 1437 1437 1437
OBS G10 1437 1437 1437的PRN/# OBS G13 1437 1437 1437的PRN/# OBS G15 1437 1437 1437的PRN/# OBS G24 809 804 774 774的PRN/# OBS G25 816 748 694 694的PRN/# OBS G28 1437 1437 1437的PRN/# OBS载波相位测量的PRN/#:移相消除 评论
收割台末端09 6 10 11 50 14.0000000 7G07G08G10G13G15G25G28

21640633.14117211001.84417145686.7505821640629.92858 20270038.40917 47299.20717 29373.29759 20270035.88059 20921122.23717 35179.40617 20913.66459 20921119.72759 23375852.17815 245299.13715 159374.10256 23375851.73756 24332262.34516 -47567.80516 -24598.05157 24332261.03057 23397473.99216 238631.73016 166805.02757 23397473.15457 21826760.73217-130774.53117-98585.76258 21826757.69358 09 6 10 150 15.0000000 8G07G08G10G13G15G24G25G28
21641196.234 6 213960.266 6 147992.01248 21641193.20548 20270164.110 747960.691729888.74248 20270161.61348 20921216.127 7 35674.703 7 21299.61749 20921213.51249 23376533.019 6 248872.664 6 162158.66846 23376531.77946 24331762.736 6 -50196.488 6 -26646.36747 24331760.98147 24599401.84316
23398117.377 6 242012.082 6 169439.07047 23398116.40347 21826403.256 7-132653.4737-100049.87148 21826400.70948 09 6 10 150 16.0000000 8G07G08G10G13G15G24G25G28
21641758.8057216918.8137150297.3754821641756.07848 20270290.115 7 48622.465 7 30404.41049 20270287.40449 20921310.905 7 36170.543 7 21685.98849 20921307.82749 23377213.438 6 252446.262 6 164943.27746 23377211.83946 24331261.918 6 -52825.297 6 -28694.78547 24331260.53947 24599639.4416
23398760.704 6 245392.375 6 172073.07047 23398759.57647 21826045.7027-134532.1527-101513.77748 21826043.03148 09 6 10 11 50 17.0000000 8G07G08G10G13G15G24G25G28
21642322.125 7 219877.535 7 152602.87548 21642319.08048 20270416.177 7 49284.598 7 30920.36349 20270413.70449 20921405.154 7 36666.953 7 22072.80148 20921402.13148 23377893.321 6 256020.004 6 167728.00846 23377891.84946 24330762.414 6 -55454.160 6 -30743.25047 24330760.25447 24599877.399 6
23399403.485 6 248772.668 6 174707.06647 23399402.65647 21825688.338 7-136410.488 7-102977.41048 21825685.89248 09 6 10 11 50 18.0000000 8G07G08G10G13G15G24G25G28
21642885.530 7 222836.375 7 154908.46548 21642882.14548 20270542.254 7 49947.043 7 31436.54749 20270539.58049 20921499.789 7 37163.945 7 22460.07048 20921496.78948 23378573.557 6 259593.785 6 170512.77746 23378571.94746 24330261.660 6 -58083.102 6 -32791.77747 24330259.94247 24600114.9816
23400047.052 6 252152.898 6 177341.01247 23400046.00147 21825331.225 7-138288.496 7-104440.78948 21825328.12748 09 6 10 150 19.0000000 8G07G08G10G13G15G24G25G28
21643448.790 7 225795.313 7 157214.13348 21643445.39848 20270668.553 7 50609.801 7 31952.98049 20270666.09149 20921594.496 7 37661.504 7 22847.77348 20921591.58548 23379252.757 5 263167.641 5 173297.60946 23379252.06246 24329761.100 6 -60712.121 6 -34840.36747 24329759.15547 24600353.301 6
23400690.655 6 255533.066 6 179974.90647 23400689.68747 21824974.083 7-140166.188 7-105903.92248 21824970.73848


下面是一些示例代码,展示了跳过行和数字以到达所需项目的技术。如果列对齐比数字计数更重要,则可能必须切换到格式化读取

program test

integer, parameter :: DBL_K = selected_real_kind (14)

character (len=132) :: skip
integer :: i, j
real (DBL_K) :: junk (100), good (100)

open (file="test.txt", unit=25, form="formatted", access="sequential", status="old", action="read")

do i=1, 11
   read (25, '(A)' )  skip
end do

read (25, *) (junk (j), j=1,3), good (1)


write (*, *) good (1)

end program test