2012-02-13 98 views
1

我想訪問一個名稱等於我擁有的字符串的實際變量。像這樣的東西(我將讓這個例子儘可能乾淨):在Fortran中將字符串解釋爲變量名稱

character(len=5) :: some_string 
real :: value 
value = 100.0 
some_string = 'value' 

在這一點上,我該如何創建字符數組value和我的真實變量的名稱,值之間的關聯,從而使我可以通過參考字符串some_string來寫入100.0的值?

+0

我關閉了這個稍微老一點的問題,因爲這個問題很長一段時間沒有正確標記,另一個問題得到了更多的關注和更好的答案。儘管如此,這個人的頭銜更好。有什麼異議? – 2017-12-09 14:53:21

回答

1

這在Fortran中幾乎不會發生。語言中沒有像這樣的「動態」語言功能。變量名稱只是編譯時的事情,並且在運行時不存在(名稱已由編譯器轉換爲機器地址)。

+0

呃。感謝你的快速回復。我很害怕這個。爲什麼不能像perl ... – Taylor 2012-02-13 21:42:49

+0

任何建議進行?常用的解決方法? – Taylor 2012-02-13 21:43:35

+1

我建議仔細查看*爲什麼*您認爲您需要這樣做,並重新編寫代碼,以便您不需要。天無絕人之路。 – 2012-02-13 21:47:57

1

這是我如何解決此問題:

character(100) :: s 
integer  :: val 
val = 100 
write(s,*) val 
print *,trim(s) 

這將打印100到屏幕上。然而有一些我不明白的奇怪,角色需要非常大(在他的情況下爲100)。例如,如果您使用3而不是100,則不起作用。這不是一件關鍵的事情,因爲修剪的使用修復了這個問題,但如果有人能夠回答爲什麼會這樣,那將會很好。

無論哪種方式,這應該工作。