1 SUBROUTINE gpxyb(KPROMA,KSTART,KPROF,KFLEV,PVDELB,PVC,&
2 & pres,pdelp,prdelp,plnpr,palph,prtgr,&
80 INTEGER(KIND=JPIM),
INTENT(IN) :: KPROMA
81 INTEGER(KIND=JPIM),
INTENT(IN) :: KFLEV
82 INTEGER(KIND=JPIM),
INTENT(IN) :: KSTART
83 INTEGER(KIND=JPIM),
INTENT(IN) :: KPROF
84 REAL(KIND=JPRB) ,
INTENT(IN) :: PVDELB(kflev)
85 REAL(KIND=JPRB) ,
INTENT(IN) :: PVC(kflev)
86 REAL(KIND=JPRB) ,
INTENT(IN) :: PRES(kproma,0:kflev)
87 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PDELP(kproma,kflev)
88 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PRDELP(kproma,kflev)
89 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PLNPR(kproma,kflev)
90 REAL(KIND=JPRB) ,
INTENT(OUT) :: PALPH(kproma,kflev)
91 REAL(KIND=JPRB) ,
INTENT(OUT) :: PRTGR(kproma,kflev)
92 REAL(KIND=JPRB) ,
INTENT(OUT) :: PRPRES(kproma,kflev)
93 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PRPP(kproma,kflev)
97 INTEGER(KIND=JPIM) :: IFIRST, JLEV, JLON, JJ, JTEMP, JM
99 REAL(KIND=JPRB) :: ZPRESF
100 REAL(KIND=JPRB) :: ZRPRES(kproma,2)
101 REAL(KIND=JPRB) :: ZPRESFD
102 REAL(KIND=JPRB) :: ZHOOK_HANDLE
106 #include "abor1.intfb.h"
125 IF(pres(kstart,0) <=
toppres)
THEN
130 IF(pres(jlon,0) <=
toppres)
then
147 pdelp(jlon,jlev)=
vdela(jlev) + pvdelb(jlev)*pres(jlon,kflev)
148 prdelp(jlon,jlev)=1.0_jprb/pdelp(jlon,jlev)
149 zpresf =
vaf(jlev) +
vbf(jlev)*pres(jlon,kflev)
150 zpresfd=1.0_jprb/zpresf
151 plnpr(jlon,jlev)=pdelp(jlon,jlev)*zpresfd
155 prtgr(jlon,jlev)=
vbf(jlev)*zpresfd
157 palph(jlon,jlev)=(pres(jlon,jlev)-zpresf)*zpresfd
164 zrpres(jlon,jm)=1.0_jprb/pres(jlon,ifirst-1)
168 zrpres(jlon,jj)=1.0_jprb/pres(jlon,jlev)
169 pdelp(jlon,jlev)=pres(jlon,jlev)-pres(jlon,jlev-1)
170 prdelp(jlon,jlev)=1.0_jprb/pdelp(jlon,jlev)
171 plnpr(jlon,jlev)=log(pres(jlon,jlev)*zrpres(jlon,jm))
172 prpres(jlon,jlev)=zrpres(jlon,jj)
173 palph(jlon,jlev)=1.0_jprb-pres(jlon,jlev-1)*prdelp(jlon,jlev)&
175 prpp(jlon,jlev)=zrpres(jlon,jj)*zrpres(jlon,jm)
176 prtgr(jlon,jlev)=prdelp(jlon,jlev)&
177 & *(pvdelb(jlev)+pvc(jlev)*plnpr(jlon,jlev)*prdelp(jlon,&
190 pdelp(jlon,jlev)=pres(jlon,jlev)-pres(jlon,jlev-1)
191 prdelp(jlon,jlev)=1.0_jprb/pdelp(jlon,jlev)
192 plnpr(jlon,jlev)=log(pres(jlon,1)/
toppres)
193 prpres(jlon,jlev)=1.0_jprb/pres(jlon,1)
195 prpp(jlon,jlev)=1.0_jprb/(pres(jlon,1)*
toppres)
196 prtgr(jlon,jlev)=prdelp(jlon,jlev)*pvdelb(jlev)
203 CALL abor1(
' LVERTFE=.T. NOT COMPATIBLE WITH NDLNPR == 1')
208 pdelp(jlon,jlev)=pres(jlon,jlev)-pres(jlon,jlev-1)
209 prdelp(jlon,jlev)=1.0_jprb/pdelp(jlon,jlev)
210 prpp(jlon,jlev)=1.0_jprb/(pres(jlon,jlev)*pres(jlon,jlev-1))
211 plnpr(jlon,jlev)=pdelp(jlon,jlev)*sqrt(prpp(jlon,jlev))
212 palph(jlon,jlev)=1.0_jprb-pres(jlon,jlev-1)*prdelp(jlon,jlev)&
214 prtgr(jlon,jlev)=prdelp(jlon,jlev)&
215 & *(pvdelb(jlev)+pvc(jlev)*plnpr(jlon,jlev)*prdelp(jlon,&
217 prpres(jlon,jlev)=1.0_jprb/pres(jlon,jlev)
223 pdelp(jlon,jlev)=pres(jlon,jlev)
224 prdelp(jlon,jlev)=1.0_jprb/pdelp(jlon,jlev)
225 plnpr(jlon,jlev)=2.0_jprb+
rcvd/
rd
226 palph(jlon,jlev)=1.0_jprb
227 prtgr(jlon,jlev)=prdelp(jlon,jlev)*pvdelb(jlev)
228 prpres(jlon,jlev)=1.0_jprb/pres(jlon,1)
229 prpp(jlon,jlev)=(plnpr(jlon,jlev)*prdelp(jlon,jlev))**2
real(kind=jprb), dimension(:), allocatable vbf
real(kind=jprb), dimension(:), allocatable vdela
subroutine gpxyb(KPROMA, KSTART, KPROF, KFLEV, PVDELB, PVC, PRES, PDELP, PRDELP, PLNPR, PALPH, PRTGR, PRPRES, PRPP)
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
real(kind=jprb), dimension(:), allocatable vaf
integer(kind=jpim) ndlnpr