33 integer,
intent(in) :: errortype
34 character(len=*),
intent(in),
optional :: errormsg
35 character(len=512) :: text
37 integer :: istat, errunit, outunit
39 if( .NOT.module_is_initialized )
call abort()
41 select case( errortype )
49 text =
'WARNING: non-existent errortype (must be NOTE|WARNING|FATAL)'
52 if( npes.GT.1 )
write( text,
'(a,i5)' )trim(text)//
' from PE', pe
53 if(
PRESENT(errormsg) )text = trim(text)//
': '//trim(errormsg)
58 select case( errortype )
60 write( outunit,
'(a)' )trim(text)
62 write( errunit,
'(/a/)' )trim(text)
63 write( outunit,
'(/a/)' )trim(text)
64 if( errortype.EQ.fatal .OR. warnings_are_fatal )
then
70 error_state = errortype
79 function get_peset(pelist)
81 integer,
intent(in),
optional :: pelist(:)
83 if( .NOT.
PRESENT(pelist) )
then
84 get_peset = current_peset_num;
return
91 end function get_peset
96 integer,
intent(in),
optional :: pelist(:)
97 integer,
intent(in),
optional :: check
106 subroutine mpp_sync_self( pelist, check, request, msg_size, msg_type )
107 integer,
intent(in),
optional :: pelist(:)
108 integer,
intent(in),
optional :: check
109 integer,
intent(inout),
optional :: request(:)
110 integer,
intent(in ),
optional :: msg_size(:)
111 integer,
intent(in ),
optional :: msg_type(:)
subroutine mpp_sync_self(pelist, check, request, msg_size, msg_type)
This is to check if current PE's outstanding puts are complete but we can't use shmem_fence because w...
subroutine mpp_error_basic(errortype, errormsg)
A very basic error handler uses ABORT and FLUSH calls, may need to use cpp to rename.
integer function stdout()
This function returns the current standard fortran unit numbers for output.
integer function stderr()
This function returns the current standard fortran unit numbers for error messages.
subroutine mpp_sync(pelist, do_self)
Synchronize PEs in list.