我是利用
write(17,300) (r2is(i,j,k),i=1,imax)
300 FORMAT (107E15.6) !107为imax值
来达到目的的!!!!!
但最后发现,对imax值较小时(目前验证为107)是可行的,但为165时就不行了,照样可以运行和输出,但另一个读取这个输出的软件(软件应该没问题)出错。这和Fortran 90/95标准中规定,当程序代码中的一行超过132个字符时,需要用&续行有关吗?
我修改如下(但编译说无法终止):
if(imax.le.132)then
do k=1,kmax
do j=1,jmax
write(17,300) (r2is(i,j,k),i=1,imax)
300 FORMAT (165E15.6) !HERE, 107=imax for alter row per imax
enddo
enddo
close(17)
else
do k=1,kmax
do j=1,jmax
write(17,400) (r2is(i,j,k),i=1,130)
400 FORMAT (130E15.6)
write(17,500)'&'
500 FORMAT (A1)
write(17,600) (r2is(i,j,k),i=131,imax)
600 FORMAT (39E15.6)! imax-130
enddo
enddo
close(17)
这里两个问题:
1)是Fortran 90/95标准中规定132列造成的问题吗?
2)如果是,下面的程序哪点有问题?
谢谢各位兄弟了,
matlab输入数组换行 三维数组换行输入到文件(intel fortran 编译器) - 程序语言 - 小木虫 - 学术 科研 互动社区...
如果觉得《matlab输入数组换行 三维数组换行输入到文件(intel fortran 编译器) - 程序语》对你有帮助,请点赞、收藏,并留下你的观点哦!