我知道有人問過類似的問題。它說這個錯誤可能來自試圖將一個數組分配給一個標量。我一遍又一遍地檢查了我的程序,但是我確實沒有發現我的程序有任何問題。Fortran「錯誤:數組表達式的形狀不符合。」
特定的錯誤信息是:
D:\src\fortran\Kramers\kramers.f90(54) : Error: The shapes of the array expressions do not conform. [Y2] y2(1)=sqrt(2.0d0*T)*[h*omega(2)-h1*omega(3)+h1*h*omega(4)-h1*h1*omega(6)+& ----------------^
D:\src\fortran\Kramers\kramers.f90(65) : Error: The shapes of the array expressions do not conform. [Y2] y2(2)=sqrt(2.0d0*T)*[omega(1)-h*omega(2)+h*h*omega(3)-h1*h*omega(4)+h1*h1*omega(6)+& ----------------^
Error executing df.exe.kramers.obj - 2 error(s), 0 warning(s)
這是我的程序的一部分,這將導致錯誤:
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
是的,我發現了這個錯誤。不管怎樣,謝謝你。 – yuedu
你可以接受答案而不是寫出更好的答案,並且不要將此問題留下。 –