36 real(kind=
kind_real),
intent(in ) :: delp(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
37 real(kind=
kind_real),
intent(out) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
38 real(kind=
kind_real),
intent(out) :: p(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
39 real(kind=
kind_real),
optional,
intent(out) :: logp(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
42 integer :: isc,iec,jsc,jec,k
50 pe(isc:iec,jsc:jec,1) = geom%ptop
52 pe(isc:iec,jsc:jec,k) = pe(isc:iec,jsc:jec,k-1) + delp(isc:iec,jsc:jec,k-1)
56 p(isc:iec,jsc:jec,:) = 0.5*(pe(isc:iec,jsc:jec,2:geom%npz+1) + pe(isc:iec,jsc:jec,1:geom%npz))
58 if (
present(logp))
then
60 logp(isc:iec,jsc:jec,:) = log(p(isc:iec,jsc:jec,:))
71 real(kind=
kind_real),
intent(in ) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
72 real(kind=
kind_real),
intent(out) :: pkz(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
75 real(kind=
kind_real) :: peln(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
76 real(kind=
kind_real) :: pk(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
82 pkz(:,:,k) = (pk(:,:,k+1)-pk(:,:,k)) / (
kappa*(peln(:,:,k+1)-peln(:,:,k)))
93 real(kind=
kind_real),
intent(in ) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
94 real(kind=
kind_real),
intent(out) :: delp(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
97 integer :: isc,iec,jsc,jec,k
106 delp(isc:iec,jsc:jec,k) = pe(isc:iec,jsc:jec,k+1) - pe(isc:iec,jsc:jec,k)
117 real(kind=
kind_real),
intent(in ) :: delp(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
118 real(kind=
kind_real),
intent(out) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
121 integer :: isc,iec,jsc,jec,k
129 pe(isc:iec,jsc:jec,1) = geom%ptop
131 pe(isc:iec,jsc:jec,k) = pe(isc:iec,jsc:jec,k-1) + delp(isc:iec,jsc:jec,k-1)
142 real(kind=
kind_real),
intent(in ) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
143 real(kind=
kind_real),
intent(out) :: pk(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
151 do j = geom%jsc,geom%jec
152 do i = geom%isc,geom%iec
154 pel1 = log(pe(i,j,k+1))
155 pel2 = log(pe(i,j,k))
157 pek1 = exp(
kappa*pel1)
158 pek2 = exp(
kappa*pel2)
160 pk(i,j,k) = (pek1-pek2)/(
kappa*(pel1-pel2))
174 real(kind=
kind_real),
intent(in ) :: ps(geom%isc:geom%iec,geom%jsc:geom%jec,1 )
175 real(kind=
kind_real),
intent(inout) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
180 pe(:,:,k) = geom%ak(k) + geom%bk(k) * ps(:,:,1)
191 real(kind=
kind_real),
intent(in ) :: ps(geom%isc:geom%iec,geom%jsc:geom%jec,1 )
192 real(kind=
kind_real),
intent(inout) :: pkz(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
195 real(kind=
kind_real) :: pe(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz+1)
208 real(kind=
kind_real),
intent(in ) :: ps(geom%isc:geom%iec,geom%jsc:geom%jec )
209 real(kind=
kind_real),
intent(inout) :: delp(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
211 integer :: isc,iec,jsc,jec,i,j,k
221 delp(i,j,k) = geom%ak(k+1) + geom%bk(k+1)*ps(i,j) - (geom%ak(k) + geom%bk(k)*ps(i,j))
232 real(kind=
kind_real),
intent(in ) :: ps_tl(geom%isc:geom%iec,geom%jsc:geom%jec )
233 real(kind=
kind_real),
intent(inout) :: delp_tl(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
235 integer :: isc,iec,jsc,jec,i,j,k
242 delp_tl = 0.0_kind_real
246 delp_tl(i,j,k) = geom%bk(k+1)*ps_tl(i,j) - geom%bk(k)*ps_tl(i,j)
257 real(kind=
kind_real),
intent(inout) :: ps_ad(geom%isc:geom%iec,geom%jsc:geom%jec )
258 real(kind=
kind_real),
intent(inout) :: delp_ad(geom%isc:geom%iec,geom%jsc:geom%jec,1:geom%npz)
260 integer :: isc,iec,jsc,jec,i,j,k
267 ps_ad = 0.0_kind_real
272 ps_ad(i,j) = ps_ad(i,j) + (geom%bk(k+1) - geom%bk(k))*delp_ad(i,j,k)