* C09CAF Example Program Text * Mark 22 Release. NAG Copyright 2007. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER NMAX, NWCMAX PARAMETER (NMAX=30,NWCMAX=30) * .. Local Scalars .. INTEGER I, IFAIL, N, NF, NWC, NWL, NY CHARACTER*12 MODE, WAVNAM, WTRANS * .. Local Arrays .. DOUBLE PRECISION CA(NWCMAX), CD(NWCMAX), X(NMAX), Y(NMAX) INTEGER ICOMM(100) * .. External Subroutines .. EXTERNAL C09AAF, C09CAF, C09CBF * .. Executable Statements .. WRITE (NOUT,*) 'C09CAF Example Program Results' * Skip heading in data file READ (NIN,*) * Read problem parameters. READ (NIN,*) N READ (NIN,*) WAVNAM, MODE * IF (N.LE.NMAX .AND. N.GE.2) THEN WRITE (NOUT,*) 'DWT :: Wavelet: ', WAVNAM, ', End mode: ', MODE * Read array READ (NIN,*) (X(I),I=1,N) WRITE (NOUT,*) 'Input Data X :' WRITE (NOUT,99997) (X(I),I=1,N) * Query wavelet filter dimensions WTRANS = 'Single Level' IFAIL = 1 * CALL C09AAF(WAVNAM,WTRANS,MODE,N,NWL,NF,NWC,ICOMM,IFAIL) * IF (IFAIL.EQ.0) THEN IFAIL = 1 * CALL C09CAF(N,X,NWCMAX,CA,CD,ICOMM,IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,99998) WRITE (NOUT,99997) (CA(I),I=1,NWC) WRITE (NOUT,99996) WRITE (NOUT,99997) (CD(I),I=1,NWC) ELSE WRITE (NOUT,*) WRITE (NOUT,99999) IFAIL END IF * NY = N * IFAIL = 1 * CALL C09CBF(NWC,CA,CD,NY,Y,ICOMM,IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,99995) WRITE (NOUT,99997) (Y(I),I=1,NY) ELSE WRITE (NOUT,*) 'Error in C09CBF: IFAIL = ', IFAIL END IF * ELSE WRITE (NOUT,*) WRITE (NOUT,99994) IFAIL END IF * END IF * 99999 FORMAT (1X,' ** C09CAF returned with IFAIL = ',I5) 99998 FORMAT (1X,' Approximation coefficients CA : ') 99997 FORMAT (1X,8(F8.4,1X),:) 99996 FORMAT (1X,' Detail coefficients CD : ') 99995 FORMAT (1X,' Reconstruction Y : ') 99994 FORMAT (1X,' ** C09AAF returned with IFAIL = ',I5) END