Fortran Coder

查看: 97|回复: 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


运行后报错:
捕获.PNG

回复

使用道具 举报

2

帖子

0

主题

0

精华

入门

F 币
101 元
贡献
27 点

规矩勋章

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-4-19 06:21

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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