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 |