如何仅从根处理器调用PetscFinalize?

时间:2018-07-30 15:17:49

标签: petsc

在我的Fortran程序中,我仅在根处理器上调用外部功能。我进行了一些检查,以确保该功能正常工作。如果不起作用,则我stop程序,然后调用PetscFinalize。例如:

if(rank==0) then
   call_status = external_function(x)

   ! function failed
   if (call_status/=1) then
      write(6,*) "external_function failed"
      call PetscFinalize(ierr)
      stop
   end if
end if

但是,我注意到在运行时,如果external_function出现错误,程序将挂起并且无法正确完成。

我的问题是:在根处理器上终止程序的适当方法是什么?

1 个答案:

答案 0 :(得分:0)

呼叫退出。 PetscFinalize(ierr)并非为程序停止而设计。