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