作业帮 > 综合 > 作业

fortran同样的数据,可以print出来,但是write的时候写不进去文件

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/16 02:39:09
fortran同样的数据,可以print出来,但是write的时候写不进去文件
open(10003,file='e:/ry/allhour.txt')
.
do k=1,ny*nd*nh
print*,name(k),yl0(k),yl1(k),yl4(k)
end do
do k=1,ny*nd*nh
write(10003,*),name(k),yl0(k),yl1(k),yl4(k)
end do
close(10003)
1.写不进去,是文件里一点内容都没有么?
2.试试把10003改成稍微小点的数呢?我不确定你的编译器是否支持这么大的文件通道号.
3.你是在 Linux 上编程么?e:/ry/ 路径是否存在呢?
再问: 我改成13了,但是还是写不进去,是有文件存在,但是没有内容,是在xp下运行的,路径也肯定正确
再答: e:/ry/allhour.txt 改为 e:\ry\allhour.txt
再问: 还是不行,跟以前的结果一样,生成了fort.13文件,allhour里没有内容,但是我在open时的iostat=0,说明正常打开allhour文件了
再答: 1.给出你现在修改后的代码。 2.先删除 allhour.txt 文件。运行后,会生成么? 3.e:\ry\allhour.txt 你加引号了么?
再问: open(13,file='e:\ry\allh.txt',iostat=itt,status='unknown') ..... do k=1,ny*nd*nh write(13,*)name(k),yl0(k),yl1(k),yl4(k) end do close(13) 我怕是原来的文件题目有问题,换了一个新的文件名,但是结果是一样的,还是写不进去
再答: 这样的写法是绝对没有问题的。 但是据我猜测,可能性有几种: 1.Open 和Write 13 之中还有一段代码。这之间会不会有 Close(13)? 2.你的Open语句确实执行了么?执行流程是否跳过了Open语句?比如出于一个不满足条件的 if 区块里。 3.你试试把 Open 语句放在 do k=1,ny*nd*nh write(13,*)name(k),yl0(k),yl1(k),yl4(k) end do 前面,也就是: Open(13,...) do k=1,ny*nd*nh write(13,*)name(k),yl0(k),yl1(k),yl4(k) end do
再问: 好了,终于可以了,我中间有个批量打开文件k,k中间有等于13的时候,也给批量关闭了,多谢了
再答: 我说呢,你为啥一开始用 10003 呢