Fortran INTENT 属性,带有带向量下标的实参

标签 fortran intel-fortran

the document about intent attribute

If an actual argument is an array section with a vector subscript, it cannot be associated with a dummy array that is defined or redefined (has intent OUT or INOUT).



我应该如何理解描述?

是不是说明下面的代码是错误的?
subroutine sub(a)
    real, intent(out) :: a(:)
end subroutine sub

real :: arr(3,4)
call sub(arr(1,:))

最佳答案

那很好,它是一个数组部分而不是一个向量下标。后者是您对下标使用秩为一的整数数组表达式的地方。扩展您的示例:

subroutine sub(a)
    real, intent(out) :: a(:)
end subroutine sub

real :: arr(3,4)
call sub(arr(1,:))           ! Legal
call sub(arr(1,[ 1, 2, 4 ] ) ! Illegal

关于Fortran INTENT 属性,带有带向量下标的实参,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105863/

相关文章:

c# - 在 VS2019 中使用 iFort 从 C# 调用 Fortran

fortran - Fortran 语句函数的用法

c++ - 将动态二维数组在 C++ 和 Fortran 之间传递

fortran - Fortran 中的向量化总和

c++ - 使用 C++ 更改 Fortran 输入文件中的变量

fortran - Compaq Visual Fortran 和 GNU Fortran 有什么区别?

random - 可以将Fortran 90的随机数生成器用于Monte Carlo集成吗?

旧版本 GCC 的 C++/Fortran 间语言 ABI 问题

fortran - 大多数编译器会优化 MATMUL(TRANSPOSE(A),B) 吗?

linux - 采购 `compilervars.sh intel64` 时 libtbb.so.2 库不存在