FORTRAN был моим первым языком программирования в 1970-х годах, но я не могу определить, действителен ли следующий код FORTRAN. У меня нет возможности скомпилировать или запустить код.
SUBROUTINE ABC(PARM1, PARM2)
CHARACTER*40 projName
DATA projName /'...values...'/
C Lots of comments...
C VARIABLE DECLARATIONS BEGIN HERE (the exact wording)
IMPLICIT REAL*8(A-H,O-Z)
(the rest of the declarations)
. . .
Все ссылки говорят, что оператор IMPLICIT должен стоять перед любыми объявлениями; однако этот код, по-видимому, работает. Я думаю, что либо (1) оператор IMPLICIT игнорируется, либо (2) этот код действителен в некотором варианте FORTRAN. Если IMPLICIT игнорируется, флаги компиляции могли использоваться для той же цели.
Мне нужно определить действительный / недействительный и кратко обосновать свой ответ. Любые идеи очень приветствуются.
Спасибо лак
1 ответ
Тип CHARACTER был введен в Fortran 77. В разделе 3.5 Fortran 77 «Порядок операторов и строк» говорится: «В операторах спецификации программного модуля операторы IMPLICIT должны предшествовать всем другим операторам спецификации, кроме операторов PARAMETER».
Подобные ограничения существуют и в более поздних стандартах.
Описанный код не соответствует требованиям.
(Fortran 77 не требовал, чтобы процессоры Fortran диагностировали даже самые простые правила языка. Компилятор мог принять другой порядок операторов как расширение или случайно.)
Похожие вопросы
Новые вопросы
fortran
Fortran - это процедурный язык программирования общего назначения, который особенно подходит для числовых и научных вычислений. С 2003 года стандартный Fortran также поддерживает объектно-ориентированное программирование. Этот тег следует применять ко всем вопросам о языке Фортран; другие специальные теги могут быть добавлены для компиляторов, языковых версий и конкретных аспектов использования.