Trailing-Edge
-
PDP-10 Archives
-
decuslib10-02
-
43,50145/mstr.ssp
There are 2 other files named mstr.ssp in the archive. Click here to see a list.
C MSTR 10
C ..................................................................MSTR 20
C MSTR 30
C SUBROUTINE MSTR MSTR 40
C MSTR 50
C PURPOSE MSTR 60
C CHANGE STORAGE MODE OF A MATRIX MSTR 70
C MSTR 80
C USAGE MSTR 90
C CALL MSTR(A,R,N,MSA,MSR) MSTR 100
C MSTR 110
C DESCRIPTION OF PARAMETERS MSTR 120
C A - NAME OF INPUT MATRIX MSTR 130
C R - NAME OF OUTPUT MATRIX MSTR 140
C N - NUMBER OF ROWS AND COLUMNS IN A AND R MSTR 150
C MSA - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A MSTR 160
C 0 - GENERAL MSTR 170
C 1 - SYMMETRIC MSTR 180
C 2 - DIAGONAL MSTR 190
C MSR - SAME AS MSA EXCEPT FOR MATRIX R MSTR 200
C MSTR 210
C REMARKS MSTR 220
C MATRIX R CANNOT BE IN THE SAME LOCATION AS MATRIX A MSTR 230
C MATRIX A MUST BE A SQUARE MATRIX MSTR 240
C MSTR 250
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED MSTR 260
C LOC MSTR 270
C MSTR 280
C METHOD MSTR 290
C MATRIX A IS RESTRUCTURED TO FORM MATRIX R. MSTR 300
C MSA MSR MSTR 310
C 0 0 MATRIX A IS MOVED TO MATRIX R MSTR 320
C 0 1 THE UPPER TRIANGLE ELEMENTS OF A GENERAL MATRIX MSTR 330
C ARE USED TO FORM A SYMMETRIC MATRIX MSTR 340
C 0 2 THE DIAGONAL ELEMENTS OF A GENERAL MATRIX ARE USED MSTR 350
C TO FORM A DIAGONAL MATRIX MSTR 360
C 1 0 A SYMMETRIC MATRIX IS EXPANDED TO FORM A GENERAL MSTR 370
C MATRIX MSTR 380
C 1 1 MATRIX A IS MOVED TO MATRIX R MSTR 390
C 1 2 THE DIAGONAL ELEMENTS OF A SYMMETRIC MATRIX ARE MSTR 400
C USED TO FORM A DIAGONAL MATRIX MSTR 410
C 2 0 A DIAGONAL MATRIX IS EXPANDED BY INSERTING MISSING MSTR 420
C ZERO ELEMENTS TO FORM A GENERAL MATRIX MSTR 430
C 2 1 A DIAGONAL MATRIX IS EXPANDED BY INSERTING MISSING MSTR 440
C ZERO ELEMENTS TO FORM A SYMMETRIC MATRIX MSTR 450
C 2 2 MATRIX A IS MOVED TO MATRIX R MSTR 460
C MSTR 470
C ..................................................................MSTR 480
C MSTR 490
SUBROUTINE MSTR(A,R,N,MSA,MSR) MSTR 500
DIMENSION A(1),R(1) MSTR 510
C MSTR 520
C ..................................................................MSTR 530
C MSTR 540
C IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE MSTR 550
C C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION MSTR 560
C STATEMENT WHICH FOLLOWS. MSTR 570
C MSTR 580
C DOUBLE PRECISION A,R MSTR 590
C MSTR 600
C THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS MSTR 610
C APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS MSTR 620
C ROUTINE. MSTR 630
C MSTR 640
C ..................................................................MSTR 650
C MSTR 660
DO 20 I=1,N MSTR 670
DO 20 J=1,N MSTR 680
C MSTR 690
C IF R IS GENERAL, FORM ELEMENT MSTR 700
C MSTR 710
IF(MSR) 5,10,5 MSTR 720
C MSTR 730
C IF IN LOWER TRIANGLE OF SYMMETRIC OR DIAGONAL R, BYPASS MSTR 740
C MSTR 750
5 IF(I-J) 10,10,20 MSTR 760
10 CALL LOC(I,J,IR,N,N,MSR) MSTR 770
C MSTR 780
C IF IN UPPER AND OFF DIAGONAL OF DIAGONAL R, BYPASS MSTR 790
C MSTR 800
IF(IR) 20,20,15 MSTR 810
C MSTR 820
C OTHERWISE, FORM R(I,J) MSTR 830
C MSTR 840
15 R(IR)=0.0 MSTR 850
CALL LOC(I,J,IA,N,N,MSA) MSTR 860
C MSTR 870
C IF THERE IS NO A(I,J), LEAVE R(I,J) AT 0.0 MSTR 880
C MSTR 890
IF(IA) 20,20,18 MSTR 900
18 R(IR)=A(IA) MSTR 910
20 CONTINUE MSTR 920
RETURN MSTR 930
END MSTR 940