@@ -10,7 +10,6 @@ module shr_abort_mod
1010 use , intrinsic :: iso_fortran_env, only: output_unit, error_unit
1111
1212 use shr_kind_mod, only : shr_kind_in, shr_kind_cx
13- use shr_mpi_mod , only : shr_mpi_initialized, shr_mpi_abort
1413 use shr_log_mod , only : s_logunit = > shr_log_Unit
1514
1615#ifdef CPRNAG
@@ -36,7 +35,7 @@ module shr_abort_mod
3635
3736 ! ===============================================================================
3837 subroutine shr_abort_abort (string ,rc , line , file )
39- use esmf, only : ESMF_LOGWRITE, ESMF_LOGMSG_ERROR
38+ use esmf, only : ESMF_LOGWRITE, ESMF_LOGMSG_ERROR, ESMF_FINALIZE, ESMF_END_ABORT
4039 ! Consistent stopping mechanism
4140
4241 !- ---- arguments -----
@@ -58,22 +57,17 @@ subroutine shr_abort_abort(string,rc, line, file)
5857 else
5958 local_string = " Unknown error submitted to shr_abort_abort."
6059 end if
60+ if (present (rc)) then
61+ write (local_string, * ) trim (local_string), ' rc=' ,rc
62+ endif
6163
6264 call print_error_to_logs(" ERROR" , local_string)
6365
6466 call ESMF_LogWrite(local_string, ESMF_LOGMSG_ERROR, line= line, file= file)
6567
6668 call shr_abort_backtrace()
6769
68- call shr_mpi_initialized(flag)
69-
70- if (flag) then
71- if (present (rc)) then
72- call shr_mpi_abort(trim (local_string),rc)
73- else
74- call shr_mpi_abort(trim (local_string))
75- endif
76- endif
70+ call ESMF_Finalize(endflag= ESMF_END_ABORT)
7771
7872 ! A compiler's abort method may print a backtrace or do other nice
7973 ! things, but in fact we can rarely leverage this, because MPI_Abort
0 commit comments