SURFEX v8.1
General documentation of Surfex
gentrbk.F90
Go to the documentation of this file.
1 !-- Generic traceback calls here
2 
3 SUBROUTINE gentrbk_dummy
4 END SUBROUTINE gentrbk_dummy
5 
6 #ifdef __INTEL_COMPILER
7 SUBROUTINE intel_trbk()
8 USE ifcore
9 #ifdef SFX_MPI
10 USE mpl_module, ONLY : mpl_myrank
11 #endif
12 CHARACTER*80 MESSAGE
13 LOGICAL :: DONE_TRACEBACK = .false.
14 INTEGER :: MYPROC,MYTHREAD
15 
16 #ifdef _OPENMP
17 INTEGER,EXTERNAL :: OMP_GET_THREAD_NUM
18 #endif
19 
20 IF(done_traceback) THEN
21  WRITE(0,*) "INTEL_TRBK already called"
22  RETURN
23 ENDIF
24 #ifdef SFX_MPI
25 myproc=mpl_myrank()
26 #else
27 myproc=0
28 #endif
29 #ifdef _OPENMP
30 mythread=omp_get_thread_num() + 1
31 #else
32 mythread=1
33 #endif
34 
35 #ifndef BOM
36  WRITE(message,'(A,I4,A,I2,A)') &
37  & "Process ",myproc," thread ",mythread, &
38  & " calling tracebackqq from intel_trbk()"
39 #ifndef __INTEL_COMPILER
40  CALL tracebackqq(message, user_exit_code=-1)
41 #endif
42 #endif
43 #ifdef LINUX
44  WRITE(0,*) "Process ",myproc," thread ",mythread, &
45  & " calling linux_trbk from intel_trbk()"
46  CALL linux_trbk() ! See ifsaux/utilities/linuxtrbk.c
47 #endif
48 done_traceback=.true.
49 END SUBROUTINE intel_trbk
50 #endif
51 
52 #ifndef VPP
53 SUBROUTINE errtra
54 END SUBROUTINE errtra
55 #endif
56 
57 #ifdef NECSX
58 SUBROUTINE necsx_trbk(CDMESS)
59 IMPLICIT NONE
60 CHARACTER(LEN=*), INTENT(IN) :: CDMESS
61 CALL mesput(cdmess, len(cdmess), 1)
62 CALL dbx_trbk()
63 END SUBROUTINE necsx_trbk
64 
65 SUBROUTINE necsx_trbk_fl(CDMESS, CDFILENAME, KLINENO)
66 USE parkind1 ,ONLY : jpim
67 IMPLICIT NONE
68 CHARACTER(LEN=*), INTENT(IN) :: CDMESS
69 CHARACTER(LEN=*), INTENT(IN) :: CDFILENAME
70 INTEGER(KIND=JPIM), INTENT(IN) :: KLINENO
71 CHARACTER(LEN=LEN(CDMESS)+LEN(CDFILENAME)+30) CLOCAL
72 WRITE(clocal,'(a," at ",a,":",i6.6)') trim(cdmess),trim(cdfilename),klineno
73 CALL necsx_trbk(trim(clocal))
74 END SUBROUTINE necsx_trbk_fl
75 #endif
subroutine necsx_trbk_fl(CDMESS, CDFILENAME, KLINENO)
Definition: gentrbk.F90:66
void dbx_trbk()
Definition: linuxtrbk.c:487
integer, parameter jpim
Definition: parkind1.F90:13
subroutine errtra
Definition: gentrbk.F90:54
void linux_trbk(void)
Definition: linuxtrbk.c:391
subroutine necsx_trbk(CDMESS)
Definition: gentrbk.F90:59
subroutine intel_trbk()
Definition: gentrbk.F90:8
subroutine gentrbk_dummy
Definition: gentrbk.F90:4