Fortran 95的缺失表达错误
300 do i=1,counter
open(1,file='Pcow_pd.txt')
write(1,*),Sw_pd(i), Pcow_pd(i)
open(2,file='Krw_pd.txt')
write(2,*),Sw_pd(i), Krw_pd(i)
open(3,file='Kro_pd.txt')
write(3,*),Sw_pd(i), Kro_pd(i)
print*, counter
end do
print *,"filled =",filled
当我编译代码我会在写入线一条错误消息,这正如已经评价我不能修复Fortran 95的缺失表达错误
Compile error: error 573 - Missing expression
,应该有项目的列表之前没有逗号输出。你应该只是有
write(1,*) Sw_pd(i), Pcow_pd(i)
等等。
的更晚的线
print*, counter
其中counter
前的逗号是绝对必要的,可以写作加少许混乱。这也许是增加read
如何使用:主要有两种形式:
read *, x
read (*,*) y
没有单位的明确说明第一个例子意味着在同一单位在第二的*
,它需要一个逗号。第二个不能有逗号。
一个简单的方法来记住输出列表是否先有一个逗号:如果格式单独使用逗号;如果单位被指定,则不要。
是的,我这样做,并修复错误,但是当我运行Pcow_pd.txt和其他txt文件是空的。 –
@MaykPire对于不同的问题,这是一个不同的问题。打开一个新问题,显示完整的代码,输入文件和所有其他细节。单位使用不同的数字。不是1,2,3,而是大于10的数字。 –
@MaykPire,正如Vladimir F所说,这是一个不同的问题。没有足够的信息来诊断问题,因此您应该完成一个完整的示例(请参阅[mcve]),如果这对您没有帮助,请搜索答案,然后提出另一个问题。但有一点需要检查:在查看输出之前是否关闭了文件(程序完成会这样做)? – francescalus
这只是一个错字,'write(*,*)'后面不会有逗号。投票结束为一个简单的错字。我确信编译器打印的内容比您展示的要多,请您始终将tye完整的错误信息复制到您的问题中。 –
我这样做,但是当我运行时,只是Sw_pd(i),Krw_pd(i)输出 –
您应该在循环之前打开文件。 – agentp