#include "dims.h" SUBROUTINE SWDOT use cons_module,only: imax,imaxp2,kmax,kmaxp1,kut,len1,len3, | expzmid implicit none C **** CALCULATES W ON LINE NJ AND Z TO NJNP #include "params.h" #include "fcom.h" #include "vscr.h" #include "index.h" #include "buff.h" #include "phys.h" ! ! Local: integer :: i,k,nwk,nznpk,nzk,kk ! C **** S1=DIVRG(V) CALL DIVRG(S1) C **** INSERT PERIODIC POINTS FOR W DO I=1,2 DO K=1,KMAX S1(I,K)=S1(I+IMAX,K) S1(I+IMAXP2,K)=S1(I+2,K) enddo enddo ! call addfsech('SWDOT_S1',' ',' ',s1,zimxp,zkmxp,zkmx,j) C **** W(KMAXP1)=S1(KMAX) NWK=NJNP+NW DO 1 I=1,LEN1 F(I,NWK+KMAX)=S1(I,KMAX) 1 CONTINUE C **** W(K)=expzmid*(expzmid*W(K+1)+dz*S1(K)) NWK=NWK+KMAX DO KK=1,KMAX K=KMAXP1-KK NWK=NWK-1 DO I=1,LEN1 F(I,NWK)=expzmid*(expzmid*F(I,NWK+1)+dz*S1(I,K)) enddo enddo NZNPK=NJNP+NZ NZK=NJ+NZ DO 3 I=1,LEN3 F(I,NZNPK)=F(I,NZK) 3 CONTINUE NWK=NJNP+NW CALL FILTER(NWK,KMAXP1,KUT(J)) ! call addfsech('SWDOT_W',' ',' ',f(1,njnp+nw),zimxp,zkmxp,zkmxp,j) ! call addfsech('SWDOT_Z',' ',' ',f(1,njnp+nz),zimxp,zkmxp,zkmxp,j) END