fortran怎么读取文件

用fortran读出grd文件,是位势高度场数据,1981年1月到2010年1月,每月的平均数据。
但无论怎么修改循环,读出的数据都和源文件内所存储的顺序不一致,也就是数据错位了,
比如hgt(25,61,325)的值应该是5397,,可是再fortran里读出来就是5213

img

img

img

你得先了解grd的文件格式,有可能文件开头并不是数据体,而是点数等信息。
这里有golden surfer使用的grd格式说明及代码,你可以参考一下。https://blog.csdn.net/lixingwang0913/article/details/119823334?spm=1001.2014.3001.5502

以下内容部分参考ChatGPT模型:


首先,可以使用Fortran内置的文件操作函数来读取文件。可以使用OPEN,READ和CLOSE函数。以下是一个简单的读取文件的示例代码:

program read_file
implicit none
integer :: i, j
real :: hgt(25, 61)
integer :: status
integer :: file_id

! 打开文件
open(unit=10, file='filename.grd', status='old', action='read', iostat=status)
if (status /= 0) then
    write(*,*) '无法打开文件'
    stop
end if

! 读取数据
do i = 1, 25
    do j = 1, 61
        read(unit=10, fmt=*) hgt(i,j)
    end do
end do

! 关闭文件
close(unit=10)

end program read_file

请注意,这只是一个简单的示例代码,需要根据实际情况进行修改。另外,如果读取的数据与源文件内存储的顺序不一致,可能是因为grd文件的存储格式不同于常见的文本文件。此时,需要查看文件格式的文档,并相应地修改读取数据的方式。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快