質問
土壌植物大気モデルの Fortran プログラムをコンパイルしようとしましたが、Ubuntu ではコンパイルできず、次のようなエラー メッセージが表示され続けます。
f77 -c -o o/cupin2.o src/cupin2.f
src/cupin2.f: In subroutine `reflt':
src/cupin2.f:742:
dimension tairgl,eairgl,windgl,psisgl,hsoil,ecpy,hcpy
^
Invalid form for DIMENSION statement at (^)
make: ***
[o/cupin2.o] Error 1
誰かこれを手伝ってくれませんか。ありがとう。完全なソースコードはここにあります:ソースコード
解決
DIMENSION文は次元アレイに使用されている - あなたは配列の次元を指定する必要があります。たとえばます:
dimension tairgl(100),eairgl(20,50), ...
あなたが実際にDIMENSION文を必要としない、しかし、あなたはまた、のようなものを言うことができます:
real tairgl(100)
integer eairgl(20,50)
他のヒント
これが自分の編集なのか、それとも他の人がコードを書いたのかはわかりません。DIMENSION ステートメントについては、次で説明します。http://en.wikipedia.org/wiki/Fortran_ language_features例えば:
INTEGER, DIMENSION(0:100, -50:50) :: map
その後に配列境界が期待されます。これはかなり時代遅れで、通常はタイプに置き換えられます (例:REAL と配列の境界)。
コードを継承している場合 (および長い歴史がある場合)、そのコードには現在非標準となっている構文が含まれている可能性がありますが、一部のマシンでは依然としてコンパイルできます。コードを積極的に編集している場合は、ある程度の FORTRAN を学ぶ必要があります。
アップデート 以前の質問から、OP は構文的に正しいディメンション ステートメントから配列境界を削除したようです。
所属していません StackOverflow