Вопрос

Я полагаю, что приведенный ниже тип 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

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

И с какой целью ::служить?

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

Это было полезно?

Решение

область действия до конца строки:Y РЕАЛЕН

Что касается "::", то это что-то новое в ФОРТРАН 90.

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

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

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

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

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