SUBROUTINE SPEC (Z,V,IKTX,IKTY,KTX,KTY,N,SPZ,FL,AJ,BJ, 12 . GRFLAG,TIME) C C CALCULATES SPECTRA. C IMPLICIT NONE INTEGER IKX,IKY,IKTX,IKTY,KTX,KTY INTEGER N(KTX),J,FL,GRFLAG COMPLEX Z(IKTX,IKTY),V(IKTX,IKTY) REAL KX,KY,WK,VZ,VQ,E,S,AJ,BJ,TIME,VV REAL SPZ(KTX),AVZ,AVQ,AVT C AVZ = 0.0 AVT = 0.0 C DO 10 J=1,KTX SPZ(J) = 0.0 N(J) = 0 10 CONTINUE C DO 20 IKX=1,IKTX KX = FLOAT(IKX-1) DO 20 IKY=1,IKTY KY = FLOAT(IKY-KTY-1) WK = SQRT(KX*KX+KY*KY) IF(WK.GT.FLOAT(KTX)-0.5) GO TO 20 IF(KX.EQ.0. .AND. KY.LE.0.) GO TO 20 J = IFIX(WK+0.5) IF(J.LE.0 .OR. J.GT.KTX) PRINT *,'SCREW-UP.' VZ = REAL( Z(IKX,IKY)*CONJG(Z(IKX,IKY)) ) VV = REAL( V(IKX,IKY)*CONJG(V(IKX,IKY)) ) c+ SPZ(J) = SPZ(J) + 2.*(VZ/WK**2) SPZ(J) = SPZ(J) + VZ/WK**2 N(J) = N(J) + 2 20 CONTINUE C c+ PRINT *, c+ .'KINETIC, POTENTIAL & TOTAL ENERGY SPECTRA AT T = ', c+ . TIME WRITE(10,5100) TIME c DO 30 J=1,KTX-1 E = 0.5*SPZ(J) AVZ = AVZ + E IF (FL.EQ.0) THEN c WRITE( 6,5000) FLOAT(J),E,N(J) WRITE(10,5000) FLOAT(J),E,N(J) ENDIF 30 CONTINUE C c WRITE(6,5010) AVZ WRITE(16,5020) AVZ C RETURN 5000 FORMAT(1X,F4.0,4X,E15.8,10X,I4) 5100 FORMAT(f10.3) c5010 FORMAT(1X,'energy ',E14.8) 5010 FORMAT(E14.8) 5020 FORMAT(E14.8) END