错误:在(1)的分配中,等级0和1不兼容 [英] Error: Incompatible ranks 0 and 1 in assignment at (1)

查看:59
本文介绍了错误:在(1)的分配中,等级0和1不兼容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用不规则网格上的有限差分方法,这是代码的重要部分:

I'm working in a finite difference method on an irregular grid, this is the important part of the code:

 IMPLICIT DOUBLE PRECISION (A-Z)
      REAL*16 IPSI,ICORR,POT(20000),VA(20000),delta1(20000),
     $delta2(20000),R(20000),a,b,d
      COMPLEX Y(20000),TY2(50000),Z(20000),PSI0(20000),RES,DPSI,C,
     $CORR,OPK
 DO I=3,NR-1
    delta1=R(I)-R(I-1)
    delta2=R(I+1)-R(I)
    a=(2/(delta1*(delta1+delta2)))
    b=(-2/(delta1*delta2))
    d=(2/(delta2*(delta1+delta2)))
    TY2(I)=((d*Z(I+1))+(b*Z(I))+(a*Z(I-1)))
 ENDDO

当我尝试编译时出现错误:a,b,d和TY2在(1)的赋值中不兼容的等级分别为0和1.任何解决方案将不胜感激.谢谢!

When I try to compile I got Error: Incompatible ranks 0 and 1 in assignment at (1) for a,b,d and TY2. Any solution will be appreciated. Thanks!

推荐答案

    a=(2/(delta1*(delta1+delta2)))
    b=(-2/(delta1*delta2))

和以下几行是非法的.右边是数组,左边是标量.

and the following lines are illegal. On the right you have arrays, on the left a scalar.

也许您忘记了诸如 delta1(I) delta1 之类的索引应该是标量.我们不能不对您的代码有更多了解.

Maybe you forgot some index like delta1(I) or delta1 should be a scalar. We can't say without knowing more about your code.

这篇关于错误:在(1)的分配中,等级0和1不兼容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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