GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/user_clock.F90 Lines: 0 14 0.0 %
Date: 2023-06-30 12:51:15 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