
如果是end of file encountered的错误,我猜是楼主的morlettxt数据不够,应该有1296行数据,楼主可以检查一下是不是不够。
另外还有一个问题,楼主把数据按二进制输出时,
open(2,file='D:\morletdat',form ='binary'
&,access='direct',recl=1)
这里recl=1可能不行,应该是4吧,因为一个实数缺省是4字节的。
fortran中能在子程序里用write语句。fortran语句含义这个是保存为f90格式的fortran程序,其中的$是换行符号,意思是接着下一行继续写。根据相关公开资料查询:DO10I=1,100I从1循环到100循环体到行号10为止,包含行号10。即10S=S+T内嵌循环DO20K=1,N20T=TK很明显是计算阶乘的WRITE(,100)((A(I,J),J=1,2),I=1,3)之一个星号表示使用默认输出设备,即显示器100表示输出格式为行号100的语句,100FORMAT(1X,2IFortran手册都有,后面((A(I,J),J=1,2),I=1,3)是输出内容,这些问题在IFortran入门上都有。
write(1111,"(3i4,f42)")NODE_CORD(I,1),NODE_CORD(I,2),NODE_CORD(I,3),NODE_ALPHA(I)
3i4和f42里面的数值根据你的数据而定,如果你的整数为个位数,且要空一格,则写3i2, f后面的数值4代表加上小数点一共显示几位,2代表其中包括的小数位。
'shot-blend1sgd'
难道不是txt文件么?你为啥要从txt读入,再写入txt呢?
写入txt文件是最简单的了。
Open( 12 , File = 文件名 )
Do i = 1 , 2000
write( 12 , ) Recd( : , i )
End Do
Close( 12 )
既可
- -数组声明好奇怪啊,为什么会出现假定形状数组?假定形状数组只能在子程序中作行参,你这里面又没有子程序。直接写 real,dimension(nlat,nlon,nz,nt)::pr 就可以了。
这个程序运行没有报错吗?没有报错的话至少应该生成一个dat才对。
可以先在写入文件之前把你读进来的数组print一下看看有没有正确地读入。
OPEN(UNIT=3,ACTION='write',FILE=filename,IOSTAT=erro,STATUS='new')
改为
OPEN(3,FILE=filename,IOSTAT=erro)
以上就是关于FORTRAN 如何把十进制文件转化为二进制文件全部的内容,包括:FORTRAN 如何把十进制文件转化为二进制文件、fortran中能在子程序里用write语句吗、Fortran向文件中写入数据的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)