2017-04-22 26 views
1
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

+0

这只是一个错字,'write(*,*)'后面不会有逗号。投票结束为一个简单的错字。我确信编译器打印的内容比您展示的要多,请您始终将tye完整的错误信息复制到您的问题中。 –

+0

我这样做,但是当我运行时,只是Sw_pd(i),Krw_pd(i)输出 –

+0

您应该在循环之前打开文件。 – agentp

回答

2

,应该有项目的列表之前没有逗号输出。你应该只是有

write(1,*) Sw_pd(i), Pcow_pd(i) 

等等。

的更晚的线

print*, counter 

其中counter前的逗号是绝对必要的,可以写作加少许混乱。这也许是增加read如何使用:主要有两种形式:

read *, x 
read (*,*) y 

没有单位的明确说明第一个例子意味着在同一单位在第二的*,它需要一个逗号。第二个不能有逗号。

一个简单的方法来记住输出列表是否先有一个逗号:如果格式单独使用逗号;如果单位被指定,则不要。

+0

是的,我这样做,并修复错误,但是当我运行Pcow_pd.txt和其他txt文件是空的。 –

+0

@MaykPire对于不同的问题,这是一个不同的问题。打开一个新问题,显示完整的代码,输入文件和所有其他细节。单位使用不同的数字。不是1,2,3,而是大于10的数字。 –

+0

@MaykPire,正如Vladimir F所说,这是一个不同的问题。没有足够的信息来诊断问题,因此您应该完成一个完整的示例(请参阅[mcve]),如果这对您没有帮助,请搜索答案,然后提出另一个问题。但有一点需要检查:在查看输出之前是否关闭了文件(程序完成会这样做)? – francescalus