Fortran Coder

查看: 8394|回复: 1
打印 上一主题 下一主题

[文件读写] Fortran读写文件报错

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
5 点
跳转到指定楼层
楼主
发表于 2019-3-17 12:47:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
program test

implicit none

integer,parameter::nx=144,ny=73,nz=17,nt=12

real,dimension(nx,ny,nz,nt)::uwnd,vwnd

integer::ii,jj,kk,tt,irec

open(21,file='D:\workspace\work2\uwnd.mon.ltm.dat',form='unformatted',access='direct',recl=nx*ny)

open(22,file='D:\workspace\work2\vwnd.mon.ltm.dat',form='unformatted',access='direct',recl=nx*ny)

open(23,file='D:\workspace\work2\uvwnd.dat',status='replace',form='unformatted',access='direct',recl=nx*ny)

irec=1

do tt=1,nt

    do kk=1,nz

        read(21,rec=irec) ((uwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)

        irec=irec+1

    end do

end do

irec=1

do tt=1,nt

    do kk=1,nz

        read(22,rec=irec) ((vwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)

        irec=irec+1

        print*,irec

    end do

end do

irec=1

do tt=1,nt

    do kk=1,nz

        write(23,rec=irec) ((uwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)

        irec=irec+1

    end do

    do kk=1,nz

        write(23,rec=irec) ((vwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)

        irec=irec+1

    end do

end do





close(21)

close(22)

close(23)

end program test


运行后报错:


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
沙发
发表于 2019-3-18 10:09:13 | 只看该作者
这应该是文件里的数据量不足,使得你读文件的时候,遇到了记录的尾部。
也可能是recl要乘以4,就像这样
recl=nx*ny*4
彼岸,有永恒的守候...
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 04:18

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表