Google
 

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