GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/gppreh.F90 Lines: 7 7 100.0 %
Date: 2023-06-30 12:56:34 Branches: 6 8 75.0 %

Line Branch Exec Source
1
1
SUBROUTINE GPPREH(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,PRESH)
2
3
!**** *GPPREH* - Computes half and full level pressure
4
5
!     Purpose.
6
!     --------
7
!           Computes pressures at half and full model levels.
8
9
!**   Interface.
10
!     ----------
11
!        *CALL* *GPPREH(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,PRESH)
12
13
!        Explicit arguments :
14
!        --------------------
15
!                              KPROMA :  dimensioning
16
!                              KSTART :  start of work
17
!                              KPROF  :  depth of work
18
!                              KFLEV     : vert. dimensioning
19
!                              PRESH(KPROMA,0:KFLEV) - HALF LEVEL PRESSURE
20
!                              PVAH(KFLEV),PVBH(KFLEV)- vertical coordinate
21
!        Implicit arguments :  NONE.
22
!        --------------------
23
24
!     Method.
25
!     -------
26
!        See documentation
27
28
!     Externals.  None.
29
!     ----------
30
31
!     Reference.
32
!     ----------
33
!        ECMWF Research Department documentation of the IFS
34
!     Half level P:     PHk = Ak + Bk * Ps
35
36
!     Author.
37
!     -------
38
!        Erik Andersson, Mats Hamrud and Philippe Courtier  *ECMWF*
39
40
!     Modifications.
41
!     --------------
42
!        Original : 92-11-23
43
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
44
!     ------------------------------------------------------------------
45
46
USE PARKIND1  ,ONLY : JPIM     ,JPRB
47
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
48
49
IMPLICIT NONE
50
51
INTEGER(KIND=JPIM),INTENT(IN)    :: KPROMA
52
INTEGER(KIND=JPIM),INTENT(IN)    :: KFLEV
53
INTEGER(KIND=JPIM),INTENT(IN)    :: KSTART
54
INTEGER(KIND=JPIM),INTENT(IN)    :: KPROF
55
REAL(KIND=JPRB)   ,INTENT(IN)    :: PVAH(0:KFLEV)
56
REAL(KIND=JPRB)   ,INTENT(IN)    :: PVBH(0:KFLEV)
57
REAL(KIND=JPRB)   ,INTENT(INOUT) :: PRESH(KPROMA,0:KFLEV)
58
INTEGER(KIND=JPIM) :: JLEV, JLON
59
REAL(KIND=JPRB) :: ZHOOK_HANDLE
60
61
!     ------------------------------------------------------------------
62
63
!*       1.    COMPUTES HALF LEVEL PRESSURES.
64
!              ------------------------------
65
66
1
IF (LHOOK) CALL DR_HOOK('GPPREH',0,ZHOOK_HANDLE)
67
40
DO JLEV=0,KFLEV-1
68
79
  DO JLON=KSTART,KPROF
69
78
    PRESH(JLON,JLEV)=PVAH(JLEV)+PVBH(JLEV)*PRESH(JLON,KFLEV)
70
  ENDDO
71
ENDDO
72
73
!     ------------------------------------------------------------------
74
75
1
IF (LHOOK) CALL DR_HOOK('GPPREH',1,ZHOOK_HANDLE)
76
1
END SUBROUTINE GPPREH