Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ctimer_mod.F90
Go to the documentation of this file.
1 module ctimer
2  use kinds, only : dp, i8
3  implicit none
4 
5  REAL(DP) :: tmxmf,tmxms,tdsum,tcopy,tinvc,tinv3
6  REAL(DP) :: tsolv,tgsum,tdsnd,tdadd,tcdtp,tmltd &
7  ,tpres,tgop ,tgop1,tdott,tbsol,tbso2 &
8  ,tsett,tslvb,tusbc,tddsl,tcrsl,tdsmx,tdsmn &
9  ,tgsmn,tgsmx,teslv,tbbbb,tcccc,tdddd,teeee &
10  ,tvdss,tspro,tgop_sync,tsyc &
11  ,twal
12  real(DP), save :: tproj = 0._dp
13  real(DP), save :: thconj = 0._dp
14  real(DP), save :: taxhm = 0._dp
15  real(DP), save :: tcggo = 0._dp
16  real(DP), save :: tsetfast = 0._dp
17  real(DP), save :: tintp = 0._dp
18  real(DP), save :: tgrst = 0._dp
19  real(DP), save :: tdpc = 0._dp
20  real(DP), save :: tgmres = 0._dp
21  real(DP), save :: th1mg = 0._dp
22  real(DP), save :: tscps = 0._dp
23  real(DP), save :: tcrespsp = 0._dp
24  real(DP), save :: tcresvsp = 0._dp
25  real(DP), save :: theat2 = 0._dp
26  real(DP), save :: tp4misc = 0._dp
27  real(DP), save :: tmakef = 0._dp
28  real(DP), save :: tmakeq = 0._dp
29  real(DP), save :: tprep = 0._dp
30  real(DP), save :: tscn = 0._dp
31  real(DP), save :: tmg_mask = 0._dp
32  real(DP), save :: tschw = 0._dp
33  real(DP), save :: tnmsc = 0._dp
34  real(DP), save :: tnmvc = 0._dp
35  real(DP), save :: tadvc = 0._dp
36  real(DP), save :: thmhz = 0._dp
37  real(DP), save :: tfoo = 0._dp
38 
39  integer, save :: nproj = 0
40  integer, save :: nhconj = 0
41  integer, save :: naxhm = 0
42  integer, save :: ncggo = 0
43  integer, save :: nsetfast = 0
44  integer, save :: nintp = 0
45  integer, save :: ngrst = 0
46  integer, save :: ndpc = 0
47  integer, save :: ngmres = 0
48  integer, save :: nh1mg = 0
49  integer, save :: nscps = 0
50  integer, save :: ncrespsp = 0
51  integer, save :: ncresvsp = 0
52  integer, save :: nheat2 = 0
53  integer, save :: np4misc = 0
54  integer, save :: nmakef = 0
55  integer, save :: nmakeq = 0
56  integer, save :: nprep = 0
57  integer, save :: nscn = 0
58  integer, save :: nmg_mask = 0
59  integer, save :: nschw = 0
60  integer, save :: nnmsc = 0
61  integer, save :: nnmvc = 0
62  integer, save :: nadvc = 0
63  integer, save :: nhmhz = 0
64  integer, save :: nfoo = 0
65 
66  integer :: nmxmf,nmxms,ndsum,ncopy,ninvc,ninv3
67  integer :: nsolv,ngsum,ndsnd,ndadd,ncdtp,nmltd &
68  ,npres,ngop ,ngop1,ndott,nbsol,nbso2 &
69  ,nsett,nslvb,nusbc,nddsl,ncrsl,ndsmx,ndsmn &
70  ,ngsmn,ngsmx,neslv,nbbbb,ncccc,ndddd,neeee &
71  ,nvdss,nspro,ngop_sync,nsyc,nwal
72 
73  REAL(DP) :: pmxmf,pmxms,pdsum,paxhm,pcopy,pinvc,pinv3
74  REAL(DP) :: psolv,pgsum,pdsnd,pdadd,pcdtp,pmltd &
75  ,ppres,phmhz,pgop ,pgop1,pdott,pbsol,pbso2 &
76  ,psett,pslvb,pusbc,pddsl,pcrsl,pdsmx,pdsmn &
77  ,pgsmn,pgsmx,peslv,pbbbb,pcccc,pdddd,peeee &
78  ,pvdss,pspro,pgop_sync,psyc,pwal
79 
80  REAL(DP) :: etime1,etime2,etime0,gtime1,tscrtch
81 
82  real(DP) :: etimes,ttotal,tttstp,etims0,ttime
83 
84  integer, save :: icalld = 0
85 
86  logical :: ifsync
87 
88  real(DP), save :: time_flop = 0._dp
89  integer(i8), save :: total_flop, total_mop
90  integer(i8), save :: axhelm_flop = 0, axhelm_mop = 0
91  integer(i8), save :: h1mg_flop = 0, h1mg_mop = 0
92  integer(i8), save :: schw_flop = 0, schw_mop = 0
93  integer(i8), save :: hconj_flop = 0, hconj_mop = 0
94  integer(i8), save :: proj_flop = 0, proj_mop = 0
95  integer(i8), save :: cggo_flop = 0, cggo_mop = 0
96  integer(i8), save :: gmres_flop = 0, gmres_mop = 0
97  integer(i8), save :: intp_flop = 0, intp_mop = 0
98  integer(i8), save :: grst_flop = 0, grst_mop = 0
99 
100 contains
101 
102 !-----------------------------------------------------------------------
103 real(DP) function dnekclock()
104  use mpif, only : mpi_wtime
105  implicit none
106 
108 
109  return
110 END function
111 
112 !-----------------------------------------------------------------------
113 real(DP) function dnekclock_sync()
114  use mpif, only : mpi_wtime
115  implicit none
116 
117  call nekgsync()
119 
120  return
121 END function
122 
123 !-----------------------------------------------------------------------
124 subroutine sum_flops()
125  implicit none
126  total_flop = axhelm_flop + proj_flop + hconj_flop + cggo_flop + gmres_flop &
127  + intp_flop + grst_flop + h1mg_flop + schw_flop
128  total_mop = axhelm_mop + proj_mop + hconj_mop + cggo_mop + gmres_mop &
129  + intp_mop + grst_mop + h1mg_mop + schw_mop
130  time_flop = taxhm + tproj + thconj + tcggo + tgmres + tintp + tgrst + th1mg + tschw
131 end subroutine sum_flops
132 
133 
134 end module ctimer
subroutine sum_flops()
Definition: ctimer_mod.F90:124
real(dp) function dnekclock_sync()
Definition: ctimer_mod.F90:113
real(dp) function dnekclock()
Definition: ctimer_mod.F90:103
subroutine nekgsync()
Definition: comm_mpi.F90:318
Definition: mpif.F90:1
real *8 function mpi_wtime()
Definition: mpi_dummy.F90:1031