mikeyu11 发表于 2024-7-31 15:31:24

如何解决Syntax error in array constructor的问题

源码:
      Allocate(P_fft_cmplx((2*(NX/SS)-1+10)/2 + 1, 2*(NYs/SS)-1 + 3), &
      W_fft_cmplx((2*(NX/SS)-1+10)/2 + 1, 2*(NYs/SS)-1 + 3), &
      AK_fft_cmplx((2*(NX/SS)-1+10)/2 + 1, 2*(NYs/SS)-1+3))
      rstrides =
      cstrides =
      dimensions = (/2*(NX/SS)-1+10,2*(NYs/SS)-1+3/)

      AK_fft_real = 0
      AK_fft_real(10+1:2*(NX/SS)-1+10,1+3:2*(NYs/SS)-1+3)=AK((/(Nx/SS)-1:1:-1,0:(Nx/SS)-1/),(/(Nys/SS)-1:1:-1,0:(Nys/SS)-1/))
      P_fft_real = 0
      P_fft_real((Nx/SS)+10:2*(Nx/SS)-1+10,(NYs/SS)+3:2*(Nys/SS)-1+3)=P((/1:NX:SS/),(/1:NN:SS,NN-1:1:-1*SS/))      



报错:.\VI_FFT.f90:55:74:

         AK_fft_real(10+1:2*(NX/SS)-1+10,1+3:2*(NYs/SS)-1+3)=AK((/(Nx/SS)-1:1:-1,0:(Nx/SS)-1/),(/(Nys/SS)-1:1:-1,0:(Nys/SS)-1/))
                                                                        1
Error: Syntax error in array constructor at (1)

希望高手能帮小白解下问题,谢谢!!!!

li913 发表于 2024-7-31 16:09:21

等号右边不符合语法AK((/(Nx/SS)-1:1:-1,0:(Nx/SS)-1/),(/(Nys/SS)-1:1:-1,0:(Nys/SS)-1/)) 。你想表达什么?

mikeyu11 发表于 2024-7-31 16:17:52

这是国外上的一段程序,这段程序的应该是将计算的刚度矩阵对称赋值:-)

mikeyu11 发表于 2024-7-31 16:19:06

fortran语言不熟,不知道是语法上的问题还是其他问题。

mikeyu11 发表于 2024-7-31 16:20:27

这段程度是用Fortran的数学库采用DC-FFT方法求解弹性变形

fcode 发表于 2024-7-31 21:22:36

(/(Nx/SS)-1:1:-1,0:(Nx/SS)-1/)
这种数组构造器是 intel fortran 的扩展语法,你试试用 intel 的编译器来编译。

mikeyu11 发表于 2024-8-1 10:55:49

fcode 发表于 2024-7-31 21:22
(/(Nx/SS)-1:1:-1,0:(Nx/SS)-1/)
这种数组构造器是 intel fortran 的扩展语法,你试试用 intel 的编译器来 ...

好的,谢谢,我换个编译器试试
页: [1]
查看完整版本: 如何解决Syntax error in array constructor的问题