Skip to content

Commit 2772a60

Browse files
committed
Switch to DR_HOOK timers
1 parent fb0a8b6 commit 2772a60

6 files changed

+46
-52
lines changed

src/ecwam/proenvhalo.F90

+3-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
3030
USE YOWGRID , ONLY : NPROMA_WAM, NCHNK, KIJL4CHNK, IJFROMCHNK
3131
USE YOWPARAM , ONLY : NFRE , NFRE_RED
3232
USE YOWSHAL , ONLY : BATHYMAX
33-
USE YOWSTAT , ONLY : MPI_TIME
3433

3534
USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
3635
USE YOWDRVTYPE, ONLY: ENVIRONMENT, FREQUENCY
@@ -40,7 +39,6 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
4039
IMPLICIT NONE
4140

4241
#include "mpexchng.intfb.h"
43-
#include "wam_user_clock.intfb.h"
4442

4543
INTEGER(KIND=JWIM), INTENT(IN) :: NINF, NSUP ! HALO EXTEND NINF to NSUP+1
4644

@@ -52,8 +50,7 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
5250
INTEGER(KIND=JWIM) :: IJ, M
5351
INTEGER(KIND=JWIM) :: ICHNK, KIJS, KIJL, IJSB, IJLB
5452

55-
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
56-
REAL(KIND=JWRB) :: TIME0
53+
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE, ZHOOK_HANDLE_MPI
5754

5855
! ----------------------------------------------------------------------
5956

@@ -95,9 +92,9 @@ SUBROUTINE PROENVHALO (NINF, NSUP, &
9592
#ifdef WAM_GPU
9693
CALL WVPRPT_LAND%GET_DEVICE_DATA_RDONLY()
9794
#endif
98-
TIME0=-WAM_USER_CLOCK()
95+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',0,ZHOOK_HANDLE_MPI)
9996
CALL MPEXCHNG(BUFFER_EXT, 3*NFRE_RED+5, 1, 1)
100-
MPI_TIME = MPI_TIME + (TIME0+WAM_USER_CLOCK())*1.E-06
97+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',1,ZHOOK_HANDLE_MPI)
10198
!$acc kernels present(WVPRPT_LAND)
10299
BUFFER_EXT(NSUP+1,1:NFRE_RED) = WVPRPT_LAND%WAVNUM(1:NFRE_RED)
103100
BUFFER_EXT(NSUP+1,NFRE_RED+1:2*NFRE_RED) = WVPRPT_LAND%CGROUP(1:NFRE_RED)

src/ecwam/propag_wam.F90

+6-8
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
4747
USE YOWMPP , ONLY : NINF ,NSUP
4848
USE YOWPARAM , ONLY : NANG ,NFRE ,NFRE_RED ,LLUNSTR
4949
USE YOWREFD , ONLY : LLUPDTTD ,THDD ,THDC ,SDOT
50-
USE YOWSTAT , ONLY : IPROPAGS ,IFRELFMAX, DELPRO_LF, IDELPRO, MPI_TIME
50+
USE YOWSTAT , ONLY : IPROPAGS ,IFRELFMAX, DELPRO_LF, IDELPRO
5151
USE YOWUBUF , ONLY : LUPDTWGHT
5252
#ifdef WAM_HAVE_UNWAM
5353
USE UNWAM , ONLY : PROPAG_UNWAM
@@ -70,7 +70,6 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
7070
#include "propags1.intfb.h"
7171
#include "propags2.intfb.h"
7272
#include "propdot.intfb.h"
73-
#include "wam_user_clock.intfb.h"
7473

7574
TYPE(WVGRIDGLO), INTENT(IN) :: BLK2GLO
7675
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NANG, NFRE, NCHNK), INTENT(INOUT) :: FL1
@@ -83,8 +82,7 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
8382
INTEGER(KIND=JWIM) :: NSTEP_LF, ISUBST
8483
INTEGER(KIND=JWIM) :: IJSG, IJLG, ICHNK, KIJS, KIJL, IJSB, IJLB
8584

86-
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
87-
REAL(KIND=JWRB) :: TIME0
85+
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE, ZHOOK_HANDLE_MPI
8886

8987
! Spectra extended with the halo exchange for the propagation
9088
! But limited to NFRE_RED frequencies
@@ -161,9 +159,9 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
161159

