C&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
      SUBROUTINE VDIFV(LMVK,KTM,DTQ2,UZ0,VZ0,AKMS,U,V,AKM,Z)
C     ******************************************************************
C     *                                                                *
C     *  VERTICAL DIFFUSION                                            *
C     *                                                                *
C     ******************************************************************
C-----------------------------------------------------------------------
      INCLUDE "parmeta"
      INCLUDE "mpp.h"
#include "sp.h"
C-----------------------------------------------------------------------
                             P A R A M E T E R
     &(LP1=LM+1,LM1=LM-1)
C-----------------------------------------------------------------------
                             D I M E N S I O N
     & U     (LM),V     (LM)
                             D I M E N S I O N
     & AKM   (LM1)
     &,Z     (LP1)
                             D I M E N S I O N
     & CM    (LM1),CR    (LM1),RSU   (LM1),RSV   (LM1)
     &,DTOZ  (LM1)
C-----------------------------------------------------------------------
C***********************************************************************
      DTDIF=DTQ2/FLOAT(KTM)
      LMVM=LMVK-1
      LMVP=LMVK+1
C-----------------------------------------------------------------------
                             DO 300 KT=1,KTM
C-----------------------------------------------------------------------
          DO 100 L=1,LMVM
      DTOZ(L)=DTDIF/(Z(L)-Z(L+1))
      CR(L)=-DTOZ(L)*AKM(L)
 100  CONTINUE
C
      CM(1)=DTOZ(1)*AKM(1)+1.
      RSU(1)=U(1)
      RSV(1)=V(1)
C-----------------------------------------------------------------------
          DO 110 L=2,LMVM
      DTOZL=DTOZ(L)
      CF=-DTOZL*AKM(L-1)/CM(L-1)
      CM(L)=-CR(L-1)*CF+(AKM(L-1)+AKM(L))*DTOZL+1.
      RSU(L)=-RSU(L-1)*CF+U(L)
      RSV(L)=-RSV(L-1)*CF+V(L)
 110  CONTINUE
C-----------------------------------------------------------------------
      DTOZS=DTDIF/(Z(LMVK)-Z(LMVP))
      AKMH=AKM(LMVM)
C
      CF=-DTOZS*AKMH/CM(LMVM)
      RCMVB=1./((AKMH+AKMS)*DTOZS-CR(LMVM)*CF+1.)
      DTOZAK=DTOZS*AKMS
C-----------------------------------------------------------------------
      U(LMVK)=(DTOZAK*UZ0-RSU(LMVM)*CF+U(LMVK))*RCMVB
      V(LMVK)=(DTOZAK*VZ0-RSV(LMVM)*CF+V(LMVK))*RCMVB
C-----------------------------------------------------------------------
          DO 120 IVI=1,LMVM
      L=LMVK-IVI
      RCML=1./CM(L)
      U(L)=(-CR(L)*U(L+1)+RSU(L))*RCML
      V(L)=(-CR(L)*V(L+1)+RSV(L))*RCML
 120  CONTINUE
C-----------------------------------------------------------------------
 300                         CONTINUE
C-----------------------------------------------------------------------
                             RETURN
                             END