SURFEX v8.1
General documentation of Surfex
gstats_setup.F90
Go to the documentation of this file.
1 SUBROUTINE gstats_setup( KPROC,KMYPROC,KPRCIDS,&
2  & LDSTATS,LDSTATSCPU,LDSYNCSTATS,LDDETAILED_STATS,LDBARRIER_STATS,LDBARRIER_STATS2,&
3  & LDSTATS_OMP,LDSTATS_COMMS,LDSTATS_MEM,KSTATS_MEM,LDSTATS_ALLOC,&
4  & LDTRACE_STATS,KTRACE_STATS,KPRNT_STATS,LDXML_STATS,LDSTATS_MPL)
5 
6 !**** *GSTATS_SETUP* - Setup stats package
7 
8 ! PURPOSE.
9 ! --------
10 ! Setup gstats package
11 
12 
13 !** INTERFACE.
14 ! ----------
15 ! *CALL* *GSTATS_SETUP
16 
17 ! EXPLICIT ARGUMENTS None
18 ! --------------------
19 
20 ! IMPLICIT ARGUMENTS
21 ! --------------------
22 ! Module YOMSTATS
23 
24 ! METHOD.
25 ! -------
26 
27 
28 ! EXTERNALS. USER_CLOCK - timing routine
29 ! ----------
30 
31 ! REFERENCE.
32 ! ----------
33 ! ECMWF Research Department documentation of the IFS
34 
35 ! AUTHOR.
36 ! -------
37 ! Mats Hamrud ECMWF
38 
39 ! MODIFICATIONS.
40 ! --------------
41 ! ORIGINAL : 98-11-15
42 ! ------------------------------------------------------------------
43 
44 USE parkind1 ,ONLY : jpim ,jprb
45 
46 USE yomgstats
47 #ifdef SFX_MPI
48 USE mpl_stats_mod
49 #endif
50 IMPLICIT NONE
51 
52 LOGICAL :: LDSTATS
53 LOGICAL :: LDSTATSCPU
54 LOGICAL :: LDSYNCSTATS
55 LOGICAL :: LDDETAILED_STATS
56 LOGICAL :: LDBARRIER_STATS
57 LOGICAL :: LDBARRIER_STATS2
58 LOGICAL :: LDSTATS_OMP
59 LOGICAL :: LDSTATS_COMMS
60 LOGICAL :: LDTRACE_STATS
61 INTEGER(KIND=JPIM) :: KTRACE_STATS
62 INTEGER(KIND=JPIM) :: KPROC,KMYPROC
63 INTEGER(KIND=JPIM) :: KPRCIDS(kproc)
64 INTEGER(KIND=JPIM) :: KSTATS_MEM
65 INTEGER(KIND=JPIM) :: KPRNT_STATS
66 LOGICAL :: LDSTATS_MEM
67 LOGICAL :: LDSTATS_ALLOC
68 LOGICAL :: LDXML_STATS
69 LOGICAL :: LDSTATS_MPL
70 ! ------------------------------------------------------------------
71 
72 lstats = ldstats
73 lstatscpu = ldstatscpu
74 lsyncstats = ldsyncstats
75 ldetailed_stats=lddetailed_stats
76 lbarrier_stats=ldbarrier_stats
77 lbarrier_stats2=ldbarrier_stats2
78 lxml_stats=ldxml_stats
79 lstats_omp = ldstats_omp
80 lstats_comms = ldstats_comms
81 nstats_mem = kstats_mem
82 lstats_mem = ldstats_mem
83 lstats_alloc = ldstats_alloc
84 ltrace_stats = ldtrace_stats
85 IF(ltrace_stats) ntrace_stats = ktrace_stats
86 
87 myproc_stats = kmyproc
88 nproc_stats = kproc
89 ALLOCATE(nprcids_stats(nproc_stats))
90 nprcids_stats(:) = kprcids(1:nproc_stats)
91 IF(nproc_stats == 1) lsyncstats = .false.
92 
93 IF (ltrace_stats .AND. ntrace_stats>0 ) THEN
94  ALLOCATE(ncall_trace(ntrace_stats))
95  ALLOCATE(time_trace(ntrace_stats))
96  ncall_trace(:) = 0
97  time_trace(:) = 0.0_jprb
98 ENDIF
99 
100 
101 IF(lbarrier_stats) THEN
102  lstats_mpl=.true.
103  ALLOCATE(numsend(501:1000))
104  ALLOCATE(numrecv(501:1000))
105  ALLOCATE(sendbytes(501:1000))
106  ALLOCATE(recvbytes(501:1000))
107  ALLOCATE(unknown_numsend(501:1000))
108  ALLOCATE(unknown_numrecv(501:1000))
109  ALLOCATE(unknown_sendbytes(501:1000))
110  ALLOCATE(unknown_recvbytes(501:1000))
111  numsend(:)=0
112  numrecv(:)=0
113  sendbytes(:)=0
114  recvbytes(:)=0
115  unknown_numsend(:)=0
116  unknown_numrecv(:)=0
117  unknown_sendbytes(:)=0
118  unknown_recvbytes(:)=0
119 #ifdef SFX_MPI
120  CALL mpl_statsinit
121 #endif
122 ENDIF
123 
124 nprnt_stats=kprnt_stats
125 
126 ! write(0,*) "GSTATS_SETUP: NPRNT_STATS=",NPRNT_STATS
127 
128 RETURN
129 END SUBROUTINE gstats_setup
130 
131 
real(kind=jprb), dimension(:), allocatable unknown_recvbytes
Definition: yomgstats.F90:90
integer(kind=jpim) myproc_stats
Definition: yomgstats.F90:121
real(kind=jprd), dimension(:), allocatable time_trace
Definition: yomgstats.F90:107
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim), dimension(:), allocatable numrecv
Definition: yomgstats.F90:84
real(kind=jprb), dimension(:), allocatable sendbytes
Definition: yomgstats.F90:85
integer(kind=jpim) nproc_stats
Definition: yomgstats.F90:120
integer(kind=jpim) nstats_mem
Definition: yomgstats.F90:125
integer(kind=jpim), dimension(:), allocatable unknown_numrecv
Definition: yomgstats.F90:88
logical lxml_stats
Definition: yomgstats.F90:61
integer(kind=jpim) ntrace_stats
Definition: yomgstats.F90:73
integer(kind=jpim), dimension(:), allocatable ncall_trace
Definition: yomgstats.F90:82
logical lstats_alloc
Definition: yomgstats.F90:58
logical lbarrier_stats2
Definition: yomgstats.F90:64
integer, parameter jprb
Definition: parkind1.F90:32
subroutine gstats_setup(KPROC, KMYPROC, KPRCIDS, LDSTATS, LDSTATSCPU, LDSYNCSTATS, LDDETAILED_STATS, LDBARRIER_STATS, LDBARRIER_STATS2, LDSTATS_OMP, LDSTATS_COMMS, LDSTATS_MEM, KSTATS_MEM, LDSTATS_ALLOC, LDTRACE_STATS, KTRACE_STATS, KPRNT_STATS, LDXML_STATS, LDSTATS_MPL)
Definition: gstats_setup.F90:5
logical ltrace_stats
Definition: yomgstats.F90:65
real(kind=jprb), dimension(:), allocatable unknown_sendbytes
Definition: yomgstats.F90:89
logical lsyncstats
Definition: yomgstats.F90:60
logical lstatscpu
Definition: yomgstats.F90:59
logical lstats_mpl
Definition: yomgstats.F90:56
integer(kind=jpim), dimension(:), allocatable nprcids_stats
Definition: yomgstats.F90:122
integer(kind=jpim) nprnt_stats
Definition: yomgstats.F90:127
logical lstats_comms
Definition: yomgstats.F90:55
integer(kind=jpim), dimension(:), allocatable unknown_numsend
Definition: yomgstats.F90:87
real(kind=jprb), dimension(:), allocatable recvbytes
Definition: yomgstats.F90:86
logical lbarrier_stats
Definition: yomgstats.F90:63
logical ldetailed_stats
Definition: yomgstats.F90:62
logical lstats_omp
Definition: yomgstats.F90:54
subroutine, public mpl_statsinit
logical lstats
Definition: yomgstats.F90:53
logical lstats_mem
Definition: yomgstats.F90:57
integer(kind=jpim), dimension(:), allocatable numsend
Definition: yomgstats.F90:83