对于您的具体示例,您可以尝试这样的操作:
program test
integer :: status, i, tt
character(len=100) :: line
integer :: lon(3, 1), lat(3, 1), h(3, 1)
lon(:, :) = 0
lat(:, :) = 0
h(:, :) = 0
open(unit=1, file='data.txt')
i=1
tt=1
do
read(1, '(A100)', iostat=status) line
if(status/=0) exit
read(line, *, iostat=status) lon(i, tt), lat(i, tt), h(i, tt)
if(status/=0) then
read(line, *) lon(i, tt), lat(i, tt)
h(i, tt) = 1 ! default value
end if
i = i + 1
end do
print *, 'lon=', lon
print *, 'lat=', lat
print *, 'h=', h
end program test
返回
lon= 1 3 6
lat= 2 4 7
h= 1 5 1