Объявления типов в Фортране - PullRequest
2 голосов
/ 28 июня 2009

Полагаю, тип Y ниже РЕАЛЬНЫЙ.

      SUBROUTINE F(X, Y)
C        IMPLICIT NONE
        REAL :: X, Y
C        REAL :: A, B
C        REAL, PARAMETER :: C = 3.14E0
C        X = Y + 2 * SIN(Y)
      END

Но что это за тип здесь?

      SUBROUTINE F(X, Y)
C        IMPLICIT NONE
        REAL X, Y
C        REAL :: A, B
C        REAL, PARAMETER :: C = 3.14E0
C        X = Y + 2 * SIN(Y)
      END

Является ли он неявно типизированным или РЕАЛЬНЫМ из-за РЕАЛЬНОГО токена в начале этой строки? Я имею в виду, какова область объявления типа, вплоть до или до конца строки?

А для чего служит ::

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

Ответы [ 2 ]

1 голос
/ 28 июня 2009

Вы объявили IMPLICIT NONE, поэтому не происходит неявной типизации. Вы правы, что Y будет REAL - вам разрешено объявлять несколько переменных в одной строке.

Символ :: используется в объявлениях Fortran 90 для указания типа и параметров из фактического имени переменной. Как вы обнаружили, компилятор, как правило, рад, если вы его пропустите, но я считаю, что он делает его более удобным для чтения.

В качестве примечания, похоже, что этот код написан с использованием стиля FORTRAN 77 - если это новый код, вы можете написать код с использованием синтаксиса в стиле Fortran 90 для всего, от комментариев до отступа (например, вам не нужно Запустите ваши команды в определенных столбцах, доступны дополнительные встроенные функции, динамическая память и т. д.)

1 голос
/ 28 июня 2009

область видимости до конца строки: Y - это REAL

Что касается "::", это нечто новое в FORTRAN 90 .

...