使用矩阵在Fortran中无法分类的语句

时间:2018-09-04 09:14:28

标签: fortran

这是代码中给我带来问题的部分:

      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 :(得分:3)

您的代码中存在许多问题:

  • Fortran中的功能不是^,而是**
  • sindcosd应该替换为sincos,因为后者是标准函数,带有d的版本是扩展名。根据@kvantour的评论,@evets:注意:sindcosd是DEC Fortran编译器/ gnu编译器扩展,它们计算以度为单位的角度的正弦和余弦,因此对争论也必须做!