Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/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
Arrays 将MINLOC与Fortran一起使用:赋值中的秩0和1不兼容 提供错误消息的版本 错误消息_Arrays_Fortran - Fatal编程技术网

Arrays 将MINLOC与Fortran一起使用:赋值中的秩0和1不兼容 提供错误消息的版本 错误消息

Arrays 将MINLOC与Fortran一起使用:赋值中的秩0和1不兼容 提供错误消息的版本 错误消息,arrays,fortran,Arrays,Fortran,main.f95:5.3: 索引=最小位置(a,掩码=(a>5)) 1. 错误:在(1)处的分配中不兼容的列组0和1 工作版本 搜寻 我可以找到相关的讨论,但我觉得它不够详细,无法理解其中的区别。提出了一个重要的观点:MINLOC返回一个数组,即使它只是一个数字,它仍然是一个数组 可以像上面提到的那样将索引声明为数组,也可以使用临时数组 integer :: temp(1) ... temp=minloc(dist) index=temp(1) 也可以使用DIM参数来避免手动篡改数据类型,如

main.f95:5.3:

索引=最小位置(a,掩码=(a>5)) 1. 错误:在(1)处的分配中不兼容的列组0和1

工作版本 搜寻 我可以找到相关的讨论,但我觉得它不够详细,无法理解其中的区别。

提出了一个重要的观点:MINLOC返回一个数组,即使它只是一个数字,它仍然是一个数组

可以像上面提到的那样将索引声明为数组,也可以使用临时数组

integer :: temp(1)
...
temp=minloc(dist)
index=temp(1)


也可以使用DIM参数来避免手动篡改数据类型,如M.S.B的回答中所述。

您可以通过使用
DIM
参数来修复第一个版本,从
minloc
获取标量返回:

index = MINLOC(a, DIM=1, MASK=(a > 5))

注意:除非每行放置多个语句,否则语句结尾不需要分号。Fortran不是C。

删除了分号;它们是在尝试对另一条错误消息进行故障排除时意外添加的。。。
integer :: temp(1)
...
temp=minloc(dist)
index=temp(1)
index = MINLOC(a, DIM=1, MASK=(a > 5))