mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
112 lines
8.8 KiB
Plaintext
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
|