162160
! OBTAIN INFORMATION AT NEIGHBORING GRID POINTS (HALO)
163161
! ----------------------------------------------------
164-
TIME0=-WAM_USER_CLOCK()
162+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',0,ZHOOK_HANDLE_MPI)
165163
CALL MPEXCHNG(FL1_EXT, NANG, 1, NFRE_RED)
166-
MPI_TIME = MPI_TIME + (TIME0+WAM_USER_CLOCK())*1.E-06
164+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',1,ZHOOK_HANDLE_MPI)
167165

168166

169167
CALL GSTATS(1430,0)
@@ -271,9 +269,9 @@ SUBROUTINE PROPAG_WAM (BLK2GLO, WAVNUM, CGROUP, OMOSNH2KD, FL1, &
271269
!$OMP END PARALLEL DO
272270
#endif /*_OPENACC*/
273271

274-
TIME0=-WAM_USER_CLOCK()
272+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',0,ZHOOK_HANDLE_MPI)
275273
CALL MPEXCHNG(FL1_EXT(:,:,1:IFRELFMAX), NANG, 1, IFRELFMAX)
276-
MPI_TIME = MPI_TIME + (TIME0+WAM_USER_CLOCK())*1.E-06
274+
IF (LHOOK) CALL DR_HOOK('MPI_TIME',1,ZHOOK_HANDLE_MPI)
277275

278276
#ifndef _OPENACC
279277
!$OMP PARALLEL DO SCHEDULE(STATIC,1) PRIVATE(JKGLO, KIJS, KIJL)

src/ecwam/runwam.F90

+1-23
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ SUBROUTINE RUNWAM
102102
USE YOWMPP , ONLY : IRANK ,NPROC
103103
USE YOWSTAT , ONLY : CDATEE ,CDTPRO , &
104104
& IPROPAGS ,LSUBGRID ,IREFRA ,IDELPRO, TIME_PHYS, &
105-
& TIME_PROPAG, MODEL_TIME, IO_TIME, MPI_TIME
105+
& TIME_PROPAG
106106
USE YOWWAMI , ONLY : CBPLTDT ,CEPLTDT
107107
USE YOWALTAS , ONLY : LODBRALT
108108
USE MPL_MODULE, ONLY : MPL_INIT, MPL_END, MPL_COMM
@@ -390,21 +390,10 @@ SUBROUTINE RUNWAM
390390
WRITE (IU06,'(A)') ' ++++++++++++++++++++++++++++++'
391391
WRITE (IU06,'(A)') ' + TOTAL USER TIME IN SECONDS +'
392392
WRITE (IU06,'(A,F18.2,A)') ' + ', time, ' +'
393-
WRITE (IU06,'(A)') ' + MODEL TIME +'
394-
WRITE (IU06,'(A,F18.2,A)') ' + ', MODEL_TIME, ' +'
395-
WRITE (IU06,'(A)') ' + IO TIME +'
396-
WRITE (IU06,'(A,F18.2,A)') ' + ', IO_TIME, ' +'
397-
WRITE (IU06,'(A)') ' + MPI TIME +'
398-
WRITE (IU06,'(A,F18.2,A)') ' + ', MPI_TIME, ' +'
399393
WRITE (IU06,'(A)') ' + WAVE PROPAGATION TIME +'
400394
WRITE (IU06,'(A,F18.2,A)') ' + ', TIME_PROPAG, ' +'
401-
#if defined(WAM_GPU)
402395
WRITE (IU06,'(A)') ' + SOURCE TERM TIME +'
403396
WRITE (IU06,'(A,F18.2,A)') ' + ', TIME_PHYS, ' +'
404-
#else
405-
WRITE (IU06,'(A)') ' + SOURCE TERM TIME +'
406-
WRITE (IU06,'(A,F18.2,A)') ' + ', TIME_PHYS, ' +'
407-
#endif
408397
WRITE (IU06,'(A)') ' + +'
409398
WRITE (IU06,'(A,I8,A)') ' + ON PE : ', IRANK, ' +'
410399
WRITE (IU06,'(A)') ' ++++++++++++++++++++++++++++++'
@@ -413,20 +402,9 @@ SUBROUTINE RUNWAM
413402
WRITE (6,'(A)') ' + TOTAL USER TIME IN SECONDS +'
414403
WRITE (6,'(A,F18.2,A)') ' + ', time, ' +'
415404
WRITE (6,'(A)') ' + MODEL TIME +'
416-
WRITE (6,'(A,F18.2,A)') ' + ', MODEL_TIME, ' +'
417-
WRITE (6,'(A)') ' + IO TIME +'
418-
WRITE (6,'(A,F18.2,A)') ' + ', IO_TIME, ' +'
419-
WRITE (6,'(A)') ' + MPI TIME +'
420-
WRITE (6,'(A,F18.2,A)') ' + ', MPI_TIME, ' +'
421-
WRITE (6,'(A)') ' + WAVE PROPAGATION TIME +'
422405
WRITE (6,'(A,F18.2,A)') ' + ', TIME_PROPAG, ' +'
423-
#if defined(WAM_GPU)
424406
WRITE (6,'(A)') ' + SOURCE TERM TIME +'
425407
WRITE (6,'(A,F18.2,A)') ' + ', TIME_PHYS, ' +'
426-
#else
427-
WRITE (6,'(A)') ' + SOURCE TERM TIME +'
428-
WRITE (6,'(A,F18.2,A)') ' + ', TIME_PHYS, ' +'
429-
#endif
430408
WRITE (6,'(A)') ' + +'
431409
WRITE (6,'(A,I8,A)') ' + ON PE : ', IRANK, ' +'
432410
WRITE (6,'(A)') ' ++++++++++++++++++++++++++++++'

src/ecwam/wamintgr_loki_gpu.F90

+11-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
7878
INTEGER(KIND=JWIM) :: ICHNK
7979
INTEGER(KIND=JWIM) :: IDELWH
8080

81-
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
81+
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE, ZHOOK_HANDLE_IMPLSCH, ZHOOK_HANDLE_DATA_OFFLOAD
8282

8383

8484
LOGICAL, SAVE :: LLNEWFILE
@@ -96,13 +96,15 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
9696
!$loki update_device
9797
ENDIF
9898

99+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
99100
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=0)
100101
CALL VARS_4D%F_FL1%GET_DEVICE_DATA_RDWR(VARS_4D%FL1)
101102
!$acc enter data attach(VARS_4D%FL1)
102103
CALL WVPRPT%GET_DEVICE_DATA_RDWR()
103104
CALL WVENVI%GET_DEVICE_DATA_RDWR(DEPTH=.TRUE., DELLAM1=.TRUE., COSPHM1=.TRUE., UCUR=.TRUE., VCUR=.TRUE., &
104105
& EMAXDPT=.TRUE., IOBND=.TRUE., IODP=.TRUE.)
105106
CALL BLK2GLO%GET_DEVICE_DATA_RDONLY()
107+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
106108

