Ошибка компиляции на Фортране - PullRequest
0 голосов
/ 22 декабря 2009

Я пытался скомпилировать программу на фортране для модели почва-растение-атмосфера, но я не могу скомпилировать ее под 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

Может ли кто-нибудь помочь мне с этим. Благодарю. Полный исходный код здесь: Исходный код

Ответы [ 2 ]

2 голосов
/ 22 декабря 2009

Оператор DIMENSION используется для измерений массивов - поэтому вы должны указать размеры массива. Например:

dimension tairgl(100),eairgl(20,50), ...

На самом деле вам не нужен оператор DIMENSION, однако вы также можете сказать что-то вроде:

real tairgl(100)
integer eairgl(20,50)
1 голос
/ 22 декабря 2009

Вы не говорите, является ли это ваше редактирование или кто-то другой написал код. Оператор DIMENSION описан в: http://en.wikipedia.org/wiki/Fortran_language_features например:

INTEGER, DIMENSION(0:100, -50:50) :: map

Ожидает границы массива после него. Он довольно устаревший и обычно заменяется типом (например, REAL и границы массива).

Если вы унаследовали код (и если у него длинная история), возможно, он имеет некоторый синтаксис, который теперь нестандартен, но все еще компилируется на некоторых машинах. Если вы активно редактируете код, вам нужно изучить немного FORTRAN.

ОБНОВЛЕНИЕ из предыдущего вопроса OP, кажется, удалил границы массива из синтаксически правильного оператора измерения.

...