29 #include "dimensions.h"
57 stop
'start_timer :: timer is already running or suspended'
75 stop
'suspend_timer :: timer is not running'
92 stop
'resume_timer :: timer is not suspended'
112 stop
'stop_timer :: timer is not running'
145 real,
allocatable,
dimension(:,:) :: tmp_table
158 call mpi_allgather(tmp_table(1,1),data_size,mpi_real_lmdz,
timer_table(1,1,0),data_size,mpi_real_lmdz,comm_lmdz,ierr)
162 call mpi_allgather(tmp_table(1,1),data_size,mpi_real_lmdz,
timer_table_sqr(1,1,0),data_size,mpi_real_lmdz,comm_lmdz,ierr)
164 deallocate(tmp_table)
180 real,
allocatable,
dimension(:,:),
target :: tmp_table
181 integer,
allocatable,
dimension(:,:),
target :: tmp_iter
195 call mpi_allgather(tmp_table(1,1),data_size,mpi_real_lmdz,
timer_average(1,1,0),data_size,mpi_real_lmdz,comm_lmdz,ierr)
199 call mpi_allgather(tmp_table(1,1),data_size,mpi_real_lmdz,
timer_delta(1,1,0),data_size,mpi_real_lmdz,comm_lmdz,ierr)
203 call mpi_allgather(tmp_iter(1,1),data_size,mpi_integer,
timer_iteration(1,1,0),data_size,mpi_integer,comm_lmdz,ierr)
205 deallocate(tmp_table)
214 integer :: count,count_rate,count_max
218 call system_clock(count,count_rate,count_max)
226 double precision :: DiffTime
227 integer :: count,count_rate,count_max
229 call system_clock(count,count_rate,count_max)
233 difftime=(1.*(count-
last_count+count_max))/count_rate
real, dimension(:), allocatable last_time
integer, parameter timer_physic
integer, parameter suspended
subroutine stop_timer(no_timer)
real, dimension(:), allocatable timer_running
double precision function difftime()
real, dimension(:,:,:), allocatable timer_average
integer, save, private last_count
integer, parameter timer_caldyn
subroutine resume_timer(no_timer)
subroutine allgather_timer_average
real, dimension(:,:,:), allocatable timer_table
integer, dimension(:,:,:), allocatable timer_iteration
integer, parameter timer_dissip
logical, save, private alltimer_isactive
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
real, dimension(:,:,:), allocatable timer_delta
integer, parameter stopped
integer, parameter running
real, dimension(:,:,:), allocatable timer_table_sqr
real function diffcputime()
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
subroutine allgather_timer
real, save, private last_cpucount
subroutine suspend_timer(no_timer)
subroutine start_timer(no_timer)
integer, dimension(:), allocatable timer_state
integer, parameter nb_timer
integer, parameter timer_vanleer