* G03BAF Example Program Text * Mark 15 Release. NAG Copyright 1991. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER NMAX, MMAX, LDFL, LDR PARAMETER (NMAX=10,MMAX=3,LDFL=NMAX,LDR=MMAX) * .. Local Scalars .. DOUBLE PRECISION ACC, G INTEGER I, IFAIL, ITER, J, K, MAXIT, NVAR CHARACTER STAND * .. Local Arrays .. DOUBLE PRECISION FL(LDFL,MMAX), FLR(LDFL,MMAX), R(LDR,MMAX), + WK(2*NMAX+MMAX*MMAX+5*(MMAX-1)) * .. External Subroutines .. EXTERNAL G03BAF * .. Executable Statements .. WRITE (NOUT,*) 'G03BAF Example Program Results' * Skip heading in data file READ (NIN,*) READ (NIN,*) NVAR, K, G, STAND, ACC, MAXIT IF (NVAR.LE.NMAX .AND. K.LE.MMAX) THEN DO 20 I = 1, NVAR READ (NIN,*) (FL(I,J),J=1,K) 20 CONTINUE IFAIL = 1 * CALL G03BAF(STAND,G,NVAR,K,FL,LDFL,FLR,R,LDR,ACC,MAXIT,ITER,WK, + IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,*) WRITE (NOUT,*) ' Rotated factor loadings' WRITE (NOUT,*) DO 40 I = 1, NVAR WRITE (NOUT,99999) (FLR(I,J),J=1,K) 40 CONTINUE WRITE (NOUT,*) WRITE (NOUT,*) ' Rotation matrix' WRITE (NOUT,*) DO 60 I = 1, K WRITE (NOUT,99999) (R(I,J),J=1,K) 60 CONTINUE ELSE WRITE (NOUT,*) WRITE (NOUT,99998) ' ** G03BAF returned with IFAIL = ', + IFAIL END IF END IF * 99999 FORMAT (4(2X,6F8.3)) 99998 FORMAT (1X,A,I5) END