2015-04-07 24 views
0

我想對一個實數的數組做一些算術運算,之後我必須將它作爲字符變量的輸入來讀取。我用讀取語句仍然我得到的錯誤爲如何以字符的形式讀取實數

單位規範必須是整數或字符變量。

我也驗證了格式描述符。這裏是我的一段代碼

real::la(10), sl 
integer::i 
character(len=5)::lat 
character(len=7)::station 

sl=11.25 

do i=1,10 
    la = sl+ (i*0.25) 
    read(la(i),'(F5.2)')lat 
    station= lat//'xx' 
end do 
+0

在你的循環分配到整個陣列'la'。你是這個意思嗎? – francescalus

回答

0

F5.2格式指定了一個real值被讀出。 lat是一串字符。兩者不兼容。

最簡單的修復方法是讀取real的變量。

或者,將格式更改爲A(表示字符串),然後使用F5.2格式從lat進行內部讀取。

2

當你有

read(la(i),'(F5.2)') lat 

你要求從單位la(i)(外部文件)轉換成字符變量lat閱讀。這不是你想要的,但也是錯誤的。這種錯誤會導致您看到的錯誤消息:單位編號必須是整數。

但是,將la更正爲整數不是您想要執行的操作。

相反,你想要做一個內部寫入字符變量lat

write(lat, '(F5.2)') la(i) 
相關問題