GCC Code Coverage Report


Directory: ./
File: rad/user_clock.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 14 0.0%
Branches: 0 12 0.0%

Line Branch Exec Source
1 SUBROUTINE USER_CLOCK(PELAPSED_TIME,PELAPSED_TIME_SINCE,PVECTOR_CP,PTOTAL_CP)
2
3 !**** *USER_CLOCK* - interface to system dependent timer routines
4
5 ! Purpose.
6 ! --------
7 ! Returns elapsed and CP from the start of execution.
8 ! Elapsed time is made relative to the first call to USER_CLOCK.
9
10 !** Interface.
11 ! ----------
12 ! ZTIME=USER_CLOCK(PELAPSED_TIME,PELAPSED_TIME_SINCE,
13 ! PVECTOR_CP,PTOTAL_CP)
14
15 ! Explicit arguments: (All are optional arguments)
16 ! PELAPSED_TIME=wall clock time (seconds)
17 ! PELAPSED_TIME_SINCE=wall clock time (seconds)
18 ! change from input value of this parameter
19 ! PVECTOR_CP=CP vector time (seconds)
20 ! PTOTAL_CP=total CP time (seconds)
21
22 ! Author.
23 ! -------
24 ! D.Dent *ECMWF*
25
26 ! External References:
27 ! -------------------
28
29 ! TIMEF,CPTIME
30
31 ! Modifications.
32 ! --------------
33 ! Original : 97-09-25
34 ! ----------------------------------------------------------
35
36
37 USE PARKIND1 ,ONLY : JPIM ,JPRB
38
39 IMPLICIT NONE
40
41 REAL(KIND=JPRB),INTENT(OUT) :: PELAPSED_TIME,PVECTOR_CP,PTOTAL_CP
42 REAL(KIND=JPRB),INTENT(INOUT) :: PELAPSED_TIME_SINCE
43 OPTIONAL PELAPSED_TIME,PELAPSED_TIME_SINCE
44 OPTIONAL PVECTOR_CP,PTOTAL_CP
45 REAL(KIND=JPRB) :: ZVECTOR_CP,ZTOTAL_CP,ZWALL
46 REAL(KIND=JPRB),EXTERNAL :: TIMEF
47
48
49 ! === END OF INTERFACE BLOCK ===
50 IF(PRESENT(PELAPSED_TIME).OR. PRESENT(PELAPSED_TIME_SINCE)) THEN
51
52 ZWALL=TIMEF()
53 ! TIMEF returns milliseconds since first call to TIMEF
54 IF(PRESENT(PELAPSED_TIME)) THEN
55 PELAPSED_TIME=ZWALL*1.0E-3_JPRB
56 ENDIF
57 IF(PRESENT(PELAPSED_TIME_SINCE)) THEN
58 PELAPSED_TIME_SINCE=ZWALL*1.0E-3_JPRB - PELAPSED_TIME_SINCE
59 ENDIF
60 ENDIF
61
62 IF( PRESENT(PVECTOR_CP) .OR. PRESENT(PTOTAL_CP) ) THEN
63 CALL CPTIME(ZVECTOR_CP,ZTOTAL_CP)
64 ENDIF
65 IF( PRESENT(PVECTOR_CP) ) THEN
66 PVECTOR_CP=ZVECTOR_CP
67 ENDIF
68 IF( PRESENT(PTOTAL_CP) ) THEN
69 PTOTAL_CP=ZTOTAL_CP
70 ENDIF
71
72 RETURN
73 END SUBROUTINE USER_CLOCK
74
75
76
77