function - Fortran 函数中带有可选参数的段错误

标签 function fortran optional-parameters

我可以使用带有 intent(in) 的子程序的 Fortran 可选参数和 intent(inout) , 但函数可选参数只适用于 intent(in) , 对?与 intent(inout)我在以下代码中遇到段错误:

real function foo(x, tol) 
    real, intent(in) :: x
    real, optional, intent(inout) :: tol
    if( .not. present(tol) ) tol = 1e-6
    !...
end function foo

最佳答案

我发现了问题,即使在第四行(在 tol = 1e-6 中)不存在时,我也使用了该变量:

real function foo(x, tol) 
    real, intent(in) :: x
    real, optional, intent(inout) :: tol
    if( .not. present(tol) ) tol = 1e-6
    !...
end function foo 

但是我想即使在不存在的情况下也使用它并设置默认值,就像在 C++ 中我们做类似的事情一样
double foo(double x, double tol=1e-6)

不幸的是,这在 Fortran 中似乎是不可能的。

关于function - Fortran 函数中带有可选参数的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452668/

相关文章:

php - textarea 未发布在 $_POST 中

php - 重置按钮不会重置文本区域

python - Python 在全局范围内提供一些默认方法的原因是什么?

gcc - Fortran 77 提示常见 block

linker - ifort在Linux上的编译器选项

java - 有多个可选参数

powershell - 动态参数取默认值

javascript - 使用数组对象获取最大的更大键值

php - CodeIgniter 中的可选参数

macos - Fortran动态库,在运行时加载?