2017-04-22 28 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