107109
!$acc data present(VARS_4D, WVPRPT, WVENVI, BLK2GLO)
108110

@@ -117,13 +119,15 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
117119

118120
!* RETRIEVING NEW FORCING FIELDS IF NEEDED.
119121
! ----------------------------------------
122+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
120123
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=1)
121124
CALL FF_NOW%GET_DEVICE_DATA_RDWR(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
122125
& WSTAR=.TRUE., UFRIC=.TRUE., TAUW=.TRUE., TAUWDIR=.TRUE., Z0M=.TRUE., Z0B=.TRUE., &
123126
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE.)
124127
CALL FF_NEXT%GET_DEVICE_DATA_RDONLY(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
125128
& WSTAR=.TRUE., UFRIC=.TRUE., TAUW=.TRUE., TAUWDIR=.TRUE., Z0M=.TRUE., Z0B=.TRUE., &
126129
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE.)
130+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
127131
CALL NEWWIND(CDTIMP, CDATEWH, LLNEWFILE, &
128132
& WVPRPT, FF_NOW, FF_NEXT)
129133

@@ -135,6 +139,7 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
135139
CALL GSTATS(1431,0)
136140
IF (LLSOURCE) THEN
137141

142+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
138143
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=2)
139144
CALL WAM2NEMO%GET_DEVICE_DATA_RDWR(NEMOUSTOKES=.TRUE., NEMOVSTOKES=.TRUE., NEMOSTRN=.TRUE., &
140145
& NPHIEPS=.TRUE., NTAUOC=.TRUE., NSWH=.TRUE., NMWP=.TRUE., NEMOTAUX=.TRUE., &
@@ -145,7 +150,9 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
145150
CALL VARS_4D%F_XLLWS%GET_DEVICE_DATA_RDWR(VARS_4D%XLLWS)
146151
!$acc enter data attach(VARS_4D%XLLWS)
147152
CALL MIJ%GET_DEVICE_DATA_RDWR()
153+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
148154

155+
IF (LHOOK) CALL DR_HOOK('IMPLSCH',0,ZHOOK_HANDLE_IMPLSCH)
149156
TIME0=-WAM_USER_CLOCK()
150157

151158
!$acc parallel loop gang vector_length(NPROMA_WAM) default(present) copyin(NPROMA_WAM)
@@ -175,11 +182,14 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
175182
!$acc end parallel loop
176183

177184
TIME_PHYS = TIME_PHYS + (TIME0+WAM_USER_CLOCK())*1.E-06
185+
IF (LHOOK) CALL DR_HOOK('IMPLSCH',1,ZHOOK_HANDLE_IMPLSCH)
178186

187+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
179188
CALL VARS_4D%F_FL1%SYNC_HOST_RDONLY(QUEUE=3)
180189
CALL FF_NOW%SYNC_HOST_RDONLY(QUEUE=3)
181190
CALL WVENVI%SYNC_HOST_RDONLY(QUEUE=4)
182191
CALL WAM2NEMO%SYNC_HOST_RDONLY(QUEUE=5)
192+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
183193

184194
IF (LWNEMOCOU) NEMONTAU = NEMONTAU + 1
185195

src/ecwam/wamodel.F90

+25-11
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
7474
& IDELWI ,IREST ,IDELRES ,IDELINT , &
7575
& CDTBC ,IDELBC , &
7676
& IASSI ,MARSTYPE , &
77-
& LLSOURCE ,LANAONLY ,LFRSTFLD ,IREFDATE, LUPDATE_GPU_GLOBALS, &
78-
& MODEL_TIME, IO_TIME
77+
& LLSOURCE ,LANAONLY ,LFRSTFLD ,IREFDATE, LUPDATE_GPU_GLOBALS
7978
USE YOWSPEC, ONLY : NBLKS ,NBLKE, MIJ
8079
USE YOWTEST , ONLY : IU06
8180
USE YOWTEXT , ONLY : ICPLEN ,CPATH ,CWI ,LRESTARTED
@@ -141,9 +140,9 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
141140
INTEGER(KIND=JWIM) :: ICHNK
142141
INTEGER(KIND=JWIM) :: JSTPNEMO, IDATE, ITIME
143142
INTEGER(KIND=JWIM) :: IU04
144-
REAL(KIND=JWRB) :: TIME0, TIME1
145143

146-
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
144+
REAL(KIND=JPHOOK) :: ZHOOK_HANDLE, ZHOOK_HANDLE_DATA_OFFLOAD, &
145+
& ZHOOK_HANDLE_ADVECTION_LOOP, ZHOOK_HANDLE_IO
147146
REAL(KIND=JWRB), DIMENSION(NPROMA_WAM, NIPRMOUT, NCHNK) :: BOUT
148147

149148
CHARACTER(LEN= 2) :: MARSTYPEBAK
@@ -203,8 +202,9 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
203202
!* 1. ADVECTION/PHYSICS TIME LOOP.
204203
! ----------------------------
205204

206-
TIME0=-WAM_USER_CLOCK()
205+
IF (LHOOK) CALL DR_HOOK('ADVECTION_LOOP',0,ZHOOK_HANDLE_ADVECTION_LOOP)
207206
#ifdef WAM_GPU
207+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
208208
CALL WVPRPT_LAND%SYNC_DEVICE_RDONLY(QUEUE=0)
209209
CALL VARS_4D%F_FL1%SYNC_DEVICE_RDWR(QUEUE=0)
210210
CALL BLK2GLO%SYNC_DEVICE_RDONLY(QUEUE=0)
@@ -225,6 +225,7 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
225225
& TAUOCYD=.TRUE., TAUOC=.TRUE., PHIOCD=.TRUE., PHIEPS=.TRUE., PHIAW=.TRUE., QUEUE=2)
226226
CALL VARS_4D%F_XLLWS%SYNC_DEVICE_RDWR(QUEUE=2)
227227
CALL MIJ%SYNC_DEVICE_RDWR(QUEUE=2)
228+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
228229
#endif
229230

