Вопрос

Я попытался скомпилировать программу 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)

Другие советы

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

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

Он ожидает, что после него будут границы массива.Он довольно устарел и обычно заменяется типом (напримерРЕАЛЬНЫЙ и границы массива).

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

Обновить из предыдущего вопроса OP, похоже, удалил границы массива из синтаксически правильного оператора dimension .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top