Вопрос:

Заявление данных в Фортран

fortran gfortran

65 просмотра

2 ответа

6 Репутация автора

Я пытался написать некоторые данные в фортране ...

   program Problem

    DIMENSION X(8), W(8)
    DATA X /0.0950125098D0, 0.2816035507D0, 0.4580167776D0, 0.6178762444D0
 +         , 0.7554044083D0, 0.8656312023D0, 0.9445750230D0, 0.9894009349D0/
    DATA W /0.1894506104D0, 0.1826034150D0, 0.1691565193D0, 0.1495959888D0
 +        , 0.1246289712D0, 0.0951585116D0, 0.0622535239D0, 0.0271524594D0/

    D = 0.D0
    DO NJ=1,8
      D = D + X(NJ) + W(NJ) 
    ENDDO

    write(*,*) D

   end

Но я всегда получаю сообщение об ошибке Неожиданный оператор объявления атрибута в (1)

Кто-нибудь знает почему?

Автор: Gabriel98 Источник Размещён: 08.06.2019 02:18

Ответы (2)


0 плюса

104 Репутация автора

Как уже было сказано другими, вы должны использовать новый стандарт Fortran. Если вы сделаете это, вы можете просто удалить «+», который вы использовали для обозначения строки продолжения (должно было быть в столбце 6), и вместо этого добавить амперсанд «&» в конце строки, которую следует продолжить. Затем программа компилируется и запускается. Но так как X и W одинарной точности, вы используете слишком много цифр в вашем заявлении данных. Используйте неявное none и объявите все переменные. И получить учебник.

Автор: Bo Sundman Размещён: 12.06.2019 09:22

0 плюса

11637 Репутация автора

Ниже вы найдете небольшое обновление вашего кода, которое позволяет его компилировать:

      program Problemless

      dimension X(8), W(8)
      data X /0.0950125098D0, 0.2816035507D0, 0.4580167776D0,
     +        0.6178762444D0, 0.7554044083D0, 0.8656312023D0,
     +        0.9445750230D0, 0.9894009349D0/
      data W /0.1894506104D0, 0.1826034150D0, 0.1691565193D0,
     +        0.1495959888D0, 0.1246289712D0, 0.0951585116D0,
     +        0.0622535239D0, 0.0271524594D0/

      D = 0.D0
      do NJ=1,8
         D = D + X(NJ) + W(NJ) 
      enddo

      write(*,*) D

      end

Ваш код написан в форме с фиксированным исходным кодом (см. Раздел 6.3.3 стандарта Fortran ). Это подразумевает, что у вас не может быть ничего кроме столбца 72. Все, что я сделал, это исправил это в приведенном выше.

Если вы изучаете фортран, я бы предложил прекратить использовать фиксированный формат и начать использовать бесплатный формат.

для этого поста не требуется никаких голосов

Автор: kvantour Размещён: 13.06.2019 09:08
Вопросы из категории :
32x32