#include "dims.h" SUBROUTINE DIVRG(S) use cons_module,only: long,dlamda_2div3,dlamda_1div12, | dphi_2div3,dphi_1div12 implicit none ! ! Called from swdot for vertical velocity W: ! #include "params.h" #include "fcom.h" #include "cdivrg.h" #include "buff.h" #include "index.h" #include "phys.h" ! ! Args: real,intent(out) :: S(long) ! ! Local: integer :: nuk,i,nvcpk,nvcmk ! C **** COMPUTE D(U)/DLAMDA NUK = NJ+NU C **** D2U=(U(I+1)-U(I-1))*dlamda_2div3 do i=1,long d2u(i) = (f(i+3,nuk)-f(i+1,nuk))*dlamda_2div3 enddo ! call addfsech('NVC_NJM1',' ',' ',f(1,njm1+nvc), ! | zimxp,zkmxp,zkmxp,j) ! call addfsech('NVC_NJP1',' ',' ',f(1,njp1+nvc), ! | zimxp,zkmxp,zkmxp,j) ! call addfsech('NVC_NJM2',' ',' ',f(1,njm2+nvc), ! | zimxp,zkmxp,zkmxp,j) ! call addfsech('NVC_NJP2',' ',' ',f(1,njp2+nvc), ! | zimxp,zkmxp,zkmxp,j) ! call addfsech('D2U',' ',' ',d2u,zimxp,zkmxp,zkmx,j) C **** D4U=(U(I+2)-U(I-2))*dlamda_1div12 do i=1,long d4u(i) = (f(i+4,nuk)-f(i,nuk))*dlamda_1div12 enddo ! call addfsech('D4U',' ',' ',d4u,zimxp,zkmxp,zkmx,j) C **** DVC=(VCJP1(I)-VCJM1(I))*dphi_2div3 NVCPK = NJP1+NVC NVCMK = NJM1+NVC do i=1,long dvc(i) = (f(i+2,nvcpk)-f(i+2,nvcmk))*dphi_2div3 enddo ! call addfsech('DVC1',' ',' ',dvc,zimxp,zkmxp,zkmx,j) C **** S=D2U-D4U+DVC do i=1,long s(i+2) = d2u(i)-d4u(i)+dvc(i) enddo ! call addfsech('S_1',' ',' ',s,zimxp,zkmxp,zkmx,j) C **** DVC=(VCJP2(I)-VCJM1(I))*dphi_1div12 NVCPK = NJP2+NVC NVCMK = NJM2+NVC do i=1,long dvc(i) = (f(i+2,nvcpk)-f(i+2,nvcmk))*dphi_1div12 enddo ! call addfsech('DVC2',' ',' ',dvc,zimxp,zkmxp,zkmx,j) C **** S=(S-DVC)*RACS do i=1,long s(i+2) = (s(i+2)-dvc(i))*racs enddo ! write(6,"('divrg: j=',i3,' racs=',e12.4)") j,racs ! call addfsech('S_2',' ',' ',s,zimxp,zkmxp,zkmx,j) RETURN END C