如何使用f2py结束fortran函数而不出错

时间:2017-05-24 11:28:26

标签: python numpy fortran f2py

我正在用f2py为python编写一个fortran函数。在某种情况下,我想终止程序并返回我的输出,没有错误。不幸的是,停止程序因错误而停止,因此,当我在python中调用该函数时,整个脚本都会停止。

我现在的方法是在我的函数的主循环中放置一个条件退出,如下所示:

SUBROUTINE func(x)
...
do j1=1,N_steps

if (condition) then
 exit
end if

end do
end subroutine

然而,缺点是如果不满足条件,它将在每次迭代时检查它。条件在循环中不会改变。我更喜欢这样的东西

SUBROUTINE func(x)
...

if (condition) then
 stop
end if

do j1=1,N_steps
   ...
end do
end subroutine

然后函数会因错误而停止。

2 个答案:

答案 0 :(得分:3)

我没有找到重复,所以:

您使用RETURN语句从函数或子例程返回:

if (condition)  return

EXIT终止循环或其他构造

STOP终止整个程序

答案 1 :(得分:1)

怎么样:

SUBROUTINE func(x)
...
if (.not. condition) then    
    do j1=1,N_steps
       ...
    end do
end if
end subroutine