2012-02-13 21 views
1

私は持っている文字列と同じ名前の実変数にアクセスしたいと思います。このような何か(私はできるだけきれいに例を作ります):この時点でFortranの変数名として文字列を解釈する

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

、私はそのように文字配列valueと私の本当の変数の名前、値の間の関連付けを作成するにはどうすればよいです私は文字列some_stringを参照して100.0の値を書くことができますか?

+0

私はこの方が長い間正確にタグ付けされておらず、もう1つはより多くの注意とより良い答えを得ているため、少し古い質問を閉じました。しかし、これは良いタイトルを持っていた。異議はありますか? –

答えて

1

これは、Fortranではほとんど起こりません。このような言語で利用可能な "動的な"言語機能はありません。変数名はコンパイル時のみのもので、実行時には存在しません(名前はコンパイラによってマシンアドレスに変換されています)。

+0

あなたの迅速な対応に感謝します。私はこれを恐れていた。なぜすべてがperlのようなものになることはできません... – Taylor

+0

進歩のための任意の提案?よく使われる回避策? – Taylor

+1

私はあなたがこれを行う必要があると信じている理由を慎重に見て、あなたのコードを再調整する必要がないように注意することをお勧めします。方法が常にある。 –

1

これは私がこの問題を回避する方法です:

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

これは、画面に100を印刷します。私は理解していないいくつかの奇妙さがありますが、キャラクターは非常に大きくする必要があります(彼の場合100 int)。たとえば、100の代わりに3を使用すると、動作しません。これは、トリムの使用がこれを修正するので、重要なことではありませんが、誰かがこれに当てはまる理由に答えることができればうれしいでしょう。

いずれにしろ、これはうまくいくはずです。

関連する問題