gfortran运行时错误:无法更改Open语句中的状态参数
我的程序中有一个open语句,使用下面的代码示例gfortran运行时错误:无法更改Open语句中的状态参数,fortran,gfortran,Fortran,Gfortran,我的程序中有一个open语句,使用下面的代码示例status=replace: do i=1,n open(11,file="energy.dat",status="replace") open(12,file="trajectory.dat",status="replace") do j=1,m ... write(11,*)energy write(12,*) x,y ... enddo close(11) close(12) endd
status=replace
:
do i=1,n
open(11,file="energy.dat",status="replace")
open(12,file="trajectory.dat",status="replace")
do j=1,m
...
write(11,*)energy
write(12,*) x,y
...
enddo
close(11)
close(12)
enddo
可以编译。运行此命令时,会出现运行时错误:
Fortran运行时错误:无法更改OPEN中的状态参数
声明
这里有什么问题?我知道问题所在,因为在
j
循环之后,我实际上没有正确地关闭(11)
。因此open语句无法更改状态。在到达循环之前,您是否打开过这些文件?请创建一个完整的示例,以便我们排除此类情况(请参阅)。并显示编译器准确完整的输出(除非它确实有拼写错误——在这种情况下,应该有人向供应商报告)。@francescalus 1.不,我在循环之前没有打开这些文件。2.确切的错误就像我在这里发布的一样。没有其他内容。请不要上载错误消息的图片。它们必须作为文本输入才能搜索。我确信上传图片的对话框告诉你了,你读了吗?如果您不知道如何从Windows终端复制文本,只需搜索interwebz,我会再次请求完整的代码。我们必须知道这个文件以前是否已经在程序中打开过。@VladimirF我无法将整个代码粘贴到这里,我确信这两个文件只是在循环中打开的。