230231
ADVECTION : DO KADV = 1,NADV
@@ -347,12 +348,14 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
347348
IF ( NGOUT > 0 .AND. (CDTINTT == CDTPRO .OR. LRST) ) THEN
348349
! OUTPUT POINT SPECTRA (not usually used at ECMWF)
349350
#ifdef WAM_GPU
351+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
350352
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=3)
351353
CALL VARS_4D%F_FL1%GET_HOST_DATA_RDONLY(VARS_4D%FL1)
352354
!$acc exit data detach(VARS_4D%FL1)
353355
CALL FF_NOW%GET_HOST_DATA_RDONLY(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
354356
& WSTAR=.TRUE., UFRIC=.TRUE., TAUW=.TRUE., TAUWDIR=.TRUE., Z0M=.TRUE., Z0B=.TRUE., &
355357
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE.)
358+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
356359
#endif
357360

358361
CALL OUTWPSP (VARS_4D%FL1, FF_NOW)
@@ -407,12 +410,14 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
407410
ENDIF
408411

409412
#ifdef WAM_GPU
413+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
410414
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=3)
411415
CALL VARS_4D%F_FL1%GET_HOST_DATA_RDONLY(VARS_4D%FL1)
412416
!$acc exit data detach(VARS_4D%FL1)
413417
CALL FF_NOW%GET_HOST_DATA_RDONLY(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
414418
& WSTAR=.TRUE., UFRIC=.TRUE., TAUW=.TRUE., TAUWDIR=.TRUE., Z0M=.TRUE., Z0B=.TRUE., &
415419
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE.)
420+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
416421
#endif
417422

