!======================================================================= ! RCS Header: ! Revision [$Revision: 1.2.2.1 $] Named [$Name: release#2_9_b5 $] ! Last checkin [$Date: 2001/12/06 10:14:24 $] ! Author [$Author: frpb $] !======================================================================= ! *****************************COPYRIGHT******************************* ! (c) CROWN COPYRIGHT 2001, Met Office, All Rights Reserved. ! Please refer to Copyright file in top level GCOM directory ! for further details ! *****************************COPYRIGHT******************************* !======================================================================= ! This is an INTERNAL routine to be used within the GC interface ONLY. !======================================================================= #include "gcg_prolog.h" SUBROUTINE GCG__ERRLIM(IABRT, SUB, LIM, MVAL, AVAL) ! Support function to exit or abort (if IABRT > 0) if an internal ! limit is exceeded. ! Currently, only abort is supported (RS 970408) IMPLICIT NONE INTEGER IABRT, MVAL, AVAL CHARACTER*(*) SUB, LIM INTEGER GCG__NPROC, GCG__ME INTEGER GC_ME, GC_NPROC EXTERNAL GC_ME, GC_NPROC GCG__ME = GC_ME() GCG__NPROC = GC_NPROC() c IF (IABRT .GT. 0 .OR. (IABRT .EQ. 0 .AND. GCG__ME .EQ. 0)) THEN WRITE(*,*) 'GCG_', SUB, '(): internal limit MAX_', LIM, $ ' exceeded on processor ', GCG__ME WRITE(*,*) 'Maximum value is ', MVAL, '. Actual value is ', $ AVAL, '. Exiting.' c ENDIF c IF (IABRT .GT. 0) THEN CALL GC_ABORT(GCG__ME, GCG__NPROC, $ '*** DEFINED LIMIT EXCEEDED ***') c ELSE c STOP c ENDIF RETURN END