diff --git a/four2.f b/four2.f index 0a2e78c25..b3f4aeaa9 100755 --- a/four2.f +++ b/four2.f @@ -36,7 +36,8 @@ C the naive NTOT**2. Furthermore, less error is built up. C Written by Norman Brenner of MIT Lincoln Laboratory, January 1969. C See IEEE Audio Transactions (June 1967), Special issue on FFT. - DIMENSION DATA(1048576), N(1) + parameter(NMAX=2048*1024) + DIMENSION DATA(NMAX), N(1) NTOT=1 DO 10 IDIM=1,NDIM 10 NTOT=NTOT*N(IDIM) @@ -78,7 +79,8 @@ C EXCHANGE DATA(J1,J4REV,J5) WITH DATA(J1,J4,J5) FOR ALL J1 FROM 1 C TO NPREV, ALL J4 FROM 1 TO N (WHICH MUST BE A POWER OF TWO), AND C ALL J5 FROM 1 TO NREM. J4REV-1 IS THE BIT REVERSAL OF J4-1. E.G. C SUPPOSE N = 32. THEN FOR J4-1 = 10011, J4REV-1 = 11001, ETC. - DIMENSION DATA(1048576) + parameter(NMAX=2048*1024) + DIMENSION DATA(NMAX) IP0=2 IP1=IP0*NPREV IP4=IP1*N @@ -135,7 +137,8 @@ C IT IS NOT NECESSARY TO REWRITE THIS SUBROUTINE INTO COMPLEX C NOTATION SO LONG AS THE FORTRAN COMPILER USED STORES REAL AND C IMAGINARY PARTS IN ADJACENT STORAGE LOCATIONS. IT MUST ALSO C STORE ARRAYS WITH THE FIRST SUBSCRIPT INCREASING FASTEST. - DIMENSION DATA(1048576) + parameter(NMAX=2048*1024) + DIMENSION DATA(NMAX) real*8 twopi,wstpr,wstpi,wr,wi,w2r,w2i,w3r,w3i,wtempr @@ -255,7 +258,8 @@ C DATA(I1,I2) = (DATA(I1,I2)-TEMP)*(1-IFORM) C 10 DATA(I1CNJ,I2) = (DATA(I1CNJ,I2)+CONJ(TEMP))*(1-IFORM) C IF I1=I1CNJ, THE CALCULATION FOR THAT VALUE COLLAPSES INTO C A SIMPLE CONJUGATION OF DATA(I1,I2). - DIMENSION DATA(2) + parameter(NMAX=2048*1024) + DIMENSION DATA(NMAX) TWOPI=6.283185307*FLOAT(ISIGN) IP0=2 IP1=IP0*(N/2)