質問

さまざまな次元の配列が大量にあります。ただし、var1、var2 などの順序で名前を付けます。それらを読み取るために、次のような方法でループすることに興味があります。

do i=1,n
     read(1,*) var<i>
enddo

もちろん、配列は異なる次元であるため、単純に次元を追加して 1 つの次元に折りたたむことはできません。

私の印象では、Fortran では文字列を変数名などに変換することができないのですが、これに対処する方法を知っている人はいますか?

ありがとう!

役に立ちましたか?

解決

あなたが求めているのは本質的には次のとおりです メタプログラミング (とても) 伝統的なコンパイル言語。そんなことは本当にできません。

Fortran に関して私が考える最も近い方法は、OO の一部をサポートするコンパイラーを入手することです。 フォートラン 2003, 、そのランタイム多態性を使用します。そうすることで、親配列クラスを作成し、次に配列境界の異なるセットごとにサブクラスを作成し、それらの配列をループすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top