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
81 integer,
intent(in),
optional :: pelist(:)
83 if( .NOT.
PRESENT(pelist) )
then
84 get_peset = current_peset_num;
return
96 integer,
intent(in),
optional :: pelist(:)
97 integer,
intent(in),
optional :: check
106subroutine 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 get_peset(pelist)
Makes a PE set out of a PE list. A PE list is an ordered list of PEs a PE set is a triad (start,...
subroutine mpp_sync(pelist, do_self)
Synchronize PEs in list.