明らかに、Fortranコンパイラーで許可される継続行の数には制限があります。私は一時的な病理学的ケース(迅速なテスト目的で作成された)を持っており、ファイルを開かずに巨大な配列を初期化する必要があります。配列は非常に大きい(360000エントリ)。
コンパイラの制限を無制限に設定するにはどうすればよいですか、またはこの配列の初期化をホストするためにどのような代替戦略を使用できますか?
明らかに、Fortranコンパイラーで許可される継続行の数には制限があります。私は一時的な病理学的ケース(迅速なテスト目的で作成された)を持っており、ファイルを開かずに巨大な配列を初期化する必要があります。配列は非常に大きい(360000エントリ)。
コンパイラの制限を無制限に設定するにはどうすればよいですか、またはこの配列の初期化をホストするためにどのような代替戦略を使用できますか?
DO
コンパイラによって課される継続制限まで、暗黙的なループを使用してそれらをバッチで割り当てることができます。
REAL :: xarray(360000)
DATA (xarray(i) i=1,100) /1.0, 2.0, 3.0, 4.0, 5.0, 6.0, &
7.0, 8.0, &
...
98.0, 99.0, 100.0 /
DATA (xarray(i) i=101,200) /101.0, 102.0, 103.0, 104.0, 105.0, 106.0, &
107.0, 108.0, &
...
198.0, 199.0, 200.0 /
私はこれを多くの科学的なFortranコードで見ました。
無制限の継続行のコンパイラ設定についてはわかりませんが、次の代替案を提案します。
テキストファイルのデータを使用してソースファイルを作成するコードを記述します。割り当てを行などで分割して、配列を一挙に初期化するための1つの巨大なステートメントを作成しないようにします。コードを生成するコードは非常に柔軟である可能性があることを忘れないでください。