0

私の Fortran プログラムでは、ルート プロセッサでのみ外部関数を呼び出します。関数が機能していることを確認するために、いくつかのチェックがあります。うまくいかない場合は、プログラムを呼び出して. 例えば:stopPetscFinalize

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、プログラムがハングアップし、適切にファイナライズされないことに気付きました。

私の質問は、ルート プロセッサでプログラムを終了する適切な方法は何ですか?

4

1 に答える 1