1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

112 lines
8.8 KiB
Plaintext

COMMENT THE CLIPPINGER DIMSDALE METHOD FOR SOLVING A FIRST ORDER TEST0001
ORDINARY DIFFERENTIAL EQUATION TEST0002
TEST0003
ANNE G. MACEK TEST0004
(PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION) TEST0005
PROCEDURE CARD SEQUENCE BEGINS WITH CDIM-0001 TEST0007
TEST0006
FIRST RELEASE DATE 04-01-63 ; TEST0008
TEST0009
BEGIN TEST0010
TEST0011
INTEGER N,NPRINT ; TEST0012
REAL X0,Y0,H,XMAX,EMAX,EMIN,E ; TEST0013
LIST INPUT(X0,Y0,H,XMAX,EMAX,EMIN,E,NPRINT) ; TEST0014
FORMAT IN DATA(4E11.3,3E10.2,I4) ; TEST0015
FILE IN READER(1,10) ; TEST0016
FILE OUT PRINTER(1,15) ; TEST0017
TEST0018
REAL PROCEDURE F(X,Y) ; TEST0019
TEST0020
VALUE X,Y ; TEST0021
REAL X,Y ; TEST0022
TEST0023
F ~ -Y*2 | X | 2.0 ; TEST0024
TEST0025
TEST0026
PROCEDURE PRINT(X,H,Y,DY,LIN) ; TEST0027
TEST0028
VALUE X,H,Y,DY ; TEST0029
INTEGER LIN ; TEST0030
REAL X,H,Y,DY ; TEST0031
TEST0032
BEGIN TEST0033
TEST0034
LIST OUTPUT(X,H,Y,DY,1/(1 + X*2)) ; TEST0035
FORMAT OUT FORMH(X8,"X",X15,"H",X15,"Y",X15,"DY"), TEST0036
FORM(5F16.8) ; TEST0037
TEST0038
IF LIN = 0 THEN TEST0039
BEGIN TEST0040
WRITE(PRINTER[PAGE]) ; TEST0041
WRITE(PRINTER[DBL],FORMH) TEST0042
END ; TEST0043
WRITE(PRINTER,FORM,OUTPUT) ; TEST0044
LIN ~ LIN + 1 ; TEST0045
IF LIN > 50 THEN LIN ~ 0 TEST0046
END ; TEST0047
TEST0048
PROCEDURE CLIPDIM(X,Y,H,XMAX,EMAX,EMIN,E,NPRINT,F,PRINT) ; CDIM0001
CDIM0002
VALUE XMAX,EMAX,EMIN,E,NPRINT ; CDIM0003
INTEGER NPRINT ; CDIM0004
REAL X,Y,H,XMAX,EMAX,EMIN,E ; CDIM0005
REAL PROCEDURE F ; CDIM0006
PROCEDURE PRINT ; CDIM0007
CDIM0008
BEGIN CDIM0009
CDIM0010
INTEGER N,LIN ; CDIM0011
REAL DY,Y1,DY1,Y1C,DY1C,HY,DHY,HYC,CO ; CDIM0012
BOOLEAN BOOL,BOOLH ; CDIM0013
LABEL L1,L1A,L2,L3,L4,RET ; CDIM0014
CDIM0015
N ~ LIN ~ 0 ; CDIM0016
DY ~ F(X,Y) ; CDIM0017
CDIM0018
L1: PRINT(X,H,Y,DY,LIN) ; CDIM0019
CDIM0020
L1A: BOOL ~ BOOLH ~ FALSE ; CDIM0021
IF (X+H) > XMAX THEN GO TO RET ; CDIM0022
CDIM0023
L2: Y1 ~ Y + H | DY ; CDIM0024
DY1 ~ F(X+H,Y1) ; CDIM0025
HY ~ 0.5 | (Y + Y1) + 0.125 | H | (DY - DY1) ; CDIM0026
CDIM0027
L3: DHY ~ F(X + 0.5 | H,HY) ; CDIM0028
Y1C ~ Y + H | (DY + DHY | 4.0 + DY1)/6.0 ; CDIM0029
DY1C ~ F(X+H,Y1C) ; CDIM0030
HYC ~ 0.5 | (Y + Y1C) + 0.125 | H | (DY - DY1C) ; CDIM0031
CO ~ ABS((Y1C - Y1)/Y1) ; CDIM0032
IF BOOL THEN GO TO L4 ; CDIM0033
IF CO > EMAX THEN CDIM0034
BEGIN CDIM0035
BOOLH ~ TRUE ; CDIM0036
H ~ 0.5 | H ; GO TO L2 CDIM0037
END ; CDIM0038
IF BOOLH THEN GO TO L4 ; CDIM0039
IF CO < EMIN THEN CDIM0040
BEGIN CDIM0041
IF (X + H | 2.0) > XMAX THEN GO TO L4 ; CDIM0042
H ~ H + H ; GO TO L2 CDIM0043
END ; CDIM0044
BOOL ~ TRUE ; CDIM0045
CDIM0046
L4: IF CO > E THEN CDIM0047
BEGIN CDIM0048
HY ~ HYC ; Y1 ~ Y1C ; DY1 ~ DY1C ; CDIM0049
GO TO L3 CDIM0050
END ; CDIM0051
X ~ X + H ; CDIM0052
Y ~ Y1C ; DY ~ DY1C ; CDIM0053
N ~ N + 1 ; CDIM0054
IF N < NPRINT THEN GO TO L1A ; CDIM0055
N ~ 0 ; GO TO L1 ; CDIM0056
CDIM0057
RET: END ; CDIM0058
TEST0049
READ(READER,DATA,INPUT) ; TEST0050
CLIPDIM(X0,Y0,H,XMAX,EMAX,EMIN,E,NPRINT,F,PRINT) ; TEST0051
TEST0052
END. TEST0053