source: LMDZ5/branches/IPSLCM5A2.1_ISO/libf/phyiso/rrtm/gppre.F90 @ 5313

Last change on this file since 5313 was 3331, checked in by acozic, 6 years ago

Add modification for isotopes

  • Property svn:executable set to *
File size: 3.1 KB
Line 
1SUBROUTINE GPPRE(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,PRESH,PRESF)
2
3!**** *GPPRE* - 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* *GPPRE(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,PRESH,PRESF)
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!                              PRESF(KPROMA,KFLEV)   - FULL LEVEL PRESSURE
21!                              PVAH(KFLEV),PVBH(KFLEV)- vertical coordinate
22!        Implicit arguments :  NONE.
23!        --------------------
24
25!     Method.
26!     -------
27!        See documentation
28
29!     Externals.  None.
30!     ----------
31
32!     Reference.
33!     ----------
34!        ECMWF Research Department documentation of the IFS
35!     Half level P:     PHk = Ak + Bk * Ps
36
37!                                PHk*ln(PHk) - PHk-1*ln(PHk-1)
38!     Full level P: ln(PFk) = [ ------------------------------- - 1. ]
39!                                        PHk - PHk-1
40
41!     Author.
42!     -------
43!        Mats Hamrud and Philippe Courtier  *ECMWF*
44
45!     Modifications.
46!     --------------
47!        Original : 88-02-04
48!     Erik Andersson  920326: Altered computation of full level pressure
49!     Erik Andersson  930225: Use GPPREH/F.
50!        M.Hamrud      01-Oct-2003 CY28 Cleaning
51!     ------------------------------------------------------------------
52
53USE PARKIND1  ,ONLY : JPIM     ,JPRB
54USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
55
56USE YOMGEM   , ONLY : VC       ,VDELB
57
58IMPLICIT NONE
59
60INTEGER(KIND=JPIM),INTENT(IN)    :: KPROMA
61INTEGER(KIND=JPIM),INTENT(IN)    :: KFLEV
62INTEGER(KIND=JPIM),INTENT(IN)    :: KSTART
63INTEGER(KIND=JPIM),INTENT(IN)    :: KPROF
64REAL(KIND=JPRB)   ,INTENT(IN)    :: PVAH(0:KFLEV)
65REAL(KIND=JPRB)   ,INTENT(IN)    :: PVBH(0:KFLEV)
66REAL(KIND=JPRB)   ,INTENT(INOUT) :: PRESH(KPROMA,0:KFLEV)
67REAL(KIND=JPRB)   ,INTENT(OUT)   :: PRESF(KPROMA,KFLEV)
68REAL(KIND=JPRB) ::    ZLNPR(KPROMA,KFLEV) ,  ZALPH (KPROMA,KFLEV)
69REAL(KIND=JPRB) ::    ZDELP(KPROMA,KFLEV) ,  ZRDELP(KPROMA,KFLEV)
70REAL(KIND=JPRB) ::    ZRTGR(KPROMA,KFLEV) ,  ZRPRES(KPROMA,KFLEV)
71REAL(KIND=JPRB) ::    ZRPP (KPROMA,KFLEV)
72REAL(KIND=JPRB) :: ZHOOK_HANDLE
73
74#include "gppref.intfb.h"
75#include "gppreh.intfb.h"
76#include "gpxyb.intfb.h"
77
78!     ------------------------------------------------------------------
79
80!*       1.    COMPUTES HALF AND FULL LEVEL PRESSURES
81!              --------------------------------------
82
83IF (LHOOK) CALL DR_HOOK('GPPRE',0,ZHOOK_HANDLE)
84CALL GPPREH(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,PRESH)
85CALL GPXYB(KPROMA,KSTART,KPROF,KFLEV,VDELB,VC,PRESH,ZDELP,&
86 & ZRDELP,ZLNPR,ZALPH,ZRTGR,ZRPRES,ZRPP) 
87CALL GPPREF(KPROMA,KSTART,KPROF,KFLEV,PVAH,PVBH,ZALPH,PRESH,PRESF)
88
89!     ------------------------------------------------------------------
90
91IF (LHOOK) CALL DR_HOOK('GPPRE',1,ZHOOK_HANDLE)
92END SUBROUTINE GPPRE
Note: See TracBrowser for help on using the repository browser.