SURFEX v8.1
General documentation of Surfex
abor1.F90
Go to the documentation of this file.
1 SUBROUTINE abor1(CDTEXT)
2 
3 USE parkind1 ,ONLY : jpim ,jprb
4 USE yomlun_ifsaux, ONLY : nulout,nulerr
5 #ifdef SFX_MPI
6 USE mpl_module, ONLY : mpl_abort, mpl_rank, mpl_numproc
7 #endif
9 #ifdef NAG
10 USE f90_unix_io, ONLY: flush
11 #endif
12 
13 IMPLICIT NONE
14 
15 CHARACTER(LEN=*), INTENT(IN) :: CDTEXT
16 INTEGER(KIND=JPIM) :: ILEN
17 
18 ilen=len(cdtext)
19 IF (nulout >= 0) WRITE(nulout,'(1X,A)') 'ABOR1 CALLED'
20 
21 IF(ilen <= 512) THEN
22  IF (nulout >= 0) WRITE(nulout,'(1X,A)') cdtext
23 #ifdef SFX_MPI
24  IF (nulerr >= 0) WRITE(nulerr,'(1X,A,1X,I3,1X,A)') 'ABORT! ',mpl_rank,cdtext
25 #else
26  IF (nulerr >= 0) WRITE(nulerr,'(1X,A,1X,A)') 'ABORT! ',cdtext
27 #endif
28 ELSE
29 #ifdef SFX_MPI
30  IF (nulerr >= 0) WRITE(nulerr,'(1X,A,1X,I3,1X,A)') 'ABORT! ',mpl_rank,&
31  & 'ABOR1 CALLED WITHOUT TEXT STRING'
32 #else
33  IF (nulerr >= 0) WRITE(nulerr,'(1X,A,1X,A)') 'ABORT! ',&
34  & 'ABOR1 CALLED WITHOUT TEXT STRING'
35 #endif
36 ENDIF
37 
38 IF (nulout >= 0) THEN
39  CALL flush(nulout)
40  IF (nulout /= 0 .AND. nulout /= 6) CLOSE(nulout)
41 ENDIF
42 
43 #ifdef SFX_MPI
44 IF (mpl_numproc > 1) THEN
45  IF(ilen <= 512) THEN
46  CALL mpl_abort(cdtext)
47  ELSE
48  CALL mpl_abort
49  ENDIF
50 ELSE
51 #endif
52  CALL sdl_traceback
53  CALL flush(0)
54  CALL sdl_srlabort
55 #ifdef SFX_MPI
56 ENDIF
57 #endif
58 
59 END SUBROUTINE abor1
60 
61 SUBROUTINE abor1fl(CDFILE, KLINENUM, CDTEXT)
62 USE parkind1 ,ONLY : jpim
63 USE yomlun_ifsaux, ONLY : nulout,nulerr
64 #ifdef NAG
65 USE f90_unix_io, ONLY: flush
66 #endif
67 IMPLICIT NONE
68 CHARACTER(LEN=*), INTENT(IN) :: CDFILE,CDTEXT
69 INTEGER(KIND=JPIM), INTENT(IN) :: KLINENUM
70 IF (len(cdfile) > 0 .AND. klinenum > 0 .AND. nulerr >= 0) THEN
71  1000 FORMAT(1x,a,a,":",i6.6)
72  WRITE(nulerr,1000) 'ABOR1FL HAS BEEN CALLED AT ',cdfile,klinenum
73  CALL flush(nulerr)
74 ENDIF
75 CALL abor1(cdtext)
76 END SUBROUTINE abor1fl
ERROR in a
Definition: ecsort_shared.h:90
integer(kind=jpim) nulout
integer, parameter jpim
Definition: parkind1.F90:13
subroutine abor1(CDTEXT)
Definition: abor1.F90:2
subroutine, public sdl_traceback(KTID)
Definition: sdl_mod.F90:32
integer(kind=jpim) nulerr
integer, parameter jprb
Definition: parkind1.F90:32
subroutine abor1fl(CDFILE, KLINENUM, CDTEXT)
Definition: abor1.F90:62
subroutine sdl_srlabort
Definition: sdl_srlabort.F90:2