Fortran 90 での変数名のループ
質問
さまざまな次元の配列が大量にあります。ただし、var1、var2 などの順序で名前を付けます。それらを読み取るために、次のような方法でループすることに興味があります。
do i=1,n
read(1,*) var<i>
enddo
もちろん、配列は異なる次元であるため、単純に次元を追加して 1 つの次元に折りたたむことはできません。
私の印象では、Fortran では文字列を変数名などに変換することができないのですが、これに対処する方法を知っている人はいますか?
ありがとう!
解決
あなたが求めているのは本質的には次のとおりです メタプログラミング (とても) 伝統的なコンパイル言語。そんなことは本当にできません。
Fortran に関して私が考える最も近い方法は、OO の一部をサポートするコンパイラーを入手することです。 フォートラン 2003, 、そのランタイム多態性を使用します。そうすることで、親配列クラスを作成し、次に配列境界の異なるセットごとにサブクラスを作成し、それらの配列をループすることができます。
所属していません StackOverflow