Fortran“错误:数组表达式的形状不一致." [英] Fortran "Error: The shapes of the array expressions do not conform."

查看:103
本文介绍了Fortran“错误:数组表达式的形状不一致."的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I know someone has asked a similar question. It said that the error maybe come from trying to assign an array to a scalar. I checked my program again and again as it said but I really don't find any wrong with my program.

具体错误消息是:

D:\ src \ fortran \ Kramers \ kramers.f90(54):错误:数组表达式的形状不一致.[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):错误:数组表达式的形状不一致.[Y2]y2(2)= sqrt(2.0d0 * T)* [omega(1)-h * omega(2)+ h * h * omega(3)-h1 * h * omega(4)+ h1 * h1 * omega(6)+&---------------- ^
执行df.exe错误.

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个错误,0个警告

kramers.obj - 2 error(s), 0 warning(s)

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

This is the part of my program which causes the error:

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

推荐答案

您使用方括号 [] 表示数组构造函数.您必须使用普通的().

You use square brackets [] which denote an array constructor. You have to use normal ones ().

这篇关于Fortran“错误:数组表达式的形状不一致."的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