Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 错误:在(1)处的分配中不兼容的列组0和1_Fortran - Fatal编程技术网

Fortran 错误:在(1)处的分配中不兼容的列组0和1

Fortran 错误:在(1)处的分配中不兼容的列组0和1,fortran,Fortran,我在不规则网格上使用有限差分法,这是代码的重要部分: 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

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

 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。任何解决方案都将不胜感激。谢谢

    a=(2/(delta1*(delta1+delta2)))
    b=(-2/(delta1*delta2))
以下几行是非法的。右边是数组,左边是标量


也许您忘记了一些索引,比如
delta1(I)
或者
delta1
应该是标量。如果你把这样的代码作为新代码编写,我强烈建议你改变你的风格。现在不是1982年。您的索引是隐式的双精度索引。你在混合单复数、双实数和四实数。完全是一团糟。我回到了你原来的问题,现有的答案是基于这个问题的。你的新代码完全不同。如果您根据答案更改了代码,但仍然存在问题,则应提出新问题。但是,在提出新问题之前,请确保使用
IMPLICIT NONE
。在没有
隐式无
的情况下,阅读您试图发布的这么长的代码是毫无价值的。这很重要。对不起,我是编程新手。我把剩下的代码放在问题里。你不知道我有多感激你的反馈。谢谢@Kev_mad现在你的代码完全不同了,我的答案毫无意义。您更改了声明部分。你不应该那样做!阅读您也不报告编译器报告错误的行。谁能在如此混乱的代码中找到它?