subroutine m3exit( caller, jdate, jtime, msgtxt, xstat ) use ESMF character(len=*), intent(in) :: caller integer, intent(in) :: jdate, jtime character(len=*), intent(in) :: msgtxt integer, intent(in) :: xstat write(0, '("FATAL: ",a)') trim(caller) // ':' // trim(msgtxt) flush 0 call ESMF_LogSetError(ESMF_RC_INTNRL_BAD, & msg=trim(caller) // ':' // trim(msgtxt)) call ESMF_Finalize(endflag=ESMF_END_ABORT) end subroutine m3exit