要找数据格式的说明才能读入,或者上传部分数据,或者有大神可以帮你分析 |
陌曦 发表于 2020-12-4 20:31 请问我在读取上面出来的数据时? [Fortran] 纯文本查看 复制代码 open(11,file='F:\ERA_Interim_1.5\cut5-10\surp.interim.daily.climato.bin',FORM='UNFORMATTED',ACCESS='DIRECT',action='read',RECL=NX*121) LOOPDAY: DO K=1,nt print *,'Begin time = ',k HT =-9.99E33 ffG =-9.99e33 tg =-9.99e33 ug =-9.99e33 wg =-9.99e33 ft =-9.99e33 fv =-9.99e33 fw =-9.99e33 read (11,rec=k)((orog1(i,j),i=1,nx),j=1,121) pres(:,1:119)=orog1(:,2:120) if (yrev) then pres(:,1:119)=pres(:,119:1:-1) endif 出现这种报错是为何,该怎么办呢? Begin time = 1 run-time error F6508: READ(F:\ERA_Interim_1.5\cut5-10\surp.interim.daily.climato.bin) - too many bytes read from unformatted record |
Transpose 发表于 2020-12-4 19:57 天啊 谢谢!! |
陌曦 发表于 2020-12-4 19:20 character(len=20) 没有给定的话,字符串长度默认为1,不够拿来存储4位字符 |
风平老涡 发表于 2020-12-3 23:51 运行结果显示run-time error F6600: WRITE(internal) - internal file overflow 有什么办法,不知道该怎么搞 |
风平老涡 发表于 2020-12-3 23:51 [Fortran] 纯文本查看 复制代码 Program main Integer:: nx=240, ny=121,nt=31,i,j,m,k real surp(240,121,31,30),dp(240,121,31) character:: filename, year do k=1981,2010 write(year,'(i4)') k filename=year//'.bin' open(11,file='F:\cut\surp-\'//filename,form='binary') do m=1,nt do j=1,ny do i= 1,nx read(12)surp(i,j,m,k-1980) enddo enddo enddo Close(11) enddo do i= 1,nx do j= 1,ny do m= 1 ,nt ss=0.0 do k = 1,30 ss= ss+surp(i,j,m,k) enddo dp(i,j,m)=ss/30.0 enddo enddo enddo open(12,file='F:\surp.interim.daily.climato.bin',form='binary') write(12)(((dp(i,j,m),i=1,240),j=1,121),m=1,31) End Program main 我试图一下输出5-10月的平均,显示写出溢出,我把之前的二进制数据按月拆开后,想改成先只输出5月份的数据还是报错C:\Users\cjq\Desktop |
需要知道原始数据格式,二进制只是存储格式。 |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-4-8 12:53