* G03FCF Example Program Text * Mark 17 Release. NAG Copyright 1995. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER NMAX, MMAX, NNMAX, LDX PARAMETER (NMAX=14,MMAX=2,NNMAX=NMAX*(NMAX-1)/2,LDX=NMAX) * .. Local Scalars .. DOUBLE PRECISION STRESS INTEGER I, IFAIL, IOPT, ITER, J, N, NDIM, NN CHARACTER TYP * .. Local Arrays .. DOUBLE PRECISION D(NNMAX), DFIT(4*NNMAX), WK(NNMAX+15*NMAX*MMAX), + X(LDX,NMAX) INTEGER IWK(NNMAX+NMAX*NMAX+5) * .. External Subroutines .. EXTERNAL G01AGF, G03FAF, G03FCF * .. Executable Statements .. WRITE (NOUT,*) 'G03FCF Example Program Results' * Skip heading in data file READ (NIN,*) READ (NIN,*) N, NDIM, TYP IF (N.LE.NMAX) THEN NN = N*(N-1)/2 READ (NIN,*) (D(I),I=1,NN) IFAIL = 1 CALL G03FAF('L',N,D,NDIM,X,LDX,WK,WK(N+1),IWK,IFAIL) * IF (IFAIL.NE.0) THEN WRITE (NOUT,*) WRITE (NOUT,99997) ' ** G03FAF returned with IFAIL = ', + IFAIL GO TO 40 END IF * ITER = 0 IOPT = 0 IFAIL = 1 * CALL G03FCF(TYP,N,NDIM,D,X,LDX,STRESS,DFIT,ITER,IOPT,WK,IWK, + IFAIL) * IF (IFAIL.NE.0) THEN WRITE (NOUT,*) WRITE (NOUT,99997) ' ** G03FCF returned with IFAIL = ', + IFAIL GO TO 40 END IF WRITE (NOUT,*) WRITE (NOUT,99999) STRESS WRITE (NOUT,*) WRITE (NOUT,*) ' Co-ordinates' WRITE (NOUT,*) DO 20 I = 1, N WRITE (NOUT,99998) (X(I,J),J=1,NDIM) 20 CONTINUE WRITE (NOUT,*) WRITE (NOUT,*) ' Plot of first two dimensions' WRITE (NOUT,*) IFAIL = 1 CALL G01AGF(X(1,1),X(1,2),N,IWK,50,18,IFAIL) IF (IFAIL.NE.0) THEN WRITE (NOUT,*) WRITE (NOUT,99997) ' ** G03agF returned with IFAIL = ', + IFAIL END IF END IF 40 CONTINUE * 99999 FORMAT (10X,'STRESS = ',E13.4) 99998 FORMAT (8F10.4) 99997 FORMAT (1X,A,I5) END