@@ -21,16 +21,21 @@ program io_demo
2121 log_level_trace, &
2222 log_scratch_space
2323 use random_number_generator_mod, only : random_number_generator_type
24- use io_demo_mod, only : io_demo_required_namelists
25- use io_demo_driver_mod, only : initialise, step, finalise
24+ use io_demo_mod, only : io_demo_required_namelists
25+ use io_demo_driver_mod, only : initialise, step, finalise
26+ use timing_mod, only : init_timing, final_timing
27+ use io_config_mod, only : timer_output_path
28+ use namelist_mod, only : namelist_type
2629
2730 implicit none
2831
2932 ! The technical and scientific state
30- type (modeldb_type) :: modeldb
31- character (* ), parameter :: program_name = " io_demo"
32- character (:), allocatable :: filename
33- integer , parameter :: default_seed = 123456789
33+ type (modeldb_type) :: modeldb
34+ character (* ), parameter :: program_name = " io_demo"
35+ character (:), allocatable :: filename
36+ type (namelist_type), pointer :: io_nml
37+ logical :: lsubroutine_timers
38+ integer , parameter :: default_seed = 123456789
3439 type (random_number_generator_type), pointer :: rng
3540
3641 call parse_command_line( filename )
@@ -49,6 +54,10 @@ program io_demo
4954 deallocate ( filename )
5055
5156 call init_logger( modeldb% mpi% get_comm(), program_name )
57+ io_nml = > modeldb% configuration% get_namelist(' io' )
58+ call io_nml% get_value(' subroutine_timers' , lsubroutine_timers)
59+ call init_timing( modeldb% mpi% get_comm(), lsubroutine_timers, program_name, timer_output_path )
60+ nullify( io_nml )
5261 call init_collections()
5362 call init_time(modeldb)
5463
@@ -70,6 +79,7 @@ program io_demo
7079 call finalise( program_name, modeldb )
7180 call final_time(modeldb)
7281 call final_collections()
82+ call final_timing( program_name )
7383 call final_logger( program_name )
7484 call final_config()
7585 call final_comm( modeldb )
0 commit comments