6 SUBROUTINE plevel_new(ilon,ilev,klevSTD,lnew,pgcm,pres,Qgcm,Qpres)
34 INTEGER ilon, ilev, klevstd
40 REAL qpres(ilon, klevstd)
49 INTEGER,
ALLOCATABLE,
SAVE,
DIMENSION(:,:) :: lt,lb
50 REAL,
ALLOCATABLE,
SAVE,
DIMENSION(:,:) :: aist,aisb
52 REAL,
SAVE :: ptop, pbot
54 LOGICAL,
SAVE :: first = .true.
64 allocate(lt(klon,klevstd),lb(klon,klevstd))
65 allocate(aist(klon,klevstd),aisb(klon, klevstd))
83 IF ( abs(pres(nlev)-pgcm(
i,ilev) ) .LT.
84 & abs(pres(nlev)-pgcm(
i,1)) )
THEN
96 IF (ptop.LE.pres(nlev) .AND. pbot.GE.pres(nlev))
THEN
110 aist(
i,nlev) = log( pgcm(
i,lb(
i,nlev))/ pres(nlev) )
111 & / log( pgcm(
i,lb(
i,nlev))/ pgcm(
i,lt(
i,nlev)) )
112 aisb(
i,nlev) = log( pres(nlev) / pgcm(
i,lt(
i,nlev)) )
113 & / log( pgcm(
i,lb(
i,nlev))/ pgcm(
i,lt(
i,nlev)))
126 IF (pgcm(
i,1).LT.pres(nlev))
THEN
130 & qgcm(
i,lb(
i,nlev))*aisb(
i,nlev) +
131 & qgcm(
i,lt(
i,nlev))*aist(
i,nlev)