SURFEX v7.3
General documentation of Surfex
|
00001 SUBROUTINE ABOR1(CDTEXT) 00002 00003 USE PARKIND1 ,ONLY : JPIM ,JPRB 00004 USE YOMLUN_IFSAUX, ONLY : NULOUT,NULERR 00005 USE MPL_MODULE, ONLY : MPL_ABORT, MPL_RANK, MPL_NUMPROC 00006 USE SDL_MOD, ONLY : SDL_TRACEBACK, SDL_SRLABORT 00007 00008 IMPLICIT NONE 00009 00010 CHARACTER(LEN=*), INTENT(IN) :: CDTEXT 00011 INTEGER(KIND=JPIM) :: ILEN 00012 00013 ILEN=LEN(CDTEXT) 00014 IF (NULOUT >= 0) WRITE(NULOUT,'(1X,A)') 'ABOR1 CALLED' 00015 00016 IF(ILEN <= 512) THEN 00017 IF (NULOUT >= 0) WRITE(NULOUT,'(1X,A)') CDTEXT 00018 IF (NULERR >= 0) WRITE(NULERR,'(1X,A,1X,I3,1X,A)') 'ABORT! ',MPL_RANK,CDTEXT 00019 ELSE 00020 IF (NULERR >= 0) WRITE(NULERR,'(1X,A,1X,I3,1X,A)') 'ABORT! ',MPL_RANK,& 00021 & 'ABOR1 CALLED WITHOUT TEXT STRING' 00022 ENDIF 00023 00024 IF (NULOUT >= 0) THEN 00025 CALL FLUSH(NULOUT) 00026 IF (NULOUT /= 0 .and. NULOUT /= 6) CLOSE(NULOUT) 00027 ENDIF 00028 00029 IF (MPL_NUMPROC > 1) THEN 00030 IF(ILEN <= 512) THEN 00031 CALL MPL_ABORT(CDTEXT) 00032 ELSE 00033 CALL MPL_ABORT 00034 ENDIF 00035 ELSE 00036 CALL SDL_TRACEBACK 00037 CALL FLUSH(0) 00038 CALL SDL_SRLABORT 00039 ENDIF 00040 00041 END SUBROUTINE ABOR1 00042 00043 SUBROUTINE ABOR1FL(CDFILE, KLINENUM, CDTEXT) 00044 USE PARKIND1 ,ONLY : JPIM 00045 USE YOMLUN_IFSAUX, ONLY : NULOUT,NULERR 00046 IMPLICIT NONE 00047 CHARACTER(LEN=*), INTENT(IN) :: CDFILE,CDTEXT 00048 INTEGER(KIND=JPIM), INTENT(IN) :: KLINENUM 00049 IF (LEN(CDFILE) > 0 .AND. KLINENUM > 0 .AND. NULERR >= 0) THEN 00050 1000 FORMAT(1X,A,A,":",I6.6) 00051 WRITE(NULERR,1000) 'ABOR1FL HAS BEEN CALLED AT ',CDFILE,KLINENUM 00052 CALL FLUSH(NULERR) 00053 ENDIF 00054 CALL ABOR1(CDTEXT) 00055 END SUBROUTINE ABOR1FL