418423
CALL OUTSPEC(VARS_4D%FL1, FF_NOW)
@@ -429,6 +434,7 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
429434
! --------------------------------------
430435
IF ( .NOT.LGRIBOUT .OR. LDWRRE ) THEN
431436
#ifdef WAM_GPU
437+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
432438
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=3)
433439
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=4)
434440

@@ -439,9 +445,10 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
439445
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE.)
440446
CALL WVENVI%GET_HOST_DATA_RDONLY(DEPTH=.TRUE., DELLAM1=.TRUE., COSPHM1=.TRUE., UCUR=.TRUE., VCUR=.TRUE., &
441447
& EMAXDPT=.TRUE., IOBND=.TRUE., IODP=.TRUE.)
448+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
442449
#endif
443450

444-
TIME1=-WAM_USER_CLOCK()
451+
IF (LHOOK) CALL DR_HOOK('IO_TIME',0,ZHOOK_HANDLE_IO)
445452
CALL SAVSTRESS(WVENVI, FF_NOW, NBLKS, NBLKE, CDTPRO, CDATEF)
446453
WRITE(IU06,*) ' '
447454
WRITE(IU06,*) ' BINARY STRESS FILE DISPOSED AT........ CDTPRO = ', CDTPRO
@@ -451,7 +458,7 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
451458
WRITE(IU06,*) ' BINARY WAVE SPECTRA DISPOSED AT........ CDTPRO = ', CDTPRO
452459
WRITE(IU06,*) ' '
453460
CALL FLUSH(IU06)
454-
IO_TIME = IO_TIME + (TIME1+WAM_USER_CLOCK())*1.E-06
461+
IF (LHOOK) CALL DR_HOOK('IO_TIME',1,ZHOOK_HANDLE_IO)
455462
ENDIF
456463

457464

@@ -521,9 +528,9 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
521528
MARSTYPE='an'
522529
ENDIF
523530

524-
TIME1=-WAM_USER_CLOCK()
531+
IF (LHOOK) CALL DR_HOOK('IO_TIME',0,ZHOOK_HANDLE_IO)
525532
CALL OUTWINT(BOUT)
526-
IO_TIME = IO_TIME + (TIME1+WAM_USER_CLOCK())*1.E-06
533+
IF (LHOOK) CALL DR_HOOK('IO_TIME',1,ZHOOK_HANDLE_IO)
527534
LLFLUSH = .TRUE.
528535

529536
MARSTYPE=MARSTYPEBAK
@@ -535,12 +542,14 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
535542

536543

537544
#ifdef WAM_GPU
545+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
538546
CALL VARS_4D%F_FL1%SYNC_DEVICE_RDWR(QUEUE=0)
539547
CALL WVENVI%SYNC_DEVICE_RDWR(DEPTH=.TRUE., DELLAM1=.TRUE., COSPHM1=.TRUE., UCUR=.TRUE., VCUR=.TRUE., &
540548
& EMAXDPT=.TRUE., IOBND=.TRUE., IODP=.TRUE., QUEUE=0)
541549
CALL FF_NOW%SYNC_DEVICE_RDWR(AIRD=.TRUE., WDWAVE=.TRUE., CICOVER=.TRUE., WSWAVE=.TRUE., &
542550
& WSTAR=.TRUE., UFRIC=.TRUE., TAUW=.TRUE., TAUWDIR=.TRUE., Z0M=.TRUE., Z0B=.TRUE., &
543551
& CHRNCK=.TRUE., CITHICK=.TRUE., USTRA=.TRUE., VSTRA=.TRUE., QUEUE=1)
552+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
544553
#endif
545554

