Fortran“错误:数组表达式的形状不符合。”

时间:2012-10-18 14:23:40

标签: fortran

我知道有人问过类似的问题。它说错误可能来自于尝试将数组分配给标量。我一次又一次地检查了我的程序,但是我的程序确实没有发现任何问题。

具体的错误信息是:

  

D:\ src \ fortran \ Kramers \ kramers.f90(54):错误:数组表达式的形状不符合。 [Y2]     Y2(1)= SQRT(2.0d0 * T)* [H *ω-(2)-H1 *欧米加(3)+ H1 * H *欧米加(4)-H1 * H1 *欧米加(6)+&安培;   ---------------- ^
  D:\ src \ fortran \ Kramers \ kramers.f90(65):错误:数组表达式的形状不符合。 [Y2]     Y2(2)= SQRT(2.0d0 * T)* [欧米加(1)-h *欧米加(2)+ H * H *欧米加(3)-H1 * H *欧米加(4)+ H1 * H1 *欧米加( 6)+&安培;   ---------------- ^
  执行df.exe时出错。

     

kramers.obj - 2个错误,0个警告

这是导致错误的程序的一部分:

real*8 :: y(2),y2(2),omega(10),V4

real*8 :: h,h1,T,ngt

real*8,external :: V,V1,V2,V3

y2(1) = sqrt(2.0d0*T)*[h*omega(2) - h1*omega(3) + h1*h*omega(4) - h1*h1*omega(6) + &
    (-h1*h*omega(4) + 2.0d0*h1*h1*omega(6))*V2(y(1)) - h1*h1*y(2)*omega(10)*V3(y(1))]

y2(2) = sqrt(2.0d0*T)*[omega(1) - h*omega(2) + h*h*omega(3) - h1*h*omega(4) + h1*h1*omega(6) + &
    (-h*h*omega(3) + 2*h1*h*omega(4) - 3*h1*h1*omega(6))*V2(y(1)) + &
    (-h1*h*y(2)*omega(5) + h1*h1*y(2)*omega(7) + h1*h1*y(2)*omega(8) + h1*h1*y(2)*omega(10))*V3(y(1)) + &
    h1*h1*V2(y(1))*V2(y(1))*omega(6) + h1*h1*V1(y(1))*V3(y(1))*omega(8) - 0.5d0*h1*h1*V4*y(2)*y(2)] - h1*h*T*V3(y(1))*ngt

1 个答案:

答案 0 :(得分:4)

使用方括号[]表示数组构造函数。你必须使用正常的()