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
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
24 REAL(dp) :: total_time
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
38 REAL(dp) :: converge_diagonal_time
39 REAL(dp) :: converge_blocks_time
41 REAL(dp) :: diag_evolve_time
42 REAL(dp) :: block_evolve_time
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
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
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
69 REAL(dp) :: sendrecv_time
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
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
98 SUBROUTINE init_timers
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
112 END SUBROUTINE init_timers
114 SUBROUTINE sks_timers
116 construct_hessian_time=0
117 asymmetry_check_time=0
118 block_factorization_time=0
119 hessian_funct_island_time=0
130 END SUBROUTINE sks_timers