c*************************************************************** c this subroutine will calculate the diffusion terms using a c mass conserving differencing scheme c*************************************************************** c ****** FOR BASE8A (new circulation), we have changed q array c from 3D to 2D (updated each day) ********************* c c **** NEW for BASE8QH, with diffusion separated from chemistry, c Kyy and Kyz are done here, with a 1-day time step, and c Kzz is done in separate, NEWDIFZ routine, with a 3 hour time c step for mesospheric diffusion, and all computations for c SUMDIFY,Z,... and SUMTOTY,Z... are commented out since these are c just old diagnostics for printout - don't need them anymore ****** C C *** AND FOR BASE8SG, Kyz is NOT USED (set = 0.0), so we just have the C Kyy calculations here ***** SUBROUTINE NEWDIFY #include "com2d.h" REAL mhalfy(l$,z$58), kyyh(l$,z$58) c set up half step diffusion parameters c this should happen whenever k or m changes do 330 IK=1,z$58 do 330 IJ=1,l$-1 mhalfy(IJ+1,IK)=(m(IJ,IK)+m(IJ+1,IK))/2. kyyh(IJ+1,IK)=(ekyy(IJ,IK)+ekyy(IJ+1,IK))/2. 330 CONTINUE ! difny(t$,l$,z$58) DO 600 IT=1,ITRANS do 900 IK=1,z$58 term2=1./(rcgs*cos(phi(1))*dphi)* c mhalfy(2,IK)*kyyh(2,IK)/(rcgs)*cos(phih(2)) c *(st(IT,2,IK)-st(IT,1,IK))/dphi difny(it,1,IK) = -1.*term2 do 1000 IJ=2,l$-1 term21=1./(rcgs*cos(phi(IJ))*dphi)* c mhalfy(IJ+1,IK)*kyyh(IJ+1,IK)/(rcgs)*cos(phih(IJ+1)) c *(st(IT,IJ+1,IK)-st(IT,IJ,IK))/dphi term22=-1./(rcgs*cos(phi(IJ))*dphi)* c mhalfy(IJ,IK)*kyyh(IJ,IK)/(rcgs)*cos(phih(IJ)) c *(st(IT,IJ,IK)-st(IT,IJ-1,IK))/dphi term2=term21+term22 difny(it,IJ,IK) = -1.*term2 1000 CONTINUE term2=-1./(rcgs*cos(phi(18))*dphi)* c mhalfy(18,IK)*kyyh(18,IK)/(rcgs)*cos(phih(18)) c *(st(IT,18,IK)-st(IT,17,IK))/dphi difny(it,18,IK) = -1.*term2 900 CONTINUE 600 CONTINUE SAVE RETURN END