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)