fortran中解决MINLOC报error FOR2614: assignment between arrays of differing rank

今天老五跟让我帮他看一个问题,说是在使用minloc函数的时候总是报error FOR2614: assignment between arrays of differing rank
这个错误,而且找的别人的代码几乎一模一样就是不报错,先看一下不报错的代码:

下面是报错的代码(去掉了不相关的部分)

可以看出在变量的定义上是没什么区别的,也注意了这个函数的返回结果需要用一个长度为1的整型数组来接收,那到底是哪里出了问题呢?
这个问题看上去其实很好回答,因为他在k=LAI(pois)这句话中直接传入了pois,而这是一个数组,所以改成pois(1)就对了。
可是发现第一段代码里面也是直接传入的数组,其实就是数组第一个元素的位置,但是却是可以运行的,这是为啥?
的确是个很奇怪的问题,可能是对fortran数组理解的还不够深入,尝试着把”k=”改成”print*,”之后也可以正常运行了。
至于为啥会这样目前还不清楚,需要进一步找资料。

fortran中解决MINLOC报error FOR2614: assignment between arrays of differing rank:等您坐沙发呢!

发表评论

点击正确的图片来提交评论:
快捷键:Ctrl+Enter