PROGRAM DECOMPOSE IMPLICIT INTEGER (A-Z) DOUBLE PRECISION PROX(30,30), SYM(30,30), SKEWSYM(30,30),MAG(30,30), DIR(30,30) C C################################################################################ C DECOMPOSING PROGRAM C DECOMPOSES A PROXIMITY MATRIX INTO ITS SYMETRIC AND SKEW SYMETRIC COMPONENTS. C THE SKEW-SYM MATRIX IS DECOMPOSED INTO ITS SIGN AND MAGNITUDE COMPONETS. C P = Q + R = Q + S*M^T C################################################################################ C C OPEN (1,FILE='PROX.DAT') READ (1,*) N ! READ N FROM FILE READ (1,*) ((PROX(I,J), J=1,N),I=1,N) ! READ PROXIMITY MATRIX DO I=1,N DO J=1,N SYM(I,J)=(PROX(I,J)+PROX(J,I))/2 SKEWSYM(I,J)=(PROX(I,J)-PROX(J,I))/2 MAG(I,J)=ABS(SKEWSYM(I,J)) IF (SKEWSYM(I,J).GT.0) DIR(I,J)=1 IF (SKEWSYM(I,J).LT.0) DIR(I,J)=-1 IF (SKEWSYM(I,J).EQ.0) DIR(I,J)=0 END DO END DO OPEN (2,FILE='DECOMP.DAT') WRITE(2,*) N DO I=1,N WRITE(2,10) (SYM(I,J),J=1,N) END DO WRITE(2,*) N DO I=1,N WRITE(2,10) (SKEWSYM(I,J),J=1,N) END DO OPEN (3, FILE='SYM.DAT') WRITE(3,*) N DO I=1,N WRITE(3,10) (MAG(I,J),J=1,N) END DO OPEN(4, FILE='ASYM.DAT') WRITE(4,*) N DO I=1,N WRITE(4,10) (DIR(I,J),J=1,N) END DO 10 FORMAT(30F9.3) END