Fortran Coder

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

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

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
5 点
跳转到指定楼层
楼主
发表于 2019-3-17 12:47:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
01program test
02 
03implicit none
04 
05integer,parameter::nx=144,ny=73,nz=17,nt=12
06 
07real,dimension(nx,ny,nz,nt)::uwnd,vwnd
08 
09integer::ii,jj,kk,tt,irec
10 
11open(21,file='D:\workspace\work2\uwnd.mon.ltm.dat',form='unformatted',access='direct',recl=nx*ny)
12 
13open(22,file='D:\workspace\work2\vwnd.mon.ltm.dat',form='unformatted',access='direct',recl=nx*ny)
14 
15open(23,file='D:\workspace\work2\uvwnd.dat',status='replace',form='unformatted',access='direct',recl=nx*ny)
16 
17irec=1
18 
19do tt=1,nt
20 
21    do kk=1,nz
22 
23        read(21,rec=irec) ((uwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)
24 
25        irec=irec+1
26 
27    end do
28 
29end do
30 
31irec=1
32 
33do tt=1,nt
34 
35    do kk=1,nz
36 
37        read(22,rec=irec) ((vwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)
38 
39        irec=irec+1
40 
41        print*,irec
42 
43    end do
44 
45end do
46 
47irec=1
48 
49do tt=1,nt
50 
51    do kk=1,nz
52 
53        write(23,rec=irec) ((uwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)
54 
55        irec=irec+1
56 
57    end do
58 
59    do kk=1,nz
60 
61        write(23,rec=irec) ((vwnd(ii,jj,kk,tt),ii=1,nx),jj=1,ny)
62 
63        irec=irec+1
64 
65    end do
66 
67end do
68 
69 
70 
71 
72 
73close(21)
74 
75close(22)
76 
77close(23)
78 
79end 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, 2025-4-29 23:09

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

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