546555
!* 1.10 FLUSH FDB IF IT HAS BEEN USED AND IT IS NOT AN ANALYSIS (it will be done in *wamassi*)
@@ -593,10 +602,12 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
593602
IF (MOD(NEMOWSTEP,NEMOFRCO) == 0) THEN
594603

595604
#ifdef WAM_GPU
605+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
596606
CALL WAIT_FOR_ASYNC_QUEUE(QUEUE=5)
597607
CALL WAM2NEMO%GET_HOST_DATA_RDONLY(NEMOUSTOKES=.TRUE., NEMOVSTOKES=.TRUE., NEMOSTRN=.TRUE., &
598608
& NPHIEPS=.TRUE., NTAUOC=.TRUE., NSWH=.TRUE., NMWP=.TRUE., NEMOTAUX=.TRUE., &
599609
& NEMOTAUY=.TRUE., NEMOWSWAVE=.TRUE., NEMOPHIF=.TRUE.)
610+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
600611
#endif
601612

602613
CALL UPDNEMOFIELDS
@@ -612,9 +623,11 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
612623
NEMOCSTEP = NEMOCSTEP + NEMONSTEP
613624

614625
#ifdef WAM_GPU
626+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
615627
CALL WAM2NEMO%SYNC_DEVICE_RDWR(NEMOUSTOKES=.TRUE., NEMOVSTOKES=.TRUE., NEMOSTRN=.TRUE., &
616628
& NPHIEPS=.TRUE., NTAUOC=.TRUE., NSWH=.TRUE., NMWP=.TRUE., NEMOTAUX=.TRUE., &
617629
& NEMOTAUY=.TRUE., NEMOWSWAVE=.TRUE., NEMOPHIF=.TRUE., QUEUE=2)
630+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
618631
#endif
619632
ENDIF
620633
ENDIF
@@ -625,6 +638,7 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
625638
ENDDO ADVECTION
626639

627640
#ifdef WAM_GPU
641+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',0,ZHOOK_HANDLE_DATA_OFFLOAD)
628642
CALL WVPRPT_LAND%GET_HOST_DATA_RDWR()
629643
CALL WVPRPT%GET_HOST_DATA_RDWR()
630644
CALL WVENVI%GET_HOST_DATA_RDWR()
@@ -646,9 +660,9 @@ SUBROUTINE WAMODEL (NADV, LDSTOP, LDWRRE, BLK2GLO, &
646660
CALL VARS_4D%DELETE_DEVICE_DATA()
647661
CALL MIJ%DELETE_DEVICE_DATA()
648662
CALL BLK2GLO%DELETE_DEVICE_DATA()
663+
IF (LHOOK) CALL DR_HOOK('DATA_OFFLOAD',1,ZHOOK_HANDLE_DATA_OFFLOAD)
649664
#endif
650-
651-
MODEL_TIME = MODEL_TIME + (TIME0+WAM_USER_CLOCK())*1.E-06
665+
IF (LHOOK) CALL DR_HOOK('ADVECTION_LOOP',1,ZHOOK_HANDLE_ADVECTION_LOOP)
652666

653667
IF (LHOOK) CALL DR_HOOK('WAMODEL',1,ZHOOK_HANDLE)
654668

src/ecwam/yowstat.F90

-3
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,6 @@ MODULE YOWSTAT
9393

9494
REAL(KIND=JWRB) :: TIME_PROPAG = 0._JWRB
9595
REAL(KIND=JWRB) :: TIME_PHYS = 0._JWRB
96-
REAL(KIND=JWRB) :: MODEL_TIME = 0._JWRB
97-
REAL(KIND=JWRB) :: IO_TIME = 0._JWRB
98-
REAL(KIND=JWRB) :: MPI_TIME = 0._JWRB
9996

10097
!* VARIABLE. TYPE. PURPOSE.
10198
! --------- ------- --------

0 commit comments

Comments
 (0)