Annotation of researchv10dc/cmd/matlab/sys.tso, revision 1.1

1.1     ! root        1: C     PROGRAM MAIN
        !             2:       CALL ERRSET(208,1000000,-1,1)
        !             3:       CALL ERRSET(207,1000000,0,1)
        !             4:       CALL MATLAB(0)
        !             5:       STOP
        !             6:       END
        !             7:       SUBROUTINE FILES(LUNIT,NAME,IOSTAT)
        !             8:       INTEGER LUNIT,NAME(32)
        !             9: C
        !            10: C     SYSTEM DEPENDENT ROUTINE TO ALLOCATE FILES
        !            11: C     LUNIT = LOGICAL UNIT NUMBER
        !            12: C     NAME = FILE NAME, 1 CHARACTER PER WORD
        !            13: C
        !            14: C     THIS VERSION FOR SYSTEMS LIKE TSO WITHOUT OPEN AND CLOSE
        !            15: C
        !            16:       L = -LUNIT
        !            17:       IF (LUNIT .LT. 0) REWIND L
        !            18:       IF (LUNIT .GT. 0) WRITE(6,13)
        !            19:    13 FORMAT(1X,'SORRY, OPEN IS NOT AVAILABLE')
        !            20:       RETURN
        !            21:       END
        !            22:       SUBROUTINE SAVLOD(LUNIT,ID,M,N,IMG,JOB,XREAL,XIMAG)
        !            23:       INTEGER LUNIT,ID(4),M,N,IMG,JOB
        !            24:       DOUBLE PRECISION XREAL(1),XIMAG(1)
        !            25: C
        !            26: C     IMPLEMENT SAVE AND LOAD
        !            27: C     LUNIT = LOGICAL UNIT NUMBER
        !            28: C     ID = NAME, FORMAT 4A1
        !            29: C     M, N = DIMENSIONS
        !            30: C     IMG = NONZERO IF XIMAG IS NONZERO
        !            31: C     JOB = 0     FOR SAVE
        !            32: C         = SPACE AVAILABLE FOR LOAD
        !            33: C     XREAL, XIMAG = REAL AND OPTIONAL IMAGINARY PARTS
        !            34: C
        !            35: C     SYSTEM DEPENDENT FORMATS
        !            36:   101 FORMAT(4A1,3I4)
        !            37:   102 FORMAT(4Z18)
        !            38: C
        !            39:       IF (JOB .GT. 0) GO TO 20
        !            40: C
        !            41: C     SAVE
        !            42:    10 WRITE(LUNIT,101) ID,M,N,IMG
        !            43:       DO 15 J = 1, N
        !            44:          K = (J-1)*M+1
        !            45:          L = J*M
        !            46:          WRITE(LUNIT,102) (XREAL(I),I=K,L)
        !            47:          IF (IMG .NE. 0) WRITE(LUNIT,102) (XIMAG(I),I=K,L)
        !            48:    15 CONTINUE
        !            49:       RETURN
        !            50: C
        !            51: C     LOAD
        !            52:    20 READ(LUNIT,101,END=30) ID,M,N,IMG
        !            53:       IF (M*N .GT. JOB) GO TO 30
        !            54:       DO 25 J = 1, N
        !            55:          K = (J-1)*M+1
        !            56:          L = J*M
        !            57:          READ(LUNIT,102,END=30) (XREAL(I),I=K,L)
        !            58:          IF (IMG .NE. 0) READ(LUNIT,102,END=30) (XIMAG(I),I=K,L)
        !            59:    25 CONTINUE
        !            60:       RETURN
        !            61: C
        !            62: C     END OF FILE
        !            63:    30 M = 0
        !            64:       N = 0
        !            65:       RETURN
        !            66:       END
        !            67:       SUBROUTINE FORMZ(LUNIT,X,Y)
        !            68:       DOUBLE PRECISION X,Y
        !            69: C
        !            70: C     SYSTEM DEPENDENT ROUTINE TO PRINT WITH Z FORMAT
        !            71: C
        !            72:       IF (Y .NE. 0.0D0) WRITE(LUNIT,10) X,Y
        !            73:       IF (Y .EQ. 0.0D0) WRITE(LUNIT,10) X
        !            74:    10 FORMAT(2Z18)
        !            75:       RETURN
        !            76:       END
        !            77:       DOUBLE PRECISION FUNCTION FLOP(X)
        !            78:       DOUBLE PRECISION X
        !            79: C     SYSTEM DEPENDENT FUNCTION
        !            80: C     COUNT AND POSSIBLY CHOP EACH FLOATING POINT OPERATION
        !            81: C     FLP(1) IS FLOP COUNTER
        !            82: C     FLP(2) IS NUMBER OF PLACES TO BE CHOPPED
        !            83: C
        !            84:       INTEGER SYM,SYN(4),BUF(256),CHAR,FLP(2),FIN,FUN,LHS,RHS,RAN(2)
        !            85:       COMMON /COM/ SYM,SYN,BUF,CHAR,FLP,FIN,FUN,LHS,RHS,RAN
        !            86: C
        !            87:       DOUBLE PRECISION MASK(13),XX,MM
        !            88:       LOGICAL LX(2),LM(2)
        !            89:       EQUIVALENCE (LX(1),XX),(LM(1),MM)
        !            90:       DATA MASK        / ZFFFFFFFFFFFFFFF0,ZFFFFFFFFFFFFFF00,
        !            91:      $ ZFFFFFFFFFFFFF000,ZFFFFFFFFFFFF0000,ZFFFFFFFFFFF00000,
        !            92:      $ ZFFFFFFFFFF000000,ZFFFFFFFFF0000000,ZFFFFFFFF00000000,
        !            93:      $ ZFFFFFFF000000000,ZFFFFFF0000000000,ZFFFFF00000000000,
        !            94:      $ ZFFFF000000000000,ZFFF0000000000000/
        !            95: C
        !            96:       FLP(1) = FLP(1) + 1
        !            97:       K = FLP(2)
        !            98:       FLOP = X
        !            99:       IF (K .LE. 0) RETURN
        !           100:       FLOP = 0.0D0
        !           101:       IF (K .GE. 14) RETURN
        !           102:       XX = X
        !           103:       MM = MASK(K)
        !           104:       LX(1) = LX(1) .AND. LM(1)
        !           105:       LX(2) = LX(2) .AND. LM(2)
        !           106:       FLOP = XX
        !           107:       RETURN
        !           108:       END
        !           109:       SUBROUTINE XCHAR(BUF,K)
        !           110:       INTEGER BUF(1),K
        !           111: C
        !           112: C     SYSTEM DEPENDENT ROUTINE TO HANDLE SPECIAL CHARACTERS
        !           113: C
        !           114:       WRITE(6,10) BUF(1)
        !           115:    10 FORMAT(1X,A1,' is not a MATLAB character.')
        !           116:       RETURN
        !           117:       END
        !           118:       SUBROUTINE USER(A,M,N,S,T)
        !           119:       DOUBLE PRECISION A(M,N),S,T
        !           120: C
        !           121:       INTEGER A3(9)
        !           122:       DATA A3 /-149,537,-27,-50,180,-9,-154,546,-25/
        !           123:       IF (A(1,1) .NE. 3.0D0) RETURN
        !           124:       DO 10 I = 1, 9
        !           125:          A(I,1) = A3(I)
        !           126:    10 CONTINUE
        !           127:       M = 3
        !           128:       N = 3
        !           129:       RETURN
        !           130:       END
        !           131:       SUBROUTINE PROMPT(PAUSE)
        !           132:       INTEGER PAUSE
        !           133: C
        !           134: C     ISSUE MATLAB PROMPT WITH OPTIONAL PAUSE
        !           135: C
        !           136:       INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO
        !           137:       COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO
        !           138:       WRITE(WTE,10)
        !           139:       IF (WIO .NE. 0) WRITE(WIO,10)
        !           140:    10 FORMAT(/1X,'<>')
        !           141:       IF (PAUSE .EQ. 1) READ(RTE,20) DUMMY
        !           142:    20 FORMAT(A1)
        !           143:       RETURN
        !           144:       END
        !           145:       SUBROUTINE PLOT(LUNIT,X,Y,N,P,K,BUF)
        !           146:       DOUBLE PRECISION X(N),Y(N),P(1)
        !           147:       INTEGER BUF(79)
        !           148: C
        !           149: C     PLOT X VS. Y ON LUNIT
        !           150: C     IF K IS NONZERO, THEN P(1),...,P(K) ARE EXTRA PARAMETERS
        !           151: C     BUF IS WORK SPACE
        !           152: C
        !           153:       DOUBLE PRECISION XMIN,YMIN,XMAX,YMAX,DY,DX,Y1,Y0
        !           154:       INTEGER AST,BLANK,H,W
        !           155:       DATA AST/1H*/,BLANK/1H /,H/20/,W/79/
        !           156: C
        !           157: C     H = HEIGHT, W = WIDTH
        !           158: C
        !           159:       XMIN = X(1)
        !           160:       XMAX = X(1)
        !           161:       YMIN = Y(1)
        !           162:       YMAX = Y(1)
        !           163:       DO 10 I = 1, N
        !           164:          XMIN = DMIN1(XMIN,X(I))
        !           165:          XMAX = DMAX1(XMAX,X(I))
        !           166:          YMIN = DMIN1(YMIN,Y(I))
        !           167:          YMAX = DMAX1(YMAX,Y(I))
        !           168:    10 CONTINUE
        !           169:       DX = XMAX - XMIN
        !           170:       IF (DX .EQ. 0.0D0) DX = 1.0D0
        !           171:       DY = YMAX - YMIN
        !           172:       WRITE(LUNIT,35)
        !           173:       DO 40 L = 1, H
        !           174:          DO 20 J = 1, W
        !           175:             BUF(J) = BLANK
        !           176:    20    CONTINUE
        !           177:          Y1 = YMIN + (H-L+1)*DY/H
        !           178:          Y0 = YMIN + (H-L)*DY/H
        !           179:          JMAX = 1
        !           180:          DO 30 I = 1, N
        !           181:             IF (Y(I) .GT. Y1) GO TO 30
        !           182:             IF (L.NE.H .AND. Y(I).LE.Y0) GO TO 30
        !           183:             J = 1 + (W-1)*(X(I) - XMIN)/DX
        !           184:             BUF(J) = AST
        !           185:             JMAX = MAX0(JMAX,J)
        !           186:    30    CONTINUE
        !           187:          WRITE(LUNIT,35) (BUF(J),J=1,JMAX)
        !           188:    35    FORMAT(1X,79A1)
        !           189:    40 CONTINUE
        !           190:       RETURN
        !           191:       END
        !           192:       SUBROUTINE EDIT(BUF,N)
        !           193:       INTEGER BUF(N)
        !           194: C
        !           195: C     CALLED AFTER INPUT OF A SINGLE BACKSLASH
        !           196: C     BUF CONTAINS PREVIOUS INPUT LINE, ONE CHAR PER WORD
        !           197: C     ENTER LOCAL EDITOR IF AVAILABLE
        !           198: C     OTHERWISE JUST
        !           199:       RETURN
        !           200:       END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.