Неклассифицируемое утверждение в фортране с использованием матрицы - PullRequest
0 голосов
/ 04 сентября 2018

Это часть кода, которая доставляет мне проблемы:

      PROGRAM concept
      IMPLICIT NONE
      REAL, DIMENSION (3,7) :: datin
      REAL, DIMENSION (2,4) :: datiel
      REAL, DIMENSION (4,4) :: ke1
      REAL :: c1, c2
      WRITE (*,*)   "Inserire il valore di alpha per il primo elemento"
      READ (*,*)    datiel(1,1)
      WRITE (*,*)   "alpha1=", datiel(1,1)
      WRITE (*,*)   "alpha2=", datiel(2,1)
      c1=(datiel(1,2))*(datiel(1,3))/(datin(2,1)-datin(1,1))
      ke1(1,1)=c1*(cosd(datiel(1,1)))^2
      ke1(1,2)=c1*(sind(datiel(1,1)))*(cosd(datiel(1,1)))
      ke1(1,3)=c1*(-(cosd(datiel(1,1)))^2)
      ke1(1,4)=c1*(-sind(datiel(1,1)))*(cosd(datiel(1,1)))
      ke1(2,1)=ke1(1,2)
      ke1(2,2)=c1*(sind(datiel(1,1)))^2
      ke1(2,3)=ke1(1,4)
      ke1(2,4)=c1*(-(sind(datiel(1,1)))^2)
      ke1(3,1)=ke1(1,3)
      ke1(3,2)=ke1(2,3)
      ke1(3,3)=ke1(1,1)
      ke1(3,4)=ke1(1,2)
      ke1(4,1)=ke1(1,4)
      ke1(4,2)=ke1(2,4)
      ke1(4,3)=ke1(3,4)
      ke1(4,4)=ke1(2,2)
      END PROGRAM

При компиляции выдает:

enter image description here

Я использую MacBook. Я пытаюсь выяснить, почему это не работает, но некоторая помощь будет признательна.

1 Ответ

0 голосов
/ 04 сентября 2018

В вашем коде есть ряд проблем:

  • сила в Фортране не ^, а **
  • sind и cosd следует заменить на sin и cos, так как последние являются стандартными функциями, а версии с d являются расширениями. Исходя из комментария @kvantour, @evets: Note: sind и cosd являются расширениями компилятора / GNU компилятора DEC Fortran, которые вычисляют синус и косинус угла, заданного в градусах, поэтому необходимо выполнить некоторое преобразование аргумента сделано так же!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...