错误:参数中的排名不匹配(排名 1 和标量)

use*_*055 3 fortran

我遇到了这些错误。

colsys.f:1367.51:

     1          NOLD, ALDIF, K, NCOMP, M, MSTAR, 3,DUMM,0)              
                                                   1
Warning: Rank mismatch in argument 'dmval' at (1) (rank-1 and scalar)
colsys.f:814.33:

     1          EALPHA, A, IPIV, INTEGS, RNORM, 0, FSUB,                
                                 1
Warning: Actual argument contains too few elements for dummy argument 'integs' (1/3) at (1)
Run Code Online (Sandbox Code Playgroud)

这里我给出了程序链接。下面提供的链接中有更多错误。我修正了一些错误。但我不知道如何附加更新的程序,因为复制和粘贴太长。

http://www4.ncsu.edu/~mtchu/Teaching/Lectures/MA581/colsys.f

Hig*_*ark 5

任何一个

a) 在过程声明中( afunction或 a subroutine)参数dumm被定义为 1 维数组(如果您愿意,则为 1 维数组,但“rank-1”是您的编译器使用的 Fortran 术语)以及何时您的代码调用该过程并为其赋予标量值。请特别注意,标量值与仅包含一个元素的 1 级数组不同(对于参数匹配)。

或者

b)反之亦然

无论哪种方式,过程定义中的参数与调用过程时传递的参数之间都会不匹配。

您报告的第二个错误类似,似乎当调用该过程时,它需要一个 3 元素数组,但只得到一个 1 元素数组。或类似的东西。

就我个人而言,我不倾向于点击站外链接来寻找更多需要修复的错误。