V3FIT
timer_mod.f90
1  MODULE timer_mod
2  USE stel_kinds
3  IMPLICIT NONE
4 
5  REAL(dp) :: time_total, time_init, time_diag_prec, &
6  time_block_prec, time_toijsp, time_tomnsp, &
7  time_update_bfield, time_update_force, &
8  time_update_pres, time_apply_precon, time_update_upperv,&
9  time_factor_blocks, time_update_state, &
10  time_current, time_init_state, time_generate_blocks, &
11  time_funci, conj_grad_time
12  REAL :: time_divb=0, time_divj=0, time_bgradp=0, time_bdotj=0
13  REAL(dp) :: gmres_time
14  REAL(dp) :: get_force_harmonics_time
15  REAL(dp) :: comp_diag_elements_time
16  REAL(dp) :: compute_hessian_time
17  REAL(dp) :: diag_add_pert_time=0
18  REAL(dp) :: block_add_pert_time=0
19 
20  REAL(dp) :: evolve_funct_island_time=0
21  REAL(dp) :: evolve_restart_file_time=0
22  REAL(dp) :: evolve_add_resistive_E_time=0
23 
24  REAL(dp) :: total_time
25 
26  REAL(dp) :: init_data_time
27  REAL(dp) :: init_metric_elements_time
28  REAL(dp) :: test_fourier_time
29  REAL(dp) :: init_quantities_time
30  REAL(dp) :: init_timers_time
31  REAL(dp) :: read_wout_file_time
32  REAL(dp) :: init_evolution_time
33  REAL(dp) :: Spline_Fourier_Modes_time
34  REAL(dp) :: Add_Ghost_Points_time
35  REAL(dp) :: Spline_OneD_Array_time
36  REAL(dp) :: LoadRZL_VMEC_time
37 
38  REAL(dp) :: converge_diagonal_time
39  REAL(dp) :: converge_blocks_time
40 
41  REAL(dp) :: diag_evolve_time
42  REAL(dp) :: block_evolve_time
43 
44  REAL(dp) :: construct_hessian_time
45  REAL(dp) :: asymmetry_check_time
46  REAL(dp) :: block_factorization_time
47  REAL(dp) :: hessian_funct_island_time
48  REAL(dp) :: cv_current_time
49  REAL(dp) :: bhtobf_time
50  REAL(dp) :: toijsp_time
51  REAL(dp) :: tomnsp_time
52  REAL(dp) :: to_full_mesh_time
53 
54  REAL(dp) :: gmres_funct_island_time
55  REAL(dp) :: gmres_init_dgmres_time
56  REAL(dp) :: gmres_wrap_time
57  REAL(dp) :: gmresr_time
58 
59  REAL(dp) :: drive_dgmres_time
60  REAL(dp) :: ParyAx_time
61  REAL(dp) :: dcopy_time
62  REAL(dp) :: apply_precond_time
63  REAL(dp) :: dgemv_time
64  REAL(dp) :: getnlforce_time
65  REAL(dp) :: gmres_wrap_allgather_time
66  REAL(dp) :: gmres_wrap_allreduce_time
67  REAL(dp) :: matvec_funct_island_time
68 
69  REAL(dp) :: sendrecv_time
70 
71 
72  REAL(dp) :: time_total_max, time_total_min
73  REAL(dp) :: construct_hessian_time_max, construct_hessian_time_min
74  REAL(dp) :: asymmetry_check_time_max, asymmetry_check_time_min
75  REAL(dp) :: block_factorization_time_max, block_factorization_time_min
76  REAL(dp) :: hessian_funct_island_time_max, hessian_funct_island_time_min
77  REAL(dp) :: update_upperv_time_max, update_upperv_time_min
78  REAL(dp) :: init_state_time_max, init_state_time_min
79  REAL(dp) :: update_bfield_time_max, update_bfield_time_min
80  REAL(dp) :: update_pres_time_max, update_pres_time_min
81  REAL(dp) :: update_force_time_max, update_force_time_min
82  REAL(dp) :: residual_funct_island_time_max, residual_funct_island_time_min
83  REAL(dp) :: cv_currents_time_max, cv_currents_time_min
84  REAL(dp) :: get_force_harmonics_time_max, get_force_harmonics_time_min
85  REAL(dp) :: bhtobf_time_max, bhtobf_time_min
86  REAL(dp) :: tomnsp_time_max, tomnsp_time_min
87  REAL(dp) :: toijsp_time_max, toijsp_time_min
88  REAL(dp) :: to_full_mesh_time_max, to_full_mesh_time_min
89  REAL(dp) :: total_time_max, total_time_min
90  REAL(dp) :: sendrecv_time_max, sendrecv_time_min
91 
92  REAL(dp) :: gmres_time_max, gmres_time_min
93  REAL(dp) :: gmres_wrap_time_max, gmres_wrap_time_min
94  REAL(dp) :: ParyAx_time_max, ParyAx_time_min
95 
96  CONTAINS
97 
98  SUBROUTINE init_timers
99 !
100 ! Initialize timer counters
101 !
102  time_diag_prec=0; time_block_prec=0
103  time_toijsp=0; time_tomnsp=0
104  time_update_bfield=0; time_update_force=0; time_update_pres=0
105  time_update_upperv=0; time_update_state=0; time_apply_precon=0
106  time_factor_blocks=0; time_init_state=0
107  time_generate_blocks=0; time_funci=0;
108  time_current=0; gmres_time=0; conj_grad_time=0
109  get_force_harmonics_time=0
110  comp_diag_elements_time=0; compute_hessian_time=0
111 
112  END SUBROUTINE init_timers
113 
114  SUBROUTINE sks_timers
115  total_time=0
116  construct_hessian_time=0
117  asymmetry_check_time=0
118  block_factorization_time=0
119  hessian_funct_island_time=0
120  cv_current_time=0
121  bhtobf_time=0
122  toijsp_time=0
123  tomnsp_time=0
124  to_full_mesh_time=0
125  gmres_wrap_time=0
126  paryax_time=0
127 
128  sendrecv_time=0
129 
130  END SUBROUTINE sks_timers
131 
132  END MODULE timer_mod