#include "dims.h" SUBROUTINE DIFFUS(TP,EN,H,ANS) use cons_module,only: len1,len2,kmax,kmaxm1,grav,gask implicit none C **** C **** EVALUATES ANS = (D/(H*DZ)*TP+M*G/R)*EN C **** #include "params.h" #include "mwt.h" ! ! Args: real,intent(in) :: TP(ZIMXP,ZKMXP),EN(ZIMXP,ZKMXP),H(ZIMXP,ZKMXP) real,intent(out) :: ANS(ZIMXP,ZKMXP) ! ! Local: integer :: i REAL :: MGR C MGR = RMOP*grav/gask DO 1 I=1,LEN2-2*LEN1 ANS(I,2) = 1./(2.*H(I,2)*dz)*(TP(I,3)*EN(I,3)-TP(I,1) A *EN(I,1))+MGR*EN(I,2) 1 CONTINUE C **** C **** UPPER AND LOWER BOUNDARIES C **** DO 2 I=1,LEN1 ANS(I,KMAX) = 1./(H(I,KMAX)*dz)*(TP(I,KMAX)*EN(I,KMAX)- A TP(I,KMAXM1)*EN(I,KMAXM1))+MGR*EN(I,KMAX) ANS(I,1) = 1./(H(I,1)*dz)*(TP(I,2)*EN(I,2)- A TP(I,1)*EN(I,1))+MGR*EN(I,1) 2 CONTINUE RETURN END C