Ошибка компиляции на Фортране
Я пытался скомпилировать фортранскую программу для модели почва-растение-атмосфера, но я не могу скомпилировать ее под 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 ответа
Оператор 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 и границы массива).
Если вы унаследовали код (и если у него длинная история), возможно, он имеет некоторый синтаксис, который теперь нестандартен, но все еще компилируется на некоторых машинах. Если вы активно редактируете код, вам нужно изучить некоторый Фортран.
ОБНОВЛЕНИЕ от предыдущего вопроса OP, кажется, удалил границы массива из синтаксически правильного оператора измерения.