LMDZ
sdl_module.F90
Go to the documentation of this file.
1 MODULE sdl_module
2 
3 ! Interface between user applications and system-dependent intrinsic
4 ! routines, provided by the computer vendors.
5 
6 ! All routines which wish to call these routines must contain:
7 ! USE SDL_MODULE
8 
9 ! Author :
10 ! ------
11 ! 11-Apr-2005 R. El Khatib *METEO-FRANCE*
12 ! 26-Apr-2006 S.T.Saarinen Dr.Hook trace, calls to EC_RAISE, Intel/ifort traceback
13 
14 USE parkind1 ,ONLY : jpim ,jprb
15 USE yomhook ,ONLY : lhook ,dr_hook
16 USE yomoml, ONLY : oml_my_thread
17 
18 IMPLICIT NONE
19 
20 SAVE
21 
22 PRIVATE
23 
24 INTEGER, parameter :: sigabrt = 6 ! Hardcoded
25 
27 
28 CONTAINS
29 
30 !-----------------------------------------------------------------------------
31 SUBROUTINE sdl_traceback(KTID)
32 
33 ! Purpose :
34 ! -------
35 ! Traceback
36 
37 ! KTID : thread
38 
39 INTEGER(KIND=JPIM), INTENT(IN), OPTIONAL :: KTID
40 CALL abor1('DANS SDL_TRACEBACK') ! MPL 8.12.08 et commente toute la suite
41 !INTEGER(KIND=JPIM) ITID, IPRINT_OPTION, ILEVEL
42 !#ifdef NECSX
43 !CHARACTER(LEN=*), PARAMETER :: CLNECMSG = '*** Calling NEC traceback ***'
44 !#endif
45 !
46 !IF (PRESENT(KTID)) THEN
47 ! ITID = KTID
48 !ELSE
49 ! ITID = OML_MY_THREAD()
50 !ENDIF
51 !
52 !IF (LHOOK) THEN
53 ! IPRINT_OPTION = 2
54 ! ILEVEL = 0
55 ! CALL C_DRHOOK_PRINT(0, ITID, IPRINT_OPTION, ILEVEL) ! from drhook.c
56 !ENDIF
57 !
58 !#ifdef VPP
59 ! CALL ERRTRA
60 ! IF (PRESENT(KTID)) CALL SLEEP(28)
61 !#elif RS6K
62 ! WRITE(0,*)'SDL_TRACEBACK: Calling XL_TRBK, THRD = ',ITID
63 ! CALL XL__TRBK()
64 ! WRITE(0,*)'SDL_TRACEBACK: Done XL_TRBK, THRD = ',ITID
65 !#elif __INTEL_COMPILER
66 ! WRITE(0,*)'SDL_TRACEBACK: Calling INTEL_TRBK, THRD = ',ITID
67 ! CALL INTEL_TRBK() ! See ifsaux/utilities/gentrbk.F90
68 ! WRITE(0,*)'SDL_TRACEBACK: Done INTEL_TRBK, THRD = ',ITID
69 !#elif defined(LINUX) || defined(SUN4)
70 ! WRITE(0,*)'SDL_TRACEBACK: Calling LINUX_TRBK, THRD = ',ITID
71 ! CALL LINUX_TRBK() ! See ifsaux/utilities/linuxtrbk.c
72 ! WRITE(0,*)'SDL_TRACEBACK: Done LINUX_TRBK, THRD = ',ITID
73 !#elif defined(NECSX)
74 ! WRITE(0,*)'SDL_TRACEBACK: Calling NEC/MESPUT, THRD = ',ITID
75 ! CALL MESPUT(CLNECMSG, LEN(CLNECMSG), 1)
76 ! WRITE(0,*)'SDL_TRACEBACK: Done NEC/MESPUT, THRD = ',ITID
77 !#else
78 ! WRITE(0,*)'SDL_TRACEBACK: No proper traceback implemented.'
79 ! ! A traceback using dbx-debugger, if available AND
80 ! ! activated via 'export DBXDEBUGGER=1'
81 ! WRITE(0,*)'SDL_TRACEBACK: Calling DBX_TRBK, THRD = ',ITID
82 ! CALL DBX_TRBK() ! See ifsaux/utilities/linuxtrbk.c
83 ! WRITE(0,*)'SDL_TRACEBACK: Done DBX_TRBK, THRD = ',ITID
84 ! ! A traceback using gdb-debugger, if available AND
85 ! ! activated via 'export GDBDEBUGGER=1'
86 ! WRITE(0,*)'SDL_TRACEBACK: Calling GDB_TRBK, THRD = ',ITID
87 ! CALL GDB_TRBK() ! See ifsaux/utilities/linuxtrbk.c
88 ! WRITE(0,*)'SDL_TRACEBACK: Done GDB_TRBK, THRD = ',ITID
89 !#endif
90 
91 END SUBROUTINE sdl_traceback
92 !-----------------------------------------------------------------------------
93 SUBROUTINE sdl_srlabort
94 
95 ! Purpose :
96 ! -------
97 ! To abort in serial environment
98 
99 !CALL EC_RAISE(SIGABRT) ! EC_RAISE remplace par ABOR1 MPL 8.12.08
100 CALL abor1('DANS SRLABORT')
101 stop 'SDL_SRLABORT'
102 
103 END SUBROUTINE sdl_srlabort
104 !-----------------------------------------------------------------------------
105 SUBROUTINE sdl_disabort(KCOMM)
107 ! Purpose :
108 ! -------
109 ! To abort in distributed environment
110 
111 ! KCOMM : communicator
112 
113 INTEGER(KIND=JPIM), INTENT(IN) :: KCOMM
114 
115 INTEGER(KIND=JPIM) :: IRETURN_CODE,IERROR
116 
117 !MPL 4.12.08
118 !#ifdef VPP
119 !
120 !CALL VPP_ABORT()
121 !
122 !#else
123 !
124 !IRETURN_CODE=1
125 !CALL MPI_ABORT(KCOMM,IRETURN_CODE,IERROR)
126 
127 !#endif
128 
129 !CALL EC_RAISE(SIGABRT) ! In case ever ends up here
130 CALL abor1('DANS SRLDISABORT') ! EC_RAISE remplace par ABOR1 MPL 8.12.08
131 stop 'SDL_DISABORT'
132 
133 END SUBROUTINE sdl_disabort
134 !-----------------------------------------------------------------------------
135 
136 END MODULE sdl_module
subroutine, public sdl_traceback(KTID)
Definition: sdl_module.F90:32
subroutine abor1(CDTEXT)
Definition: abor1.F90:2
integer, parameter sigabrt
Definition: sdl_module.F90:24
subroutine, public sdl_srlabort
Definition: sdl_module.F90:94
integer, parameter jprb
Definition: parkind1.F90:31
subroutine, public sdl_disabort(KCOMM)
Definition: sdl_module.F90:106
logical lhook
Definition: yomhook.F90:12
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
Definition: yomoml.F90:1
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim) function, public oml_my_thread()
Definition: yomoml.F90:192