SUBROUTINE FLDMOD(KAPPA,NU,GAMMA,V1,V2,K1,K2,G1,G2,IKTX,IKTY,KTX, 1 . KTY,WN,PXLIM,L,ILAP) C C INITIALISES STUFF LIKE WAVENUMBERS, INDICES, SPECTRA, PHASES, ETC. C IMPLICIT NONE INTEGER IKX,IKY,IKTX,IKTY,KTX,KTY,PXLIM INTEGER ILAP,L(PXLIM,IKTY) REAL KX,KY,WK,V1,V2,K1,K2,G1,G2 REAL KAPPA(IKTX,IKTY),NU(IKTX,IKTY),GAMMA(IKTX,IKTY) REAL EK,VK REAL WN(PXLIM,IKTY) c c DO 5 IKX=1,PXLIM KX = FLOAT(IKX - KTX - 1) DO 5 IKY=1,IKTY KY = FLOAT(IKY - KTY - 1) L(IKX,IKY) = 1 WN(IKX,IKY) = KX*KX + KY*KY WK = SQRT(WN(IKX,IKY)) IF (KX.LT.0) L(IKX,IKY) = 0 IF (KX.EQ.0 .AND. KY.LE.0) L(IKX,IKY) = 0 IF (WK.GT.FLOAT(KTX)-0.5) L(IKX,IKY) = 0 5 CONTINUE C C DO 30 IKX=1,IKTX KX = FLOAT(IKX-1) DO 30 IKY=1,IKTY KY = FLOAT(IKY-KTY-1) WK = SQRT(KX*KX+KY*KY) IF(L(IKX+KTX,IKY).ne.1) GO TO 10 NU(IKX,IKY) = V1 + V2*WK**(2*ILAP) KAPPA(IKX,IKY) = K1 + K2*WK**(2*ILAP) GAMMA(IKX,IKY) = G1 + G2*WK**(2*ILAP) c GO TO 30 10 continue NU(IKX,IKY) = 1000. KAPPA(IKX,IKY) = 1000. GAMMA(IKX,IKY) = 1000. 30 CONTINUE c open (16,file='l64.io',status='unknown') c write(16,107) ((L(ikx,iky),ikx=1,ikty),iky=1,ikty) c 107 format(43I3) c close(16) RETURN END