0

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

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

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

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

ありがとう!

4

1 に答える 1

1

あなたが求めているのは、本質的に(非常に)伝統的なコンパイル言語でのメタプログラミングです。あなたは本当にそれを行うことはできません.

Fortran について私が考えることができる最も近いのは、Fortran 2003の一部の OO をサポートするコンパイラを入手し、そのランタイム ポリモーフィシムを使用することです。そうすれば、親配列クラスを作成してから、配列境界の異なるセットごとにサブクラスを作成し、それらの配列をループ処理することができます。

于 2010-09-10T12:51:20.630 に答える