Upload
dokiet
View
214
Download
0
Embed Size (px)
Citation preview
REAL-TIME RECONCILIATION OF COAL COMBUSTOR DATA
Item Type text; Thesis-Reproduction (electronic)
Authors Montgomery, Roger Lee
Publisher The University of Arizona.
Rights Copyright © is held by the author. Digital access to this materialis made possible by the University Libraries, University of Arizona.Further transmission, reproduction or presentation (such aspublic display or performance) of protected items is prohibitedexcept with permission of the author.
Download date 24/05/2018 23:58:10
Link to Item http://hdl.handle.net/10150/291222
INFORMATION TO USERS
This was produced from a copy of a document sent to us for microfilming. While the
most advanced technological means to photograph and reproduce this document
have been used, the quality is heavily dependent upon the quality of the material
submitted.
The following explanation of techniques is provided to help you understand
markings or notations which may appear on this reproduction.
1. The sign or "target" for pages apparently lacking from the document
photographed is "Missing Page(s)". If it was possible to obtain the missing
page(s) or section, they are spliced into the film along with adjacent pages.
This may have necessitated cutting through an image and duplicating
adjacent pages to assure you of complete continuity.
2. When an image on the film is obliterated with a round black mark it is an
indication that the film inspector noticed either blurred copy because of
movement during exposure, or duplicate copy. Unless we meant to delete
copyrighted materials that should not have been filmed, you will find a good
image of the page in the adjacent frame. If copyrighted materials were
deleted you will find a target note listing the pages in the adjacent frame.
3. When a map, drawing or chart, etc., is part of the material being photo
graphed the photographer has followed a definite method in "sectioning"
the material. It is customary to begin filming at the upper left hand corner of
a large sheet and to continue from left to right in equal sections with small
overlaps. If necessary, sectioning is continued again—beginning below the
first row and continuing on until complete.
4. For any illustrations that cannot be reproduced satisfactorily by xerography,
photographic prints can be purchased at additional cost and tipped into your
xerographic copy. Requests can be made to our Dissertations Customer
Services Department.
5. Some pages in any document may have indistinct print. In all cases we have
filmed the best available copy.
University Microfilms
International 300 N. ZEEB RD„ ANN ARBOR, Ml /18106
1310776
MONTGOMERY, ROGER LEE REAL-TIME RECONCILIATION OF COAL COMBUSTQR DATA.
THE UNIVERSITY OF ARIZONA, M#S,, 1982
University Microfilms
International AOO N. ZEEB RD„ ANN ARBOR, AWX
PLEASE NOTE:
In all cases this material has been filmed in the best possible way from the available copy. Problems encountered with this document have been identified here with a check mark V .
1. Glossy photographs or pages
2. Colored illustrations, paper or print
3. Photographs with dark background
4. Illustrations are poor copy
5. Pages with black marks, not original copy
6. Print shows through as there is text on both sides of page
7. Indistinct, broken or small print on several pages ^
8. Print exceeds margin requirements
9. Tightly bound copy with print lost in spine
10. Computer printout pages with indistinct print.
11. Page(s) lacking when material received, and not available from school or author.
12. Page(s) seem to be missing in numbering only as text follows.
13. Two pages numbered . Text follows.
14. Curling and wrinkled pages
15. Other
University Microfilms
International
REAL-TIME RECONCILIATION OF COAL COMBUSTOR DATA
by
Roger Lee Montgomery
A Thesis Submitted to the Faculty of the
DEPARTMENT OF CHEMICAL ENGINEERING
In Partial Fulfillment of the Requirements For the Degree of
MASTER OF SCIENCE
In the Graduate College
THE UNIVERSITY OF ARIZONA
1 9 8 2
STATEMENT BY AUTHOR
This thesis has been submitted in partial fulfillment of requirements for an advanced degree at the University of Arizona and is deposited in the University Library to be made available to borrowers under rules of the Library.
Brief quotations from this thesis are allowable without special permission, provided that accurate acknowledgement of source is made. Requests for permission for extended quotations from or reproduction of this manuscript in whole or in part may be granted by the head of the major department or the Dean of the Graduate College when in his judgment the proposed use of the material is in the interests of scholarship. In all other instances, however, permission must be obtained from the author.
SIGNED:
APPROVAL BY THESIS DIRECTOR
This thesis has been approved on the date shown below:
JOST 0. L. WE Date Profeseor of Chemical Engineering
ACKNOWLEDGMENT
The author wishes to express his gratitude to Dr.
James Wm. White for his guidance, encouragement and shelter,
to Mr. Jonathan P. Olson for his technical help, to Dr.
Jost 0. L. Wendt and Dr. Thomas W. Peterson for their
technical advice, to Mr. James W. Glass for his guidance
during the planning stages of the project and finally to Mr.
Sal Gonzales for his electronics support. The author also
acknowledges financial support provided under D. 0. E.
Contract DE-AC01-79ET-15184.
iii
TABLE OF CONTENTS
Page
LIST OF TABLES vi
LIST OF ILLUSTRATIONS vii
ABSTRACT viii
1 . INTRODUCTION 1
2. DATA ACQUISITION 5
The Combustor Configuration 5 The Data Acquisition .Configuration 10
3. DATA ANALYSIS 17
The Mass Balance Problem 17 The Data Adjustment Problem 22
4. INVESTIGATION 32
Adjustment Verification 32 Consistency Results 37
5. SUMMARY 57
6. CONCLUSIONS 59
7. RECOMMENDATIONS FOR FURTHER STUDY 60
APPENDIX A: FLUE GAS MOISTURE CORRECTION ... 61
APPENDIX B: DETERMINATION OF THE COMBUSTOR SOLUTION SET 62
APPENDIX C: D.O.E. FURNACE MONITOR USER'S GUIDE 69
System Start-up, Shut-down and Crashes ... 70 System Start-up 70 System Shut-down 72 System Crash 73
iv
Option Selection Structure 73 Data Entry i . . . 74 Search 78 Delete 78 Examine . 79 Acquire . 79 Analyze 81 Calibrate ..... 83 Reload 85
APPENDIX D: THE CROMEMCO MICROCOMPUTER PROGRAM 86
System Configuration 86 Interrupt Service Hierarchy 87
System Initialization 88 System Interrupt Service 89 Data Acquisition 94
Concluding Remarks 96
APPENDIX E: D.O.E. COMMAND FILES AND SOURCE LISTINGS 97
v
LIST OF TABLES
Table Page
1. Analyzers Purchased by ERDA Under Contract E(49-18) -1817 9
2. Laminar Flow Element Specifications 11
3. Typical Furnace Data Summary ........ 23
4. Furnace "Calculated" and "Search" Variables 26
5. Consistent Fuel Rich Data Set and Analysis 34
6. Adjustment Classification of "Calculated" and "Search" Variables 38
7. Data Adjustment of Coal Nitrogen Mass Fraction 39
8. Adjustment Classification of Sensitive "Calculated" and "Search" Variables 43
9. Data Adjustment of Coal Hydrogen Mass Fraction 44
10. Data Adjustment of Flue Gas Hydrogen Mole Fraction 47
11. Data Adjustment of Flue Gas Carbon Dioxide Mole Fraction 51
12. Data Adjustment of Flue Gas Nitrogen Mole Fraction 54
vi
LIST OF ILLUSTRATIONS
Figure Page
1. Furnace General Flow Scheme 6
2. Locations of Sampling and Thermocouple Ports . 7
3. Data and Communications Flow Diagram .... 13
4. Cromemco Analog Input Front End 15
5. Material / Composition Flows 18
6. Coggin Data Adjustment in One Space ..... 27
7. Coggin Data Adjustment in Two Space 29
8. Cromemco Macro Flow Chart 91
vii
ABSTRACT
The low cost and versatility of microcomputers as
data acquisition devices has resulted in their widespread
application in chemical and metallurgical processes.
Usually these processes are sufficiently instrumented to
overly define the system. This results in mass balances
which rarely close due to error within the reported data. A
technique for computing consistent mass balances in the
presence of erroneous data is presented. A sum of squares
functional formed from squared data residuals is minimized
by adjusting search variables to reduce error within a
calculated variable set. The technique is applied to coal
combustion data to correct and identify sources of error
within the data.
viii
CHAPTER 1
INTRODUCTION
Within the last ten years, the application of
microcomputers as data acquisition devices has become
widespread throughout chemical and mineral industries. The
result has been increased data reliability and,
consequently, control of process operations. Usually,
process variables that are needed for control purposes are
instrumented whenever possible or calculated from variables
which are measured. The philosophy of "increased control
with more instrumentation" has resulted in processes which
are overly-instrumented from a calculation point of view.
Redundant data enable the calculation of unknown variables
via several paths leading to discrepancies within the
results.
The inconsistencies between data and equations could
be due to three sources. Some of the equations may not
apply to the system, or the method of computation may be
incorrect for the application. Also, it is virtually
impossible to obtain error free data since sensors have
1
2
finite accuracy limits and lifetimes. The first two sources
of inconsistencies can be eliminated by applying suitable
engineering principles and numerical techniques. The third
source can be minimized by correcting instruments which are
out of calibration or improving data acquisition methods.
The extent of this work is concerned with detection
and correction of inconsistent combustion data obtained in a
real-time data acquisition environment. The work is divided
into two stages: data acquisition and data analysis. Data
acquisition is concerned with obtaining data from the
coal-fired research furnace of Wendt and Glass (1979) using
real-time techniques. Data analysis is concerned with
calculating unmeasured furnace operating variables,
providing summary reports of furnace operating conditions,
and performing data adjustment to obtain data consistency in
a least squares sense.
The few publications concerning in data adjustment
in over-defined systems have been restricted to extractive
metallurgical concentrator applications. Smith and Ichiyen
(1973) applied sum of squares functional minimization to
flotation circuit data. The minimization algorithm requires
estimates of data variances and uses a direct search
technique to adjust the data. In some cases negative flow
rates were obtained since loose constraints were not
enforced during optimization. Wiegel (1972) and Hockings
(1977) minimize a sum of squares objective function using
3
Lagrange multipliers; variance estimates are needed in the
sum of squares minimization however. Winslow (1980) points
out that independent variance estimates are difficult to
obtain since multiple simultaneous sets of field data would
need to be collected presenting an unattractive task to
operation personnel.
Whiten (1971) proposed a least squares approach to
removing data inconsistencies through data adjustment in
classifying operations. No methodology on the adjustment
search algorithm was given however. Whiten's results showed
occasional negative screen fractions in the resultant
adjustment set.
White and Winslow (1979, 1977) divide data into
"calculated" and "search" sets such that "search" data is
adjusted to remove "calculated" discrepancies. Both
"calculated" and "search" variables contribute to a sum of
squares functional which is minimized univariably using the
method of Coggin (see Kuester and Mize, 1973). After two
global iterations, convergence is accelerated by minimizing
the functional along a hypervector formed from the previous
two locations in search space. Loose constraints are
enforced by supplying penalty terms when unrealizable
adjustments occur. The method does not require knowledge of
variances and exhibits desirable convergence
characteristics.
N
A characteristic common to the systems investigated
by the aforementioned authors is that data adjustment was
applied to strongly over-defined systems, i.e. fewer
unknown variables than the number of additional equations.
In the furnace application, four unknown variables must be
calculated leaving, at most, two degrees of over-definition
when the six applicable equations are solved. Another
distinction from previously analyzed systems is that
chemical reactions among the constituents occur within the
furnace; unlike the metallurgical examples, component
balances interact prohibiting a staged approach to data
adjustment. Finally, the equilibrium relation of the
water-gas-shift reaction is applied in addition to mass
conservation relationships.
CHAPTER 2
DATA ACQUISITION
The Combustor Configuration
The data acquisition and analysis system described
herein was tailored to the coal-fired research furnace used
by Wendt and Glass (1979, 1978, 1977). Funded by the
Department of Energy, the predominent direction of the
furnace research is in the study of nitrogenous specie
formation and particulate emissions under various operating
conditions.
The combustor proper consists of a refractory lined
cylinder standing vertically to allow a down-fired burn.
Material flows, shown in Figure 1, consists of three air
inputs from an air main, coal input from a screwfeeder, and
flue gas and solids exiting to a convective section.
Transport air carries the coal from the screwfeeder to a
mixing chamber where preheated secondary air is added. The
fuel/air mixture is injected into the furnace throat located
at the top of the furnace. Staged air is added through
ports located along the furnace length, see Figure 2. The
5
6
X Coal
Transport Air
Main Air
Preheater
Primary Air
L
J Supply
Staged Air l5 Furnace
Convective Section
Figure 1: Furnace General Flow Scheme
7
—24'
27' Sampling
Port
Locations
— 30" Thermocouple | Port 3g" Locations
39'
48'
—60'
63" • •
72'
Figure 2: Locations of Sanipling and Thermocouple Ports
8
ports also allow sampling of the furnace atmospheres with a
water quenched probe.
The furnace is normally operated in either a fuel
lean mode, a fuel rich mode or a staged mode (fuel rich
followed by fuel lean conditions). Under fuel lean
conditions, excess air is supplied with either preheated
secondary air or staged air. Fuel rich conditions are
obtained by reducing the secondary air flow rate until the
desired stoichiometric fuel/air mixture is reached. To
ensure a constant coal input flow rate, transport air flow
rate and screw speed are not adjusted following system
start-up.
Combustion products are sampled with a water
quenched probe. The sample is refrigerated and filtered to
remove both moisture and particulates prior to gas analysis.
Gas analysis is provided by a Perkin-Elmer gas chromatograph
and five gas analyzers. The analyzers, listed in Table 1,
measure C02, CO, 02, NO and S02 in a continuous manner. The
chromatograph reports gas fractions of C02, CO, 02, N2, H2
and CH4, as well as trace specie concentrations of NH3, HCN
and H2S. Analyzer outputs are displayed with meters and
recorded with strip chart recorders. Gas chromatograph data
analyses are performed by the microcomputer controlled
chromatograph console and are printed on the console
printer-plotter.
Table 1: Analyzers Purchased by ERDA Under Contract E(49-18) - 1817
1. Beckman Model F3 Paramagnetic 02 Analyzer
2. Beckman Model 864 Infared CO Analyzer
3. Beckman Model 864 Infared C02 Analyzer
4. Beckman Model 75 Polarographic 02 Analyzer
5. Thermo Electron Model 10AR Cherailuminescent NO - NOx Analyzer
10
Air input rates are determined indirectly by
measuring differential pressure across Meriam laminar flow
elements in each air line. Table 2 shows the laminar flow
element specifications and the formula used to determine air
input flow rates at standard conditions.
Temperatures along the length of the furnace are
measured using thermocouples inserted in the furnace wall as
shown in Figure 2. The temperature of the nample is
measured with a thermocouple placed at the tip of the probe
inserted in one of the sampling ports. Axis temperatures
are measured using type R, platinum/platinum-30% rhodium,
thermocouples. Type K, chromel/alumel, thermocouples are
used where temperatures do not exceed 1250 degrees Celsius.
Detailed information concerning the configuration
and operation of the furnace may be found in D.O.E.
quarterly report FE-1518M-1.
The Data Acquisition Configuration
Data acquisition objectives include monitoring
furnace instrumentation, as well as providing a tool for
accessing and analyzing the collected data. Data analysis
and bulk storage functions are performed by the ES/M RTCL
General Automation SPC-16/65 minicomputer. On-line data
acquisition is performed by a Cromemco microcomputer located
near the furnace instrumentation.
1 1
Table 2: Laminar Flow Element•Specifications
8" H20 = 3.2 cfm 6 70°F, 760 mm Hg
8" H20 = 20. cfm @ 70°F, 760 mm Hg
8" H20 = 17. cfm @ 70°F, 760 mm Hg
Given h inches H2O differential pressure, the
following formula is used to obtain SCFM air flow rates:
Transport Air
Secondary Air
Staged Air
Q . = A . * ( 6 9 2 + 1 4 . 7 * 7 6 0 ) m m H q * 5 3 0 ° R * h . 1 1 7 6 0 m m H g ( 4 6 0 ° R + T ) •
Where:
Ai
Pi
T
h.
= Air Flow Stream
= Air Flow Rate
= LFE Specification
= Gauge Pressure
[=] SCFM
[ = ] cfm / inch H2O
[=] psig
= Air Stream Temperature [=] °F
= Manometer Reading [=] inches H20
12
As shown in Figure 3, the Cromemco coordinates all
data transfer. Data originates from three sources: the Gas
Chromatograph Console (GCC), the laboratory operator via the
teletype, and the analog instrumentation via an analog to
digital interface. Communication with the GCC is similar to
communication with the teletype because data is transferred
asynchronously and serially in an ASCII character format.
Data is collected from the analog instrumentation interface
periodically and buffered for subsequent transmission to the
SPC-16. The Cromemco also acts as an extension of the
SPC-16 input/output subsystem when coordinating
communication between the operator and the SPC-16.
The analog instrumentation interface was designed to
allow sampling of the various furnace instrument outputs
under software control. Robinson-Halpern differential
pressure transducers applied to the laminar flow elements
output 0 to +5 VDC over the input range of 0 to 10 inches
H20. The analyzers output signals from -5 to +5 VDC over
their respective concentration ranges. Type R and type K
thermocouples output signals within 0 to 75 mVDC for furnace
operating temperatures.
Each analog signal is sampled by selecting the input
line, amplifying the signal, converting the conditioned
signal to a digital format and reading the digital result.
1 3
Cromemco yU Computer
PerKin-Elmer
Gas Chromatograph
Thermocouples
P/E Transducers
Analyzers
General Automation
SPC-16 Minicomputer
Figure 3: Data and Communications Flow Diagram
14
As shown in Figure 4, the input line is selected by
outputting the channel number of the input line to the
multiplexers. The selected input signal is amplified to
meet the input range requirements of the analog to digital
converter. For an input range of -5 to +5 VDC, the analog
to digital converter generates an integer from 0 to 4096.
The scaled integer is read from the interface and saved in
memory.
The sampling sequence is executed for each input
line every 3.75 seconds. At the end of a minute, the mean
of each input is computed and stored as a vector of means to
represent the instrumentation activity for the previous
minute. A total of sixteen vectors are retained by the
Cromemco so that a sixteen minute history of the
instrumentation activity is maintained. Since the gas
chromatography generates its analysis report fifteen minutes
after injection of the gas sample, the Cromemco can
synchronize the GCC analyses with data from the other
instruments.
Upon request by the user, data being held by the
Cromemco is transferred to the SPC-16 and stored on disk by
record number. An immediate report of air flow rates and
flue gas analysis is output when the data is received by the
SPC-16. The time, date, and data record number are also
1 5
Decoder
X
r
K
Cromemco
Single Card
Computer
LZ_' 12 Bit ADC
4
8 Channel Multiplexer
A
8 Channel 8 Channel
W
JFT ii f n ••• I II ••• I
8 Channel Multiplexer
8 Channel Multiplexer
8 Channel Multiplexer
Figure' 4: Cromemco Analog Input Front End
16
output to facilitate data identification. Referenced by
record number, data may be modified, examined, deleted or
analyzed. Appendix C details the available options.
CHAPTER 3
DATA ANALYSIS
The Mass Balance Problem
Not all variables which describe the operating
condition of the furnace are measured; these system
unknowns must be calculated from the available data. The
equations available are the five component balances of
carbon, hydrogen, oxygen, nitrogen, and sulfur and the
equilibrium of the water-gas-shift reaction. Not all six
equations are necessary because there are, at most, four
unknowns during either fuel rich or fuel lean conditions.
The information provided by the additional equations enables
an optimum data and solution set to be obtained from an
error minimization standpoint.
The variables associated with the furnace material
flows are shown in Figure 5. Coal and air comprise the
material inputs and flue gas and unburned flue solids
comprise the material outputs. Compositions of the streams
are shown to fully define the combustion system from a
steady state material balance perspective. The symbol •
17
1 8
C08 CO 0.79 N:
NO HCN 0.79 N
0.21 0: HzS SOe 0.79 N
0.21 0 NH
HgQ
Qi Mmoles/time
yi C=] mole fraction
Wi C=] mass /time
Xi.nru W mass fraction
© denotes on-line measurement
• denotes off-line measurement
Figure 5: Material / Composition Flows
19
beside a variable denotes that the variable is determined
off-line and must be entered using the teletype. The symbol
(.) denotes that a variable is measured on-line and is
obtained from an instrument monitored by the Cromemco
microcomputer. The remaining variables which are not
measured are declared unknowns; these variables are
calculated from the remaining data.
Coal and flue solids analyses are performed off-line
and must be entered by the operator prior to mass balance
calculations. Coal analyses are available prior to
operating the furnace and need to be entered only when the
composition of the coal feed changes. Flue solids analyses
are not available for use in on-line calculations and must
be assumed. On an ash-free basis, the flue solids are
normally greater than 95? carbon by weight. The assumption
of 100% carbon on the same basis is made for on-line mass
balance calculations; a better estimate may be entered and
will be assumed constant until a new composition is entered.
On-line measurements yield data for air input rates
and flue gas fractions. Flue gas fractions, available from
the analyzers, are C02, CO, 02, and NO. Flue gas fractions
available from the gas chromatograph are C02, CO, 02, H2,
CH4, N2 and trace specie concentrations of HCN, NH3, and
H2S. When the gas chromatograph is not used, gas fractions
of C02, CO, and 02 are supplied by the analyzers. Gas
fraction N2 is assumed in this case to be:
20
N2 = 1.0 - C02 - CO - 02
Also, gas compositions of H2, CH4, HCN, NH3, and H2S are
assumed to be zero when they are not available.
The system unknowns are gas fractions S02 and H20,
the flue gas output flow rate, the coal input flow rate, and
the flue solids output flow rate. Gas fraction S02 is
unknown because the GCC does not report it and the S02
analyzer is not used. Gas fraction H20 is unknown because
the flue sample is quenched with water and then refrigerated
to remove the majority of moisture within the sample. The
flue gas and solids output rates are unknown since no device
is installed to measure them; likewise, the coal input flow
rate is not measured.
The calculation path for determining the unknowns
depends on the stoichiometric operating conditions of the
furnace. Gas fractions S02 and H20 and the flue gas output
flow rate are calculated unconditionally. Either the coal
input flow rate or the flue solids output flow rate are
calculated, depending on whether conditions are fuel lean or
fuel rich. During fuel lean conditions, the coal input flow
rate is computed and the flue solids output rate, on an
ash-free basis, is assumed zero. During fuel rich
conditions, the coal input flow rate, obtained during fuel
lean calculations, is used to compute the flue solids output
flow rate.
21
Fuel lean or fuel rich operating conditions are
determined by examining the ratio of 02/C0 in the flue gas
(Wendt, 1981). When the ratio exceeds 0.5, conditions are
defined to be fuel lean; likewise, conditions are defined
to be fuel rich when the ratio is less than 0.5. Although
other methods could be used to determine stoichiometric
conditions, the 02/C0 ratio is one of the most sensitive
inicators (Takacs, 1977).
A multivariable Newton-Raphson algorithm (see
Carnahan, Luther, Wilks, 1979) is used to solve for the
unknowns because the system of equations is non-linear. The
non-linearity arises because the flue gas output rate and
flue gas fractions S02 and H20 are unknown. Furthermore,
because the flue sample is both quenched with H20 and
refrigerated to remove much of the moisture, the measured
flue gas fractions do not represent the actual flue gas
fractions. A correction factor is applied to measured flue
gas fractions to transform them to a moisture included
presampled basis. The correction factor adds another degree
of non-linearity since the gas fraction H20 is involved
within the factor (see Appendix A).
The equations used to solve for the system unknowns
are derived from mass balances of carbon, hydrogen,
nitrogen, and sulfur and include flue gas moisture
correction. The system of equations and the accompanying
coefficient matrix are listed in Appendix B. The
22
Newton-Raphson algorithm normally requires three to six
iterations to achieve a global relative convergence of one
part per million.
The results reported to the teletype include a
summary of the furnace operating conditions. As shown in
Table 3, the summary includes coal analysis, flue solids
analysis and flue gas analysis broken down into major and
minor constituents. Flow rates of coal, air, flue gas and
solids are reported on the same basis as their respective
stream analyses. Stoichiometric air and the stoichiometric
ratio are also reported. A stoichiometric ratio greater
than unity indicates fuel lean conditions while a ratio less
than one indicates fuel rich conditions. The ratio is
defined (Wendt, 1981) as the amount of oxygen supplied to
the minimum amount of oxygen required for complete
theoretical combustion of the fuel.
The Data Adjustment Problem
In most systems which are over-defined, i.e. the
number of independent equations exceeds the number of
unknowns, the solution set depends on which equations are
used to define the calculation path (White and Winslow,
1979, 1977). Assuming that the applied equations correctly
describe the system behavior, the dependence of the solution
set on the calculation path is due to error within the data.
Since the system is over-defined, an optimal solution may be
2.3
Table 3: Typical Analysis Summary of Furnace Data
*** RECORD 1 PROBE 4 3/11/81 4:17s 9 C0NSI8. FUEL RICH
***
***
***
***
***
[=] LB/HR
COAL INPUT RATE = 6.025E+00
FLUE SOLIDS OUTPUT - 1.217E+00
[=] SCFH
FLUE GAS OUTPUT = 9.305E+00 AIR INPUT RATE = 8.286E+00
TRANSPORT AIR - 1.558E+00 SECONDARY AIR » 6.728E+00
STAGED AIR » Q.000E-01
STOICHIOMETRIC AIR » 1.142E+01
STOICHIOMETRIC RATIO = 0.73
KG/S
7.598E-04 I.535E-04
N**3/S
4.392E-03 3.911E-03
7.354E-04 3.176E-03 0.000E-01
5.390E-03
COAL FLUE SOLIDS FLUE 6AS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPNV
68.73 C 55.60 C 12.64 C02 480.00 NO 5.36 H 0.01 H 5.56 CO 14.00 HCH 10.03 0 0.54 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1150.91 S02 1.56 N 43.86 ASH 1.50 H2 98.00 NH3 4.49 H20 9.62 H20 8.86 ASH 70.52 N2
24
obtained by adjusting the data to minimize the discrepancies
due to the calculation path. Resultant adjustments are
assumed to represent error within the data so that data with
large relative adjustments may help identify error sources.
A sum of squares optimization functional is defined,
which includes both discrepancy contributions and adjustment
contributions (White, 1977). Discrepancy contributions are
defined from "calculated" variables; "calculated" variables
are those variables for which data are available and are
calculated from the independent equations or from the tight
system constraints. Adjustment contributions are defined
from "search" variables; "search" variables are those
variables for which data are available and which are not
calculated but adjusted such that the sum of squares
functional is minimized. The sum of squares functional
takes the following form:
i ~ni a j n A
SSQ = £ 1 (C. - C.)2 + Z 1 (S. - S.) 1=1 w. 1 ;=i w. >sf >
\ \ J J
W. = Weighting factor for variable i A
C. = Calculated value for "Calculated" variable i A
S. = Adjusted value--for "Search" variable J ) '
C. = Data for "Calculated" variable i
S. = Data for "Search" variable J J '
m = Number of "Calculated" variables
n = Number of "Search" variables
25
In the furnace application, there are four unknowns,
six independent equations, and three tight constraints. The
four unknowns are flue gas fractions S02 and H20, the flue
gas output flow rate, and either the coal input flow rate or
the flue solids output flow rate. The six equations are
component balances for carbon, hydrogen, nitrogen, sulfur
and oxygen and the equilibrium of the water-gas-shift
reaction. The three constraints are that the sum of
fractions equal one within the coal, flue gas, and flue
solids flow streams.
"Calculated" variables are flue gas fractions CO,
H2, and N2 and coal mass fraction C and flue solids fraction
C. Flue gas fractions CO and H2 are calculated by including
the balance of oxygen and from the water-gas-shift
equilibrium during calculation of the unknowns. "Search"
variables and "calculated" variables are listed in Table 4.
"Search" and "calculated" variables do not contribute to the
sum of squares functional if no data is available for them.
The form of the sum of squares functional suggests
quasi-quadratic behavior of the response surface (White,
1977). Coggin's method (see Kuester and Mize, 1977) for
finding an optimum in one-space fits a quadratic to three
points straddling the optimum and estimates the location of
the optimum from the quadratic optimum. The algorithm
proceeds, see Figure 6, as follows. A step is taken from
point 1 to point 2; if an increase is observed then the
2 6
Table 4: Furnace "Search" and "Calculated" Variable Sets
"Search" Variables
Flue Gas Mole Fractions:
C02, 02, HCN, NH3, NO, H2S
Flue Solids Mass Fractions:
H, S, N
Coal Mass Fractions:
H, N, S, 0, H2O
Temperature at the Probe:
T
Air Input Flow Rate:
Qi + Q2 + Q3
Coal Input Flow Rate:
Wi
"Calculated" Variables
Flue Gas Mole Fractions:
CO, Hz, N2
Flue Solids Mass Fraction:
C
Coal Mass Fraction:
C
27
1 Starting Point 2 First Step Rejected
. 3 Direction Reversed 4 Move Accelerated
+2 A -A a c o o c if
CO a> h. O 3 cr CO
H— o
E 3 CO
Quadratic Minimum True Minimum
Search Variable : i
Fi gure 6 : Coggin Data Adjustment in One Space
28
step direction is reversed to obtain point 3. If the
functional decreases, then the step size is doubled until
the sum of squares functional increases, point 4. A
parabola is fit to the three points with the least
functional values. The minimum of the parabola becomes the
next point for a successive parabola. Parabolas are
consecutively fit until relative convergence is attained at
the functional minimum.
Following two global applications of the Coggin
algorithm, a vector is formed between the current and the
previous locations in search space. The Coggin algorithm is
then applied to an acceleration factor to allow minimization
along the hypervector (White, 1977). Figure 7 illustrates
the procedure in two-space. The starting point, i-2, is
obtained from the initialized search data. After two global
applications of the Coggin algorithm points i-1 and i are
obtained. A vector, P, is formed from the two points which
points toward the optimum. The Coggin algorithm applied
along the vector yields point i+1. The algorithm is
continued by stepping off the vector using another global
Coggin application and forming a new vector from the
previous and current locations. This sequence is continued
until global convergence is achieved.
Search Variable:
Figure 7: Coggin Data Adjustment in Two Space
30
Because all "search" variables are initialized to
their data values prior to data adjustment, the sum of
squares functional initially, contains only discrepancies
within the "calculated" variables. By adjusting "search"
variables from their data values, the sum of squares is only
decreased when the magnitude of the discrepancy decrease is
greater than the magnitude of the adjustment of the "search"
variable.
Whenever data adjustment is practiced to minimize
discrepancies among data it is usually assumed that
variables with large resultant adjustments are most suspect
for being erroneous. Furthermore, it is assumed that error
within reported data is distributed normally to adjustments
in all variables (White, 1979, 1977, Winslow, 1980, Smith,
1973, Davidson, 1977). Given these premises, an analysis of
adjustments should yield some information about error
sources within the combustion data.
By treating adjustments as samples from an error
population, t-values can be computed for each variable
contributing to the sum of squares functional (Himmelblau,
1969). The hypothesis that an adjustment is not a member of
the sample population is tested by performaing an outlier
test. The outlier criterion proposed by Anscombe (1960)
examines t-values obtained from the sample and compares them
against a rejection constant. If a t-value is greater than
31
the rejection constant, the variable is flagged . as an
outlier and becomes suspect for being an error source. The
possible error from accepting the hypothesis is a type 1
error, i.e. erroneously rejecting a member of the sample.
The rejection constant is a function of the degree
of confidence to be applied to the test, the degrees of
freedom of the sample, the sample mean and standard
deviation. Anscombe gives two formulas for the rejection
constant. The first, which is poorly conditioned from a
computational standpoint, is:
Where:
1-a = Confidence of the test 1 v = Degrees of freedom of the sample
t = Student-t variable ("Student", 1927)
n = Sample size
C = Anscombe rejection constant
The second formula which is better conditioned is given by:
a = I..(( v - 1 )> JL ) x 2 2
I = Incomplete Beta Function (Pearson, 1954) X X = ( v2 - n C2 )
v 2
In determining the rejection constant, the second formula is
used.
CHAPTER 4
INVESTIGATION
Adjustment Verification
The ability of the data adjustment algorithm to
identify and correct error within a furnace data set was
tested using data sets with known error sources. A
consistent set of representative data was generated and used
as a standard for error introduction. Error was introduced
by perturbing "search" and "calculated" variables prior to
applying data adjustment. The resulting adjustments were
compared with the introduced error to evaluate the merit of
the adjustment algorithm.
The data set used as the standard for subsequent
data perturbations not only needed to be consistent but also
needed to be representative of experimental operating
conditions. A data set obtained by J. W. Glass (1981)
while operating the furnace under fuel rich stoichiometric
conditions was used as an initial guess of obtaining a
consistent set. The consistent set was obtained from the
experimental set by applying the adjustment algorithm to the
32
33
experimental set. The resultant adjusted set became the
consistent standard and is shown in Table 5.
Members of the search set were perturbed from their
consistent values by fractions of the consistent values. To
avoid unreasonable data sets, no variable was perturbed more
than 20 percent. In the event that a variable to be
perturbed was a mole/mass fraction, the tight constraint
that the sum of fractions equal 1.0 was enforced. Also the
loose constraints that mole/mass fractions be nonnegative
and less than or equal to 1.0 were enforced.
The following formula was used to perturb members of
the search set:
X. = ( 1.0 + e ) X. J J
Where: /s X. = Perturbed "Search" Variable j
X. = Consistent Value of "Search" Variable ; J
e = Fractional Perturbation
In the event that X. is a mole/mass fraction, the tight J
constraint:
E X . = 1 . 0 )
is enforced by distributing the perturbation over the
remaining fractions of the stream. Defining a perturbation
distribution factor, 6 , given by:
34
Table 5: Consistent Fuel Rich Data Set and Analysis
*** RECORD 1 PROBE 4 3/11/81
M* ITERATION • 0 [=] LB/HR
*** COAL INPUT RATE » 6.025E+00
*** FLUE SOLIDS OUTPUT * 1 -217E+00
[=•] SCFN
*** FLUE GAS OUTPUT = 9.305E+00
#«• AIR INPUT RATE * 8.286E+00
TRANSPORT AIR = 1.558E+00
SECONDARY AIR • 6.728E+00 STAGED AIR = O.OOOE-OI
*** STOICHIOMETRIC AIR = 1.142E+01
STOICHIOHETRIC RATIO » 0.73
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPMV
68.73 C 55.60 C 12.64 C02 480.00 NO 5.36 H 0.01 H 5.56 CO 14.00 HCN 10.03 0 0.54 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1150.91 S02 1.56 N 43.86 ASH 1.50 H2 98.00 NH3 4.49 H20 9.62 H20 8.86 ASH 70.52 N2
4:17: 9 CONSIS. FUEL RICH
K6/S
7.598E-04 1.535E-04
H**3/S
4.392E-03
3.91IE-03
7.354E-04 3.176E-03 O.OOOE-OI
5.390E-03
35
Table 5--Continued
D.O.F. 19 HEANs 1.356E-07 SDEVi ! 2.933E-07 CONFIDi
HASS FRACTIONS OF COAL:
RAU DATA ADJUSTED DATA Z ADJUSTHENT T VALUE 7.54120E-01 C 7.S4120E-01 0.0 0.348 S.88441E—02 H S.88441E-02 0.0 1.072 1.09998E-01 0 1.09998E-01 0.0 0.462 1.06399E-02 S 1.06399E-02 0.0 0.376 1.71074E-02 N 1.71074E-02 0.0 0.421 4.92901E-02 H20 4.92901E-02 0.0 0.462
HOLE FRACTIONS OF FLUE GASi
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE 1.26361E-01 C02 1.26361E-01 0.0 0.462 5.56019E-02 CO 5.56019E-0 2 0.0 2.606 4.79999E-04 NO 4.79999E-04 0.0 0.462 t.40000E-05 HCN 1.40000E-05 0.0 0.462 9.79998E-05 NH3 9.79998E-05 0.0 0.374 1.49339E-02 H2 1.49539E-02 0.0 2.840 7.05163E-01 N2 7.05163E-01 0.0 0.458
MASS FRACTIONS OF FLUE SOLIDSi
RAU DATA ADJUSTED DATA I ADJUSTHENT T VALUE 9.90300E-0t C 9.90300E-01 0.0 0.300 1.60000E-04 H 1.60000E-04 0.0 0.348 9.S4000E-03 N 9.S4000E-03 0.0 0.461
TEMPERATURE AT PROBE: [»] KELVIN
RAU DATA ADJUSTED DATA 1 ADJUSTHENT T VALUE t.56620E+03 1.56620E+03 0.0 0.266
SOLIDS FLOU RATESi I =] LB/HR
RAU DATA ADJUSTED DATA Z ADJUSTMENT T VALUE 5.49137E+00 COAL 5.49137E+00 0.0 0.462
GAS FLOU RATESi i [=] SCFH
RAU DATA ADJUSTED DATA Z ADJUSTMENT T VALUE 1.55800E+00 TRNS 1.55800E+00 0.0 0.462
OUTLIER?
OUTLIER?
OUTLIER?
OUTLIER?
OUTLIER?
OUTLIER?
6.72782E+00 SECD 6.72782E+00 0.0 0.462
36
6 = ( 1.0 - X. ) / ( 1.0 - X. ) , J J
the sum of fractions within a perturbed stream takes the
form:
6 E X . + ( 1 . 0 + e ) X . = 1 . 0 , i j * ; .
The loose constraints are enforced by assuring the following
inequalities are maintained.
1.0 > X. > 0.0 J
1.0 > X. > 0.0 J
Furthermore, e and 6 are constrained by the following
arbitrary limits:
1 . 2 > 6 > 0 . 8
-0.2 > E > 0.2
Perturbed data sets were analyzed for consistency
using one and two degrees of over-definition. One degree of
over-definition was obtained by including the oxygen balance
but not water-gas-shift equilibrium. Two degrees of
over-definition is obtained using both relations. The
sensitivity of the adjustment algorithm to error within the
data decreased when only one degree of over-definition was
used. The number of interactions required for convergence
also decreased when one instead of two degrees of
over-definition was used.
37
The Consistency Results
The results of the consistency analysis classified
the search set into two catagories according to adjustment
sensitivity. Table 6 groups the variables into their
respective catagories. Sensitive variables are those
'wariables which caused significant, greater than 1%,
adjustments when perturbed by 20% of their consistent
values. Similarly, insensitive variables caused
insignificant adjustments when perturbed to their maximun
extents.
As expected, perturbations within flue gas trace
species HCN, NH3 and NO did not affect the adjustment
algorithm since their contributions to the mass balance are
insignificant. Likewise, mass fractions N and S within the
coal and mass fractions H and N within the flue solids were
insensitive to data perturbations. Mass fraction C of the
flue solids could not be perturbed significantly since its
consistent value is close to one. The resultant adjustments
when mass fraction N within the coal is perturbed from its
consistent value by +20% are shown in Table 7. This table
typifies resultant adjustments when the class of insensitive
variables is perturbed.
Fractions H2S and S within the flue gas and flue
solids, respectively, were not tested since no data were
available for them. The consistency response to their
38
Table 6: Adjustment Classification of "Search" and "Calculated" Variables
Sensitive Variables
Flue Gas Mole Fractions:
C02, CO, Hz, N2
Temperature at the Probe:
T
Coal Mass Fractions:
C, H, 0, H20
Air Input Flow Rate:
QI + Q2 + Q3
Coal Input Flow Rate:
Wi
Insensitive Variables
Flue Gas Mole Fractions:
HCN, NHs, NO
Flue Solids Mass Fractions:
C, H, N
Coal Mass Fractions:
N, S
3 9
Table 7: Data Adjustment of Coal Nitrogen Mass Fraction
RECORD 55 PROBE 4 3/16/81 0:54:25
C = ] LB/HR KG/S
*** COAL INPUT RATE s 6.025E+00 7.598E-04 *** FLUE SOLIDS OUTPUT s 1.200E+00 1.514E-04
C = ] SCFH N**3/S
*** FLUE GAS OUTPUT =
9.308E+00 4.393E-03 *** AIR INPUT RATE
= 8.28AE+00 3.911E-03
TRANSPORT AIR - 1.558E+00 7.354E-04 SECONDARY AIR = 6.728E+00 3.176E-03
STAGED AIR = O.OOOE-OI 0.000E-01
*** STOICHIOMETRIC AIR = 1.138E+01 5.373E-03
STOICHIOHETRIC RATIO s 0.73
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPNV
68.49 C 54.99 C 12.64 C02 480.13 NO 5.35 H 0.01 H 5.56 CO 14.00 HCN 9.98 0 0.53 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1150.71 S02 1.86 N 44.47 ASH 1.50 H2 98.03 NH3
4.48 H20 9.59 H20 8.86 ASH 70.54 N2
Table 7--Continued
D.O.F. 19 MEAN: 1.356E-04 SDEV : 2.059E-04 CONFIDENCE : 0.950
HASS FRACTIONS OF COAL:
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 7.51474E-01 C 7.51455E-01 0.0 0.534 5.87366E-02 H 5.87524E-02 0.0 0.646 1.09544E-01 0 1.09546E-01 0.0 0.566 1.06414E-02 S 1.06414E-02 0.0 0.639 2.04483E-02 N 2.04482E-02 0.0 0.636 4.91551E—02 H20 4.91567E-02 0.0 0.504
HOLE FRACTIONS OF FLUE GAS:
RAU DATA ADJUSTED DATA 1 ADJUSTHENT T VALUE OUTLIER? 1.26396E-01 C02 1.26301E-01 0.1 2.967 YES 5.56173E-02 CO 5.56356E-02 0.0 0.937 4.80132E-04 NO 4.80132E-04 0.0 0.653 1.40039E-05 HCN 1.40039E-05 0.0 0.658 9.80270E-05 NH3 9.80270E-05 0.0 0.656 1.49580E-02 H2 1.49507E-02 0.0 1.707 7.05358E-01 N2 7.05347E-01 0.0 0.578
HASS FRACTIONS OF FLUE SOLIDS:
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 9.90300E-01 C 9.90300E-01 0.0 0.658 1.60000E-04 H 1.60000E-04 0.0 0.658 9.54000E-03 N 9.54000E-03 0.0 0.658
TEHPERATURE AT PROBE: [=] KELVIN
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 1.56620E+03 1.56601E+03 0.0 0.078
SOLIDS FLOU RATES: C =] LB/HR
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 5.49137E+00 COAL 5.49311E+00 0.0 0.877
GAS FLOU RATES: CO SCFH
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 1.55800E+00 TRNS 1.55790E+00 0.0 0.356 6.72782E+00 SECD 6.72594E+00 0.0 0.699
4 1
T a b l e 7 - - C o n t i n u e d
RECORD 55 PROBE 4 3/16/81 0:54:25
*** ITERATION = 14 C=3 LB/HR K6/S
*** COAL INPUT RATE S 6.027E+00 7.601E-04 *** FLUE SOLIDS OUTPUT = 1.204E+00 1.519E-04
C=] SCFM H**3/S
FLUE GAS OUTPUT - 9.306E+00 4.392E-03 *** AIR INPUT RATE = 8.284E+00 3.910E-03
TRANSPORT AIR = 1.558E+00 7.353E-04 SECONDARY AIR = 6.726E+00 3.175E-03
STAGED AIR = O.OOOE-OI O.OOOE-OI
*** STOICHIOMETRIC AIR = 1.139E+01 5.374E-03
STOICHIOMETRIC RATIO s 0.73
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPHV
68.49 C 55.11 C 12.63 C02 480.13 NO 5.35 H 0.01 H 5.56 CO 14.00 HCN 9.98 0 0.53 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1151.33 302 1.86 N 44.35 ASH 1.50 H2 98.03 NH3 4.48 H20 9.60 H20 8.86 ASH 70.53 N2
perturbations would be expected to be similar to the
response to insensitive variable perturbations. Flue gas
fraction 02 was not tested since its data value was zero;
whenever data for a variable is zero it is not included in
the search.
The consistency analysis further divided (see Table
8) the sensitive variables into two classes depending on the
ability of the adjustment algorithm to correct error
introduced within the variables. Flue gas fractions C02 and
N2 were the only two variables for which the majority of
error introduced from their perturbations was corrected.
The remaining variables would, in general, be adjusted in
the correct sense to remove perturbation error but not to
the degree that was introduced.
An example of two variables which showed incomplete
adjustment but were still flagged as erroneous are mass
fraction H within the coal and flue gas fraction H2. Both
variables when perturbed upwards +20% from their consistent
values were adjusted such that 25% of the introduced error
was removed (see Tables 9 and 10). The remaining error was
distributed among the other sensitive variables.
Table 8: Adjustment Classification of Sensitive "Search" and "Calculated" Variables
Majority Removal of Introduced Error
Flue Gas Mole Fractions:
C02f N2
Partial Removal of Introduced Error
Flue Gas Mole Fractions:
CO, H2
Coal Mass Fractions:
C, H, 0, H20
Temperature at the Probe:
T
Air Input Flow Rate:
QI + Q2 + Q3
Coal Input Flow Rate:
WI
Table 9: Data Adjustment of Coal Hydrogen Mass Fraction
RECORD 37 PROBE 4 3/16/81 0:37:12 H+20Z
[=] LB/HR KG/S
*** COAL INPUT RATE = 6.025E+00 7.598E-04 FLUE SOLIDS OUTPUT = 1.165E+00 1 .469E-04
C=] SCFH N**3/S
*** FLUE GAS OUTPUT = 9.494E+00 4.481E-03
*** AIR INPUT RATE = 8.286E+00 3.911E-03
TRANSPORT AIR = 1.558E+00 7.354E-04 SECONDARY AIR = 6.728E+00 3.176E-03
STAGED AIR = 0.000E-01 O.OOOE-OI
•«» STOICHIOHETRIC AIR = 1.176E+01 5.S50E-03
STOICHIOHETRIC RATIO = 0.70
COAL PERCENTAGES
FLUE SOLIDS PERCENTAGES
FLUE GAS PERCENTAGES
FLUE GAS TRACE PPNV
67.87 C 6.44 H 9.89 0 0.96 S 1.54 N 4.44 H20 8.86 ASH
53.66 C 0 . 01 K 0.52 N 0.00 S 45.81 ASH
12.38 C02 5.45 CO 0.00 02 0.00 CH4 1.47 H2 11.42 H20 69.11 N2
470.43 NO 13.72 HCN 0.00 H2S
1117.61 S02 96.05 NH3
4 5
T a b l e 9 - - C o n t i n u e d
D.O.F. 19 HEAN: 1.154E-02 SDEV l 1.580E-02 CONFIDENCE : 0.950
HASS FRACTIONS OF COAL • •
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 7.44723E-01 C 7.47390E-01 0.4 0.504 7.06626E-02 H 6.76151E-02 4.3 1.999 YES 1.08551E-01 0 1.08922E-01 0.3 0.514 1.05420E-02 S 1.05398E-02 0.0 0.717 1.69089E-02 N 1.69099E-02 0.0 0.727 4.87163E-02 H20 4.86235E-02 0.2 0.610
HOLE FRACTIONS OF FLUE GAS:
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE
1.23842E-01 C02 1.23425E-01 0.3 0.518 5.44936E-02 CO 5.26326E-02 3.4 1.431 4.70431E—04 NO 4.70407E-04 0.0 0.727
1.37209E-05 HCN 1.37209E-05 0.0 0.730 9.60464E-05 NH3 9.60518E-05 0.0 0.727
1.46558E-02 H2 1.51233E-02 3.2 1.288 6.91107E-01 N2 7.04744E-01 2.0 0.518
OUTLIER?
HASS FRACTIONS OF FLUE SOLIDS:
RAU DATA ADJUSTED DATA X ADJUSTMENT T VALUE OUTLIER? 9.90300E-01 C 9.90300E-01 0.0 0.730 1.60000E-04 H 1.60001E-04 0.0 0.730 9.54000E-03 N 9.54001E-03 0.0 0.730
TEHPERATURE AT PROBE: C=3 KELVIN
RAU DATA ADJUSTED DATA X ADJUSTMENT T VALUE OUTLIER? 1.56620E+03 1.57776E+03 0.7 0.263
SOLIDS FLOU RATES: C=] LB/HR
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 5.49137E+00 COAL 5.25860E+00 4.2 1.952 YES
GAS FLOU RATES: [-] SCFH
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER?
1.55800E+00 TRNS 1.56958E+00 0.7 0.260 A.777A7F+00 RFm A.94374F+00 3.2 1.301
T a b l e 9 - - C o n t i n u e d
*** RECORD 37 PROBE 4 3/16/81 0:37:12 H+20%
•*» ITERATION = 27 [=3 LB/HR KG/S
••• COAL INPUT RATE = 5.770E+00 7.276E-04 *** FLUE SOLIDS OUTPUT = 1.001E+00 1.262E-04
[=3 SCFM ii*;»3/S
**# FLUE GAS OUTPUT = 9.564E+00 4.514E-03
*** AIR INPUT RATE = 8.513E+00 4-018E-03
TRANSPORT AIR = 1.570E+00 7.409E-04 SECONDARY AIR = 6.944E+00 3.278E-03
STAGED AIR = 0.000E-01 0.000E-01
*** STOICHIOMETRIC AIR - 1.118E+01 5.276E-03
STOICHIOHETRIC RATIO = 0.76
COAL FLUE SOLIDS FLUE GAS FLUE GAS
PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPHM
68.12 C 48.44 C 12.34 C02 470.41 NO 6.16 H 0.01 H 5.26 CO 13.72 HCN 9.93 0 0.47 N 0.00 02 0.00 H2S 0.96 S 0.00 S 0.00 CH4 1062.12 S02
1.54 N 51.08 ASH 1.51 H2 96.05 NH3 4.43 H20 10.24 H20 8.86 ASH 70.47 N2
4 7
T a b l e 1 0 : D a t a A d j u s t m e n t o f F l u e G a s H y d r o g e n M o l e F r a c t i o n
*** RECORD 1? PROBE 4 3/11/81 4:23:27
[ = ] LB/HR KG/S
*** COAL INPUT RATE s 6.025E+00 7.598E-04 *** FLUE SOLIDS OUTPUT = 1.218E+00 1.536E-04
[ = 3 SCFM H*=»3/S
*** FLUE GAS OUTPUT s 9.304E+00 4.392E-03 *** AIR INPUT RATE = 8.286E+00 3.911E-03
TRANSPORT AIR s 1.558E+00 7.354E-04 SECONDARY AIR = 6.728E+00 3.176E-03
STAGED AIR = 0.000E-01 0.000E-01
«** STOICHIOMETRIC AIR = 1.142E+01 5.390E-03
STOICHIOMETRIC RATIO s 0.73
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPHV
68.73 C 55.62 C 12.64 C02 481.42 NO 5.36 H 0.01 H 5.56 CO 14.04 HCN 10.03 0 0.54 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1150.95 S02 1.56 N 43.83 ASH 1.81 H2 98.29 NH3 4.49 H20 9.31 H20 8.86 ASH 70.52 N2
4 8
T a b l e 1 0 - - C o n t i n u e d
D.O.F. 19 MEAN: 1.091E—02 SDEV: 1.435E-02 CONFIDENCE: 0.950
HASS FRACTIONS OF COAL • •
RAU DATA ADJUSTED DATA I ADJUSTMENT T VALUE OUTLIER? 7.54120E-01 C 7.52389E-01 0.2 0.600
5.88441E-02 H 6.05216E-02 2.9 1.226 1.09998E-01 0 1.09935E-01 0.1 0.720 1.06399E-02 S 1.06392E-02 0.0 0.755 1.71074E—02 N 1.71046E-02 0.0 0.749
4.92901E-02 H20 4.94113E-02 0.2 0.589
HOLE FRACTIONS OF FLUE GAS:
RAU DATA ADJUSTED DATA X ADJUSTMENT T VALUE OUTLIER? 1.26373E-01 C02 1.21917E-01 3.5 1.697 5.55642E-02 CO 5.71697E-02 2.9 1.253 4.81422E-04 NO 4.81417E—04 0.0 0.760 1.40415E-05 HCN 1.40415E-05 0.0 0.760 9.82904E-05 NH3 9.82847E-05 0.0 0.756 1.80533E-02 H2 1.73440E-02 3.9 1.978 YES 7.05183E-01 N2 6.99730E-01 0.8 0.221
HASS FRACTIONS OF FLUE SOLIDS:
RAU DATA ADJUSTED DATA % ADJUSTMENT T VALUE OUTLIER? 9.90300E-01 C 9.90300E-01 0.0 0.760 1.60000E-04 H 1.59998E-04 0.0 0.759 9.54000E-03 N 9.54008E-03 0.0 0.760
TEMPERATURE AT PROBE: [=] KELVIN
RAU DATA ADJUSTED DATA I ADJUSTMENT T VALUE OUTLIER? 1.56620E+03 1.55197E+03 0.9 0.127
SOLIDS FLOU RATES: C=] LB/HR
COAL •RAU DATA 5.49137E+00
ADJUSTED DATA 5.66140E+00
X ADJUSTMENT 3.1
T VALUE 1.398
OUTLIER?
GAS FLOU RATES: [=3 SCFH
RAU DATA ADJUSTED DATA % ADJUSTMENT T VALUE OUTLIER? 1.55800E+00 TRNS 1.54830E+00 0.6 0.327 6.72782E+00 SECD 6.54907E+00 2.7 1.091
T a b l e I P — C o n t i n u e d
*•* RECORD 19 PROBE 4 3/11/81 4:23:27 H2+20*
*** ITERATION = 22 [=3 LB/HR KG/S
*** COAL INPUT RATE = 6.212E+00 7.834E-04 **• FLUE SOLIDS OUTPUT = 1.461E+00 1.842E-04
C=] SCFH M**3/S
*** FLUE GAS OUTPUT = 9.164E+00 4.326E-03 *** AIR INPUT RATE = 8.097E+00 3.822E-03
TRANSPORT AIR * 1.548E+00 7.308E-04 SECONDARY AIR » 6.549E+00 3.091E-03
STAGED AIR = O.OOOE-OI O.OOOE-OI
•** STOICHIOHETRIC AIR = 1.182E+01 5.577E-03
STOICHIOHETRIC RATIO = 0.69
COAL PERCENTAGES
FLUE SOLIDS PERCENTAGES
FLUE GAS PERCENTAGES
FLUE GAS TRACE PPHV
68.57 C 5.52 H
10 .02 0 0.97 S 1.56 N 4.50 H20 8.86 ASH
61.71 C 0.01 H 0.59 N 0.00 S 37.68 ASH
12.19 C02 5.72 CO 0.00 02 0.00 CH4 1.73 H2 10.20 H20 69.97 N2
481.42 NO 14.04 HCN 0.00 H2S
1204.62 S02 98.28 NH3
j
I 50
Perturbations within flue gas fractions C02 and N2
were mostly corrected as shown in Tables 11 and 12. In the
case of N2 when perturbed from its consistent value by +1%,
93% of the introduced error was removed by the adjustment
algorithm. N2 was not flagged as an outlier, however, since
the C02 adjustment was greater than the N2 adjustment; this
result is due primarily to the perturbation distribution
factor which altered C02 from its consistent value by -3%.
When flue gas fraction C02 was perturbed from its
consistent value by +10% and the remaining flue gas
fractions were perturbed downwards from their consistent
values by -1.5%, the algorithm corrected 90% of the
perturbation error. The error introduced from the
perturbation distribution factor was corrected almost
entirely for fractions H2 and N2 and partially for fraction
CO.
5 1
T a b l e 1 1 : D a t a A d j u s t m e n t o f F l u e G a s C a r b o n D i o x i d e M o l e F r a c t i o n
*** RECORD 6 PROBE 4 3/ 7/81 18:13:22 C02+10Z
***
***
***
***
[=] LB/HR
COAL INPUT RATE = 6.025E+00 FLUE SOLIDS OUTPUT = 9.354E-01
[=] SCFH
FLUE GAS OUTPUT =
AIR INPUT RATE = 9.442E+00
8.286E+00
TRANSPORT AIR = 1.558E+00 SECONDARY AIR = 6.728E+00
STAGED AIR = 0.000E-01
*** STOICHIOHETRIC AIR = 1.142E+01
STOICHIOHETRIC RATIO = 0.73
KG/S
7.598E-04 1.180E-04
N**3/S
4.457E-03 3.911E-03
7.354E-04 3.176E-03 0.000E-01
5.390E-03
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPNV
68.73 C 42.51 C 13.90 C02 469.92 NO 5.36 H 0.01 H 5.48 CO 14.00 HCN 10.03 0 0.41 N 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1134.20 S02 1.56 N 57.07 ASH 1.48 H2 96.98 NH3 4.49 H20 9.47 H20 8.86 ASH 69.50 N2
52
T a b l e 1 l - - C o n t i n u e d
D.O.F. 19 MEAN: 7.288E-03 SDEU: : 1.809E-02 CONFIDENCE) ! 0.950
HASS FRACTIONS OF COAL:
RAU DATA ADJUSTED DATA Z ADJUSTMENT T VALUE OUTLIER? 7.54120E-01 C 7.54172E-01 0.0 0.399 5.88441E-02 H 5.82501E-02 1.0 0.1S5 1.09998E-01 0 1.10506E-01 0.5 0.148 1.06399E-02 S 1.06343E-02 0.1 0.374 1.71074E-02 N 1.71036E-02 0.0 0.391 4.92901E-02 H20 4.93341E-02 0.1 0.354
HOLE FRACTIONS OF FLUE GAS:
RAU DATA ADJUSTED DATA X ADJUSTMENT T VALUE OUTLIER? 1.38977E-01 C02 1.27713E-01 8.1 4.078 YES 5.47910E-02 CO 5.48559E-02 0.1 0.337 4.69923E-04 NO 4.69874E-04 0.0 0.397 1.39977E-05 HCN 1.39977E-05 0.0 0.403 9.69840E-05 NH3 9.69852E-05 0.0 0.402 1.47976E-02 H2 1.45638E-02 1.6 0.470 6.94985E-01 N2 7.06372E-01 1.6 0.503
MASS FRACTIONS OF FLUE SOLIDS:
RAU DATA ADJUSTED DATA I ADJUSTMENT T VALUE OUTLIER? 9.90300E-01 C 9.90300E-01 0.0 0.403 1.60000E-04 H 1 .60001E-04 0.0 0.403 9.54000E-03 N 9.S4012E-03 0.0 0.402
TEHPERATURE AT PRODE: [=2 KELVIN
RAU DATA ADJUSTED DATA 1 ADJUSTMENT T VALUE OUTLIER? 1.56620E+03 1.55922E+03 0.4 0.156
SOLIDS FLOU RATESt C x] LD/HR
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 5.49137E+00 COAL 5.46218E+00 0.5 0.109
GAS FLOU RATES : C=] SCFH
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 1.55800E+00 TRNS 1.55945E+00 0.1 0.351 6.72782E+00 SECD 6.75529E+00 0.4 0.177
5 3
T a b l e l l - - C o n t i n u e d
*** RECORD 6 PROBE 4 3/ 7/81 18:13:22
$** ITERATION = 30 C=3 LB/HR KG/S
$**
*** COAL INPUT RATE =
FLUE SOLIDS OUTPUT * 5.993E+00 1.175E+00
7.558E-04 1.481E—04
C=1 SCFH M**3/S
***
*** FLUE GAS OUTPUT = AIR INPUT RATE =
9.321E+00 8.315E+00
4.400E-03 3.925E-03
TRANSPORT AIR = SECONDARY AIR »
STAGED AIR =
1.559E+00 6.755E+00 O.OOOE-Ot
7.361E-04 3.189E-03 O.OOOE-OI
*** STOICHIOMETRIC AIR =
STOICHIOHETRIC RATIO -
1.133E+01
0.73
5.349E-03
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPHV
68.74 C 54.26 C 12.77 C02 469.87 NO 5.31 H 0.01 H 5.49 CO 14.00 HCN 10.07 0 0.52 H 0.00 02 0.00 H2S 0.97 S 0.00 S 0.00 CH4 1142.17 S02 1.56 N 45.21 ASH 1.46 H2 96.99 NH3 4.50 H20 9.48 H20 8.86 ASH 70.64 N2
T a b l e 1 2 : D a t a A d j u s t m e n t o f F l u e G a s N i t r o g e n M o l e F r a c t i o n
*** RECORD 24 PROBE 4 3/11/81 4:30:27
C =3 LB/HR KG/S
*** COAL INPUT RATE s 6.025E+00 7.598E-04 *** FLUE SOLIDS OUTPUT = 1 .333E+00 1 .682E-04
C = ] SCFH N**3/S
*** FLUE GAS OUTPUT — 9.248E+Q0 4.365E-03 *** AIR INPUT RATE = 8.286E+00 3.911E-03
TRANSPORT AIR s 1.558E+00 7.354E-04
SECONDARY AIR =
6.72BE+00 3.176E-03
STAGED AIR = O.OOOE-OI O.OOOE-OI
*** STOICHIOHETRIC AIR = 1.142E+01 5.390E-03
STOICHIOHETRIC RATIO s 0.73
COAL FLUE SOLIDS FLUE GAS FLUE GAS
PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPNV
68.73 C 59.39 C 12.29 C02 468.13 NO
5.36 H 0.01 H 5.41 CO 13.94 HCN
10.03 0 0.57 N 0.00 02 0.00 H2S
0.97 S 0.00 S 0.00 CH4 1157.95 S02
1.56 H 40.03 ASH 1.45 H2 95.62 NH3
4.49 H20 9.73 H20
8.86 ASH 70.95 N2
Table 12--Continued
55
D.O.F. 19 HE AN: 2.831E-03 SDEV : 6.722E-03 CONFIDENCE : 0.950
HASS FRACTIONS OF COAL:
RAU DATA ADJUSTED DATA I ADJUSTHENT T VALUE OUTLIER? 7.54120E-01 C 7.54081E-01 0.0 0.413 5.88441E-02 H 5.91155E-02 0.5 0.265 1 .09998E-01 0 1.09781E-01 0.2 0.127 1.06399E-02 S 1.06423E-02 0.0 0.388 1.71074E-02 N 1.71088E-02 0.0 0.409 4.92901E—02 H20 4.92719E-02 0.0 0.366
HOLE FRACTIONS OF FLUE GAS:
RAU DATA ADJUSTED DATA X ADJUSTHENT 7 VALUE OUTLIER?
1 .22908E-01 C02 1.26614E-01 3.0 4.064 YES 5.40837E-02 CO 5.40587E-02 0.0 0.353
4.68127E-04 NO 4.68148E-04 0.0 0.415 1.39442E-05 HCN 1.39442E-05 0.0 0.421 9.56175E-05 NH3 9.56171E-05 0.0 0.421 1.45418E-02 H2 1.46331E-02 0.6 0.512 7.09462E-01 N2 7.05478E-01 0.6 0.414
HASS FRACTIONS OF FLUE SOLIDS:
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 9.90300E-01 C 9.90300E-01 0.0 0.421 1.60000E-04 H 1.60000E-04 0.0 0.421 9.54000E-03 N 9.53997E-03 0.0 0.421
TEHPERATURE AT PROBE: C=] KELVIN
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 1.56620E+03 1.56903E+03 0.2 0.153
SOLIDS FLOU RATES: C =] LB/HR
RAU DATA ADJUSTED DATA X ADJUSTHENT T VALUE OUTLIER? 5.49137E+00 COAL 5.50447E+00 0.2 0.066
GAS FLOU RATES: : [=0 SCFH
RAU DATA ADJUSTED DATA 1 ADJUSTHENT T VALUE OUTLIER? 1.55800E+00 TRNS 1.55723E+00 0.0 0.348 6.72782E+00 SECD 6.71382E+00 0.2 0.112
T a b l e 1 2 - - C o n t i n u e d
••*** RECORD 24 PROBE 4 3/1 1/81 4:30:27 N2+12
*** ITERATION = 28 [=3 L6/HR KG/S
**4 COAL INPUT RATE s 6.040E+00 7.A17E-04 *** FLUE SOLIDS OUTPUT 3 1.261E+00 1.590E-04
[ = ] SCFH H**3/S
*** FLUE GAS OUTPUT — 9.284E+00 4.382E-03 *** AIR INPUT RATE
= 8.271E+00 3.904E-03
TRANSPORT AIR — 1.557E+00 7.350E-04 SECONDARY AIR = 6.714E+00 3.1A9E-03
STAGED AIR = 0.000E-01 O.OOOE-OI
*** STOICHIOHETRIC AIR =
1.146E+01 5.408E-03
STOICHIOHETRIC RATIO - 0.72
COAL FLUE SOLIDS FLUE GAS FLUE GAS PERCENTAGES PERCENTAGES PERCENTAGES TRACE PPNV
68.73 C 57.00 C 12.66 C02 468.15 NO 5.3? H 0.01 H 5.41 CO 13.94 HCN 10.01 0 0.55 N 0.00 02 0.00 H2S 0.97 S. 0.00 S 0.00 CH4 1156.48 S02 1.56 N 42.44 ASH 1.46 H2 95.62 NH3 4.49 H20 9.75 H20 8.86 ASH 70.55 N2
CHAPTER 5
SUMMARY
The real-time data acquistion and analysis system
applied to the coal-fired reseach furnace provides on-line
experimental data recording and analysis. Data analysis
includes the calculation of unmeasured furnace operating
parameters and data adjustment to obtain consistent data in
lieu of erroneous data. The data adjustment algorithm
imposes additional degrees of definition to a uniquely
defined system of equations so that discrepancies between
data and their calculated values are minimized. The
discrepancies are removed by adjusting the remaining members
of the data set. Following data adjustment, the adjustment
magnitudes are examined for outliers; data with
exceptionally large adjustments become suspect for being
erroneous.
The ability of the adjustment algorithm to identify
and correct error within the data was tested by perturbing a
perfectly consistent set of data. Results indicate that
without imposing additional relations among variables with
57
58
"small" magnitudes, error associated with them cannot be
detected. Variables with "large" magitudes were adjusted in
the correct sense to remove error although the adjustment
magnitude may not reflect the magnitude of the true error.
CHAPTER 6
CONCLUSIONS
The data adjustment algorithm does correct erroneous
data only if the data contributes to a significant degree to
the governing chemical and physical relations. The extent
of data adjustment may not be to the same degree of error
within the data; with additional degrees of system
definition the adjustments should more closely approximate
error within the data. Under these circumstances outlier
analysis of data adjustments would prove more effective in
labeling error sources.
59
CHAPTER 7
RECOMMENDATIONS FOR FURTHER STUDY
Data adustment was applied under conditions of weak
system over-definition since at least four unknowns needed
to be calculated with at most six equations. The error
correction ability of the adjustment algorthm appeared to
decrease significantly with only one degree of system
over-definition. The effect of varying the degree of system
over-definition on the data adjustment could be studied by
imposing additional constraints or treating values obtained
for unknowns as data.
Additional features to the data analysis and
management program should include data base transmission to
the U.C.C. DEC system-10, energy balances, temperature and
specie profiles and residence time analyses. Intrumentation
should be added to obtain on-line static pressures within
air supply lines.
60
APPENDIX A
FLUE GAS MOISTURE CORRECTION
Because flue gas samples are obtained with a water
quenched probe and then refrigerated to remove the majority
of moisture within the sample, measured flue gas fractions
need to be corrected to a presampled moisture included
basis. The correction factor is developed as follows.
N = M e a s u r e d n u m b e r o f m o l e s
n = P r e s a m p l e d n u m b e r o f m o l e s
y . = M e a s u r e d m o l e f r a c t i o n o f s p e c i e i
y n = P r e s a m p l e d m o l e f r a c t i o n o f H 2 0
y ^ N = M e a s u r e d m o l e s o f s p e c i e i
y ^ . N = P r e s a m p l e d m o l e f r a c t i o n o f s p e c i e i
J Y = M o i s t u r e c o r r e c t i o n f a c t o r £ n
A s s u m i n g n o r e a c t i o n w i t h i n t h e p r o b e :
n = N Z y . + n y n , t f H 2 0
S o l v i n g f o r t h e m o i s t u r e c o r r e c t i o n f a c t o r :
? = N = ( 1 . 0 - , y 1 ! ) , i f H 2 0 n E y .
6 1
APPENDIX B
DETERMINATION OF THE COMBUSTOR SOLUTION SET
There are six equations which describe the corabustor
system. They are material balances for carbon, hydrogen,
oxygen, nitrogen, sulfur and thermodynamic equilibrium of
the water-gas-shift reaction. A subset of the available
equations is used to calculate unmeasured variables of the
combustor system.
The combustor system consists of two phases in the
input stream and two phases in the output stream. The input
stream consists of air and coal and the output stream
consists of flue gas and solids. All variables which
describe the system from a material balance standpoint are
shown in Figure 5. Temperature and pressure are not shown
but are also variables considered in conjunction with the
water-gas-shift equilibrium.
The solution set is dependent on the stoichiometry
of the system. If the system is fuel-lean, the output flow
rate of flue solids is assumed to be zero, on an ash free
basis, and the input flow rate of coal is calculated. If
the system is fuel-rich, the output flow rate of flue solids
6 2
63
is calculated and the input flow rate of coal is known from
fuel-lean calculations.
The remaining variables which may be calculated are
the output flow rate of flue gas and flue gas fractions of
S02 and H20. Flue gas fractions of CO and H2 are calculated
during data adjustment. At most, a total of six varibles
must be calculated.
The order of precedence for retaining equations in
the presence of uncertainty or non-convergence is as
follows. Balances of nitrogen, hydrogen, carbon and sulfur
are always imposed. The oxygen balance and water-gas-shift
equilibrium are enforced only during data adjustment. If
variable overflow or nonconvergence occurs during data
adjustment then the water-gas-shift equilibrium is dropped
and the procedure is retried. If a second overflow occurs
during data adjustment then the adjustment algorithm is
aborted. Water-gas-shift equilibrium is not imposed and
flue gas mole fraction H2 is not calculated if no
measurements are available for mole fractions H2 or C02 in
the flue gas.
A multivariable Newton-Raphson algorithm (see
Carnahan, Luther, Wilkes, 1969) is used to solve for the
unknowns because the equations are nonlinear and the speed
of convergence is fast. Convergence is achieved when global
relative convergence of one part per million is attained.
The multivariable case is structured as follows.
6 4
The raultivariable Newton-Raphson algorithm:
It + - * 0 = o
i = I t e r a t i o n C o u n t
z . = S o l u t i o n S e t
f . = E q u a t i o n S e t
4 > . = C o e f f i c i e n t M a t r i x , d > . . = 8 f . ^ I Z )
J
f x = N i t r o g e n B a l a n c e , Z i = Q < *
f 2 = H y d r o g e n B a l a n c e , z 2 = y n
f 3 = C a r b o n B a l a n c e , z 3 = W i ( f u e l l e a n )
z 3 = W 2 ( f u e l r i c h )
f i » = S u l f u r B a l a n c e , Z i » = y 8
f s = O x y g e n B a l a n c e , z 5 = y 2
f 6 = G a s S h i f t E q u i l i b r i u m , z 6 = y i o
N i t r o g e n B a l a n c e :
f i = 0 = m 2 W ? . - x s W i - 1 . 5 8 ( Q i + Q 2 + Q 3 ) +
1 4 1 4
? Q i ( y ^ + y 5 + y s + 2 y 1 2 )
H y d r o g e n B a l a n c e ' :
f2 = 0 = m2W2 ~ (x2 + 2x6)Mi + 2ynQif + 18
£ ( K ( y s + 4 y 6 + 2 y 7 + 3 y 9 + 2 y 1 0 )
C a r b o n B a l a n c e :
f 3 = 0 = m i W ? - XtWt + C Q 4 ( y ! + y 2 + y 5 + y 6 ) 1 2 1 2
S u l f u r B a l a n c e :
f i , = 0 = n u w , - x uMt + £CK( y 7 + y 8 ) 3 2 3 2
O x y g e n B a l a n c e :
f 5 = 0 = - 0 . 4 2 - ( Q i + Q2 + Q 3 ) - ( x _ L + x _6.) + Qnyn + 1 6 1 8
5 Q i ( 2 y i + y 2 + 2 y 3 + y - + 2 y e )
W a t e r - G a s S h i f t E q u i l i b r i u m :
f 6 = 0 = Y n Y ; - e x p ( - A G ° ) yioyiS RT
N i t r o g e n B a l a n c e C o e f f i c i e n t s :
<|)ii = 5(y4 + y5 + yg + 2 yX2)
*12 = ziQ4.(y4 + y5 + ys + 2yX2) l-Yii
* 1 3 = - x _5. ( f u e l l e a n ) ; * x 3 = H i ( f u e l r i c h ) 1 4 1 4
*ii» = -ggQit (yi» + ys + y9 + 2 y 1 2 ) 1-yn
*15 = -55Q «* (y + Y S + Y $ + 2yi2) l-yn
<f>i6 = -g£Qi» (yi» + ys + y9 + 2y12) l-yn
H y d r o g e n B a l a n c e C o e f f i c i e n t s :
* 2 1 = 2 y l x + C ( y 5 + 4 y 6 + 2 y 7 + 3 y 9 + 2 y i 0 )
< J > 2 2 = 2 Q 4 - £ ( K ( y 5 + 4 y e + 2 y 7 + 3 y 9 + 2 y 1 0 ) 1-yn
* 2 3 = - ( x 2 + x _ s _ ) ( f u e l l e a n ) ; 4 > 2 3 = m 2 ( f u e l r i 9
* 2 | » = - € S Q t ( y s + 4 y 6 + 2 y 7 + 3 y 9 + 2 y i 0 ) l-yn
* 2 5 = - i i S - ! t ( y s + 4 y 6 + 2 y ? + 3 y 9 + 2 y 1 0 ) l-yn
* 2 6 = ~ S 5 Q ( v s + 4 y 6 + 2 y 7 + 3 y 9 + 2 y i 0 - 2 ( 1 - y i l-yn e
C a r b o n B a l a n c e C o e f f i c i e n t s :
$31 = ?(yi + YZ + ys + ye)-
$ 3 2 = - € Q o ( y i + y 2 + y 5 + y 6 ) l-yn
< ( > 3 3 = -X j l . ( f u e l l e a n ) ; $33 = nii ( f u e l r i c h ) 12 12
$31* = -g^Qf (yi + y2 + ys + Y E ) l - y n
<p3s = -Mi i (y i + y2 + y 5 + y 6 - ( i - y n ) ) i - y i i c
$36 = -CCQi»(yi + y2 + ys + ye) l-yn
S u l f u r B a l a n c e C o e f f i c i e n t s :
< K i = c ( y 7 + y 8 )
• 12 = -gQu( .y 7 + y 8 ) l-yn
$ 4 3 = - X u ( f u e l l e a n ) ; ( } > 4 . 3 = ( f u e l r i c h ) 3 2 3 2
'K't = (y7 + y8- (l-Vi i)) i-yn 5
5 = - ? ? Q u (.y 7 + ye) i-yn
^te = -£€Q i> (y 7 + ye) l-yn
O x y g e n B a l a n c e C o e f f i c i e n t s :
• s i = y n + 5 ( 2 y i + y 2 + 2 y 3 + + 2 y a )
< ( > 5 2 = Q - - S Q u ( 2 y ! + y 2 + 2 y 3 + y - + 2 y 8 ) 1 - y n
( J > 5 3 = - ( x j . + 2 L s . ) ( f u e l l e a n ) ; 4 > S 3 = 0 ( f u e l r i c h ) 16 18
$ 5 4 = - i £ Q j s . ( 2 y i + y 2 + 2 y 3 + y ^ + 2 y 8 - 2 ( 1 - V n ) ) l - y n 5
4 ) 5 5 = - i i ^ ! i . ( 2 y 1 + y 2 + 2 y 3 + y * + 2 y 8 - ( 1 - V n ) ) l - y n 5
4 * s 6 = - £ €Qk ( 2 y i + y 2 + 2 y 3 + y 4 + 2 y 8 ) l - y n
W a t e r - G a s S h i f t E q u i l i b r i u m C o e f f i c i e n t s
4 > 6 1 = 0
<P 6 2 = gy 2
y i o y i ( i - y n )
4 > 6 3 = 0
< p 6 > = y i i y 2
y i o y i ( i - y n )
< J > 6 5 = y i i V 2 + ? y i i y i o y i ( i - y n ) y i o y i
• e e = y i i y 2 r - ? y i i y 2 y i o y i ( i - y n ) y x o y i y i o
APPENDIX C
D.O.E. FURNACE MONITOR USER'S GUIDE
The D.O.E. furnace program was developed to aid
combustion researchers collect and analyze data from the
experimental coal furnace located in the University of
Arizona Chemical Engineering Department. Data collection
includes on-line real-time monitoring of furnace sensors,
bulk data storage, and manual data entry. Data analysis
includes computing unmeasured furnace operating variables
and performing data consistency analyses.
To effectively use the data acquisition and analysis
system, FURNACE, the user must be aware of the capabilities
and limitations of the system. FURNACE provides real-time
monitoring of many operating variables but not all variables
are measured. To obtain reliable mass balance results,
FURNACE expects the user to provide required data which are
not monitored. This guide includes a section on data
collection which details data required for data analysis.
Also included are sections covering system start-up and
shut-down, data retrieval, storage and analysis.
69
7°
The system is configured with a SPC-16 minicomputer,
a Cromemco microcomputer, a KSR 43 teletype, and the furnace
sensors. The furnace sensors monitored by the Cromemco
include thermocouples, differential pressure transducers,
gas analyzers and a Perkin-Elmer gas chromatograph. The
Cromemco microcomputer and the KSR 43 teletype are located
near the furnace and provide dedicated data acquisition and
on-line interaction with the user. Data analysis and bulk
data storage are performed by the SPC-16 minicomputer
located in the Earth Sciences/Mines Real Time Computing
Laboratory (ES/M RTCL, room 324). The SPC-16 also programs
the Cromemco during system start-up; this procedure is
known as down-loading the Cromemco.
System Start-up, Shut-down and Crashes
This section details the start-up, shut-down and
system crash recovery procedures.
System Start-up
I. KSR-43 Teletype.
A. Turn the teletype power on.
B. Set the BAUD rate to 30 cps.
C. Set the Line/Local mode to Line.
D. Connect the communications cable to the Cromemco
port labeled TTY.
71
Cromeraco Microcomputer.
Connect the SPC - 16 communications cable to the
Cromemco port labeled SPC-16.
A. If the Cromeraco power is on, do NOT turn the
power off; if the power is off, go to step II.B.
Type a control-C at the teletype and wait five
seconds for a response at the teletype.
1. If the response '... Enter option1 is printed
then the Cromeraco is operational and requires
no further initialization.
2. Otherwise, turn the Cromeraco power off and go
to step II.B.
B. If the power is off, turn the power on and wait
one minute for the following to be printed at the
teletype:
CROMEMCO SCCHQN
RTOS-16. Rev.7: D.O.E. Furnace
Ootions: 1 = Delta Entrv 5 = Acquire 2 = Search 6 = Analyze 3 = Delete 7 = Calibrate
4 - Exanine 8 = Reload
... Enter option
1. If the above message is printed, the Cromeraco
is operational and requires no further
initialization.
72
2. If the above message is not printed, the
program on the SPC-16 must be resynchonized.
a. Turn the Cromemco power off.
b. Inform the RTCL operator that the SPC-16
furnace task must be restarted.
3. Following confirmation that the SPC - 16
program has been restarted, go to step II.B.
III. Perkin-Elmer Chromatograph Console. (Optional)
Connect the communications cable from the Perkin-
Elmer console to the Cromemco.
System Shut-down
I. Type a control C at the KSR-43 teletype; the response
should be:
•** Options: t = Data Entry 5 = Acquire 2 = Search 6 = Analyse 3 = Delete 7 = Calibrate 4 = E>:anine 8 = Reload
... Enter option . 8
II. If the above response was not obtained within ten
seconds, the SPC-16 is down and it is safe to turn
the power off at the Cromemco and KSR-43 teletype.
73
III. If the above response was obtained,, select the
"Reload" option, wait five seconds and turn the power
off at the Croraemco and KSR-43 teletype.
IV. (Optional)
All communications cables and data cables may be
safely removed whenever the system is powered off.
The Perkin - Elmer console communications cable and
the data cables may be removed from the Cromemco at
any time without affecting system communications.
The teletype cable should not be removed without
performing the power off sequence.
System Crash
After a successful system startup, the user should
always obtain a message from the system whenever a control C
is typed at the KSR-43 teletype. If no response is obtained
then the SPC-16 has crashed. At this point the user should
turn the Cromemco power off and contact the RTCL operator in
Earth Sciences room 324 (X-3932, X-3947).
Option Selection Structure
For ease of implementation and user interaction an
option selection structure leads the user through chosen
catagories. Upon system start-up the SPC-16 downloads the
data acquisition and teletype communications program to the
Cromemco microcomputer. The SPC-16 then may communicate
with the user via the Cromemco. The options available allow
74
data entry, acquisition, analysis, deletion and searching.
Also an option is available to enter calibration constants
for conversion of raw scaled data to the proper units.
Another option is provided to resynchronize the SPC-16 with
the Cromeraco whenever the Croraeraco power is to be turned
off.
Data Entry
The "Data Entry" option provides manual entry of all
data collected from the furnace. Since some data is not
monitored by the Cromemco microcomputer, the user must enter
the data. Also the user may alter data collected by the
system. To modify any piece of information, the user
selects the record number and the type of data to be
modified. FURNACE prompts for data by name and expected
units. A null entry, carriage . return only, retains and
echoes the previous assignment. If the user enters a new
value, the old value is replaced and the new value is
echoed.
After the user has entered all data of a selected
type, a new data type may be selected. Return to the main
option level is made by entering a null entry for the data
type. At this point data alterations are saved on disk. If
the user exits by typing a control C while in the data entry
mode, previous changes are not saved and the new values must
reentered.
Enter option
*#* Options: 1 = Data Entry 5 = Acquire 2 = Search 6 = Analyze 3 = Delete 7 = Calibrate 4 = Exanine 8 = Reload
... Enter option
... Hodify which data record? 40
... Data Entry Options: 1 = Coal Feed Rate 7 = Air Input Rates
2 = Proxinate Analysis 8 = Fiue Gas Analysis 3 = Ultinate Analysis 9 = Flue Gas Tenperature
4 = Flue Solids Analysis 10 = Probe Position 5 = Air Tenperature and Pressures 6 = Coal Sanple Nane
... Enter the data option: 1 ... Coal Feed Rate = ? £=] los/hour
5.0 5.000
... Enter the data option:
2 * ProKinate Analysis: (As-Received Basis) ... Percent F.C. = ?
70 70.00 ... Percent V.H. = ?
20 20.00 ... Percent ASH = ?
5 5.000 ... Percent H20 = ?
5 5.000
... Enter the data option: 3
* Ultinate Analysis: (Dry, Ash-included Basi ... Percent C = ?
70 70.00 ... Percent H = ?
15 15.00 ... Percent 0 = ?
5 5.00V ... Percent S = ?
4 4.000 ... Percent N = ?
I 1 . 0 0 0
... Enter the data option: 4
* Flue Solids Analysis: (Ash-Free Basis) ... Percent C = ?
100 100 .0
... Percent H = ?
0 0 . 0 0 0 0 ... Percent N = ?
0 0 . 0 0 0 0 ... Percent S = ?
0 0 . 0 0 0 0
... Enter the data option: 5
... Air Temperature: [=] Fahrenheit 75 75.00 ... TRNS Pressure: C=] psiq
5 5.000 ... KKHI Pressure: [=] psiq 5 5.000 ... STGP Pressure: C=3 psiq
5 5.000
... Enter the data option: 6 ... Input Sanple Nane D.O.E. BITUMINOUS B.O.E. BITUMINOUS
7 7
Enter the data option 7
0
7
2 TRNS Air = ? [=] SCFH
2 .000 PRHT Air = ? C=] SCFH
7.000 STGD Air = ? [=] SCFH
0 . 0 0 0 0
... Enter the data option: . 8 * Flue Gas Analysis:
... Percent C02 = ?
.15 15.00 ... Percent CO = ?
.5 5.000 ... Percent 02 = ?
... Percent N2 = ?
.70 70.00 ... PPHV NO = ?
. 0 0 . 0 0 0 0 ... PPHM HCN = ?
. 0 0 . 0 0 0 0 ... PPHV H2S = ?
. 0 0 . 0 0 0 0 ... PPHM NH3 = ?
. 0 0 . 0 0 0 0
... Enter the data option: .9
... Flue Gas Temperature: [=3 Celsius . 6 0 0 8 0 0 . 0
... Enter the data option: . 1 0
... Prooe Position = ?
. 0
2 . 0 0 0 Percent CH4 = ?
0 . 0 0 0 0 Percent H2 = ?
1 . 0 0 0
1.000
Enter the data option
Enter option
78
Search
The "Search" option lists all data records that have
been obtained on a user specified date. Data records are
listed by record number, time when the record was created
and position of the sampling probe.
... Enter option
. 2
...Search on today's date? Y/N . i(
Input date record was obtained: HH,BB,YY . 1 2 . 1 0 . 8 1
*** Searching for records on: 12/10/81
**» End search
... Enter option
Delete
The "Delete" option allows the user to initialize
all or individual data records to an unused state. Upon
selection of this option the user is prompted to delete all
data. If all data records are to be deleted, the user must
verify two queries to initialize all data. Individual data
records may be deleted by answering NO to the prompt for
initializing all data and then entering the record number to
be deleted. To exit from this option the user should enter
a null entry.
79
*#* Options: 1 = Data Entry 5 = Acquire 2 = Search 6 = Analyze 3 = Delete 7 = Calibrate 4 = Examine 8 = Reload
... Enter option .3
... Delete all data? Y/N .Y
... Delete every record? Y/N .ii|
... Input record nunber to be Deleted .40
... Input record nunber to be Deleted .40
... Input record nunber to be Deleted
Examine
The "Examine" option reports disk data to the
teletype by record. This information is used for debugging
purposes.
Acquire
The "Acquire" option is used to ship data monitored
by the Cromemco to the SPC-16 for bulk storage and
subsequent data analysis. Data collected from the furnace
may be subdivided into two catagories. Those collected
automatically and those which must be entered by the user.
The Cromemco monitors the following outputs:
1. Flue Gas Fraction C02.
2. Flue Gas Fraction CO.
3. Flue Gas Fraction 02.
4. Flue Gas Fraction NOx.
80
5. Transport Air Differential Pressure.
6. Secondary Air Differential Pressure.
7. Staged Air Differential Pressure.
8. Furnace Thermocouples.
9. Chromatograph Console Reports.
The following data are not measured and must be
entered via the Data Entry option.
1. Coal Analysis (Proximate and Ultimate)
2. Flue Solids Analysis
3. Coal Feed Rate (Fuel Rich Conditions only)
4. Any furnace sensor data which are not monitored
but are assumed to be monitored.
Analyzer, differential pressure transducer and
thermocouple outputs are sampled every 3.75 seconds by the
Cromemco. The Cromemco averages the values collected over
the period of a minute. When the user requests that data be
shipped from the Cromemco to the SPC-16, only the averaged
data records are sent. Three data records representing 1,
11 and 15 minute old furnace sensor activity are received by
the SPC-16. The one minute old data set is used to report
the current state of furnace operation. Data from the 11
and 15 minute old data sets are used with chromatograph
reports; the chromatograph requires 11 and 15 minutes to
generate results. If no data is available from the
chromatograph console, the 11 and 15 minute old data are
disreguarded.
81
To ship data from the Cromemco to the SPC-16, the
user must select the "Acquire" option. FURNACE then prompts
the user for the static pressure in each of the three air
supply lines and the air supply temperature. These are used
with differential pressures to compute air input rates.
FURNACE then ships the data to the SPC-16 and reports air
flow rates and flue gas analyses. The time, date and record
number are also output so that data may be referenced for
deletion, analysis or edition.
The coal analysis, flue solids analysis and coal
feed rate (fuel rich conditions only) are assumed constant
and need to be entered by the user only when they change.
The values entered are used for all subsequent data analysis
and reports. When conditions are fuel lean, reported values
for the coal flow rate are computed and are not influenced
by the manually entered coal feed rate.
Analyze
The "Analyze" option is used to compute unmeasured
furnace operating variables. Four equations are solved
simultaneously to determine four unknowns. The four
equations are mass balances for nitrogen, hydrogen, carbon
and sulfur. Three unknowns that are unconditionally
computed are flue gas fractions of H20 and S02 and the flue
gas output flow rate. The fourth unknown is either the coal
input flow rate or the flue solids output flow rate. If
conditions are fuel lean then the coal input flow rate is
calculated and the output flow rate of flue solids is
assumed zero (ash free basis). If conditions are fuel rich
then the flue solids output flow rate is calculated and the
manually entered coal input flow rate is used. Fuel rich
versus fuel lean conditions are indicated by the measured
ratio of flue gas 02 content to flue gas CO content.
Conditions are considered fuel lean if the ratio is greater
than 0.5; otherwise, conditions are considered fuel rich.
A multivariable Newton-Raphson technique is used to
solve for the unknowns and the results are reported to the
teletype. Coal analysis and coal input flow rate are
reported on a moisture and ash included basis. Flue solids
analysis is reported on an ash included basis. Flue gas
fractions are reported on a moisture included and corrected
basis. The flue gas output flow rate and the air input flow
rates are reported at standard conditions.
Data consistency analysis is concerned with
minimizing discrepancies between data and values calculated
by imposing additional mass balance or thermodynamic
constraints. Furnace variables which are not calculated are
adjusted to minimize inconsistency between data and
constraints. The minimization algorithm is an iterative
process and normally requires about thirty iterations to
achieve global relative convergence. Each global iteration
requires approximately one minute; therefore, data
83
consistency should not be performed during data acquisition
periods. The results of the data consistency analysis are
reported in the same format as normal data analysis results.
Calibrate
The "Calibrate" option allows the user to enter
calibration model parameters to convert raw scaled data to
the proper units. Data conversion occurs after data is
acquired from the Cromemco to the SPC-16. Twentyfour raw
data channels are reserved for thermocouple data and eight
channels are reserved for three differential pressure
transducer and five gas analyzer data. Data from each
thermocouple is converted using two parameter models while
four parameter models may be used for each analyzer or
pressure transducer data.
*** Options: 1 = Data Entry 5 = Acquire 2 = Search 6 = Analyze 3 = Delete 7 = Caliorate 4 = Exanine 8 = Reload
... Enter option
.7 ... List the calibration assignments? Y/N
. H
**» Calibration options: 1 = P/E Transducers 2 = Analyzers
3 = Pt/PT-Rhodiun Thermocouples 4 = Chronel/Aluttel Thermocouples CH<8-15) 5 = CHROHEL/ALUHEL THERMOCOUPLES CH(16-23)
... Enter the calibration option:
... Enter option
7 ... List the calibration assignments? Y/N Y
CHANNEL SLOPE INTERCEPT 0 TC.R
= -1.043E+00 * TC.R 2.058E+03
1 TC.R = -I.043E+00 •* TC.R 2.058E+03
2 TC.R = -1.043E+00 * TC.R 2.058E+03
3 TC.R = -1.043E+00 * TC.R 2.058E+03
4 TC.R = -1.043E+00 • TC.R 2.058E+03
5 TC,R = -1.043E+00 • TC.R 2.058E+03
6 TC,R = -1.043E+00 • TC.R 2.058E+03
7 TC.R = -1.043E+00 * TC.R 2.058E+03
8 TC.K = -8.984E-01 * TC.K 1.777E+03
9 TC.K = -8.984E-01 * TC.K 1.777E+03 10 TC.K
= -8.984E-01 TC.K 1.777E+03
11 TC.K = -8.984E-01 * IU.K 1.777E+03
12 TC.K = -8.984E-01 * TC.K 1.777E+03 13 TC.K
= -8.984E-01 * TC.K 1.777E+03
14 TC.K = -8.984E-01 * TC.K 1.777E+03
15 TC.K = -8.984E-01 * TC.K 1.777E+03
16 TC.K =
9.150E-01 * TC.K 1.914E+03 17 TC.K
= -9.150E-01 * TC.K 1.914E+03
18 TC.K = -9.150E-01 * TC.K 1.914E+03
19 TC.K = -9.150E-01 * TC.K 1.914E+03
20 TC.K = -9.150E-01 * TC.K 1.914E+03
21 TC.K = -9.150E-01 * TC.K 1.9l4t+03
22 TC.K = -9.150E-01 * TC.K 1.914E+03
23 TC.K = -9.150E-01 •* TC.K 1.914E+03
CHANNEL = AO + AI*ADC + A2*ADC**2 + A3*ABC**3
AO A1 A2 A3 TRNS 9 .135E+00 -4 .780E-03 0. OOOE -01 0 .OOOE-•01 PRHT 8 .205E+00 -4 .080E-03 0. OOOE -01 0 .OOOE-•01 STGD 1 .009E+0I -5 .180E-03 0. OOOE -01 0 .OOOE-•01 C02 -4 .001E+01 4 .311E-02 -1. 589E -05 2 .249E-•09 CO -3 .387E+0I 4 .036E-02 -1. 654E -05 2 .437E-•09 02 3 .319E+01 -1 .693E-02 0. OOOE -01 0 .OOOE-•01 NO -4 .566E+03 2 .350E+00 0. OOOE -01 0 . OOOE-01 S02 0 .000E-01 0 . 000E-01 0. OOOE -01 0 .OOOE-01
*** Calibration options: 1 = P/E Transducers 2 = Analyzers
3 = Pt/PT-Rhodiun Thernocouples 4 = Chronel/Alunel Thernocouples CH<8-15) 5 = CHROHEL/ALUHEL THERMOCOUPLES CH(16-23)
... Enter the calibration option:
85
Reload
The "Reload" option should be selected prior to
turning the Croraeraco power off. This option synchronizes
the SPC-16 with the Cromemco when power is turned on at a
later time. Whenever the Cromeco is turned on, the SPC-16
must program the Cromemco. By selecting the "Reload" option
the user is informing the SPC-16 that the Croraeco power is
to be turned off. The SPC-16 then waits until the Cromemco
is turned on and then reloads the Cromemco with the data
acuisition and teletype monitor program.
APPENDIX D
THE CROMEMCO MICROCOMPUTER PROGRAM
The purpose for programming the Cromemco
microcomputer was to provide dedicated data acquisistion and
monitoring of the coal fired research furnace in the
Chemical Engineering deparment. Furthermore, communications
were to be established with the Earth Scieces/Mines
Real-Time Computing Laboratory to provide on-line data
analysis using a General Automation SPC-16/65 minicomputer.
System Configuration
Data acquisition includes sampling the analog
outputs from furnace sensors via an analog to digital
interface and monitoring for reports generated from a
Perkin-Elmer microcomputer controlled gas chromatograph.
Communications involved coordinating character Input and
Output (I/O) between the SPC-16, the laboratory teletype,
and the chromatograph (see Figure 3). An interrupt driven
approach was taken so that simultaneous events could be
serviced.
86 .
87
The Cromemco is configured with a Single Card
Computer (SCC) monitor, eight kilobytes of RAM, three
programmable UARTs, five parallel I/O ports, fifteen
interval timers, and an analog to digital interface. Acting
as an extension of the I/O subsystem of the SPC-16, the
Cromemco provides fully buffered full duplex communication
to a laboratory operator at a KSR-43 teletype. Periodic
data acquisition from the furnace sensors is implemented
using interval timers and chromatograph monitoring is
provided with one of the UARTs.
Interrupt Service Hierarchy
Following initialization, all functions performed by
the Cromemco are caused by interrupts. Whenever characters
arrive or leave any of the three UARTs, interrupt service is
requested. Likewise, whenever the data acquisition interval
timers time-out, interrupt service is requested. The
similarity of service required by interrupting devices
enables general purpose drivers and handlers to be common
among the service routines. Particular service needs can be
satisfied by examining parameters within Device Control
Blocks (DCBs) and executing the appropriate options with
special purpose handlers.
88
System Initialization
Prior to any interrupt service some initialization
must take place. Initialization occurs in the following
sequence. First the Cromemco is down-loaded from the SPC-16
upon Cromemco power-on since no bulk storage bootstrap is
supplied with the SCC monitor. After down-loading, the SCC
monitor exits to the down-loaded program where a checksum of
the program is computed to ensure the integrity of the
program. If the checksum computed by the Cromemco does not
match the checksum computed by the SPC-16, a control C is
issued to the SPC-16 and the down-loading sequence is
retried. Following a successful program load, interrupt
service initialization is executed.
Interrupt service initialization encompasses Z-80
CPU system initiazation and SCC external device
initialization. Z-80 initialization redefines the system
stack pointer from the location defined by the SCC monitor
to a more convenient location. Also the mode of Z-80 CPU
interrupt service is selected so that the page of the
interrupt service routine table is software selectable. The
I-register is loaded with the page of the table and the
interrupt service routine table is subsequently filled using
a block transfer from its down-loaded address to the proper
absolute address.
89
SCC external device initialization is concerned with
initializating the UARTs and the interval timers. The UARTs
are initialized by setting their BAUD rates, resetting their
interrupt status and defining their interrupt masks. The
interrupt status and masks for the timers are defined in the
same manner as with the UARTs. Initialization is complete
when interrupts are enabled; the Cromemco spends the
majority of its time thereafter in a null loop waiting for
interrupts to occur.
System Interrupt Service
When an external device requests service, the Z-80
CPU disables interrupts, pushes the return address onto the
stack, picks up the page of the interrupt service routine
table from the I-register and the pointer into the table
from the interrupting device and performs an indirect jump
using the effective address to the Interrupt Service Routine
Handler (H$ISR).
All interrupt service routines begin at H$ISR entry
points; there is one entry point for each interrupting
device. The advantage of this structure is that interrupts
may be simulated simply by executing a subroutine call to
one of the H$ISR entry points. Functions performed by H$ISR
include saving all registers, picking up the DCB address and
calling the appropriate service driver. Upon return from
90
the driver, H$ISR restores all registers, enables interrupts
and returns to the uninterrupted state.
Three service drivers were written to handle
character input, character output, and timer service (see
figure 8). Character input may occur from physical ports
01, A1 and B1. Character output may occur to ports 01 or
A1. Port 01 is the SCC monitor port and connects the
Cromemco to the SPC-16 minicomputer. Ports A1 and B1 are
serial ports supplied by the Cromemco TUART I/O expansion
board. Port A1 connects the Cromemco with the KSR-43
teletype and port B1 connects the Cromemco with the
Perkin-Elmer chromatograph console. Of the fifteen
available interval timers, the three that are used are
loaded via ports A5, A6 and A7.
Whenever a character is assembled by one of the
three UARTs, an interrupt is requested indicating Receiver
Data is Available (RDA). H$ISR saves all registers, picks
up the DCB address and calls the Driver for Receiver Data
Available (D$RDA). D$RDA is responsible for inputting the
character form the UART and buffering the character.
Character examination handlers are called so that special
control characters may be detected. Upon matching a control
character, other handlers may be called to implement
additional functions. Just prior to returning to H$ISR, an
output interrupt request is simulated if the character
9 1
( Start )
Wait for
Interrupt
1
^ v w n i c n m t e i r u p t ^ ^ 1
Clock 1 Time-out f
D$RDA || || D$TIMR || || D$TBE
1 r 1 >
|| H$RDA || || H$TIMR H$1 "BE
i £ i ( Return ) ( Return ^ ( Return )
F i g u r e 8 : C r o m e m c o M a c r o F l o w C h a r t
92
destination port is not busy. Output interrupts must be
simulated if "long" periods of inactivity have occurred
since the previous character output. The integrity of data
at the port is upheld by checking the status of the UART and
ensuring the UART Transmitter Buffer is Empty (TBE).
Whenever a UART finishes serial output and its
transmitter buffer becomes empty, an interrupt is generated.
Entry is made into H$ISR, registers are saved, the
corresponding DCB address is retrieved, and a call is made
to the Driver for Transmitter Buffer Empty (D$TBE). The
driver examines the character buffer pointers and decides if
any more characters need to be output. If the character
buffer is not empty then a call is made to the handler for
outputting characters.
Characters may either be output to the SPC-16 or to
the teletype. If characters are to be output to the
teletype then no special consideration is required prior to
their output. If characters are to be output to the SPC-16,
however, special care must be taken to ensure that the
SPC-16 is in a solicited input state. This is done by
handshaking using the SPC-16 input prompt to initiate record
transmission and ending record transmission with a carriage
return from the Cromemco. If the prompt has not been the
last character received by the Cromemco from the SPC-16, no
characters are output and return is transferred to H$ISR
without updating buffer pointers. If the prompt has been
received by the Croraemco, characters may be output to the
SPC-16 and simultaneously echoed to the teletype until a
carriage return is sent.
Circular buffers are used to hold characters
obtained from the serial input ports. Pointers are kept on
the lower and upper memory limits of the buffers as well as
pointers to the next available location for input characters
and to the next character for output. When characters
arrive, the character input pointer gets ahead of the
character output pointer. When the output pointer catches
up to the input pointer, character output stops. The
pointers are contained in the DCB correspoinding to the
interrupting I/O device.
Since the SPC-16 transmits characters at 2400 BAUD
and the Cromemco removes them at 300 BAUD to the teletype,
transmit-on and transmit-off protocol is practiced to
prevent buffer "overflow." When a character arrives from the
SPC-16, a buffer counter is incremented and the counter is
decremented when a character is removed to the teletype. If
the buffer count exceeds an upper limit, a control-S is sent
to the SPC-16. When the buffer count drops below a lower
limit, a control-Q is sent to the SPC-16. The buffer sizes
allocated for characters from the SPC-16 and the teletype
are 256 bytes each. A buffer size of 1536 bytes is
allocated for the chromatograph data. The buffer size for
9 4
the chromatograph needs to be large since an entire gas
analysis report may be held prior to its transmission to the
SPC-16 or the teletype.
Data Acquisition
The primary objective for using the Cromemco was to
monitor the instrumentation of the coal fired research
furnace. Analog signals from the thermocouples, analyzers,
and differential pressure transducers needed to be sampled
periodically, recorded and transferred to the SPC-16 for
subsequent data analysis. The problem of monitoring the
chromatograph was resolved by printing the report to both
the Perkin-Elmer GCC and to the Cromemco via RS-232 serial
transmission.
An analog to digital interface was designed to
multiplex, amplify, and convert conditioned analog signals
to 12 BIT parallel numbers. The interface, shown in Figure
4, requires a six BIT parallel signal to address the input
channel from a two-tiered multiplexor configuration.
Following channel selection, the Analog to Digital Converter
(ADC) is pulsed to start conversion. After conversion is
complete, the output is read by the Cromemco and stored in a
circular buffer. A total of 32 channels are sampled in an
ordinal fashion to provide a vector representing the
activity of the analog sensors.
95
It was decided to sample each channel sixteen times
per minute, average the data at the end of a minute and save
the resultant vector in another circular buffer designed to
hold sixteen vectors. Pointers into the sixteen minute
history buffer indicate fifteen, eleven and one minute old
data sets. This was done to synchronize data from the
chromatograph with data from the analog instruments since
the chromatograph requires fifteen minutes to generate gas
analysis reports.
The function of the interval timers are to provide
periodic interrupts for sampling the analog interface.
Three timers are used because three fundamental periods are
involved. Time is required for the interface to settle when
each new channel is multiplexed. Another time period is
required for analog to digital conversion to be completed.
Finally, the sampling frequency of sixteen data sets per
minute is enforced. Admittedly the above timing
requirements could be met using one timer with additional
logic; fifteen timers were available, however, and timing
tasks were distributed among the three. The time required
for analog to digital conversion and analog interface
stabilization is on the order of 50 microseconds. An
arbitrarily long waiting period of 8.2 milliseconds is used
for both stabilization and conversion and a waiting period
of 3.75 seconds is used to obtain a sampling rate of sixteen
sets per minute.
9 6
The interval timers decrement their load count once
every 64 microseconds. When a timer count reaches zero an
interrupt is generated. As in UART interrupt service,
interrupts become disabled and indirect subroutine call is
made to an entry point of the Interrupt Service Routine
Handler (H$ISR). The handler saves all registers, picks up
the corresponding DCB address and calls the Driver for TIMeR
interrupt service (D$TIMR).
D$TIMR reloads the timer and checks the status of
the data service handler. If the handler status is disabled
then a return to H$ISR is made. If the data service is
enabled, a call to the Handler for TIMeR (H$TIMR) service is
made. H$TIMR is responsible for calling the appropriate
data management and interface control handlers. Upon
completion of the specific task, return is made to H$ISR
where registers are restored, interrupts enabled and return
to the uninterrupted state is made.
Concluding Remarks
The entire Cromemco program was assembled by hand
and linked via the Z80LNK utility developed on the SPC-16
minicomputer. After tedious debugging the end product is
operational and located near the furnace instumentation. An
interrupt driven approach has enabled simultaneous character
I/O with data acquisition while protecting the integrity of
all information tranfer.
APPENDIX E
D.O.E. COMMAND FILES AND SOURCE LISTINGS
Following are the command files and source listings
neccessary to completely generate the D.O.E. program set.
The command files include compilation, linking and loading
files for SPC-16 tasks and compilation and linking files for
the Zilog Z80A assembly to Cromemco Control BASIC utility.
Source files include compilation listings of all SPC-16
FORTRAN-IV modules and all Z80A assembly modules.
97
t JOB $C *C COMPILE FILE FOR THE D.O.E.COAL FURNACE $C *C LUN/PUN ASSIGNMENTS! 20=02 tC 53=UJ(D0EDAT> $C «SI=DS(DOEBLK> «FI4F*RO:AOOO *SI=DS(DOEMAN) TF16F*R0!AOOO *SI=DS(Z80L0D) *FHF#RO!AOOO *SI=DS(Z80SHK) »F16F*ROSAOOO •8SI=nS(Z80FUN> «F16F»ROSAOOO TSI=DS(DOEBEL) SFI6F*RO:AOOO *SI=DS(DOESEA) SFI6F*RO:AOOO $SI=HB(HOESTK) IFI6F*RO:AOOO tsi=ns<noECAL) »F16F*R0SA000 4SI=DS(D0EDIS) $FI&F*RO:AOOO $SI=HS(DOEGET) »FI6F*RO:AOOO
ISI=DS(DOEINP) IF16F*R0!A000 1SI=DS(D0ECH0) *FI6F*RO:AOOO *EOD $C $C BOUND COMMON AT C*AL02 + X'OOOF' *C •LO=TY TCLOB *MAF'L *80UNB>CEIC£E *CONMQNrP»S *BUILDfUL »REPLACE»DC(DOERUN)»UC •PACKfDC $c t JOB IE — COMPILE FILE FOR THE D.O.E.COAL FURNACE $C *C LUN/PUN ASSIGNMENTS! 20=02 tC 53=UJ(D0EDAT> *C SSI=DS(DOEBLK> *F16F*R0!A000 $si=ns(noEio> $F16F*R0!A000 *SI=DS(DOERPT> »F16F#R0!AOOO «SI=DS(DOEGMA) $FliF*R0!A000 1.SI=HS(D0EBFN) »FI6F#RO:AOOO «SI=DS(DOEGAU> $F16F#R0:AOOO $SI=DS(DOESTK) *F16F*RO!AOOO TSI=DSCDOEOUT>
— LUN/PUN ASSIGNMENTS! 20=02 53=UJ(D0EDAT)
SFI6F*RO:AOOO tSI=DS(D0EBTA) SFI6F*RO:AOOO lEon *c tc — BOUND GLOBAL AT X'630' FOR SPOOLER «C tLO=TY tCLOB *MAPL ABOUNDiG6630 tCOMMONrPrS *BUILD>UL tREPLACErDC(DOERPT)>UC tPACK» DC tc t JOB $C tC COMPILE FILE FOR THE D.O.E.COAL FURNACE tC tC tC
tSI=DS(DOEBLK> tF16F*R0!A000 tSI=DS(DOECPU) tF16F*R0!A000 tSI=DS(DOESET) »FI6F*RO:AOOO tSI=IiS CDOESTK) tF16F*ROiAOOO JSI=DS(DOECOG) tF16F*RO{AOOO tSI=DS(DOENEU) tFl&FtRO!AOOO $SI=DS(DOECNV> tF16F*ROiAOOO tSI=DS(DOEFVC) tF16F*R0tA000 $S1=DS(D0EJAC) tF16F*R0!AOOO tSI=»S(DOEPIV) tF16F#RO!AOOO tSI=DS(DOEMAT> tF16FIR0!AOOO tSI=BS(DOESSO) tF16F*R0!A000 tSI=DS(DOEZVL) tF16F*R0SA000 tSI=DS(DOEFVL) tF16F*RO:AOOO ISI=DS(DOESRT) tF16F*R0!A000 $SI=HS(DOESQR> tF16F#R0JAOOO tEOD tLO=TY tCLOB *MAPL *COMMON»PrS IBUILDFUL tREPLACEiDC(DOECPU)FUC tPACK.DC tCC=TY
END t JOB tC tc DOE FURNACE PROG COMMAND FILE tC tFX !OFFrF
!DELETE»FP(J3)»RP(J3) !DELETEiFP<J6)iRP(J6) !DELETEiFP(J27)>RP(J27) !•PROG»3>PU8(104)rAPUrZB3» OFF»PS=36FOfPI=DC(DOECPt)iFP(J3)rRP(J3) ! •PROGr6fP08<104)fAPU»Z05»OFFtPS=36F0>PI=DC<D0ERPt)»FP<J6)»RP(J6) !•PROG»27?P08(104)»APUiZ06»OFFrPS=36FO>PI=DC(DOERUt)»FP(J27)tRP(J27) !BX $ JOB tCC=TY
END (JOB tC tC THIS COHHAND FILE BUILDS THE FURNACE CROHEHCO LINKER $C »SI=DS(Z80LNK> »FI6F#RO:AOOO $SI=DS(Z80HTC) *FI6F*RO:AOOO $SI=DS(Z80CTH) $FI6F*RO:AOOO »SI=DS(Z800UT) $FI6F»RO:AOOO $E0H tc ICLQB CHAPL *BUILD *F:EPLACErDC(ZBOLNK)rUC tPACKfDC tc tC TO BUILD THE CROHEHCO PROGRAH. ISSUE! »CC=CHCZ80BLD) tCC=TY
END $ JOB tc tC CROHEHCO / ZBO BUILD FILE tc tC — OBTAIN A LISTING VIA LUN! LO tC ERROR HESSAGES APPEAR ATS OH tc tso=us tIS=DP tSI=UJ(Z80BAS) t63=DS(Z80DIR) TZBOLNK t JOB tC tC — THE EDITOR REH0VES UNNECCESSARY REFERENCES. tC tSI=DP tEDITOR 03/4&iD 0C=Y tC SC THE LINKED BINARY IMAGE IS IN USt tC REPLACE UJ(Z80PGH> WITH THE NEU IHAGE tC UHEN THE FURNACE LAB IS NOT EXECUTING. tC tCC=TY
END
» ^4
CO »
n CM
UJ II
II •>
X
II II
O
©<r
ii ii n
coz ii ii
u u CD
«o u
HQ
ii
II sj
n II
OA
ii
11 T-l
o
ii u
It
z
ii Ui
II M
o
ii
CO II
x
UJ CM
ro in
ii «
II o
X
«-»
in ii
II CO
<r w
CD
ii a
II CO
Z
<T CM
r>m
ii UJ
II CD
H-UJUJ
n CC
11 >-
•» <X
fv cccc
ii <r
Ii. U
JI-O
CM Z3
ii X
u
H
X •*>-
•»A
ii co
II X
<za. -
out ii
II CO
z —
* CM
©u
ii
cc H
<t U«-svQ
oo
ii
o
II h-
<r •—
Z
m
oo
: ii
Ii. U
UJ <x
UJw<E a.
ii II
CO UJ
a
X
XCOh-H V
•o n
z
II Ui
X
1— CJ
<T -<I
"s. OUJ
w
UJ ii
a
It a£
<1 u
tno
z^a«
o
CMO N
ti
M
U •»
z
U1COX O.C4X)—
cnx^j in
H
ii b-
II CD
a. •-CM
cn -o
o
u. rH
CO ii
<x II
3
«xcm H
K«u
j-^ax
o> CO
ii u
II
A
«"•>» 0
w
-U.XX>-C
MI—
U
-s - »•
- - -ro
1— ii
o
II UJ
-o_rvj U
HU
« O'OSUJ
ro u
ii II
A
w
i— I
UJX »-z-^<i<rUJM
in
o
<r ro xa
UJCO n
II UJ
"-«X LLI C
C CO Z
CO'O 1— co»-«
CM CMXXCM COO
CM co>-
ii <x
II o
X
a_i—
cj x
-w<c<c zen
o
OlO
UZ
ZZ
Ch
A
<r ii
II >-
X
<x -«
<X
H0U
XSO
»Z
CM co
cc ii
z
II »—
o
z
COA«-" ^
XUIC
9X *3Q.tsl •>
-N. H
ii o
It
h-a:
CO C
C -W
CJ -—
-»© »-tno <x—
- «> CJ
©c
ii X
II
X
•> Ul>- - CM
o
m osic uju z
c-iu
i«o
us
-N o
ii
x
II u
CC
w
rt — cocoa: •>>v«r<roo«
cc s
UJ ZCM
O *1—
OO
o
ii
o
II CO
•> -*CHl
hXHN
ww
j-OC
H -X
*»3ww
w
o
=> o
uo
n xx H •
o
ii u
n 1-4
z
<r -<xt-<C
XCO
XHac9U
U *-<Z<SN(n
M
JXZ
UX
CO
XX
*CIC ii
n o
H
-3ACO
1— UJ»-»tD<X •-=>»-• X—•—
>— h—1—
u
o
U. =>Q_
n UJ
it m
CO
UtUJ cc »>-<r
CQ
XH
<Z<7<T<XCO*-4
UJ o
UI ii u
ii CD
XX
toes -_J
fiZ«Ul££HUJ(MZwQ04Z cc H
coo |sj
ii <x
ii CM
O
<r<r <x
flct-ii— 3
coh-ao xo
ou
) j3
X
•» H
ii
z
ii O
u zz
ZZ
f-Z
<r CM
CO *CO
ro^
coco ii
cc it H
co>-o
oco
N
SV
SW
SS
SN
N
\S
X
•»
<S OOCMCM
UZ
UJ
ii 3
ii X
» •»
HH
OH
CC>-
XX
o
ouwuzxxu »cc
CMO* »--J
ii u.
ti <z u
CO cox CO xuix<r
cd uju
oi-4 o
U
U-H-• CM
OA
ii
ii 1—
M
CM*C H
H kH
<XUJQ-CDX
SZUJH-OC 1-0.
CO CM
UJ<X ii
ii <x
CC WW uu<ru
hOX
HSZttfiC
ZCO
C
ux
1-4 s «V, \
% N, \
"N.H-w*-*
ii <x
<z ii
a
CM UJUJ
UJUJI—UJ <zzujuj<x=3uj3<r>>uj
UJ<T o
<r
mill i.i
i.n.ii. i X
X
O.C
C
II o
»—
u cc
o
XX
cccc<zcc
PH
hS
OjO
n zcoco
o>x H-
XX
X
X
XX
u
io
<x ii u
c
ii <c<x
O.O.QQ. >-
4
1
<x<z<x Qt-H
-r> ii
A
ii cc
ZZ
' 3
»—
n ZZ
z
zzz
ZD
o
ii
•
ii ui
<r u
x
UJUJ »UJ zzzzzzzzzzz
ZZ
1—
ce U
X
>- COO.O
H3
©
n UI
it CD u
JJ<IJ
ooooooooaoo oo
o
ii • u
ii UJ
H
affli-a
X
XX
XX
XX
XX
XX
X
X
<x <i
<z<z <r
<r <x<x <r<r
©
ii o
o
ii
t—
CD <x<c
=)=><IZ3 xxxxxxxxxxx
XX
»—
»-
»—H- h-
»—»—1— i—i—
ii •
-J ii
z
a
UJUJ O
OQ
O
oo
oo
oo
oo
oo
o
oo
<z
<r <r<x
«
<r<r<r <14
A«*
u a
A
ii M
-j
occc aAOQ
uu
ou
ua cju u
uu
uu
a
a
AO
A
A
AA
A
A
Zfr-ii
it UJZ
ii ii
+
-4-ZD
ii
ii oco
UU
UU
U
UU
U
C ^(VffO^rblHir'oGOCKOHCMIO O
OO
© o o
o O
O^H
H
ooo ©o ooooo© oo
ooooooooooooo
«ouioc3co-<r "«Ttoocoas»-» •O
HnM
OO
OO
^NN
flJ
oooooooooooo
oooooooooooo
cut— rz&:
XU
JX«
O
UiUO
<x
ua.u
s
3zu
ho
:h
KO
SH
rza^zuxiu
«XZUJUJ<E
)UJO<X>-UJUJ O
Hh3(9
Jaaz(n
u»
uu
uu
uu
uu
uu
uu
o<ooou«rooooooo o
nn
oo
tMN
OH
Hin
^o
oooooooooooo
oooooooooooo
<r luujujujujuj
ozzzzzz
cc cj o x>- co a. S3 x >- co
uu
uu
uu
uu
uu
uu
^O
OH
MO
HW
MO
^O
o ©000 00000 or*
oooooooooooo
oooooooooooo
xzo
z
u*-ia
;c9»-i-*-i
ac ic
moo3u
iilx cn
CO>~ccoqcaco»-40 cc
i-c»—C
NO
XU
IUIX
WC
CH
H
ahauuA
Ktn
tncnca.
U—l
Ui
CC
A U
U
U
U
U
U
o
«x
• ••
*• •• •••• •••• •••••• •> •••• •••• •••••••••••• •••• •••• ••••
J
«rin
-o ps. co
o- o«
-«<
Mro
in
-or** oo o» o »-»w
to «
r in -o
r>- oo o» o ** cm ro
«r in
rv
oo
o» ©*•* cm ro
in cc
«h »-«rH cm cm cmcm cm cm cmcm cm cm roro
to ro
roro
roro
roro
«r
^ <
r <r *r rnin
in in
inm
uj O
OO
OO
OO
OO
OO
OO
OO
OO
O O
OO
OO
OO
OO
OO
O O
OO
OO
OO
OO
OO
OvN
O
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O/N
oo
oo
oo
oo
oo
oo
oo
o o
oo
oo
oo
oo
oo
o o
oo
oo
oo
oo
o o
oo
o o
oo
oo
o o
o o
o o
o o
o o
o o
o
oo
oo
oo
oo
oo
oo
oo
o o
oo
oo
o o
oo
oo
oo
oo
oo
oo
o o
oo
oo
oo
oo
oo
oo
oo
o O
OO
OO
O o
o
uiui
tnui
uiui
cmiu
icsi
^^fe
^jt-f
e-fe
c»
jc»jc<
4c»jb
iui &
Jt4C
*jrjN
)roNr
<J lo
roro
roro
*^ **
****
»^
»«>o
oo
oo
oo
oo
*O
CDvl
O>U
I^M
rO»-
>o<0
(D>J
(hUI
»UM
HO'O
Q)M
I>>U
likUK
}MO
S)O
ONJ
O>U
IAUM
MO
'OCD
MO
«UI^
Uh}»
-'0'0
(DNj
l>>C
n<lk
UrO
H onoM
CJI at
o
o
n
nn
nn
nn
ii
II II
II II
N it
n tn
oojjmhh
z> oom-n-n-n
<=
Z I-'
x>
flHwHOv
l-O
tl 0
"D U
(ncnzcnzs: o
-o
O2QC
O3O0
X -4
tozvzu) m
HO
^O
OO
—I
a:
X CM- (
I m
m*
H
zm
m
tdhi
oo
er* • •
mO
DN
ics M
HH
HW
H^
CO
Cn
C
tin"n
-n-n
"nm
7>o?
Jo»
AA
A«A
«»H
2H
ZM
H«
» >M
HI I
MQ
H- l-l —
I—4
00 o
oo
o^
nn
rriM
n
*V~D -Q
-Q 7J"D
-I Z«
~ Z
• •
• K
HH
lHm
H
mm
mn
imr-
-<
-<-<
00
000—
!**<
• <•
« •
OM
*-*
t-+
U
lU
M^-b
O
O
O
wfo
»—
> o
ono nnnnnsjM
•c
03>0 Z>Z> 3>Z>X>* O
—1
—1
»-» 0
n~ rrrrnw-fl
«•
«•
z
—(P —
11 | |-|-l 'DH
so
OO
~D
C5 ts
0
O OOOOOH
3>
3>
M
MOH OOOOO*
-4
—1
CO
0 pica mm mmrno
I*
0 cisau)Z-i
x> mv-»mm—
O O
r
-Htor-z>3coo
M
CO
CA
0
a
3: 31
O O
—1
O O
0
m m
*—
CI
3DOt-«030 O OO0DO nnn trMMM
II O
u
m»ioo
3> 3>3>3>3>2>
000 od zzz
II
n
rrz» f-
3:3:2 00 —1—1—1
II O
11
or»H-<
r-
3:3:3: MM m m m
II
H
i>
mi-»x>
000 on CIQQ
It m
n
oorz«
~n X"gZ3Dt-2Z2 3>2> mmm
II
»
ti
ZZH2-l*V-l
11 moct-
3D 3>C03>0
r~r* 3050 30
II
N
cnui?3»0o
- 1—3>m~ m (OtOCZW Ws
II 0
11
Hmmx3>®»
-n*»o
u 3: COX'S. OM ore J)t3 "D3D30
II 0
11
r*J230?D-t-H
»**•—
fO
a?-- on-
mcp mm c: j>t«
It
j>
n
no mi>i>
0
—< r-~D- — OZH r-w cnz>
II
r-
« x 0
cnzn 0
SC4»- 0 C
3> OCT XO—<
II
n
mox»
nr\3)» O
x>o - ma>
II
-*1
u
0000000
• cr
sr-
3>o-
e? *•
H c
N
0000000
—T"
- \
OI"?H
SN
X
73 m
cr-
•-i~
»o
II
3D Z
II
II
nvooNjsiNJ
oouroo-k
M
3D- a
co
W
-H30
CO r-j>ro
II
3>
II
CO
m-iw
m
z*-
II O
It
0000000
0
w-<
—1
"D-
II m
tl
r~
O 's.N-v C- -1
C-l
II
II
0
Z>
OH
U OOJ>
CO
-1—1
II z
N
C3
O NO-
«• M
X
-<
II
n ccHHorcn-<xco
"v.
oiO»
?DCO
M
—
II H
it
zm3>zmi>etJDeo
-n* m;*
-n
C5
II z
11
MMxorwi»2>>»i»
-H
- O
10-
-4
H
II 1
ti
-HCTHmN-IHHHHH
a?
IMN
1*13
: ••
CO
II r-
11
COXCOX
c
**
-H3>
CO
r;
It M
11
-H
m 0
- X
CO
II z
11
* *0
in
p?
0
z
II m
11
oo
oo
oo
oo
oo
o
V.
T\
mm
zx.
0
11 u
oo
oo
oo
oo
oo
o
N
t-»o
M
c
II 11
OOOOWOO«WHMO
"Tl-
z
•—1.
II
11
oo
oo
oo
oo
oo
o
HM
ro
II
H - »
•W
II
11
oo
oo
oo
oo
oo
o
tun
It
n co
o II
11
0
II
n 3:
II
n H
II 11
O
ro
103
oo6o:c oo6i:c 00625C 0063: 0064! 0065!
006/iC 0068!C 00695C 0070! 0071! 0072S 00735 0074SC 0075SC 0076!C 0077! 0078! 0079? 0080520 0081!C 0082!C 0083!C 0084! 0085! 0086! 0087! 0088!C 008?! oo9o:c 00915100 0092*101 00935 0094! 00955 0096! 0097!102 0098!104 00991106 01005108 OlOl'.llO 0102:112 0103! :>ERR0R COUNT!
FIND OUT UHICH RECORD TO ANALYZE
URITE(TTY»106) READ(TTY»104) IOPT IF(IOPT.LE.O.OR.IOPT.GT.HAXREC) GO TO 10 IREC=IOPT
CHECK FOR A CONSISTENCY ANALYSIS
URITE(TTY»108) READ(TTY»112) IOPT SSQMIN=IOPT.EQ.'Y' IF(.NOT.SSQMIN) GO TO 20
CHECK FOR THE INCLUSION OF THE GAS-SHIFT REACTION
URITE(TTY»110) READ(TTY»112) IOPT SHIFT=IOPT.NE.'N' CONTINUE
SAVE LABELED COHHON ON DISK
CALL DOESTK(PUSH) CALL TPNf1(J0B6.N0U.M0DE) CALL RSFOF CALL DOESTK(PULL)
GO TO 10
D.O.E. Furnace')
1
FORMAT(//'RTOS-16. Rev.75 FORHAT<//'*** Options?'/ 4X»'l = Data Entry'.2X.'5 = Acauire'/ 4X»'2 = Search '.5X.'6 = Analyze'/ 4Xi'3 = Delete '»5X.'7 = Calibrate'/ 4Xi'4 = Examine'rSXf'8 = Reload') FORMAT*/'... Enter option') FORMAT(V) FORMAT</'.. FORMAT('... FORMAT <'. • 1 FORMAT(A1) END
0000. PSECT SIZE! 0453. DSECT SIZES 0001i REV. 5
• Analyze which data record?') Include a consistency analysis? Include the Sas-shift reaction?
Y/N') Y/N')
LABELS VARIABLES ARRAYS PROCEDURES
)1 001B TTY 0000 C RDATA 0000 C FREMAT OOCB 1100 0116 DISK 0001 C NOU 0000 P FtMDl OOCC >5 002A RANGET 0002 P Z80L0D OOCD ) 101 0129 RANPUT 0003 P DELtl OOCE ) 10 0030 PUSH 0004 P F»URF OOCF ) 102 0178 PULL 0005 P F$TEF OODO ) 104 0183 DEBUG 0000 c F$REF 00D1 >15 0081 RESET 0001 c FIARF 00D2 1106 0185 SHIFT 0002 c DOENTR 00D3 ) 108 0197 SSQMIN 0003 c DOESEA 00D4 ) 112 01C3 RELOAD 0006 p DOEDEL 00D5 )20 0106 HAXREC 0002 c DQEDIS OOD6 >110 01 AD 1REC 0003 c DOEGET 00D7
J0B3 0007 p DOECAL 00D8 J0B6 0008 p FIOPN 00D9 IOPT 0009 p F$IOS OODA HODE OOOA p F*CLS OODB MASSBL OOOB p DOESTK 0113 • ALA 0000 TPN*1 0114
09/16/80 BLOCKNANES
DATA 0066 LUN 0004 DEBUG 0004
R*FOF 0115
00015C 00025C==================== 0003:C
o
•
tl z
a
II 3
0
II u.
Z
n 0
Z
ti N—
> O
11
C£ 11
-J —
CJ 11
Hh
11 U
.C
UI 11
t-A
X
11 <XUI
1— 11
AO
11
CJ •« A
A
11
UJ _1 •>
N
<L
11 - C
n s, s.
U. N
O
H
U.O
CJ
O-
O
II •»
o^*
CI) Zl—
O
+*
1 R
cj CDw
•» co<c
O
Z
II UI NH
z
HH
H
N
3
II cc
z
•» »
\
\—
O
II X
^C3
U.X
H
1— cn
O
II
<X CM CO
0£ U.O<X
a. a 3
<x II
Z vc
— X
3C
LA
OUI u_
y~ a
It \—
m
. r» -
nobJ CO
co 1—
II •.000
\
-o
-v -s.
H
H 10
«U)
«N
O
0- »
MONO
A
II M
3*-«M0C—
' M
- -
*oo
o
-O -V kN£j.S
Ui II a
^ A' vflU
I -'_l—
l "ON A
•v »
o**o
«o
zo
3
o
-I—
z-z
zoiin
xi
cnts
-w
ra
<xo.ofu.cn
ZO
»L
^
HO
Q3Z
nN
<coiu
cncncncncn
LUUJUiliiUi C
90C9C
9CH
llllt
l I.H.I UJ
u
HM
l II IM
CO
Mt-t
CcTLi-U. AOI-ooo «x <X
MA
o
u
*ai •• •. - »
U
_UJ\
xb">»—o
o- •«.
iwrn^N .
•"—>**!
NU
N -3
« f0
3N
*0
ro- - h
ono
-< ssx -<r\ •
»rxn»
>-rH
O\i-<
-C
JX.>
f£ON.t-mjv.cc »cjc
Ul<Xt_>»-« Z zoLU
cjcnxrxujaic »-i oo o
«co o •-« cj cn<r c
aN
a3«H
hzza<
»-»•-*•-< «x<x<r
<r<t<x««sr<r
-o -o
-OMU
vi-iocn
,n«X -;tn *
z
4KU
C
cn a
<x
O
_l CO
a
cn
CO A
C
4 CJ
U. <x
0
•«r C
4
X
£E I—
0
fr-t-i
us CO
z
Z
3
11 V-
3
3
O
H
0
CI) U.
CD CI)
z
z
0
<x z
M
0
<•-» C£
CJ <t
w
fr-f UI
U. M
AC
M
1— A
CO
C9 M
X
<x
O
z
-J >-
0
CJ n
CJ
Z
<x X
cn
CO
m ce
u_ a.
Q_ <x
UJ z
UJ—* 0
0
0
z
3
2H
ce
0
^CD 0
z
z
•-»»-«
CJ
ON
W
H
oc
ZN
1—
<x z
_I<X H
o
«
o<x a.
O -•
a: CM
~J 0
s/3
z
b*)3 b*)3
O.^
_i CD
HO
w
A
CJ
•fcN." CJ
oco <t
k: 0
uT<r H-<UJ
0£ x*-«
UI LU«-»
Ul«-* 1
CXJ»-I CJ
CO Of
1-1=3 O
X
co«*
N z«
Z^ 0
NA
M
a.
^H
HU
Z
O
CO O—
l H
»-t_l
»-»_J cn
-W
W
CD AUJ
CO 11 | CO»-H
UJ <OUJ
•"H* 00 UJ
-J -JUJ
-JUi
CJ u.<r
O
ZD
0
MM
H«IH
cn
_l
NA
<r
—A
wA
»—1
au.
_!
AZ
t
A
«r^
z Z
A
1—«
UI UI
z
U.CJ Z
M 0
"•"O IIU
.O
OM
<E
-J-l 1—
H-_J K
-_J Ui
HHl— cn
A
n -jt-iC
J z
1— 1-•-
_l_
l <r<r
H
»-«
_!
•-•-J t-
zz
32
CJ <c
<r z
CO _l_
l <r<r
z
Cr:<x C£<X
Ui II II
<E UJO
H
UJO 00
UI CJCJ
t-4
3CJ
3CJ
C9 zz
z
A:U
z
oca
A
00
UU«-iUUU uuu HtJUU
NUUU
CMCJ ®5!!'®'
f v'f^^"i'''* ,0' s"0Dd^o--«rjr«j*r u")<ir>. aio-o^r^ro-ruT -or-coo- o^ «CJro*r01-01^coo-C"-»rjro *rb">»orv coo-o»-«c-iro^ii"5 ors.ooo»o»-«rjro«r
5r ^ nr-jr-i CJriroroM
tororo r*jroK)ro*r «r*J"*r*r bJb"Jb">b~)b~)b*>b")ui s0-ov0"'0''Ci >o«o >'0*<0*0fv.r-.r'-»r- j—
9500 0
0000o
0000000000o
000 o
oo
o o
o00o
000o
oo
oo
oo
o o
oo
o00o
oo
oo
oo
oo
oo
o00o
oo
o000
o00000000000000000000000o
oo
o000000000000000000000000000000000000o
oo
o000
o
o
CJ <Z
w
oa
U1U1 —
k-»
i-I
.J U
)H
IIUU
cccocn <r<r<r
_l _l
»-
Z
<r x II
>-
Ctl
4* cc
<r o
X
z
o
•
Ul z
Ul z
o
•»
m H
H
I—*
Ul CO
II 1—
«
M
•k 3
UJ tt
•k a
>-
O
z
cc: _J
»-»
3
I— 3
o
w
O
CO O
fi£ w
u.
A
O) »—
H
3
z o
UJ
U> UJ
o
in
C9 CO
o
<z
<x s.
<E w
3
a: u.
«•*» D
o
O
o
~h-
Z
»—
<-*v
-z
CM»-t <r
1-4 <x
Ul _i
z
^<z _l
z
b->3 a
in 3
M
•k*-* UJ
£
Ui UJH
z
UJH z
Z*
M
O
z«» H
<r
Hj-O
X
Ul
o
t-l_J X
o
3
CO _JUJ
o
i— wCk
<r 21
wO
<E
3
UJ O
z
•H o
Ul
z
a. H
-JH
I— y—
I--J
»-
Hj
o
z
Hj
1— C
ZKZC
D
00 o
o
a:<x
Ul o
3U
C9
Nl CJ
o
30
to
OA
coz
<x
CMCM U. ~
Z
o
3
*0£ li_
u_Q
o
o.
u_:co cox:
:CUJ<X© ui
MUJCDUJl— II II
3
is v- »«v-j>-j;oz l«I_J U ti£3 II1-4
z
uKTcncjh-UJ <r o
«x a H- its u
z
HPlCI-PCO
ICC
O
—I —I CO co «X »-• O 2. o
cviin ^
ro
v
v ••h
o
«hhq:O
II UQ
U.
HCOOU. •><£<£> <-» •
X W
OA
• ^Z
UJA
HCQZ
»-i «o<r u
zr -
COUJ «rzu.rt -C
NU
.-O
KJ
nu •>&
•H -COO i«£ — - u H
Mw
fs
ncju
j-' *—'COQCO O
^OfiC
<r
ua UIU.ZA C£T-TUJ<£
W—
o
H
") •
M +
-S
«*•»
U.
UW
U.T
u.
CO
—-U
.-4-U
J H
»
«T>-
CM
C
J —
'G-X
«~0£X
«-'
Q£
H£ •
z<r •>-3
M4U
JA
3ZA
AC
O
O
H-Z
IL
H2«
CO C
O-K
X
OFFI<
ZZ
«-»
- •
CD
-I- *H
u.
—zz
rsizztt
o
233
II 3311
CM 3 CO CO
-.toav-
UL
•»
—j
z
CM
OX
IOL
CL +
II+
UlO
cn it c zn«
coo: 0£<r
a. a. cn cn ao
M
HCN co
oo
z rn
um
uiw
wn
•«
Mil II UJCOUJw || ll«D
(flW+
-H n
zz>- ••H
ys:r>
zao
fic:
II HQ
.33J^J^33C
i:MH
MQ
llJ
~-«*:ccs)cn «xcoco«xi—
~~)U
J^*£<<ro«xz:K:;£ZZu.u.^
z
•Oil »-Z
XQC£HMIZHO
|| OH
r)~)^uu_icncncauuaaj_iO
£Hi>
<z<xaoo uucou
L£ z
O
l-» _J
»-« 3;
o
o
I-* z
cn <r
u
A
H
cn h-
<c 3^
ca
iLK
COH -j
o<r z
o
•-.3 <x
oe •w
a: »—
cow
C9 z •»
a
o
H«—UlJ Of
o
«»UJ3 o.
U.Q
Z o
H
»—
1—
» n ~ cc
_I_JZ <x
o
c<ro
»—
CD
oo
o
CO
oo
o
oo
o
oo
roo
oo
o
oo
ro
oo
o
oo
o
ro £o
oo
?
uu
o
**
••••
•...»
••. •••••• »
• •
••• ••••
u~>v° rvs- c° <>' o-~* r' 4r0* r
cof>»o»-»r^ro<r bi>or-.cooo»-<,jro*ru*j
~ ~ £££222225355 5£5£ ££££ £^£0000000CM RIRAROROROTOTOROROIOROW*®-
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
oo
oo
oo
OO
OO
OO
OO
OO
OO
OO
O
106
0146! NREC=NREC*32 01475 0148!
WRITE(LINE»520) ISTART. NREC.CHKSUM.ISTART 01475 0148! URITE(LINE»522> 0149S14 CONTINUE 0150! H=M$FBF<DOEDAT> 0151! H=M»CFA«DISK»DATFIL) 0152! RETURN 0153 * C 01541500 FORHAT('NEU') 0155:502 FORHATCLOCK X40'> 0156i512 FORMAT(40A2) 0157:516 FORHAT('QUIT') 0158:518 FORMAT('R'.Z4.4H S20)
FORMAT('1 A=' .15.'»N='» 0159:520 FORMAT('R'.Z4.4H S20) FORMAT('1 A=' .15.'»N='» I5i'!S='. 13.'>CALL%'.Z4.'(S.N.A>'>
01601522 FORHAT('RUN') 0161!524 FORMAT(32Z4) 0162:c 0163: END »ERR0R COUNT.* OOOO. PSECT SIZE! 0517» DSECT SIZE! 0013; REV. 5
LABELS VARIABLES ARRAYS " PROCEDURES
)10 006B LINE OOOO C BINARY OOOO P Z80FUN 0133 ) 500 01CB DISK 0001 C UAIT 0012 P Z80SHK 0134 ) 502 01CF MAXREC 0002 C Z80PGH 0014 P DEL$1 0135 >16 008C IREC 0003 C ASCII 001C P FtURF 0136 >512 01H5 Z80FIL 0014 P DOEDAT 0018 P F*TEF 0137 >20 00B2 DATFIL 0018 P BASIC 0045 P M»FBF 0138 >22 OOBA ADDR 0044 P BUFF 004A P MtCFA 0139 >30 OOEB CHKSUH 004F P ADDRS 0048 P FtREU 013A )40 01A5 HR 0054 P TIME 0050 P F*REF 013B >516 01D8 HN 0055 P F»MD1 013C >34 0103 SC 0056 P FtARF 013D >42 019D IOSGET 0057- P FiENC 0142 >518 01DC IOSPUT 0058 P F*IOS 01C8 >36 0183 NCHAR 0059 P F$M00 01C9 >520 01E4 H 005A P FIRET 01CA >522 01FE I 005B P >14 01BE J 005C P >524 0202 NREC 005D P
NODE 005E P LTEMP 005F P ISTART 0060 P tAlA OOOA • ALA OOOB •AIB OOOC
09/16/80 BLOCKNAHES
LUN 0004
OOOliC 0002!C=== 0003JC 0004! OOOS'C 00061C 0007!C 0008!C= 0009JC ooio: OOlliC 0012: 0013: c ooi4:c oois:c ooi6: 0017! ooi8: ooi?:c oo2o:c 0021: c 0022: 0023: 0024:c 0025:c
SUBROUTINE Z80SHKCLINE.M0DE)
***ROUTINE TO INITIALIZE COHHUNICATIONS UITH CROHEHCO
INTEGER IU0RD(2)»IDEL<2)
COHHON ISTATSdo)
*#*GLOBAL SHOULD BE BOUNDED AT THE DCB'S LO
DATA IUORD/2tO/ DATA ITIME/Z8004/tIDEL/Or1/ DATA 1/0/
***CHECK CALLING PARAHETERSM*
H0DE=0 IF<LINE.LT.0.0R.LINE.GT,63) RETURN
***INHIBIT NULL OUTPUT ON URITE
r
107
oo26:c 0027! 0028'C 0029JC 0030!C 0031! 0032tC 0033!C 0034:c 0035! 0036!C 0037!C 0038!C 0039 J 0040! 0041IC 0042 :c 00435C 0044'10 0045! 00461c 0047IC oo4s:c 0049! ooso: 0051! 00521C 0053JC 0054IC 0055! 00S6!C 0057!C 0058!C 00595 0060:C oo6i:c 0062SC 0063: 0064! 0065:100 0066!
ISTATS<10)=ISTATS(10).AND.X'FDFF'
miNHIBIT <LF> ON INPUT
ISTATS(11 ) = ISTATS<11).OR.X'100'
***ENABLE USER PROHPT
ISTATS(2)=ISTATS(2).OR.X'200'
***SET BAUD RATE TO 2400
ISTATS(9)=X'127' CALL F$OPN(LINE)
«**ENABLE INPUT WITH TIME-OUT
CONTINUE CALL ItCLCK(LINE»ITIMEiMODE)
mtlAIT FOR CROHEMCO TO BE TURNED ON
READ(LINEilOO) IUORD CALL DELtl(IDEL) IF(IU0RDC2)»NE.'OK') GO TO 10
***DISABLE USER PROMPT
ISTATS(2>=ISTATS<2>.AND.X'FDFF'
mENABLE <LF> ON INPUT
1ST ATS <11> =ISTATS(11>.AND.X'FEFF'
tttCOHMUNICAT IONS SHOULD NOU BE ESTABLISHED
M0DE=1 RETURN F0RMAT(A2/A2) END
TERROR COUNT! OOOOi PSECT SIZE! 0113F DSECT SIZE! 0012! REV. 5 LABELS
) 10 ) 100
0031) 006D
VARIABLES
LINE 0009 MODE OOOA ITIME 0004 P I 0005 P •ALA OOOB
ARRAYS
IUORD 0000 P IDEL 0002 P ISTATS 0000 C
PROCEDURES
F*SBT F*MD1 F$RET FIOPN ITCLCK 0068 F$REF 0069 F$ARF FITEF
0064 0065 0066 0067
09/16/80 BLOCKNAHES
0010
006A 006B
DEL«1 006C
0001JC 0002!C= 0003:c 0004! 0005 :c. 0006:c 0007!C 0008'C= 0009!C ooio: oon:c 0012: 0013! 0014! 0015! 0016! 0017!
INTEGER FUNCTION Z80FUN(K)
THIS ROUTINE CONVERTS ASCII HEX TO BINARY
DATA ITEHPljITEHP2/2*0/
ITEMP1=(K.AND.X'7FOO')/X'100'-X'30'
IF<ITEMP2.GT.9)ITEMP2=ITEHP2-7 Z80FUN=ITEMP1*X'10'.OR.ITEMP2 RETURN
108
0018: END »ERR0R COUNT! OOOOr PSECT SIZE! 0061f DSECT SIZE! 0011. REV. 5
1 LABELS VARIABLES ARRAYS PROCEDURES 09/16/80 BLOCKNAMES
0001 C 0002 C= 0003 C 0004 0005 C 0006 C 0007 C 0008 C 0009 0010 C 0011 0012 0013 C 0014 0015 0016 C 0017 0018 C 0019 0020 c 0021 0022 c 0023 0024 0025 c 0026 c 0027 c 0028 002? 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 20 0041 0042 0043 0044 30 0045 0046 10 0047 C 0048 C 0049 C 0050 0051 0052 0053 0054 0055 0056 0057 0058 40 0059 0060 0061
Z80FUN OOOA K 0009 ITEMP1 OOOO P ITEHP2 0001 P
SUBROUTINE DOEDEL
FSSBU 0038 F$DOO 0039 FtHDl 003A FSHOO 003B F*REI 003C
THIS ROUTINE ALLOWS THE OPERATOR TO DELETE SELECTED DATA RECORDS OR INITIALIZE THE ENTIRE DATA BASE.
COMMON /LUN/ TTYrDISKfMAXRECflREC COMMON /DATA/ RDATA
INTEGER RANGETrRANPUTfRECORD INTEGER TTYfDISK
INTEGER RDATAU02)
EQUIVALENCE (RECORDtRDATA(2>)
DATA RANGET/Z105F/f RANPUT/Z109F/
DATA IfJfM/310/ DATA IANS/O/
CHECK FOR FILE INITIALIZATION
WRITE(TTYtlOO) READ(TTY1104)IANS IF(IANS.NE.1HY) GO TO 10 URITECTTY r102) REAIKTTY f 104) IANS IF(IANS.NE.IHY) GO TO 10 DO 30 1=1fHAXREC
RECORH=I CALL FtOPN(DISK) CALL F$IOS(RANGETrRDATAfDISKfH) DO 20 J=3f102
RDATA(J)=0 CONTINUE
RDATA<4)=-1 CALL F»IOS(RANPUTfRDATAfDISKfM) CALL FtCLS(DISK) CONTINUE
RETURN CONTINUE
CHECK FOR SINGLE RECORD DELETION
URITEtTTYf106) READ(TTYt108) IANS IF(IANS.GT.MAXREC.OR.IANS.LT.1) RETURN RECORD=IANS CALL FtOPN(DISK) CALL F$IOS(RANGETfRDATAfDISKfM) DO 40 1=3 r102
RDATA(I)=0 CONTINUE
RDATA(4)=-1 CALL FtIOS(RANF'UTiRDATAfDISKfH) CALL FtCLS(DISK)
109
0062! 0063:c 0064:100 0065!102 0066!104 0067!106 0068:108 0069: »ERR0R COUNT!
GO TO 10
FDRMAT('... FORMATC... FORMAT(Al) FORMATC.., FORMAT(V) END
0000. PSECT SIZE! 0252. DSECT SIZE? 0011! REV. 5
Delete all data? Y/N') Delete every record? Y/N')
Input record nunber to be Deleted')
LABELS VARIABLES ARRAYS PROCEDURES
) 100 00C3 TTY 0000 C RDATA 0000 C FSURF 00B6 )104 00E3 DISK 0001 C FtTEF 00B7 ) 10 006E MAXREC 0002 C FiREF 00B8 >102 00D2 IREC 0003 C F*ARF 00B9 130 0065 RANGET 0000 P FtMDl OOBA ) 20 0054 RANPUT 0001 P FtOPN OOBB ) 106 00E5 RECORD 0001 c FtlOS OOBC 1108 OOFA I 0002 p FiCLS OOBD ) 40 00A6 J 0003 p FtRET OOBE
M 0004 p IANS 0005 p *AIA 0009 *ALA OOOA
09/16/80 BLOCKNAMES
LUN DATA
0004 0066
0001SC 0002!C== 0003!C 0004! 0005!C 0006!C 0007JC 0008iC ooo9:c== Qoio: c ooii: 0012: c 0013! 0014! oois:c 0016! ooi7:c 0018! 0019: oo2o:c 0021: c 0022 :c 0023:c 0024:c 0025! 0024! 0027! 0028'. 0029! 0030IC 0031: c 0032JC 0033! 0034! 0035:10 0036! 0037SC 0038 !C 0039!C 0040: 0041: 0042! 0043! 0044! 00455 0046:
SUBROUTINE DOESEA
THIS SUBROUTINE SEARCHES FOR RECORDS OBTAINED ON A GIVEN DATE.
INTEGER D>Y.ANS.TTYiDISK.RANGET»RECORD.RDATA
COMMON /DATA/ RDATA<102) COMMON /LUN/ TTYrDISKfMAXREC.IREC
EQUIVALENCE <RDATA<2).RECORD)
DATA RANGET/Z105F/ DATA M>D.Y1I»MD»J.ANS/7*0/
GET RECORD DATE*.
CHECK FOR DEFAULT
WRITE(TTY r100) READ(TTY»102) ANS IF(ANS.EQ.1H ) RETURN CALL DATEiB(Y»M»D) IF(ANS.EQ.IHY) GO TO 10
INPUT DATE
URITE<TTY.103) READ(TTYil06) MiDFY CONTINUE URITE(TTYrl04) M.D.Y
HATCH RECORD DATE UITH SEARCH DATE
DO 20 1=1.HAXREC RECORD=I CALL FIOPN(DISK) CALL F$IOS(RANGET.RDATA.DISK.MD) CALL FtCLS(DISK) IF(RDATA(4).NE.M) DO TO 20 IF(RDATA(5).NE.D) GO TO 20
o<x
00 z
SiS
o
u
•O -T
•O O
o
o
oo
CM O.CQ
I—1 O
••
N
«• Ul
to O-
>-CI M
•
:>w I s-
•»
•>
«. UJUI
II f=
k" •«
H
QV. 01
3
•»
•» *. e
••.e x: -
•H •-•UJ
M
«-»
:cro 1—
—»CJ Z H
«« 00
<c \
•» •>
oo:
1->-
*• «.
X
a. <x
"O •• 0
n
(*-•I c
UJ cc
01 c 0
•» M
*>
ro M
ro ra m
M
to t?
+*•0
A.
to A
<-
K t-
m 0 O
••
u
<x O
01 IU(0
0
1— 71
m or JO
tn>-CM
<r ro
ro t-0
Gi<Z 0
*0 3
C.
cc. O
OC 0
t-CL.
-cc
t-0
+»
•0 0
e-V-"•
co<x 0
O
£K c
0 X
JC cs>
O
O U
a CJ VI « c 0 Cl t—
0
«-»• Ul
JC (-•F4
•» ra • •
>-
Q£ a
JC
to Q» lii
•
u 01 0
t-H U> M
UJ ro
4» (-•-H
z
CO ai
<1 «o V
T7
cnco »
0
tn -0 01
— c Ul
O
»
cn TDUI
H-J
«o z
B. O
»
<+» t-
CJA 0
>-
• D *
O*
UJ<X <x 0 r—ui
-i X
0.M
UM
co»-« 1—
U-t-z
3 •> o-~
C» — 01 «•
Ci.C
C
<x •«-a =
>-
to <r
0 z UJ»-H»—
cz- \ro 1- N
-z> cc 0
0
W
\—
t-i3 :V2
0
li. <x
CCOUJtt <r <x<r<r<x<x<z
0
M £ SOt-S
z: tsczzzz 0
t-4—
CC
CC
CC
CC
CC
CC
CC
a
r-. CD£> <r iHO
QU
JLi-O
<r<r <KT<X<X<T<Z<X A
oo
oo
oo
oo
oo
o
oo
oo
oo
oo
o
u. u
. li- u. -th t
-z cn to
cc u uj cc o
iiiuj a
. a .j
4* «»*»<£
li- U.U. U_Li_U.OLi.U_U.
OO
OO
OO
O
Ll-li-U. '• '« '» "
Z
o
0(0
CJ-J
ocjro
«r<
oco
o
ut
o
000000*-*
CC
OZ
UU
U
PI
U>H
t-trH H
HrH
HU
• <!
•• •• ••••
•••• •••• ••
*• • •
|V I
N03o-o
»^rj
n«orNcot>
>o»-<
rJr <)<rit
<riomm
mtf* ii"i in into m
*>0 «o -o «o ui
o o 000000 00 00 00 00 00.
O O
OO
OO
OO
OO
OO
OO
OO
OO
.- \
a. q-Cl. cj o
o.cj cj cj 0.0. a. a
. o
«-h c-i o
ro r-i ro
b~> oo r>. <c
oo
oo
oo
oo
oo
oo
oo
o
o 00oooooooo 00 00
0000(3
0000000000
HC
iU
liiC^U
J ^(D
OCCU
4A
co>-cnzcjxuj
»-«>-« zhh«
u«
o£
a
<r<x ci >-«»—
a cccc c
h x:*-* a: *•?
w ro «o i»*j-o 000 00->0
COCJ-vcju.C=io»U.«--« o
oo
oo
oo
oo
o
oo
oo
oo
oo
on
ro-o<r 000
0000000OH
H**4
t-lrH
UUU
CJCJOCJCJLJ
11 11 z
11 11 2:
it a
11 tn
tt
CO n u
»—
11 u.
ll Z
•*<
11 O •
z
11 zo
CO n
IZ
•> <r
11 OM
h-•r
1— z
u UCL
UJ <x
M 11
a. CO
UJ 0
z
n o<r
UJ z
H-0
11 UJ3
cn
<x ocoo
11 JCft
z
<E
ujenz n
UJ to
to
a. h—CN
cc - 0
H
w 3
ZMIK-AC II
«XU) -J
A
Q —
CJ *>u.z II
—I<X UJ
<r -a.h4
ttUMU
II b-
Z3 O
w 1- -_J
H
UJUJX -II
cn
z
UJ «.<£UJ
w cncccnz
II UJO
O s
CC 2X -»-t
ll r>z
>-z 3C
«x •><X •»
UJ -<c»~co
II Ul*
1—cn
O z WQ^ u.
•"> NSUJO
II »-toe
l-O oe
cn 1: «.cncj
u. ——»o j
»cno II
£*:=>
»CL 3:
CO>-0 0 ro osuj
uj cj II
1—Q -
CJ AC •>«! —
CO rotN«—cocacoce
II 1—
UJ to-J
HXhN
•k tl
a. •-•-J
z tH
<X -<ZH-4XU)XHNQOa
U 0
•s».tn 00 H
»3&tn to
KUlMO<D- fcDH II
M CflM
•.a. CO
UJUJ cc ».>-<z
<ZOX»-H «tn>-ac£ II
•w UJO
CD rr tncs
<£ QZ <X UJ 0
<T •—UICN II
oc a** O <z<z
<r 1—
HH3(OJKOO
II f—
OUJ
OH
CJ zz zzwz
<t II
tn l-x
o>-oo<xo
O
It UJ
co>-*—a£
X
a. *, hhQh
CC
0:1—
cc: II 0
<XUJ CJ
cncnxco XUJXCO 0
II
a
ujx: H-U.
H n<o
MM •> H
4UJO.OZH-
3Z
II zo
<XU. cc
CJCXZLJ UJ hosHcuzace
It UJ
OD rj
UJUJ U1UJWUJ
0 <CZUIUJ<CUJ3UJ
It z »-u_
CdO 0 zz
cccc-x
cc z
II H
<x<r 0.0.00.
Ul II
I— OO
ceo£ -j z
z
3
_J II
r» cc>-
UJUJ <r ox
UJUJ »UJ <z zzzzzzzzz
II 0
00 CJ
-J_J«X-J ooooooooo
tt cc
a><r UJUJ
H
caeat-fa
zrrrzrrrr
II a n»—
»—
•-C9
«<I =3 £T£CTC£Z£
II ZD
x<c zz O
UJUJ ooao O OOOOOQOOO
II II cn
MH
cccc COCA
UJ CJCJ CJ CJ CJCJ CJ CJ CJ
•-«c4to<rirj«or ,'.coo.0'-«rjro<
rii">«orvcoc>
'0*-«cjro «r in -or*. as o- o.-« r-i ro <r
ooooooooor-**-**-*^—^»-« -h *-«»-« cn r
i <ncn cn c j cncn cn cn roi o ro ro ro
0000000000000000000000000000000000
0000000000000000000000000000000000
Ill
0035! 0036! 0037! 0038! 00395 0040IC 0041! 00425 0043! 0044SC 0045*. 0046!C 0047! 0048*. 0049:C 0050SC oo5i :c 0052! 0053! 0054! 0055120 0056! 0057! 0058!10 0059! 0060SC 0061:c 0062:c 0063: 0064:c 0065! 0066S25 0067:c 0068IC 0069SC 0070: 0071! 0072:c
($74 lc 0075:c 0076!C 00771 0078: 0079! 0080*. oo8i : 0082!40 0083:30 0084! 008s:c 0086: 0087! •>ERR0R
COHHON /NAHE / XNAHE > YNAME I SNAHE « PNAME I CNAHE I GNAHE COHHON /SYSTEH/ Q(4)»UC2>-X(6)>Y(12)RS(4).P»T COHHON /SEARCH/ QDATA<4>.UDATA<2>»XDATA(6>.YDATA<12).
SDATA(4>»PDATA.TDATA COHHON /HAXPIV/ UNITS(96>rNSIZE
DATA IOSPUT.IOSGET/Z109F.Z105F/ DATA PUSH.PULL/0.1/. I»JrH/3*0/ DATA NUORDS/O/. NRECRD/7/F NULL/1.0.0/
NMORDS=(RDATAtl)+l)/2
CALL FIOPN(DISK) IFUOPT.ECI.PULL) GO TO 25
SAVE LABELED COHHON ON THE DISK
DO 10 1=1INRECRD DO 20 J=1RNUORDS
RDATA(J+2>=BUFFER(J+(I-1)#NU0RDS) CONTINUE
RDATA(2)=HAXREC+I+3 CALL^SIOSaOSPUT.RDATA.DISK.H)
CALL FiCLS(DISK)
DISABLE "C WHILE SWAPPING TASKS
CALL U$INTR(TTY..FALSE.)
RETURN CONTINUE
ENABLE "C AFTER THE JOB NUMBER IS IN THE DCB
CALL F$IOS(IOSPUT»NULL.TTYIH) CALL U»INTR(TTYF.TRUE.)
CALL FIOPN(DISK)
RETRIEVE DATA FROH THE DISK
DO 30 1=1.NRECRD RDATA<2)=HAXREC+4+NRECRD-I CALL FSIOS(IOSGET.RDATA.DISK.H) DO 40 J=1.NUORDS
BUFFER <J+(NRECRD-I)*NUORDS)=RDATA < J+2) CONTINUE
CONTINUE CALL FiCLS(DISK)
t
RETURN END
COUNT: oooo. PSECT SIZE: 0175. DSECT SIZE: 0012! REV. 5 09/16/80 LABELS VARIABLES ARRAYS PROCEDURES BLOCKNAHES
)25 005D I OPT 0009 RDATA OOOO C FISBU 00A4 DATA 0066 ) 10 004E DISK 0001 C BUFFER 0002 C F*DOO 00A5 INDEX 001E >20 003A TTY OOOO c NULL 0002 P F$OPN 00A6 TEMPER 0030 >30 0099 PULL OOOO p CNAHE 0034 C F*MD4 00A7 UEIGHT 003C >40 0092 PUSH 0001 p GNAHE 0038 C F*HOO 00A8 GAMMA 0008
02RICH OOOO c XNAHE OOOO C F*IOS 00A9 VECTOR 00B1 COGGIN 0001 c YNAME OOOC c F*CLS OOAA LUN 0004 CHROHO 0002 c SNAHE 0024 c UflNTR OOAB DEBUG 0004 DEBUG OOOO c PNAME 002C c FtRET OOAD BURN 0003 RESET 0001 c Q OOOO c NAHE 0040
M M h 8881 E' U X 8818 E mm m
SR OOOO c Y 0030 c HAXPIV OOCl AIRSR 0004 c S 0060 c P 0070 c QDATA OOOO c
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OOooooooooo
OO
OO
OO
OO
OOooooooooo
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OOooo
OO
OO
OO
OO
OO
OO
OOooo
roro
ro ro
rjM
roW
HH
MH
HK
HH
HM
Oo
oo
oo
oo
o
^uiM
H>o<
ocoN
Jo>c
n^w
hjM
OM
)oo'
i>j(h
cn<t
kUM
^c>>
ocoM
o»Li
i»ur
v)i-»
0'0(
ONj
o«uU
kMM
Mo-
<ocQ
'»ji>
Ln.t>
ur^
****
**
*• ••
•*••
••••
•••*
•*••
••
••
••••
••••
••••
••••
••••
••••
•• ••
••••
»•••
••»•
•• ••
•»,,
••••
••••
«« «•
•»»•
••
*-000
O
OOO o
o oooo
oooooo ooo
CO 0 oooo
3) c? woo
m 90?? 20
MM
M r-OOOOO
0—< CO
zna
c J>3>X»2> oooo m
3>
2>X>
0 mmm zzz 0 •OOOO
ox
cr
M Z
—<
1 • r1
r "i
X>X»X>2>
-t
-H
—1 IH
c X»X»X>
-H-H
—t
CT
22223
ZH w
—1—1
(HH
"O r~r-i—1—
70 3> I*I>3>
M f-r*r~ mmm M
23222
inert
73
—1—1
(HH c: -n-n-im
H
c
q a ci
O ooooo
H 0
—4 -n-n-im
m -<
1-<ZP3
x» OXX> mmm 2r zzzzz-
2>3? c
HC
«*«**»«»
rj M
c m
-<3*»
I-2Z« 3O3J50
r—
ZO
-H
-nrn
—i
OM
MO
WW m cn \HZ
rn 3>X* CO 3O3J50
NSNSS
—IC
*-4
-<
X toot
U It
II It
s
2: 13-
-<«H»
0 oxnzr-e?
cn—1 z
m cncncnz
23:377?
-4
s. - - m
0 mro-t* mno
r-m-<3>cii»
H m
2>x»e"=» X
-< roz—«
m
cn-<i»
3>
J»W
3ZH
"HZ
0 0 CJ3J7JO
XX»>3> m
- !>•*
tJO*
"•
« *
H z 3JHP1
3>
nm
om tj
3>
\ CJZ27
W0X>
3JHP1
3>
nm
50
0
r~ tozzco mm3>2> 0 «
•• 3>I>
« <• cn
-<»-« —
Z2
x» m
00—•-->
2»
-i»i-z
cs-cr-
-«.«n
SWNS
Mf 0
CO —mm*-" + +MK
r* x> « N7>
zzo L17JO
it-
3J
-H-4
wro-'-
M z 03- C
2>T3 W« M
C»MX-|»
mo r~
a>
•*
*•
W cn •v.Z-4
—»—IX>C_«—( 22m
70 w
CJCSZ-IO
c
H
c.»-«
37 v»
«• HS wtn-os
3>**
2>3>X»-<X»
?7cn
H 00
3>I>
O ON
Z«
HH
3:"
—t
2>
0 00
3>I>
«H
•
-Cs*-» cn©-*
1 .U
^w OO
i»i>mo2>
C—4
Z
—I-H
H 0 ZCJO
-rj-
mx>
!-»»-»
•• M
Z
3>I»
O
•S.
3>«" C
* ^ —
I w—
t «~-»-ccn
2m
O
*• *
z
zci-n
•* M t-4
- «
x»
XXZ7
c
O
OtJ
m* «•
Wl»
73*-
* •»
r-c
z
MH
0
»~K3tN»
<•
"•
zin
*>>+
>4X122
~scn
cn
toco
0
«•
«•
C--
»m ZO
cocoma>
HP1
—H
z
-4\0
3;
-oro
> s<« X
T)?J
x>
"•
*•
in
z >0
PCJ3
>M>
rnn
cz —
«vcnaj
r~
z 22
—t Z
4—|
«—» w H *
zm
m—i
H
3>
«• 3 S
.*»
t_
i»o
xo
cn
Z M
m
O
2-
m —4
J>
w
(.H-HW
«•
mn
om
CO z
cn s
KW*
•v z
—1
3>
•• a?
-om
z
0—«
-n •s
-i
v»w
«W
* —
«—
» zo
3?m
;*?
0
z
I-A
2>
033
0
•*•
«•
m O
2
2
z O
33
M
m
m-t
11
N
%
m-t
11
0
*•
«•
w
0
om
M
z
0
cn
W
-«
x»
0
•pi.
r* O
2
D3>
2>r~
X*
m
D3>
2>r~
z
—<»-!
•»
0
3>W
V. s
z
• 7?
3>
•n
2
—1
3>
r*
cn m
m M
O z
3>»»
C
ww
mo
tCJ>
OP
? 35
W
CJCO
_CZ-
ITJ—
I ooaiT
JS
'cncfa
oiW
Mm
xm3>i>
O
TJN
O»3?H
H
mem
m
oT
>i>
-H-l ox
oo OOOOooooooooo o
oo ooooooooooooo o
OOOOOOOOOnOOQNlMM
wi> w3>-oa3Jcscno wro ojko
-e»
"oijtT
i!u"o
ooonono
CE
HH
Or
w-<
x c
zm>zm»cdoo
•"•H4
XCJI—
W3>X
»3> J>
-H
CIl—
imtM
—I-l
-l—I-H
cn
ac c
ox
rvjx>
i>x» x
>
oooooooooo
oooooooooo
OOOOUOChUH
OOOO COO OOQ3 O
ooooooooo o
~%tUCM O •«-!
«-<LJ »
CC Ul X
I—C
fit-t-Z
w
»— w
<ru
j z>
iz* a.
<£ w
»-(
h-
uiu.ce: o
o
:M3
O
CM Ul x; <x
•hui HUJ
HU) H(Q
o
>-a> •->-«
CO J— I— Uizt-fr-
UJ •-H
- •> 3 •.!_ •.
3
20»*-"(M Z
n uiuj *-»>-• it uiui^*i-t W
CiC
Z »H<C*£Z
OKZ II O-tuTZ II O
M
3H
i£U
N3H
^U
ON
H »
r-jcw
<r>-—
UJ
<x H
CO z o
u
oe UJ N
>--J <x
h
*U) I—
I—
z -
CD<X ^
•»-» z
to <E
Z~
_l
CO
CQtrt
l-tGO •»
V* • •»
tno *ce
o
^Z
hO
ON
HO
.OZ
>»»o •*ce~z
II M4U
JI-I ZHZ Z
<- II ££0 <-i
N^
au
<x
OA
<x<r
tn UJ
££*.0.1
cd cnzzio
Z
•-•••I «!•-< <r
qcicoco <tK- •.
CJ >
UJh-UJH-UJ^SJ- «lO Ul
3h3hO
ZZ
Ww
IC
Z
«Z
-G«H
Z
H-
h-4uj»-h ui
-J ii «xo
Z
WZ
HJ^Z
^
OU
O(C
«U.«U
.O
CJ 3 CJ 3
U »-( »-*
CD
0£ Ul CJ
a. zcncncn O.OOJ
Ul UJOHHU
r> <»«»*#» ZU.U.U-U-Z
UJ~5 £ »
<E
M
o<r
OH
»<-t CJ <x>- --«Z*->-UJ
-l-l-rj
>- ^«hZ
UJI— II UJWMU? = K-#-i|—
»»—
z«— »-»<rz
t-»UI CJOUlOO
Kh
blS
UU
h
tM >• _J <X
M
CO
-1
o
-»<C
-rH oz
-CM<I
>-H
Zw
H
•» X
HC
CW
UIW II I-IUI IDI—
M«h
Z»-» Z H
»-iui cm it as H»t-«02<£3 Z»-* OCtfO U3Q
uuu
NU
UU
CJCJCJCJ
CJLJCJUT U
UU
b") m uuu*o
in "OrvcDfr»o—« CM ro «r tfj-o r* co c*o »-«ri ro «r in *o r»> co c
*-or>
** t/i^or^co o*o»-» CM ro^-b"5«orx coo* o»-«rj re «rb~> *0^000*0
«'ors,coo»Ot-«cJro«rin
IT! LTljTtntj'J^O'O
'O'O
"O-O
^O >0*0 •^fv.rvfN
. fv.rv rvrvrvrvrv COOOCO CO CD CO 00 CD CO COO- D«tM
MM
M)»
0»&
'0«00000C
>0 O
O ©•»-•»-«»-« »-H W
«-{CM
CMTI fiC
N C-J
OO
OO
OO
OO
OO
OO
OO
OO
OO
oO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O^T
^^t-(^HH
HH
<-iiH«-«H
^TH
H^H
HH
iH*4n
HH
o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
1 1 4
0126! 0127162 0128! 0X29:c oi3o:c oi3i :c 0132J70 0133! 0134! 0135: 0136*. 0137! 0138J72 01395 0140:c 0141:C 014 2: c 0143180 0144! 0145! 0146! 0147! 0148! 0149S74 oiso: 0151)C 01521100 0153J102 0154:104 0155!106 0156!108 0157!112 0158:114 0159:116 0160:118 0161: 0162! 0163! 0164: 0165J120 0166!122 0167:124 0168! »ERR0R COUNT!
READ(TTY.IOO) <A<K.J),J=lr4) •CONTINUE
GO TO 15
ENTER THE PT/PT-RHODIUM THERMOCOUPLE CONSTANTS
CONTINUE K=0 DO 72 1=1>8
URITE(TTYfl06) TNAHEliK REAIt(TTYilOO) TBASEU>fTSLOPE(I) K=K+1 CONTINUE
GO TO 15
ENTER THE CHROMEL/ALUMEL THERMOCOUPLE CONSTANTS
CONTINUE KS8 DO 74 1=9.NTC
URITE(TTY»106) TNAME2»K READtTTY1100) TBASE(I)»TSLOPE(I) K=K+1 CONTINUE
GO TO 15
1
FORMAT(V) FORMAT(Al) FORMATC... List the calibration assignments? Y/N') FQRMAT(/'... Enter the intercept and slope for! 'rA4iI3> FORMAT, Enter the constants: A0»Al»A2rA3 for! '»A4) FORMAT(/'CHANNEL'i15X»'SLOPE'rl3X»'INTERCEPT'> F0RMAT(I4»8XIA4»' = '.1PE10,3»' * '»A4»' + 'f1PE10.3> FORMAT!/'... Enter the calibration option!') FORMAT(//'*** Calibration options!'/ 4Xf'1 = P/E Transducers'/ 4X»'2 = Analyzers'/ 4Xi'3 = Pt/PT-Rhodiu« Thermocouples'/ 4Xr'4 = Chroitel/Aluael Thermocouples') FORMAT </'CHANNEL = AO + A1IADC + A2*ADC**2 + A3*ADC**3'> FORMAT(10X»'AO'r10X»'Al'110X r'A2'?10X>'A3') FORMAT(A4rlX»4(1PE10.3>2X)) END
OOOOf PSECT SIZE! 0915T DSECT SIZE! 0014! REV. 09/16/80 LABELS VARIABLES ARRAYS PROCEDURES BLOCKNAMES
>1 0042 TTY 0000 C RDATA 0000 C F*OPN OOEB DATA 0066 ) 104 0287 DISK 0001 C XNAME 0000 C FtlOS OOEC LUN 0004 ) 102 0285 MAXREC 0002 C YNAHE OOOC c F»CLS OOED NAME 0040 >10 0140 IREC 0003 C SNAME 0024 c FtURF OOEE SYSTEM 0078 ) 112 02D2 BLANK 0000 P PNAME 002C c FiTEF OOEF SEARCH 0078 >20 008A RANGET 0001 P CNAME 0034 c FtREF OOFO
SEARCH 0078
) 114 02E6 RANPUT 0002 P GNAME 0038 c F»ARF 00F1 >21 OOBA YES 0003 P IDATA1 0000 c FIMD1 00F2 >120 035C NAIR 0009 P JDATA1 0000 c FtMOO OOFS >122 0375 NAHALZ OOOA P IDATA 0000 c DOEINP 016B >22 0101 NTC OOOB P JDATA 0000 c F*V10 0172 >124 0388 TNAME1 OOOC P IY 0004 p FtGOT 0239 >24 0139 TNAME2 OOOE P A 0002 c F$RET 023A >118 0311 ANS 0010 P TSLOPE 0002 c >15 0146 I 0012 P TBASE 0032 c >116 02FE K 0013 P )5 017A M 0014 P >50 018B IANS 0015 P >60 01CA •AIA 0009 ) 70 020F IAIB OOOA >80 0249 »AIC OOOB >52 01C2 J OOOC > 108 02B8 •ALA OOOD >100 0283 >62 0207
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
000000000000000000000000000000000o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
o*&*
t>o*i>
o»&»
Lnc_
riLrtc
ncnc
nc,ic.
nc.,Jc
.ri.fc»
ww
ww
uiw
wto
roto
rjro
rorjr
jf-j r
o>-*
hhk»hhooooooooo
\IOC14>WWM 0«0rosj&»c.1»wJ>-* O-O CDsJO>C1UrOO'
<OOONjChCll4*OIMKO
,OOD>JO>Ci1UM M O'OCONJCSLIJkUMHO
OOvJOtCn
MhJ
r>
no
n
no
o
o
o
ccccc nooo
?;aj 30 MJC
cn ooo
M
3O3330 3O33
i> 2>3>2>oom
m •nm» X 3>a>i> z
hhhhh r-rr~r-i>i>rj H
l»w o H-| | h
—1-1-4-*—1
30 HtJH c
3>T>3> m
mmmnim
H
a
•-*
«•—
»*-«
» 7i*n-nTi
is m
ZH>-» c
*-I»-»
33 m
HHHHH
c uihh X
1>\3>
33
hhh »i
• i m • -<—i M zoz
r~ oo tj ii
n x>
r*- -c
CJ WvO
33
cncncnzx33z
30 HH» X
m x>
HHHHH
»I>OU7 m • Oh
\ h z
HMOHO »3330WXZ>
rj H roo
3? o
CI
N)OC0QOJ*
»-»X>I>»-«33-» o .
m \ s m
wvwww (OZZ(nm»
» o
>-o
N —i
5*G1C1
0.~» o 30H o
H
-ocn
oso
•«— mm—-»-h
• 3>
30
o o
3J2HOT1
—I-I Hw
•n H2 o
cn H
00503>0
«•
«•
30 i
>cn
••0
-n
cn
x?;
r-o
o z
N m
30
wo
=r cn
•«
O
x»x»
•
—i
>•
HH
o O
—i
r~
»»
H
-<
"O
cn
SO
OO
?? a:
O
HH
x>
CO m
win
X
30
m » 22
o
-H m
30
m
H
—i
M G
s
30
c** *•••
*••••• *• *•
»»« • ••••••• •••••• «
« «
< •••• ••••• ••••
J o
o o nonnn nn
it II
ii tl
u tl
H II
II II
m m noo
7070 MM
II o cn
II o
a ooo mm zz
II M
c
II e
c: 232 s»
HH
tl
cn o
II b-
i M 222 rr mm
II "O 30
tl c
c ooo
CIO
II r~
o
II 1» zzz
3»tX» mm
II c
II p*
1—
"Oi-f
3030
II -<
H
II
m
m
303J
II HH
II z
z aor 0"»
ZK 33
II
cn z
II o
o x»a>e
XOI om
II C m
II m
m X
HZ
3>
o II
a
II H
O
« 30
«=j
II
»-»
W-1J X»30
II O
o
II C
-
33
II c m
II s\\ ?;o H«
II H
o
II cx or
II M M
II C3JH f-—> wu
11 z W
II ^^
^MJT
JZO
CO
CO
^^H
HC
JrSJ
Z
OH
HJ
» — 33
U m W
||
zn(nc"OM»o»o2r3orMO)H3>*om Ml>-<
- O
II m
II 03:n333JR3P0H0C3J
2H37n
HH
* 2-
II -n
cni>o
•"-d zm
II o
U H
Lni~
II 33
It
— «• ms-Tis
/sHHwrHHriB
-o
cn
wH
20
II II
H^H<« <~Hw0HHw>w.« - vv- <•
o-«• 1-4
m»
II -n
n — OHH— 7v
H^-• J>
w w. - 33
3J- - 303? w
•• ?I2
^ H
II
c:
it n -
!» —
—«•
C5-"
- 30H
<* ••
303
3003
0330
0 2 cn—. wm
II 30
it n
C0>3>W?01>J»002>I» 2 2>
2t*
o«~»
II z
it it O
J>7»
?;O
H7;
Zl>^
Ot3
3>3>
HH
I>l»
HH
X
o—
wOJ
II »
it it !>-»CJO»3>CJMH{M>3>H-t3>l'HHI>3>
50
II r>
ii m
m-n
Z»
II m
ii 5
>0
0-
H—
—
o
s-~r~
3»
H 11 m
it <•
Jt
>C
3»
H II
it o-cnrjoo——-w——
H wm
m2
II u
o-« &»Lnro—'04o—» oov^vw «
• 33
«•
-»m
II ii
— OOv, i,w.w wwww* - <• <•
m STH
to—
II u
«-» www WW
ww« <•
o oro
OGJ
It ti
>«•*
•*
•«-»
*•
«
<•
o—'
—' ~w
II ti
••
••
<•
x»-
•«
II n
r*cn
39
tt n
2
O
M U
O
2>
II ii
3? H
H n
m II
it II
ii * H
II ii
«>•»
O
U ii
••
rsj
It ii
"O
II it
30
H ii
m It
ti cn
II ti
cn
II it
33
II ii
U M
W
II II
w
II It II II
II II
II II
II It
It tl
n II
n II
©oo
Mts
ir-o
orno
i
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
o o
o o
oo
o o
oo
oo
o O
O O
O O
oo
oo
oo
o o
o O
o o
o o
o
OIW
WW
MW
MW
WM
rJt4
t4M
^HH
t-H
»-H
^KH
OO
OO
OO
OO
O
UMKO
<00>
MO
*L'l^
(4rO
^O,O
CO^O
«Cqj
»UM
MO
<0(O
NJO
>C<I
^UK}
H •• •••••••••••••••«
. •••• •••• ••••*••«
>
•••*
O
1 O
i o
o t
00000 1
OO
I 11
II II
II II
n II
R -4-
II tl R U
m
no
oo
oo
oo
r-
3O3O
30PJ
M
HH
HH
II
SO
to
II o
OO
OO
OO
OO
o
mm
mm
zzzzz
II 0
G
H c: 33333323 o
»I»
2>
II
e
w
II 33333333
•-« r-r-i-r* mmmmm
n —
» 30
II
c
OO
OO
OO
OO
o
ocn q
qc)
n M O
II x> zzzzzzzz
3>
xrsT
X*
mm
mm
m
11 z c:
II r~
i— ZTOi-«
333J
3J50
30
11 m
—
i II
m x» m~j so
11 1-4
II
z ccocnxzrno
w
3—.o
--*
11 —4 Z
II o
m
m-<
»3>c
:m»
r-mwxw Qtozom
11 0
m
II m
0»«X3Z3H
1>
11 11
H3?
HTf
TI
T)» z
o.-
.*»-
—I03HO
11 30 0
tl onrnw
m —
'1>W
-13
3>X*D3>30
11 m
0
II 53I2C
39
~-4~~»o
» -h
m
U
"•s *v
"s» *S»
*N»*S»
*% V
. -C
COTt
O u
30 CI
II 2-. CX
000 o
r*
11 t*+ m
II «-»
.»•*>
»-W
W^v
MTJ
u
m -4
II ra> OOOZZH'NB
X^H
Jk
—33
R c
R u
rn
m <•
M •>—
- Z- O
II m
II
300
H3-
O»H(0
II R
OO 3>2>»cnmo—
•—cn
c Z
3o
m
U 0
R W?3
H
Mrw
r H
m3»
» H
?>
II mo
—0—
-4
30—40
If -4
II «•
>•
XXXD«t7
- *U-
« »-4
rwi>»
II z>
II
3030
•»
-
cnm?:3 OO^H
tl II
WO Wvjvj-* 33
z-»cn
^w^
rn
R *T|
R
M©0D3m2>
>H3t.n
oJ
o-»
R
30
II -4-4
-> -
•» -
X
3^
-0^
—
N
W
II O
3>3>
VV
W
0)30
m- -P
s-*
II 3
tl «*
>» *-
»
zm
im*n 0 - -
II II
WKJ
»o
Z C_—4
R —1
R
3-«
-H
OM
U
X
11 mn
- cn~m
30 1>3
II m
II
<•
•»
<• 30
"Om-"
r*
nm
II
R um
Z—
3>
II 0
II zo
3>
»-»O
W
u 35
II
i>
3wO^
L4
n O
n 3
m
x»-«
^
O
H 3
u m
~
r-to
R m
11 «
> 3
•w
II 3
ti o
—
0
II 0
R z
•-
?;
tl 0
n »
0
m
II R
3
Z
/s
II 11
m
3> >
II 11
3
^
U n
<n
m <•
R R
z
<-»
-0
II 11
3>
ro
3?
M 11
3
w
m N
11 m
« to
6)
CO
Z
30
3> ^
3
W
m w
R 11 fl U R It fl tl 11 II II R
R 11 11 H It It II R II 11 tt II 11
KMHHH KH >•
»>••* M
OhhhMOHOOO
(M>J
»M00
003
-uro
o
oo
oo
oo
oo
oo
OHMI •>
» HH OO O
T1»
O4r
JO>O
L10O
o
m>o
cnM
wrin
coo-
vi
4* » o
-4 »h
i-t a?
3: «-«
3 w—
1 ?;r~
to
»MO
W2>
2>
35
J>H—
ir)*T
7m
r~3?
i>i>
z a:
m
xtn
-<o
a)n
3>-4C-3Cft o OT3
3>0 0
a:
mm
r-
w 3?
*t>
r
h n
mo
000000000000000
000000000000000
o>J4»o
oo
on
oo
oo
-00 o
>cw
w>ofO
Koow
ro»-o
»-»
to *-
*
nn
oTJU
Don
non
non
C^7JT
)WnC
*9»2?:^
?5H
D
zu>e*T
>303r-
r-30i-a
>zo
t3>-«
3>
H3r»
m0C
H0^23>3>2>3:H
H
aH
oai
mM
X
riaH
Hm
n
tn^H
xwm
3
mx>
i>
mi
3J
0000000000000000
0000000000000000
OG
O<g
MO
>(*lH
UM
O-t»
<OA
OO
O
o«o*tivi-*iajH»*—<jwu»o4m 00- w
oo
oo
oo
no
oo
oo
no
or)
-n-n
-n-n
-n-n
-n-n
-ti
nM
OT
)3:j»
7J-i c
roT
moam
ms
to to
z-4
»-*"n
ti-n
-n
VO
OO
OO
OO
OO
OO
OO
OO
OO
o
V00
00O
OO
OO
OO
OO
OO
OO
O
mCO
QQOC
DOJO
OMNJ
'sjSj
NJMS
jMMv
JI^ O
-UN
H*o"
OQ
QVJ
O*(.
n^M
M K
O-O
00
I 7?
•••
• ••
»••
••• •
••••
••• ••
•«••
••
3»Q
HH
Mf)
*SS
77 M
uHH
HoO
O
OO
m
OQQ(
h>K)
00«
^MO
-n-n
TT
n-n
-nT
iw-n
-n-T
i soecc
ooooooom
ooo
3C30
3P30
3030
30'-
3050
50
• Z
ZS
ZS
SX
«33;X
C
M-4
-4
OO
OO
OO
OO
O
OO
OO
OO
OO
O
tDW
WW
WB
J W
W C
O •n
mo
n w
a> >c
oo >j
O
-1-4
—1—
1-4-
4-4
^-4-
4-4
O
HH
H
<"•
- •>
-. "
> •.
»CS
-l-
H-H
x>
•n
o ••c
-o-o
'tinj
so—
• •»
-<-<
-<
33 "O
ro
ora
j i r
**» m
•
*-*CO
cM
Ho
mc "
Cj
•
3>m
m
r*3o
>^x
mso
o»
-»
000
OS
MH
•» T
O
Q^O>
J*
r~ —4
<0
"n3»
3300
« 0
m
m
X CO
CO
rm-4
m-4
z tor
o «
HU
C
mo
o
mco
-
w V
tof~
r"
tsl
c?
w-»
tnw
><•
»C-H
m
co<
« 3D
z»cm
x«
3H1H
••
H»»Z
o3<
* d
«
-O
3
»h» -
or-
x
r-0
zxi^
rjjn
M"
C u
<«
0)K(
0«0'*
••
3-00
r*
HO
T H-
O H-
3>»—
H**
a? O
30 "•
tn v
x «o)u
c -0
•r
30
W-
•• ••
^X30
- w
3>
0 cn
»-» «
.«••
« ci
nm
1
-<CO
••T
J«X
M %
-*K3
ID co
m
-Fl
X**
«»«•
••
O 0
•• K*»
H«
« s M
O
tnui
o»-«
m
**t4
•»
>«
WH
a.
tn
^o
* u
i ~o
M
TJ
w-OU
l"* >
-* »
-HX
>
M
m
m-^
^Tje
M-*
m
••
ci
cn~O
H«i-*
en
*t)
•
•mu
m
x
300
0*
o«Hm
« -•
00
—
-*-tA
*-+o+
•*»
o»-
—
0
mo
«-•
»
—cs
ro
c
30P3
m
m
coc
id r 0
w«o
X-4Z r—v.
T73>
o»—
H
oo»
c
3S
zoo
OOO x>o
OOO 3
oo> 0 m
l—O-
tn
1 1 7
0034! 0035! 0036: 0037! 0038! 0039! 00405 0041! 0042! 0043! 0044*. 004S! 0046! 0047! 0048! 0049! 0050! 0051! 0052:c 0053! 0054! 0055! 0056! 0057! 0058! 0059!C 0060! 0061!C 0062! 0063! 0064!C 0065! 0066! 0067! 0068!C 0069!C 0070!C 0071!C 0072!C 0073? 0074! 0075!C 0076! 0077!C 0078!C 00795C 0080: 0081! 0082! 0083! 0084110 0085JC 0086!C 0087!C 0088! 0089*. 0090! 0091SC 0092! C 0093:c 0094!20 0095! 0096! 0097!C 0098SC 0099!C 0100! oioi: 0102.C 0103JC 0104SC
EQUIVALENCE
EQUIVALENCE
EQUIVALENCE
(DATE d)F RDATA(4 >) F (TIHE(1)FRDATA(7))F (TSAHPL»RI<ATAdO))» (AIR(1T»RDATAU2>)f (FLUE <1»rRDATAdB)> F (PROX(1)rRDATA(42))r (ULTIM(l)fRDATA(50>)t (SHOKEd) FRDATA(60))F (C0ALFRDATA(68))> (NAMEt1)fRDATA(70)) (KDATAd)iUNITS(40))t (PRESSRd)»KDATA(34)> t (AIRTNPfKDATA(40)> t (KPROX(l)iKDATA<42))? (KULTIHd) FKDATA(50))t (KSMOKE <1)rKDATA(60))t (KC0AL>KDATA(68))> (KNAMEd)»KDATA(70>)
(IDATA(1)RIDATA1d)) F (JDATA(1)>JDATA1(1))F (A(1>1)>IDATA(3)) i (TSLOPE(1)»JDATA (3)) F (TBASEd)fJDATA(51)) (Z80DAT(1)fKDATAld))
INTEGER RANGETFRANPUTFDISKFTTY
DATA RANGET /Z105F/. RANPUT /Z109F/ DATA I0SPUT/Z009F/
DATA JFNREC/2*0/F BLANK/.TRUE./ DATA IfK/2*0/» ZERO/O.0/ DATA SCFMFPCNTFPPHV/'SCFN'F'Z 'F'PPMV'/
LAHINAR FLOU ELEMENT SPECIFICATIONS
SPECIFICATIONS UNITS ARE [=1] SCFH/INCH H20
DATA LFE/3.2F20.0F17.0/ DATA RANKINFTSTANDfHGIATHFTUCSONFGAUGE/460.F70.F760.F692.F14.7/
DATA CNTRLA/1F0FZ0100/F CNTRLD/1I0FZ0400/
SEARCH FOR AN EMPTY RECORD
CH.L FtOPN(PISK) DO 10 REC0RD=1iHAXREC
CALL F$IOS<RANGETFRDATAFDISKFM> IF(DATEd).EQ.-l) GO TO 20 CONTINUE
ALL RECORDS FILLED
CALL FiCLS(DISK) URITECTTYFIOO) RETURN
EMPTY RECORD FOUND
CONTINUE CALL TIHE*B(T1ME(1)FTIME(2)FTIHE(3)) CALL DATE«B(DATE(3)fDATE(1)FDATE<2>)
SAVE TIME AND DATE ON DISK
2ALL"£*58S(RANPUTFRDATAfDISKFH>
SAVE RECORD NUMBER IN CONSTANTS RECORD
1 1 8
0105! 0106! 0107: 0108! o i o 9: c ono:c OllliC 0112! 0113! 0114:22 oiis:c o 116: c 0117SC 0118! 0119! 0120! 01215 0122!C 0123! 0124! 0125 * C 01261C 012 7: c 0128: 0129! oi3o: oi3i: 0132! 0133: 0134! 0135S25 0136JC 0137:C 0138:c 0139:c oi4o:c 0141 :c 0142IC 0143! 0144: 0145:c oi^6:c 0147SC 0148: 0149! 0150132 o 151: c 0152:c 0153!C 0154! 0155: 0156133 015 7: c 0158:c 0159 :c 0160: oi6i:c 0162IC 0163: c 0164! 0165:c 0166!C 0167!c 0168: 0169: 0170: oi7i:c 0172:c 0173SC 0174! 0175:c
KDATA<1)=RDATA<1) KDATA(2)=MAXREC+1 CALL FiIOS(RANGET»KDATAiDISK.M) KDATA(3)=NREC
USE DEFAULT COAL AND FLUE SOLIDS ANALYSIS
DO 22 I=42>102 RDATA(I)=KDATA(I) CONTINUE
RETRIEVE THE CALIBRATION CONSTANTS FROH DISK
IDATA(1)=RDATA(1) JDATA(1)=RDATA(1) IDATA<2)=MAXREC+2 JDATA<2)*HAXREC+3
CALL FtIOS(RANGET>IDATA«DISKrH) CALL FtIOS(RANGET>JDATAiDISKiH)
OBTAIN THE UPDATED STATIC PRESSURES AND AIR TEHPERATURE
URITE(TTY rll4) CALL DOEINP(ANS»BLANKfTTY) IFC.NOT.BLANK) AIRTMP=ANS DO 25 1=1.3
URITE(TTY»116) GNAMECI) CALL DOEINP < ANS? BLANK tTTY) IF(.NOT.BLANK) PRESSR(I>=ANS CONTINUE
RETRIEVE MULTIPLEXED DATA FROM THE CROHEMCO
T-l HINUTE IS IN Z80DAT< 1 - 32 ) T-15 HINUTES IS IN Z80DAT< 33 - 64 ) T—11 HINUTES IS IN Z80DAT< 65 - 96 )
CALL F*IOS(IOSPUT»CNTRLAfTTY.M) READ<TTYi104) Z80DAT
CONVERT PT/PT-RHODIUM T.C. DATA
DO 32 1=1F8 T(I>=TSLOPE<I)*Z80DAT(I)+TBASE(I) CONTINUE
CONVERT CHROHEL/ALUHEL T.C. DATA
DO 33 1=9.24 T < I) =TSLOPE<I)*Z80DAT <I)+TBASE(I) CONTINUE
SAVE THE FLUE GAS TEMPERATURE
TSAHPL=T(2)
CONVERT THE P/E TRANSDUCER DATA
DO 36 1=1r 3
CONVERT ADC VALUES TO INCHES H20
BASE=Z80DAT(24+I) UNITS(I)=A(I.l)+A(I.2)*BASE+A<I»3)*BASE**2+A(Ir4>*BASE**3 IF(UNITS(I).LT.ZERO) UNITSCI)=ZERO
CONVERT INCHES H20 TO SCFH
AIR(I)=UNITS(I)*LFE(I)
1 1 9
0176 C 0177 C 0178 0179 0180 36 0181 C 0182 C 0183 C 0184 0185! 0186 0187 0188 0189 38 0190 C 0191 C 0192 C 0193 0194 C 0195 C 0196 C 0197 0198 0199 C 0200 C 0201 C 0202 0203 0204 C 0205 C 0206 C 0207 40 0208 C 0209 C 0210 C 0211 45 0212 C 0213 0214 0215 0216 0217 0218 50 0219 0220 C 0221 C (P09 C 0223 0224 0225 0226 0227 0228 C 0229 100 0230 102 0231 0232 104 0233 106 0234 108 0235 110 0236 0237 112 0238 114 0239 116 0240 C 0241
CONVERT CUBIC FEET PER MINUTE TO STANDARD CONDITIONS
AIR<I)=AIR<I)*<TUCS0N+HG1ATH*PRESSR<I)/GAUGE)/HG1ATH AIR(I) =AIR< I)*CRANKIN+TSTAND)/ < RANKIN+AIRTMP) CONTINUE
CONVERT THE ANALYZER DATA
DO 38 I=l»4 K=I+3 BASE=Z80DAT(27+I> FLUE (I)=A(K.1)+A(K»2)*BASE+A<K(3)*BASE**2+A(K(4)#BASE**3 IF(FLUE(I).LT(ZERO) FLUE(I)=ZERO CONTINUE
RETRIEVE CHROMATOGRAPH BUFFER
CALL F*IOStIOSPUT»CNTRLD»TTY.H)
GET NUMBER OF RECORDS TO BE SENT
READ(TTY >106) IF<NREC<EG<0)
NREC GO TO 45
RETRIEVE THE BUFFER
DO 40 1=1»NREC READITTY.108) (Z80DAT(J).J=1.40)
SAVE DATA ON DISK
CONTINUE
OUTPUT THE T-1
CONTINUE
HINUTE ANALYZER AND TRANSDUCER VALUES
»ERROR COUNT? 1 LABELS
URITEtTTY.102) RECORD.TIME(DATE URITE(TTY»112) DO 50 1=1.3
URITE<TTY.110) YNAME<I).FLUE(I).PCNT. GNAHECI).AIR(I)>SCFH.UNITS(I) CONTINUE
URITE(TTY.llO) YNAHE(4)»FLUE(4).PPHV
SAVE DATA ON DISK
CALL F$OPN(DISK) CALL .FtIDS(RANPUT.RDATA.DISK.H) CALL F*IOS<RANPUT.KDATA.DISK.H) CALL FiCLS(DISK) RETURN
FORHAT(/'*** ALL RECORDS FILLED. DELETE REQUIRED') FORHATC/'*** RECORD'.13.5X>'TIME'.13.'i'.I2»'!'.I2.
5X.'DATE'.13.'/'.12.'/'.125 FORHATt16Z4) FORHAT(Z2) F0RHAT(40A2) FORMAT <10X.A4.F8.2.IX.A4.6X.A4.F8.2.IX.A4. 4X.F8.2.' inches H20') FORHAT(/'*** ANALYZER AND TRANSDUCER OUTPUTS!'/) FORHATt/'... Enter the air temperature: C=D Fahrenheit') FORHATt'... Enter '»A4.' pressure: t=J psia')
END
) 10 ) 20
0041 0051
0000. PSECT SIZE! VARIABLES
RECORD 0001 C LPROBE 0002 C
0922. DSECT SIZE! ARRAYS
0026i REV. PROCEDURES
DATE TIME
0003 C 0006 C
F«OPN F*MD1
00E8 00E9
09/16/80 BLOCKNAHES
DATA 0066 TEMPER 0030
120
)100 02FS KCOAL 0091 C RDATA 0000 c FIIOS 02F5 LUN 0004 )22 0085 BLANK OOOC P IDATA 0000 c F*CLS 02F6 NAME 0040 >114 036C TTY 0000 C JDATA 0000 c F»URF OOEC MAXPIW 00C1 >25 00E2 DISK 0001 C KNAME 0093 c F*TEF OOED SYSTEM 0078 >116 0386 HAXREC 0002 C NAME 0045 c F»RET 02F7 SEARCH 0078 >104 0332 IREC 0003 C Z80DAT 0000 c TIMEIB OOEF VECTOR 00B1 >32 0125 M OOCO C CNTRLD 0000 p DATEIB OOFO
VECTOR 00B1 ) 33 0148 RANGET OOOD P CNTRLA 0003 p DOEINP 00F1 >36 01CE RANPUT OOOE P KDATA 004E c FIARF 00F4 ) 38 0234 IOSPUT OOOF P AIR OOOB c FiREF 01D5 ) 106 8225 J 0010 P PRQX 0029 c F*V01 01D6 >45 0270 NREC 0011 P ULTIH 0031 c F*E10 OlDA >40 0269 I 0012 P FLUE 0011 c >108 0337 K 0013 P SHOKE 003B c >102 030E ZERO 0014 P PRESSR 006F c >112 0357 SCFM 0016 P KPROX 0077 c >50 02C7 PCNT 0018 P KULTIH 007F c >110 033A PPMV 001A P KSMOKE 0089 c
RANKIN 001C P LFE 0006 p TSTAND 001E P A 0002 c HG1ATM 0020 P TSLOPE 0002 c TUCSON 0022 P TEASE 0032 c GAUGE 0024 P XNAHE 0000 c TSAMf'L 0009 c YNAME OOOC c COAL 0043 c SNAHE 0024 c AIRTMP 0075 c PNAME 002C c •AIA 0009 CNAHE 0034 c •AIB OOOA GNAME 0038 c ANS OOOB T 0000 c •AIC OOOD UNITS 0000 c •AID OOOE IDATA1 0000 c •AIE OOOF JDATA1 0000 c BASE 0010 KDATA1 0000 c •AIF 0012 •AIG 0013 •ARH 0014 •ARI 0016 • ARD 0018
0001SC 0002!C=== 00035C 0004: 0005!C 0006IC 00075C 0008:c 0009: c ~ ~ 38! ooio:c ooii: 0012'C 0013: 0014: 0015: ooi6: ooi7: 0018SC ooi9: 0020: 002:: 0022! 0023:c 0024: 0025: 0026: 0027: 0028!C 0029: 0030! + 003i: + 0032: +
sssssssssssss
SUBROUTINE DOENTR
THIS SUBROUTINE ALLOWS THE OPERATOR TO FILL A DATA RECORD FROM THE TELETYPE.
ssssBS5SESss:ssssass3EBss=SB:=s33:sss=ssss:8Bsssssas:ss:s3ssass
LOGICAL BLANK
INTEGER RECORD>LPROBE>DATE(3)rTIME(3> »RDATA<102) INTEGER HRSFD«R»RANPUT»RANGET INTEGER DISK»TTYrKDATA(102> INTEGER KNAME(20>>NAME(20) INTEGER IC0HP<12)
REAL AIR(3> fPR0X(4)»ULTIM(5>iFLUE(12)>SM0KE(4)>PRESSR(3) REAL KF'R0X<4) t KULTIM(5) r KSH0KEC4) »KCOAL REAL XNAHE<6>iYNAHE(12)»SNAHE<4> »PNAME<4) REAL CNAhE(2)rGNAHE(4)
S8BB8H flruiL / TTr.DISKfHAXREC.IREC COMMON /DATA / RDATA COMMON /MAXPIV/ UNITS(96)FM COMMON /NAME / XNAHErYNAHErSNAHErPNAMErCNAHErGNAME
EQUIVALENCE (REC0RDrRDATA(2))> (LPR0BE>RDATA(3))r (DATE<1)iRDATA(4))» (TIME(l)»RDATA(7))t
oo
oo
oo
o o
oo
oo
oo
oo
oo
oo
oo
oo
oo
o o
oo
oo
oo
oo
oO
OO
OO
OO
OO
OO
Oo
oo
oo
oo
oo
oO
Oo
oo
oo
oo
oo
o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o o
oo
o o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
0000*0
"OO
-OS
3«0»
0-O
CO
CO
CO
CD
CO C
OOO C
O CO
CO "s
i "sj-v
j VJN
J-SJ v
g-sj
vj V
JO
*tn
CH
(.lU
lCnC
ILO
CnC
l.^
WW
WU
4W w
U
hJK
O'O
OO
SJD
'Ln^
OJ
-O C
O"O
OC
1J»W
MM
O-O
CO
-J (>
Cnj
»UK
)t-«0
"OO
Ovs
JO«C
,14»
WW
^O-«
CD
NJ0
>C
I>U
M^O
S)0
3Nj0
«Cn^
UM
t-kO
>00
3Nj o
»cn^
04
**
•••••••••••• »
•••
•••*
•••••••••• •• •••• •••••••••••• #
••• ••••*
•*
#*
*•#
••••»
«••«
••#
•••*
««
•• «
»#
• «
«*
«••*
•••«
#•«
••••#
•
•^w
nn
n
no
n^
M
oo
o
nn
n
nn
n
o
oo
C
lM
ococ
-T1
WCJ
OO
HH
HO
3
O
C3
C M
oo»?
;opc
7:n
30
M M
HO
C
-n
OO
D
o
-n j>
-nx>
:rjo;
o *-4
o
a
o
cn
•n>j
>rno
»oe>
m
fT
ni>i
>7j
M
2>X>
X>
3>
^2^ r-
nz«
x z
HN
RA
AX
R
O
M ^
rro
i>r>
»r
-H
<»•»
zrn
z
—1 —
1—1
•H
ts
nn
mrm
mm
r M
erri 0
-ir-
-« M
I-30
M
tcco
r--H
o
3>X
»X>
3>
j> ii
r-m
nm
*n
o
JO
I»
1»I>
M
2>
r~ it
m
ZF
M^O
--*; Z
"
o
WM
^O
WM
I-H
-<
Z
Z3>
m
—
in ~n
w—
-n •—
<<"n
m
Z»H
O«
o
WZ3
0 H
cn
zzo
Hi c
-l
E
C—|-4
»-«
*T1
c
OIZ
ZO
H
C
f—O
I>
o
• -n
^m-if
Ti—
i «H
II
II II H
II II
II 3
—i
m»-
ii> ii
2>
^O
MH
WH
W^O
m
w
rw
—1
X>"0
Z o
t-4
-<
-<
-CO
SnK
O^x
m
1-4
X—'«*
c
»*r
o: r>
ii o
n u
~o
r*
Z-4"
«J 3
mj>
z«
«•
c
*
4»
3
CHM
r~
c
n c
n Z
M cn 3
3O
Z »
m
J>Z-
c 7\C
"O
•
Z0"0
«—
»»
* Z
KO
TO
M
P
W-
—i
tn2>^2>0-»
M
•
30Z
"0»-
x
ocno i-»
0 o
*-*
lit-
ZO
TJ
Z7?xj>
a
o o m
tn--o
H
• o
• -•-
3>U1
o
-<
X
3>
3*0
o
mM
i>
cnz>
37—
<«-«
o
-4
-4-3
>0
o
«•
O-
H Z
w
"S-"
x
«•
«•
Z
or-j
o
• cnz
zm
»u »
OC
* Zw
x
30** M
w
so
cnou
) m
3
3
O
»
z
1 3*0
O
O—
^ TO
ZPUH
n CZ
O
m
—4
cn
m+M
w
Z—
-30
H
HO
OJ
»>*
cn
w
z
O
CO
o
X>
—i
—4
—l»-»
w
•n
TO
m
• -
«o
i>
r
-4
«•»
W
z>
3>
*•
«•
30
i»
r~
o
v.x*
n o
z
x>
30
—1
M
Z
O
3D
O z
»
o
U)
z
-<
m
W»
—1
O «
a
3
cn
z
73
cn-
x>
PC
a
o
O
-1
2>
-H
—1
—i
O
o
<•
»5?P
?
—4
—i
O
cn
o
z>
x>
1-4
—i
—«
Z- »
• —
i cn
«•
«•
cn
• —1
cn
-<z
ro
z
-<
3
H
•-»
a
o
3* 3
-<
«• \o
o
O
ra c
n M
H
J>
cc
im
3>«H
-o
w
z
cn
cn
X
ccim
3>«H
•-*
«H
1-4
3
7!
3t
30
f-o
•*"*
-*i
-c
m
z
3
3
m
o
CSN
m
M
JK
cn
—t
>•
M
Ul
o
cn
1>
o
m
z
o
2nC
DC
T?M
3?C
J^03
n^P
MW
i»
03:r»xR
i>xi>
0H
0C
7)2
>
3»O
HO
HC
AH
mr^
HX
m^
3;
AH
>w
OH
Hw
w«
<•
<• 30
50
- »-«
—•
30-H
"* - 3
03000
7?H
< -
C03
>303
000X
>3>
0»7!^
0H
72^
00^
-<H
—
IO»3
>3>-
H«—
J*-H
»C0-
<—l2
>X>~
-<.
0»UI
N)CD
—w
o
« (h
uiro
wM
o*"
oo
^^
-*—
00»"»
w
wv« <
•
0104 0105 C 0106 c 0107 c 0108 5 0109 0110 0111 0112 0113 0114 c 0115 c 0116 r 0117 10 0118 0119 0120 0121 0122 0123 c 0124 c 0125 c 0126 c 0127 20 0128 012? 0130 0131 0132 0133 0134 22 0135 0136 C 0137 C 013B C 013? 25 0140 0141 0142 0143 0144 C 0145 0146 0147 0148 014? 0150 27 0151 0152 C 0153 C 0154 C 0155 30 0156 0157 otss 0159 0160 0161 0162 0163 32 0164 0165 C 0166 c 0167 c 0168 35 0169 0170 0171 0172 0173 0174
GO T0(45f30F35F50F25F60F20F40F10F55)iIANS
PUT CHANGES ON DISK
CONTINUE CALL FSOPN(DISK) CALL F$IOS(KANPUTfRDATAfDISKfM) CALL F$IOS<RANPUTFKDATAfDISKfM) CALL FiCLS(DISK) RETURN
OBTAIN FLUE GAS TEMPERATURE
CONTINUE URITE(TTYfHO) CALL DOEINPfANSfBLANKFTTY) IF(.NOT.BLANK) TSAMPL=ANS CALL DOECHO(TSAHPL) GO TO 1
OBTAIN AIR FLOUS
CONTINUE HO 22 1=1»3
URITE(TTYf 112) GNAME(I) CALL DOEINP(ANSrBLANKiTTY) IF(.NOT.BLANK) AIR(I)=ANS VALUE=AIR(I) CALL DOECHO(VALUE) CONTINUE
GO TO 1
OBTAIN THE AIR TEMPERATURE AND GAUGE PRESSURES
CONTINUE URITE(TTYf106) CALL DOEINP < ANSiBLANK»TTY) IF(.NOT.BLANK) AIKTMP=ANS CALL DOECHOtAIRTMP)
DO 27 1=1.3 URITE(TTYf117) GNAMEU) CALL DOEINPIANSiBLANKiTTY) IF<.NOT.BLANK) PRESSR(I)=ANS CALL DOECHO(PRESSRd)) CONTINUE
GO TO l
OBTAIN PROXIMATE ANALYSIS
CONTINUE URITE(TTYrl20) DO 32 1=1>4
URITEtTTYtllS) PNAME(I) CALL DOEINP(ANSfBLANKFTTY) IF(.NOT.BLANK) PROX(I)=ANS KPROX(I)=PRQX(I) CALL DOECHO<PROX(I)) CONTINUE
GO TO 1
OBTAIN ULTIMATE ANALYSIS
CONTINUE URITE(TTY f122) DO 37 1=1f5
MRITE(TTYf118) XNAME(I) CALL DOEINP(ANS.BLANK.TTY) IF(.NOT.BLANK) ULTIH(I)=ANS CALL DOECHO(ULTIM(I))
01755 0176*37
Bi ic 0179JC 0180'C 0181140 0182! 0183S 0184! 0185S 0186! 0187*. 0188:42 0189: 0190: 0191! 0192: 0193! 0194S43 0195! o m : c 0197-.C o i 9 8 : c 0199:45 0200: o ? o i : 0202: 0203: 0204! 0205: G206:c 0207JC 0208:c 0209:50 0210: 0211: 0212: 0213! 0214*. 0215! 021&: 0217:52 0218: 0'219:c 0220JC 0221:c 0222:55 0223! 0224! 0225! 0226! 0227! 0223: 0229! 0230:C 0231:c 0232:c 0233'.60 0234! 0235! 0236: 0237! 0238*. 0239S65 0240! 024i:C 0242:c 0243:100 0244:103 0245:104
KULTIMd>=ULTIM(I) CONTINUE
GO TO 1
OBTAIN FLUE GAS ANALYSIS
CONTINUE URITE(TTY»124) DO 42 1=1(6
URITE<TTY»118) YNAMEtICOMP(I)) CALL DOEINP(ANSIBLANKITTY) IF(.NOT.BLANK) FLUE(ICOMP(I))=ANS CALL POECHO < FLUE(ICOMPD))) CONTINUE
D0 URITE(TTYF 119) YNAME(ICOMPd)) CALL I'OEINP(ANS»BLANK»TTY) t _ IF(.NOT.BLANK) FLUE(ICOMP(I>)=ANS CALL DOECHO(FLUEdCOMPd))) CONTINUE
GO TO 1
OBTAIN COAL INPUT RATE
CONTINUE URITE(TTY F126) CALL DOEINP(ANS r BLANK»TTY) IFC.NOT.BLANK) COAL=ANS CALL DOECHO(COAL) KCOAL=CQAL GO TO 1
OBTAIN SMOKE ANALYSIS
CONTINUE URITE(TTY»128) DO 52 1=1>4
URITE(TTYill8) SNAME(I) CALL DOEINP(ANSFBLANK{TTY) IF(.NOT.BLANK) SMOKE(I)=ANS CALL DOECHO(SMOKEd)) KSMOKE(I)=SMOKE(I) CONTINUE
GO TO 1
OBTAIN PROBE POSITION
CONTINUE
CALLEDOEINP(ANS r BLANK.TTY)
IH?NOT!BLANK) JLPROBE=IANS VALUE=LPROBE CALL DOECHOtVALUE) GO TO 1
OBTAIN SAMPLE NAME
CONTINUE URITECTTY1132) READCTTY»103) NAME URITE(TTY»103) NAME 00 65 1=1F 20 KNAME(I)=NAHED)
CONTINUE GO TO 1
FORMAT(//'... Modify uhich data record?') F0RHAT(40A2) „ ^ FORMAT!/'... Data Entry Options*.'/
124
'i 0246i 0247! 0248'. 024?: 0250: 0251! 0252!105 02531106 0254:110 0255:112 0256!117 0257:118 0258!119 0259 J120 0260:122 0261U24 02621126 0263!128 0264:130 0265!132 0 2 6 6 : c 0267! »ERR0R COUNT!
1 LABELS
= Coal Feed Rate'rlOXi'7 = Air Input Rates'/ = Proxiaate Analysis'«6X»'8 = Flue Gas Analysis'/ = Ultimate Analysis'i7X»'9 = Flue Gas Temperature'/ = Flue Solids Analysis'i3X>'10 = Probe Position'/ = Air Teaperature and Pressures'/ = .Coal Sanple Naae')
. Enter the data option:') Air Tenperature: t=] Fahrenheit') Flue Gas Teaperature! C=] Celsius') '»A4»' Air = ? C=] SCFH') '>A4r' Pressure' t=] psia') Percent '»A4»' = ?') PPMV 'tA4f' = ?')
* Froxiaate Analysis! (As-Received Basis)') * Ultimate Analysis: (Dry* Ash-included Basis)') * Flue Gas Analysis:')
[=] lbs/hour') (Ash-Free Basis)')
F0RMAT(/ F0RHAT( " FORMAT < FORMAT( FORMAT( F0RHAT( FORMAT( FORMAT( FORMAT( FORMAT( FORMAT( FORMAT( FORMAT( FORMAT(
Coal Feed Rate = ? * Flue Solids Analysis! •• Probe Position = ?') .. Input Sanple Naite')
END OOOOf PSECT SIZE!
VARIABLES 1306r DSECT SIZE! 0012! REV. 5
ARRAYS PROCEDURES
) 100 ) 15 >12 )2 ) 104 )1 ) 105 )5 >45 >30 >35 >50 >25 >60 >20 >40 ) 10 >55 >110 > 2 2 >112 >106 >27 >117 >120 >32 >118 > 1 2 2 >37 >124 >42 >43 >11? > 1 2 6 >128 >52 >130 >132 >103 >65
oooi:c 0002!C= 0003IC 0004! 0005!C
037B 0084 007D 00A2 0390 00A8 0422 OOEC 02B3 0196 01E3 02K0 014B 033C 0115 022A OOFD 0317 0446 0144 045B 0432 018F 046B 0495 01DC 047C 04AD 0224 04C7 026A 02AC 0489 04D4 04E9 0311 0500 050D 038D 0367
BLANK RECORD LPROBE H S D Y RANPUT RANGET
KCOAL HAXREC IREC M NOPT I IANS VALUE ANS TSAMPL COAL AIRTMP •ALA •AIA • AIB
0000 0001 0002 0001 0002 0003 0004 0005 0006
m 0091 0002 0003 00C0 0013 0014 0015 0016 0018 0009 0043 0075 0009 000A 000B
p DATE 0003 C F»MRF 036E c TIHE 0006 C FSTEF 036F c RDATA 0000 C DOEINP 0370 p KDATA 004E C FtMDl 0371 p KNAME 0093 C FiVIO 0374 p NAME 0045 C FiRET 00D6 p ICOMP 0007 P F*0PN 00D7 p AIR 000B C FtlOS OOD8 p PROX 0029 C F$CLS OOD9 c ULTIM 0031 C QODA c FLUE 0011 C OODB c SMOKE 003B C FtGOT 01AA c PRESSR 006F C DOECHO 01AC c KPROX 0077 C F*ARF 01AD c KULTIM 007F c F$V01 0379 p KSMOKE 0089 c F*REF 037A p XNAME 0000 c p YNAME OOOC c p SNAME 0024 c p PNAME 002C c c CNAME 0034 c c GNAME 0038 c c UNITS 0000 c
09/16/80 BLOCKNAMES
LUN 0004 DATA 0066 HAXPIV 00C1 NAME 0040
SUBROUTINE DOEINP(ANSrBLANK>LUN)
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOoooooooooo
wwwwwwwwwwwwrjWM(-MMMMMM»-'Hooooooooo
(4IOKO
S9Q}MO
<LNABL
K)^OS)
IUT>JO
>C'L'^
MK)KO*
OA)'SJ
O<C<1J
»WMM
»-*
r» o
o r> onorsn ooo
VOOOOOOOO OOOOOOOOOOOOOOOOO o
VOOOOOOOOOOOOOOOOOOOOOOOOO o
7MO>OCOMCKCq.t»UirJO'0(DMO>Cl|UMtO<OCD>JO«
2>C5
I—C
0S7 o
m ro
i~o
coo
PI
r> o noon
m*n55 o M
m O •-«
HH OO o rn M
it —i CO
II zom
x> a z
ooo 3>X> o O z
u X c
n OSO-I
r* CO o
coco -4-H z C
—1
ti M
a?
ti 3C r* w a OMKWCP J>5» z M
m II
cn »
II X>3D
c
C? OOOGC
o c o
II o
II -HZ
-n *n m
zen
~n~n
HH
z
x> m
II 30
C
II «»
H
WH
«« - o
p*
TO
U o
-«
ti O
1-4
i-icrn ro»— ztn
S m
II c
k-<
II o
C/L o 2T1WVW
0-9
F—
z o
N -H z
n o
CO w
«• C-—• I
I II
T=
C c n
H
n t-4
m
II •
«—•
u »-»
riHwoM
HH
z
M cn
U z
ti •-H
X
O
WO
O
! ••
S
"s.
II m w
II *-
» o
"» o
II ZN
OX.
«•
It o
II cn o
ro
- o
-H
H
H
It m
m N
T» o
»M
X H
O
-H o
H
II o o
II c o a
o-o
-<
CO
-<
N X X
U o cn
cn-n
w
n O
o
II •«
V
-4
to\
E M
it m
II M
c
M -n o
II cn •c
ft O
3:
-n
cn
CO
U A>
ti
CO
«•
"S
M —
* II o i—
u W
z
M
o
M
II -o
C
U e
o
U z w z
U m
m n
T1
e
•M
J> «
u A
? W
U
-H
O
X
H 00
II 3>
n
—1
\
73
O
u —«
II -1
M
CO
••
H O
u
-<
c
n
—1
H
IT 97
n
J»
•• m o
II II
3
r~
M z cn
II 1-
4 ti
c=
»
w II Z
u M
M
H
E
II
"D
II n w
"n
II C
it >•
»»
n —1
II ro
II n
o
n c
n *•»
n H
ii
-H m
TI
70C
9C
D
»-«
o
«M
3> m
j m
M
r*
zo mmr
~n 2
> r-oz
a z a
030
HO
»
3>ZU)
-i-t
cz -4 o
o z caz wr ZH 11
3>»
HH
m
H
o
»O
T;
c
If l-»
<z cn o
WH
ZnrW
x> o
—1 zro ii
-n-T|
11 H*z 37;
x> m
2>
•co ocrz o
• o
«• CO r-
TO 1—
1>2
C0ZZ> C
O c-
<c
t-iTl
m M
«H
I-C
m 30 O Z
J>
w
03> 990
TO
ra*n z
w
W
m yt
7Q~Q
zr «tn C
Zl
o c r-
—1
•-HtO
•Hen
m H
\ m
TI 2>
i>m
- m
— H
«• H
•n Z
ooooooo a?r>
M v
* o
MO
rn
ooooooo f-H
o
men
w 3D
ooooooo m
ro oo
»o c
I>«0 C
O N
J W
3> *
0 cntn
•«
• m
5D
* -n U1
»-»
w
ro—i
>s« *n
T?*T
>T?T?
w m
c
-n
X-
MO m 77
??
*•
m w
c
OS
N
-«
w c
Tito
wc
en
oo
OO
OO
O tO
*n -n*n -n -n
-nn
~n
4ft
—ix>o;*j:r hhc t
n mTiPitneoov
"n -no H •-»
WM
—i
oooooooo
OOOOoooo
•fcWMHO-rimo
I>C
»
-<co
torn
300
oo
n»-
nvo
O—
cz
7073
mm
toe
O
71
~
M oi
TO W
O -
cn
no
zoo
z>o
126
»ERROR COUNT! OOOO, PSECT SIZE! 0092 r DSECT SIZE! 0011r REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
)10 >100
0034 0058
VALUE 0009 IOSTEH 0009 P FtSBU 0051 DISK 0001 C lOSBUF 0000 P F*MD1 0052 TTY 0000 C FtENC 0053 HAXREC 0002 C FtARF 0054 IREC 0003 C F»TEF 0055 IOSPUT 0014 P FSIOS 0056 I 0015 P F*RET 0057 NOUT 0016 P M 0017 P •AIA OOOA
09/16/80 BLQCKNAMES
LUN 0004
127
c c=== c c c
c c== c
D.O.E. COAL FURNACE COHHON ALLOCATION FOR SHARED DSECT
BLOCK DATA sss&sssssssassBsssssBssssassasssscsssssssssssBSSsaisasssi&sassa
INTEGER RDATA(102).DISK.TTY
LOGICAL 02RICH.COGGIN>CHROHO.DEBUG.RESET>SHIFT.SSQHIN
REAL CNAHE(2>.GNAME<4> REAL XNAME < 6).YNAHE <12).SNAHE(4)»PNAME<4)
DOUBLE PRECISION SRiAIRSR DOUBLE PRECISION Q.U.X.Y.S.P.T. QDATA.UDATA.XDATA.YDATA.SDATA.PDATA.TDATA DOUBLE PRECISION LASTZ<22>.DELZC22)
COMMON /DATA / RDATA COMHON /INDEX / INDEX(30) COMMON /TEHPER/ TAXIS(24) COMHON /UEIGHT/ UEIGHT(30) COMHON /GAHHA / SR.AIRSR COMMON /LUN / TTY.DISK.HAXREC.IREC COMMON /DEBUG / DEBUG.RESET.SHIFT.SSQHIN COMHON /BURN / 02RICH.COGGIN.CHROHO COHHON /NAME / XNAHE .YNAHE .SNAHE .PNAHE.CNAHE .GNAHE COMHON /SYSTEM/ G<4)>U<2)»X<6).Y<12).S<4).P.T COMHON /SEARCH/ QIiATA(4)»UDATA(2).XDATAI6)»YDATA(12).
SDATA(4).PDATA.TDATA COMHON /VECTOR/ LASTZ . DELZ»NSERCH COHHON /HAXPIV/ UNITS<96).NSIZE
DATA TTY.DISK.HAXREC.IREC/20.53.90.0/
DATA RDATA/200i1»100*0/
DATA CNAHE/'COAL' 0042 DATA XNAHE/' C ' ' H ' ' 0 0043 + ' S ' ' N ' ' H20' / 0044 DATA YNAHE/' C02' ' CO ' ' 02 . 0045 ' NO ' ' HCN' ' CH4 . 0046 + ' H2S' ' S02' ' NH3' » 0047 + ' H2 ' ' H20 ' N2 ' / 0048 DATA SNAHE/' C ' ' H ' ' N . S / 0049 DATA PNAHE/'F.C.' 'V.M.' ' ASH' . H20' / 0050 DATA GNAHE/'TRNS' 'PRHT' 'STGD' . FLUE' /
FLUE'/
»ERROR COUNT! 1 LABELS
DATA INDEX/1>2»3»8r9»10.11»12»13.15.16»5»26»27>28»30r17t18*19»21/ DATA UEIGHT/29*1.0.10.0/
END 0000. PSECT SIZE!
VARIABLES 0000. DSECT SIZE! OOOOi REV.
ARRAYS PROCEDURES 09/16/80 BLOCKNAHES
DISK TTY 02RICH COGGIN CHROHO DEBUG RESET
I^IN SR AIRSR P
0001 0000 0000 0001 0002 0000 0001
88§§ B 0000 c 0004 C 0070 C
RDATA CNAHE GNAHE XNAHE YNAHE SNAHE PNAHE Q U X Y S
0000 0034 0038 0000 OOOC 0024 002C
88?8 0018 0030 0060
DATA INDEX TEMPER UEIGHT GAMHA LUN DEBUG BURN NAHE SYSTEM SEARCH VECTOR
0066 001E 0030 003C 0008 0004 0004 0003 0040 0078 0078 00B1
OO OOO OOOOOOOOO O OO OO OO OOOOOOOOOOOOOO OOOOOO OOOOOOOOOOOOOOOOOO
<0(D>JIKflAUUHO<OCONj(>Cn4»WtOKO<OOMO«Cll>Uf'J
O«0 0)Nj(hC'l<feOlMMO
<OCO'>J(hCU»UIJMO>OGOSI(M/l4kWK)K
ooow
nonw nnn
r>
ooo ooo*-o
o
o
n
OM
OL »
-« n
OLM
o
H H
nnns
o
o
29
X
o"*i»
o*n
X
oo-n
X
**1
D2>3>J»W
m
2>
m
m 2
r«
m zw
m
*!?rrrj>
-i
r-—
i o
—!•
f—
M M
o
—t II
• o
H
^
r™
23
7K
MZ
c_o
o
11
3>
-i
H
zooo-o
ZO
TJ
*T?
»-nnTi<
s
X
o
m
T\
c-«ots
-»
**1
CI 0
0 —
4 ~n
-4
m
o c
a
ro* m
«*
o
mw
*
o
•
^O
HO
v
m
m
30
coo
z
30
z
TO
r~
-H|~
0-0
H
o
(O
(OC
m
m
—t
>(A
(O
Z2
"O
r~
»
0-4
3>
•
X
•
-4
2>
3
M
z>
J»O
*O
X
1-4
00
30
M
w
O
w
CO
•
—»-«
ri30
o
"O
m
m
z
o
CO
o
cozcom
z
c
r~
•H
CI
o
o
• 30
r-
m
C
o
o
o
00
*
wm
—-*-
-n
i—
o
30
c_
H
x» l-l
—i
•-*
TO
Z
a
—1
z
-t r-
O
<•
o
o
w
o
o
x>
TJ 30
x
o
-4
ii
in
z
—4
e?
X
O
• c_
u
m
ro
o
•
z»
H
X
o
o
2>
o
m
O
—i
X
o
—1
tt 30
—1
m
z
X
m
M
Nl
O
X
C*4
o
CO CO 7> m o
z -n
c
y>
m m X
2»3>
-4-4
I>3>
OZ
rnto
o
3>0
3> 3>2>
—I —•
—«
COO
cnoa?
xnv
cow
r--T7f
a r-N
SN-
oroc_
- +to
MOW
SNU
X ••S o
zz-
OO
M
sou
z<« s
Si>
n o
ooooooo
II II
11 a
II U
It a
M N
II n
r~
U o
n o zzzz
II •
a o —|H H H
tl o
n »-«
mmmm
II •
M o QC)G)G)
II m
M 3» mmmm
II •
U ZZHJHT) —4
r~
TOTO
TOTO
«
a to CO 3
01>00
II -n
u o •03030Z
M a
II NIX
I030-I
-4 m conio
V 30
•
mo mi>3>
OO oi3>nc
N z 0
X o
C IHO^
M x»
N o
"» 3>30ra
II o
N ooooooo
«•
II m
H ooooooo*
p? II
M nwoovjNjNj
m roa>
II 30
11 OOOIM-tkOik
CO nioz
U m
II M
wco
II TJ
N ooooooo
—4 H o
II «•
PP-
4 H
30
II CO
2>H
N -4
U X
Z*<
n N
ccHHorw-cxco
O-N o
II zmi>zmi>oeoDO
~n mo
II m
U Hwxor(n»»p
—I -*
»-#
M z
H HCJNmNHH-IHHH
>•
- CO
II m
It toxcox r«43>i»z>i>a>
CO 3JX
U 30
tt -4
CO 3>
n z>
II a Z
II -H
N OOOOOOOOOOO
X
"O
ti M
II oooooooooo o
M
c=
u z
II OOOOWOO-UHH o
z
—1
n ii o
N 00000)000000
II X
OOOOOOOOOOO
II x>
•
U •-»
II u a z
N II H
r~
N a H
N N z
N N N II m
H N • •
X u
ro
00
129
0060: 0061! 0062! 0063140 0064SC 0065: c 0066:c 0067! 0068: 0069: 0070: oo7i:c 0072! 0073:c 0074!
IF<IOPT.NE.3) GO TO 40 J0BSJ0B27 CALL DOERPT CONTINUE
SUAP TASKS TO EXECUTE THE OPTION
CALL DOESTK(PUSH) CALL TPNf1(JOB*NOUfMODE) CALL RSFOF IF<.TRUE.) GO TO 10
A=ALOG(A)
.END
1 »ERROR COUNTS 0000> PSECT SIZE*. 0122» DSECT SIZES 0001! REV. 5 09/16/80
LABELS VARIABLES ARRAYS PROCEDURES BLOCKNAMES )10 001B RECORD 0003 C NOU 0000 P FREMAT 006D DATA 0066 )20 0044 ANS 0002 P RDATA 0000 C DOESTK 006E LUN 0004 )30 0053 TTY 0000 C FSOPN 006F DEBUG 0004 >40 005A DISK 0001 c FSIOS 0070
DEBUG 0004
RANGET 0003 p F*CLS 0071 RANPUT 0004 p F$MD1 0072 PUSH 0005 p DOEOUT 0073 PULL 0006 p DOERPT 0074 DEBUG 0000 c TPN«1 0075 RESET 0001 c RiFOF 0076 SHIFT 0002 c ALOG 0077 SSQMIN 0003 c FIXIT 0079 MAXREC 0002 c JOB 0007 p J0B27 0008 p J0B3 0009 p MODE OOOA p IOPT OOOB p NO OOOC p M OOOD p A OOOE p •ALA 0000
OOOliC 0002 SC 0003SC 0004: 0005SC 0006:c 0007SC ooo8:c=» 0009:c ooio: ooii:c 0012: 0013! 0014!C 0015: 0016: 0017! oois: ooi9:c 0020: 0021: 0022! 0023! 0024: 0025: 0026: 0027: 0028*. 0029! 0030:c
SUBROUTINE DOERPT
THIS ROUTINE OUTPUTS THE RESULTS OF THE COGGIN SEARCH.
EXTERNAL DOEBTA
INTEGER TTY.BISK INTEGER IY(10)>I TEMP(40)>INDEX(25)
LOGICAL 02RICH>C0GGINrCHROMO LOGICAL DELETE(30) tREJECT(30) LOGICAL VERIFY>DEBUG>RESETtSHIFTrSSQHIN LOGICAL TRUE>FALSE>CONSIS
COMMON /LUN / TTY>DISK>MAXREC»IREC COMMON /BURN / 02RICHiCOGGIN*CHROMO COMMON /NAME / XNAME(6>.YNAME(12)»SNAME(4)r
PNAME (4). CNAME (2). GNAME (4) COMMON /SYSTEM/ 0(4)fU(2)»X(6)rY(12)»S<4)»P»T COMMON /SEARCH/ QDATA(4)»UDATA(2)»XDATA(6)»YDATA<12)»
SDATA(4)rPDATAiTDATA COMMON /VECTOR/ DELZ<44)rNSERCH COMMON /MAXPIV/ UNITS(96)»K COMMON /DEBUG / DEBUG>RESETiSHIFTfSSQHIN
130
0031! 0032! 0033! 0034: 0035: 0036! 0037:C 0038: 0039JC 0040! 0041: 0042! 0043! 0044! 0045: 0046! 0047! 0048: 0049: ooso: oo5i: 0052! 0053:c 0054! 0055! 005&: 0057! 0058: 0059! 0060: 0061! 0062: 0063iC 0064: 0065:c 0066ZC 0067:c 0068: 0069! 0070! 0071! 0072! 0073!1 0074:c 0075!c 0076:c
m\ 0079! ooeo: oo8i: 0082: 0083: 0084:2 0085: 0086SC 0087:c 0088JC 0089:4 0090! 0091: 0092: 0093: 0094: 0095: 0096! 0097! 0098: 0099: oioo: oioi: A
DOUBLE PRECISION DMEAN.DSIGHA DOUBLE PRECISION DELZ.DZERO DOUBLE PRECISION Z(1)»ZDATA(1) DOUBLE PRECISION Q.U.X.Y.S.P.T.TEMP1.TEMP2 DOUBLE PRECISION SCFHTDECISN.ACCPT.REJCT.
+ QDATA.UDATA.XDATARYDATA.SDATARPDATA.TDATA
REAL TVALUE(30)(CHANGE(30)
EQUIVALENCE (BETA.UNITS(2)). <N.UNITS(3>> EQUIVALENCE <Z<1)»QU)>» (ZDA1A(1).QDATA<1)) EQUIVALENCE (RMEAN.DHEAN)» (SIGMA.DSIGHA) EQUIVALENCE (TVALUED) »UNITS(37)) » (CHANGE (1) .UNITS(67)) EQUIVALENCE (DELETE(L)»UNITS(22)). (REJECT(L)»UNITS(7>) EQUIVALENCE (DHEAN»DELZ(31))» <DSIGHA.DELZ(32)) EQUIVALENCE (TEHP1.DELZ(33)>T (TEMP2.DELZ(34>> EQUIVALENCE (ITEHP(1)>BELZ(35))> (J.ITEMP(1>> EQUIVALENCE <I>ITEHP(2> >» (NUIITEHP(3)> EQUIVALENCE (BSAVE.ITEHP(5))» (DEGREE.ITEMP(7)) EQUIVALENCE (F.ITE«P(9)). (DF.ITEMP(11)) EQUIVALENCE (GAMMA.UNITS(4>>. (C.UNITS(5)> EQUIVALENCE (DECISN.ITEMPU3))
DATA TRUE.FALSE/.TRUE...FALSE./. VERIFY/.TRUE./ DATA FILTER/0.0005/. A>B.C0EF/0.0»0.5»0.0/ DATA ACCPT.REJCT/' YES '/ DATA DZERO/O.ODO/. ZERO.ONE.TUO/O.0.1.0.2.0/ DATA ALPHA.TOLER.PI/O.95.0.001I3.14159/ DATA NYDATA /10/» IFORM /ZOCOO/. SCFH /0.1705DO/ DATA IY/1.2.3.4.5.7.9.6.10.12/. BLANK/' '/ DATA INDEX/1.2.3.7.8.9.10.11.12.13.14.15.16.
+ 25.26.27.28.5.30.17.18.19.21.22.24/
URITE(TTY.116) IFORM
DETERMINE THE NUMBER OF POSSIBLE DATA POINTS
NSERCH=13 IF(02RICH) GO TO 1 NSERCH=19 IF(.NOT.CHROMO) GO TO 1 NSERCH=25 CONTINUE
INTIALIZE THE LOGICAL VECTORS
D0 J=1NJEX?5)CH REJECT(J)=FALSE DELETE(J)=TRUE TVALUETJ)=ZERO IF(ZDATA(J).EQ.DZERO) GO TO 2 DELETE(J)=FALSE CONTINUE
IF(RESET.OR..NOT.SHIFT) DELETE(30)=TRUE
COMPUTE THE MEAN DATA ADJUSTMENT
CONTINUE N=0 DMEAN=DZERO DEGREE=ZERO DO 6 I=1.NSERCH
J=INDEX(I) IF(DELETE(J).OR.REJECT(J)) GO TO 6 N=N+1 DELZ(N)=DABS((ZDATA(J)-Z(J)>/ZDATA(J)) CHANGE(J)=SNGL(DELZ(N)) IF(CHANGE(J).GT.DEGREE) DEGREE=CHANGE(J) DMEAN=DMEAN+DELZ(N) CONTINUE
131
0102: 0103! 0104: oios:c 0106SC oio7:c oio8: 0109! o i io: 0111:10 0112: 0U31C oii4:c 0115:c 0116: 0117! 0118: oii?:c 0120:0 oi2i:c 0122: 0123:15 0124IC 0125SC 0126:c 0127:c 0128! 0129:c 0130:c oi3i:c 0132! 0133: 0134! 0135: 0136: 0137! 0138! 0139! 0140: 0141: 0142:20 0143:c 0144: c 0145:c 0146: 0147! 0148! 0149'.C oiso:c 0151:c 0152! 0153: 0154i 0155! ois&:c 0157:c 0158:c 0159:28 oi6o:c 0161 :c 0162SC 0163! 0164:c oi65:c 0166IC 0167! 0168! 0169! 0170! oi7i: 0172:
CONSIS=DEGREE.LT.FILTER DMEAN=DMEAN/N NU=N-1
COMPUTE THE STANDARD DEVIATION OF DATA ADJUSTMENTS
DSIGMA=DZERO DO 10 1=1»N
DSI GMA=DSI GMA+ < DELZ11) -DME AN) **2 CONTINUE
DSIGHA=DSQRT(DSIGMA/NU)
COMPUTE THE STUDENT-T VALUES FOR EACH DATA ADJUSTMENT
DO 15 1=1rNSERCH J=INDEX(I) IF(DELETE(J>.OR.REJECT(J)) GO TO 15
FORH THE NORMALIZED STUDENT-T VARIABLE
TVALUE < J)=ABS ( CHANGE(J >-RMEAN)/SIGHA CONTINUE
DETERMINE THE REJECTION CONSTANT FOR A GIVEN CONFIDENCE: ALPHA/2. UITH A NEUTON RAPHSON ALGORITHM
BETA=0NE-4.0*FL0AT(N)/NU**2
EVALUATE THE COEFFICIENT OF THE BETA FUNCTION
A=(FLOAT(NU)-ONE)/TUO DEGREE=A CALL DOEGMAtDEGREE 1 GAMMA) COEF=GAMMA DEGREE=B CALL DOEGMA(DEGREE»GAMHA> COEF=COEF*GAHMA DEGREE=AiB CALL DOEGMA(DEGREE tGAMMA) COEF=GAHMA/COEF CONTINUE
EVALUATE THE DERIVATIVE
BSAVE=8ETA DEGREE=(NU+ONE)/TUO [iF=COEF*(BETA**(A-ONE))/SORT(ONE-BETA)
EVALUATE THE FUNCTION
F=DOEGAU( DOEBTA )-(ONE-ALPHA)/TMO BETA=BETA-F/DF BSAVE=ABS(<BETA-BSAVE)/BETA) IF(BSAVE.GT.TOLER) GO TO 20
CONVERGENCE ACHEIVED
CONTINUE
COHPUTE THE ANSCOMBE CONSTANT FOR OUTLYING T-VALUES.
C=SORT((ONE-BETA)/FLOAT(N))*NU
CHECK FOR OUTLYING T-VALUES
IF(CONSIS) GO TO 60 DO 35 1=1iNSERCH
J=INDEX(I) IF(DELETE(J).OR.REJECT(J)) GO TO 35 CHANGE(J)=ABS(CHANGE(J))*100.0 IFUVALUE(J).LE.C) GO TO 35
OOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OO
O OOOOOOOOOOOOO OO
O O
rofo
rjrjM
KJrororjrorjM
Mfo
rj r
oro
ro w
ror-
jrorjro
roro
ro M
ro roro
roro
roro
Mfo
roK
Jfo
roro
»-
»•
<feJ»At4UWWWO)l4UWUrJMMMN)l,jUtOK}tOMMMMMMH>MHi-
koOOOOOOOOO'4,0,0,0,0,C,0>0<l,0(DOODCOOOOI)ODIXICD(O
JNJMsJM>J NJ
WI0
^kO
'4O
M0«tfl
t4N
i-'O
,0(D
M0
vL>I^
UM
MO
,00)s
J0«m
*(4
MM
O,0
CD
SJ0>U
I->U
r0H
>o
,0C
0>J0«C
'I^W
NM
O,C
CC
I,«i0
kU
I>M
MH
O<0a)M
0>U
>^ O
J
nnn
co
o-o c
o cn oj ro o
oo uo m ro o <o oo vj o< cnoi
•••* ••••
•• ••
OO
O ooo
(hM
O
UI
WM
H(_
CC
-n
m*n ii2
o?o
33MC3
—T—I
mcnm
m
n
Lzr -*-»
mnm HH
NI>H -
I-<
nnm
-<
-<
-*O-- - -
ON
CH
OH
O^.3J"NM*N
zt_
»-i~
o
—I
IT? M
O
h-»
mm
com
zrj->t_zr-
cun ti m
2-<
-<
om
C3-
* 30
3>
C.C
C-<
—
I n»3o*n rn
W»-h
•-«
—> 3
©-4
-IP
3
*7>
m m
m
m
»
—t—im
j> -H—
I—( -
4 -<
-<•
c
- O 30
MM?? M
oo*
MO-
* -i Mm
can
^X
»-H
r-
—itn
cx>
z
m— n
-»c.»
t»
—m
»-"
• i.
«• w
o
O 303?
HH
O
NC
WD
MU
SJH
H
a«37"nfrn it o
mm
ZLH
«0-M
-t
—»«
—
*-4"» MRNTNMNJ
U -zcv»t
cum
ii m
z-<-H
om
CT-
mnc."
OU
AK
M
tn
oo
—itim
<re
?o
r~—
«cn
ci>
z
m--
» n
~T_
;O »m
mx»
OS
NM
EN—.
3?
T>
C3nN
CM
DH
(_(D
O»H
H
roo
jsT
im-n ii oro
—im
m
tjz
lm^O
^H
3oa>*-
*-»
II —
|-H
D
M-*
mm
oin
iA u
nnH
H
xzn-uzrH
Hio
-<-<
-cin
m II m
>-"- •
«•
«•
m>-4n>H
+ Z
O
MM
C
D
z-<M
orn^-<3J
oo
O O-*
MTO
mnU
TJU
3>*
ww
-ifMm
coo
»2>»-4
RNW
C2>z
m-- n
-*C
_33
•• -<
o
o=c—I
ox
wm
CN<
^ x»
—I
!>•
or^
a=i-»c*-«
t_«s4~i
o<-»
3o-n
mi ii o
m
ZLH
^O
^H
—
mm
torn
o* ii h
zo
Lzr
M-<
cum
n m
-
mi>HO»H
cs»-»
CH
O »
RRIMON
I 30zzc_
HCNM
"NMNO
r-z-<nnm o 30 o 3D c
m C
J-
o--*
M z>
o m
w
o
*»»
CO
H
•n
•.M
w —|W
-<
c
-H
z>
C-
w
H
1— m
o
o
H
-<
••
o
CI
z
cn
—i
»-l
—i m
a
U)
-H
o CMO
o
-<
z
3>
C?*-
«
-4
*n
to
r~3>cn O
M
CHZ
•H
M
mx»
ii V
I Z
KJ
o
m c_c.m
w«-C
»
o Z
-
*• o
o C
OX—1
o
mz
o 30
03>
H
z
H2
z m
cnm
x>
z«-<
. ifi
z
n
m
w
3>
cn
SO
M
CO CO
WTN ItlH xo
<£Ui ZA o -
H-<
ruJ
hI3
*—OX
til »--*»-I-I-JZ
OR—O 3NU
cn kM
«— CJ HtlJ w
Q
»-ui * OX^-
UJZ—-O 0CC9U1
*r ii -a
£ O COO. <Z
li.
t— o
o un
to O UJ»- •»
V.XO A
—u. —.-J
-)U« ~«R —
—'to »HlLl
^
^x")a.,n
»H
0
OH K—»z
hO
«-5lxlC3h->-<r A—W<XO»-XUJ NN1U1I U
HU3
>->-H ii n j
ziv »-z
l-h II HNIlltftUJUiriH
•—i— •—« o.a.A»-i<g>-a.i—
^HICX—'O—-T-CCZ UJUJO II QJUJU-UILLCCUJO •
~ ~ll-
o
i-t CCQCO
•>
coz ro
SiS 00
0
HO
\_l K-
Ul ON A
Z
UJ a. 4
O
X
1— b*>
cn o
••
•
=>• r>cn
A Ul
UJUI <E
A
ccoc cnro
rs N
*
x *
•»A «•
•-f*. OUI
Xli. roo
X -
ina. 00
•*r J "
»o OK
•> v.cnuicr
ro + a.
*
•» aiii • •«
<L ••H SS ,0*-
UJ tojno" «-«»—
s« <zo II -JXUJO •-
MI - a otn»-i
U.O.UJX cn
•» nO
Hl«
0
jo UIUJ
ti cn -UI * H-
<T UL 33>*U S OC«
(_) OH-
J Jul
f-» » •
. U1CO
cjtn iuiu(St
II w
cn>-3
O••U2* H
Q<
u.-j'-u.u.cecn <x *ui
oc OA" OOO.UI
UIXO- •.{£
<E0" o <X
cn- £Ecncni-<cc/)«. •> •> rx
X ~uizz<X££ui •.rtK'%
«o OXHOO
I—X --*00 »<c
CJ »3UU3J MO-<TX
UJ <T*- 0
««h-lL3HQ ».«0
M
cd<x- oca:<r o-~x~
•-* u.1— •'iLUdetnjo •»
cncn «x
UJ QU. •
UJ cnAtnuicna.T-4
•umoo H-_I
co --jcnx—icnu-o -u.
o A
<I3"« o<ruja<r .ZHI«
UJ«X zuicci—cnoouiHON
crn-H >
*O
Ll •>
<
£uC
£
v. js\\\soHfl.x\
<r v.- <
TNSNSNS U.HNS
•»:>
os <x<xi—«x<r
<ro • <r
o
=3 ct-» xxxxxc** soaz
o
>- G£C£ •*QCC£.C£.C£.CCC£. •»G£U.G£
Ul OOXOOOOOOXOG.O
oc U- Lx.tj~3U_U.U_ Lk.U_ U. b~)U.O U-
A** Z»~ UJZ ocn 0_J
OH CMV
OGOOCM »o
UJ O
O
O O O OO OHi-»
H
.vm IftOOO
O
CJ CJ*-« «-l
HHrH W HU O 4
•• •••*
•*
•••*
•••••••• •••• •••• •••• •••• •• ••••«
• •• »
» •••«
••«
*»
« »
« •
••• •• »
«
|
«rm>orvcoo»o«-«cMro«rb">»©rcoo»OwcMro<*u">-or'*GDo*o«-»CMr> vin«or*»GQo«o«-<cMC£
<>r
-**biintr3ti'3imr)inminin«0'0'xo >0'>0'0«o
o«o'>or>.(s.r >srorvrvrvr s»r ,».ts«.QomcQui cicMCMCMCMCMCMCMCAMriMCMCMCMCMCMCMCMdCMtMC-jcMcMCMCMcMMCMCJCMnriCMCMCMCMCM/'v O O OOOOOO OOOOOO OO OO OO O OOO O O OO OO OO OO OO O O O/v
«rnom
cD
'-«^*r
OOVNNOCIUO OOOOOOOO
oooooooo
rzoe» UIUOMC9
zuii-a:i-a.=> zccxuxuxa
=>3<r>-ujui<r ui jnzcncn
ra
co CM ro «*• «orv r-i*rr s-«d<x«T&* A uio«r<rbi»o
n<r<z<£UJUiaccimcoacDODCDCDOM>.o><r<r N BI in M
o o «H CM
N NRA rsi CM CM N
in TN OOOOOOOOOOOOoooooooo
t-U.b_U.VH OhKOOX «OHOOl-
AC£flfUJBaJ40«H0|—OHHHOUJ
UI3«HXr(9fiOOXaUiOfUJ«UICUIQ£ o«*«»«»*z#(nj#«»ocio#4»i»ow PLi.U.U.U.U.»U.OU.U.Ii.OCflBU.U.b.QU.
O.UCLUUUUU(JUUUU(JUUUUUUUUUUUUU
OCO<r<XCJO OfO CD OOOOOO O
O coo o
ooooooo
oooo{MOOocNCMronoH«4ro<ooHm<ooooovoD
OOOOOOOOOOOOooooooooooo oooo
ooooooooooooooooooooooooooo
UJH- UJUI
CL. X H- CJ UL UJ UI UJ UJ UJ XUIUIUJXXXXXX
UJA<r<r <r<x<t-j»-«
<r<r <r >-HZUJUJZZZZZZ fiaaoauiz
«z> a: HHHQQ:X>-U)fi.aoa3X>>C003X
>-(AQ3NNHU
CO 43 0
00 0000.00000. u_
ocjcjocjcjoocjcja.cjcja.cja. 0HO*HMr*lO*4Nf)<f blO'NIOOVO
'OOCOU'OOVVUJ
OOOOONOOOONMOOOrNrsNnONNMOOOMCKCN
OOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOO
xzo>- x
cno 3:
<t z
Ol-lXU.C3l->-»-4 UlH-«UJ
44U 2rOH(vj
cni— •-•c90H<i3uiu.£uicnci)aeo
y-*-oc «xc9tta.a.x»-ia.
>~CnG£Oa:C£ ACO»-<C53_JZXUJ <£ <CUI
UJMUXZU.OO H-MCNoiuJUJiiJiwflc<ro<ici:
AACO XCONUIUJOUIO
hQOOU»AC£U)(llhU.U£Ha,HLhZABQHh(OQ<S
RO o» u. o «RO co CM A
»O r>» r-.«o ui O» A U. O
UI V A H in r- n
cDN4un
>o«u.<mAn«0in>OQUHUJVAOHr4(h •00 o
orHHrirjr
fj »o biiiiroo b"5ro b"JU"> w
>0 «o<nn 00000000000000000000000000
<0 rJOH
«rc-i v
>0 000 H
OlilOajObltHOOOtHOOOOOWO o—»o •^T-*R S» H
RIQOIOH^C^ W HHV
134
REJCT 0032 P FILTER 0036 P A 0038 P B 003A P COEF 003C P ZERO 003E P ONE 0040 P TUO 0042 P ALPHA 0044 P TOLER 0046 P PI 0048 P NYDATA 004A P IFORM 004B P BLANK 004C P BETA 0002 C N 0004 C RHEAN 0078 C SIGMA 007C C J 0088 C I 0089 C NU 008A c BSAVE 008C c DEGREE 008E c F 0090 c DF 0092 c GAMHA 0006 c C 0008 c •AIA OOOA »AIB OOOB •AIC OOOC •AID OOOD *AIE OOOE •ADA OOOF • ARA 0013
m tw •ARD 0019 • AIF 001B •AIG 001C •AIH 001D
oooi:c 0002:c==================================================== 0003:c 0004: SUBROUTINE DOEGMA(Y»GAMMA> 0005:c 00065C THIS ROUTINE COMPUTES THE GAMMA FUNCTION OF Y. 0007:C 0008:c==================================================== 0009 J C 0010! EXTERNAL DOEGFN ooii:c 0012! COMMON /MAXPIV/ UNITS(96)»I 0013!C 0014! EQUIVALENCE <X>UNITS11)) 0015IC 0016! DATA ONE/1.0/F NLOOPS/O/ 0017JC 0018!C INITIALIZE THE FACTORIAL ooi?:c 0020! X=Y 0021! GAMHA=ONE 0022IC 0023IC COMPUTE THE NUMBER OF FACTORIAL LOOPS 0024!C 0025! NLOOPS=INT(X-ONE) . 0026! IF(NLOOPS.LE.O) 60 TO 10 0027JC 0028!C COMPUTE THE FACTORIAL PORTION 0029:C 0030! DO 20 Isl>NLOOPS
OOOOOOOOOO
OOOOOOOOOO
OOOOOOOOOO
0*000 vJO»CR^MN>**
innnnn 1
1 no
11 11
11 11
11 11
11 11
it ti
11 11
u -r\
-A •n
11 11 CI e
11 11
Z»H z
11 11
oto 0
11 it
—i
—1
11 n
»-»*n H
11 u oc O
n 11 zz z
11 u 0
n 11
-n-H w
tt 11
0«-t 0
11 11
•no
m 11
11 xz 0
11 M
11 II cn c
11 II
HO
11
It -a:
11 II
Z*TJ
-n
11 II
c 0
11 II
3>-H •n
11 II
m X
it It
*~cn
it II
-e».
N/
ti II
—1
H II
•01
II tl on
II 11
n n
Z»-i
ti 11
-»Z
ti 11
-1
ti n
11 11 00
11 M
»-H7?
0 n
zz>
it N
-<l—
ti it
11 11 OO
11 11
2>~n
11 n c
it n
u>-*
n 11
cox
11 it
i-rfn
11 n
3>
11 ti zm
11 11
X
11 11 CH
u 11 cm
u 11 »»
ti it 11 oz
S5J>
ti u u
3>r-
u 11
—1
11 11 c
n 11
3D
n 11
m 11
U •
11 11
M n
n u n
u u 11
n it
11 11
11
voooooooooooooo
VOOOOOOOOOOOOOO
77UMM04CCN(hCi|MK)MO
rjo •••••• •••••« •••••••• ••••
z>o
o on
n
C030
m
r*n
coo
000000000
000000000
000000000
-o 00 vjo» cn
c»wo »-*
*««*••••««••••»••«
onoon 000
•rnirm
3om*TJco
RM
Q
B
7JM
c
33 O
OO
raw
mro
mm
11 11
• *o coc
it 11
11 11
ti 11
cn
11 11
11 u
11 11
z 0
11 11
x» o<o
11 11
X |—N.
11 11
"O
OO
11
11 H
00
u
11 c
n ti
ZOO
ti ti
0 »o
11 11
0 z
n 11
0 m
11 11
«-*
CO
00
00
row
-no*
-»nwo QOX 0 mm O
II —1
"Tl
tl zm
3>X |
| x» 00 O
II z c
It 0-1 Z II —
—1 cc z
11 »-4
z
II 0 c: ZtOlM
x>
z
II CO n
II 0 30 !>•
-f-cc 0
II -H
II ##4###oaaxaMNa 0 z
II OO 0 3>> z
II yy
II xzo»-«o-<
x»3>3>x>x»x>mx z 0 0
XN2 z i-r*
It 0 O
It r-z
?>
»;o;o??;ozo
m m c-
m mm \
II c Z
u om z
menwwa
0 z
> no
-* \ zz z
II T|-H
U 0 z
m *n 50 T>
AZN
on
2>
II OH O
II -0
»
m z •
-•to
om-
• mm X
II 3?z O
11 CO
»m
m 1 0 O
"O
II m
m II
OOOOOOOOOOOOO vn
QNZ \
H
II H
0
II OOOOOO
OOOOOOOOOOOOO r*-<
som
« 00 c
II in
-n
II OOOOOO
HH
HO
OO
OO
OO
GO
O m
m* 1 X om
V.
II mo z
II OOOOOO
•ftMonn»oj»M004> coco
m«tr>4
«• mo
II 3
tl 0(000*0
H
1 Mw
a o;o C
11 0"0 M
II ODDTJO
M 0
X *nm z
tl x>c w
II 0*0-00
m z
N zm
H
II z—1
II •*
m W
•«
«• H
11 zm
» * oc
CO
U X>
CO
II c 0
4*
O »z
II II
c
z 0
m • 1H *0
II -n-<
II z
H
CD
X
O Z-H
»•
II cz
II »-i
—1 2>«0
"0
S 2XO w
II zm
II —1
CO
SO
II 0
II CO
TO
1 »-»
H
II
HW
II
Z>
O
X
II H
Z
II 0 -
<tn
w W>
II O-l
II 0
0 com
M-II zm
II 0
0 n
O
II • 0
II 0
0
-1
X
II zo
II
0
VOOOOOOOOOOO
VOOOOOOOOOOO
bJOJ
;n«-*
0>O
CD
vJO
»U
!.t»
C»jrO
i-»
r••»••••••••••••• ••
o o »-nnnw
07
O O
m r-o -nmso 00
-•zm JXD
a—1
o c z-t
O »
O Z
II z
O
oc
1-
s>m
3:
rr
70~0
*-+
tn wo
-no-nnTjo
«*o<*4»«»o
a?m<3:tnni
P1DM0OO
HI>
OM
H*n
000000
000000
WMNNIOM
-<tn
com
o
70
00
50?0
mm
z 0
2>
wo
X rs
"O
OH
H
no*
c TIN
zoo
0 Z>0
0 z
0 m
M CO
OC
TX
OI»
11 zzx
H3 |
H^O
Z II z
com
o m o
"V o
30
136
ooii:c 0012: 0013IC 0014! 0015!C 0016.* 0017 * C ooi8:c 0019SC 0020! 0021: 0022: 0023! 0024! 0025 i 0026! 0027 JC 0028!C oo2?:c 0030! 0031! 0032! 0033! 0034E10 0035JC 0036! 0037!
EQUIVALENCE (DOEGAU•SUN)
REAL X(7>,U<7)
DATA ZER0,0NE/0.0,1.0/, 1/0/
CONSTANTS FOR GAUSSIAN QUADRATURE
DATA X
DATA U
/.20119409,.39415135,.57097217, .72441773,.84820658,.93727339,.98799252/
/.19843149,.18616100,.16626921, .13957068,.10715922,.07036605,.03075324/
DATA UO/.20257824/
COKPUTE THE INTEGRAL
SUM=FOFX(ZERO)*UO DO 10 1=1.7
SUM=SUM+FOFX(X(I))*U(I> SUM=SUM+FOFX(-X(I>>*U<I) CONTINUE
RETURN END
»ERROR COUNT: 0000, FSECT SIZE. 0099, DSECT SIZE! 00175 REV. 5 LABELS VARIABLES ARRAYS PROCEDURES
09/16/80 BLOCKNAHES
) 10 0054 DOEGAU OOOA X 0000 P FOFX 0009 ZERO 001C P U OOOE P FtSBU 005D ONE 001E P F«RER 0062 I 0020 P UO 0021 P SUM OOOA •AIA OOOC *AIB OOOD tAIC OOOE •ARD OOOF
oooi:c ooo2:c== 0003!C 0004: 0005IC 0006IC ooo7:c OOOB'.C ooo9:c=
ooi?-:c 0012: 0013:c 001 001 c
0025:c
881 1 0028! 0029: 0030:
SUBROUTINE DOESTK(IOPT)
THIS ROUTINE STORES/RETRIEVES LABELED COMMON DATA TO/FROM THE DISK DURING TASK SWAPPING.
INTEGER RDATA(102),DISK,TTY INTEGER BUFFER(l),PULL,PUSH,NULLC3)
LOGICAL 02RICH.C0GGIN,CHR0M0,DEBUG,RESET,SHIFT,SSQMIN
REAL CNAHEI2),GNAME(4) REAL XNAME(6 >,YNAME(12),SNAME(4),PNAME< 4 >
DOUBLE PRECISION SR,AIRSR DOUBLE PRECISION Q,U,X,Y,S,P,T, QI1ATA,UDATA,XDATA,YHATA,SDATA,PDATA,TDATA DOUBLE PRECISION LASTZ(22),DELZ(22)
EQUIVALENCE (RDATAC3),BUFFER(1))
COMMON /DATA / RDATA COMMON /INDEX / INDEX(30> COMMON /TEMPER/ TAXIS<24> COMMON /HEIGHT/ UEIGHT(30> COMMON /GAMMA / SR,AIRSR
CO
o«
00 z
sk: *OCJ
•o uiouo9<rnocD
H)H
nnoaaooo«N
ooooooooooo
ooooooooooo
XUZ40 O
ui «UJO.CDX»-
3ZUJI-i-asHruzaa:xa) «ZUiUI«tAi3U13«>> O
HH
3o
jQaz(n
<r %-•
z
<c CP
h--
<c UJh-A s ->-
<ra
_ -
z --->
CJ— z
Uiw
<S
£ sem
es <x »<x
U(OOZ<nO« UJCOXQ.CNXI— cc »>o
*<r Z
MH
-OflA
lw^O
CJ >>U.Xr>-CNK a:cj»-4tj<r »-v UJUJX -2«<ICN CnG£CnZCO«OI-t—*-« zx ->•-< •.•~-<x«co
*.<£HOUJXAAZ
NXUJOX »3<L •> J •»tntD<T'-. •»
UI U)UZf4 ~*>0
ACOCK m.4
-X
-3w
ww
NOOUUJ »4X<RCO
H-
•0«-«
X'»
»->
-»-
tn>-c
oa£<r^
-«<xt-H
4hU
lMZ
vaQ
Z
JI-OO
XC
OW
D
CC XX
O
CO UJCJ
I— 3Zblt— CC
uznfiercn« U
J3U
i3«>-U
I jo
azcocn
v, *•
- -
-
•OOOOOO
rrrrrrc
rcszszr
ooooooo
AUUUUUU
o
O
cc UI
3
z
II N
o
Z
H
M
•k *
«—»
CO CO
H
Z
CO X A
V. H
• 1 \c
to H
iC cc o
•-CJ
U.O_) CO
H
cn cc
CO 3
UJCN U.O_)
H
*** j—«
CO UJ
MH z
co>-onz
A
-*• -5
A
<z 1—
A X X
%
1 A A •>
<•*
A<R AC
IMS -UJ
W
<X >-
CO ac<r
1—1 -cc
» »S
in X
CC I-
CD Z 1—
H
CJI— 1
tn<c U.""
C4
>-
UJ z
l~ A
UJ<C A
RV o- »-s
Li-
A
M
•
A
CCA CC
OM
Q
o z
U-M CC
a. UJ
O
-J •
UJ zee
CJ o
«-f oc
(M
I-o
RA •+
• •.
a. cn -J
_JUJ X
+
•> UJ
M -CJ
N
A
•-HI-<r
_i 33
*—
«r »— C£
*•
WLJ
<«•«. o z
CO II -+-o
3 <r
UJ ZFIC
•I-UJCOZ UJ
•—«-lQ£ cs o
A-"* UI
CO U_
X
X
UC9Q"
Nl UJ »Z
-t-X
AS CM UJCO
*
»—
1— -o
UJTOCK-*-H
CSO •»"K
X QO-fUO
UJ •>
3 •»
<•>» AOCOO-3UJ
««« COCO
cnv. -_J
o CT:3-)3XH
_1
>-
F£ Q->-
U-FI£XH3V3
1(S UJ
0_l*v "W
cn_i CJ
oz-z<r«-»
CO •—
« t—
UJ cn>-
cn CJ<X«-' zu:z
CO H-_J
H_JO <r H3
CiO. UJ »<H£CF) *-*
X h-
>-OH
4 UJXCO »UI*~«
H
CJ A
OS
»— H3
CiO. A CC^V- II o O 3
u_ H
A
V-CC 11 OW
»j_ »— A
UJ<I i-a.cn
<r w •
UJ Z IICZ
cc <E
wtc
W
<x z«
»-< U U.ZU-W)H
3 -A a za
_J ••-LOORMDW
CJ t—
COI— Z A •NV>")303CN
Q_ CC a.x<K
a: CUUJ
UJ w
ecu I —U_Z-J
c z
O OZ o.
w-> u. ACJZ—1
<r TO coo
o -
A II o
<Z »-<CJ
H
UJ C
»-H f«
o
UI II <x
' o »-iC
J
033
ii «#l—
•-«O
J
I—_JT—¥» UJ
=3 4*
z> V—
o
t-t o_z cn
U.&. _J
<CJZlL zz UI
U.3 u.
US <X-J
ZlL z o
A o
oo QCO
A
0£M _J
H 0A40 o
a: o
<R<R«X 0£
_J»-H UJ
CCCJCJ—J <X
_1 =y~
A
_l a:
rooscj A
CJ.J =3 o
<x<r<x O
-J-'
r> _l
CO
_l
t-z «I
-J-J _J
i— _I
I— <x<r<x
3 «lL
<x o
<E <r
UiO Z <I<X
<C UJ o
<x UJ A
•• QQQ Z OH
CO
A
O A
CJ CCCJ
UJ CJO
o
cc A
CJ C£Z>-UJZ
CJ. uuu
CJ CJCJCJ
CJ CJCJCJ CJCJCJ
^»*O
NO
DO
>«aa
<r «x<r<x <r «x<i<c<r ooooooooo
OOOOOOOoo
=> oz«roo)o»-(-A OU.QOOJZUJ
(O
QO
ZS
HO
Hft:
«» 4ft 4» * «*
«» LL. U-L-U-U.U. ILDU.
UUCuUUUUUUUU
o CCCM«T COOCXTCJOO o 00«n00Nr-i0H ooooooooooo
ooooooooooo
<x UI Ui UJUiUiUJUJ
<r u i<r<E<r<i«x<x
A3SZZZZZZ
Q£ CDZOOX>*(nu.a3
UU
O.Q
.UU
UU
UU
&* woo HONOHCM
ooooooooooo
ooooooooooo
ooooooooooo
OCT) CJ_J UJ
oo
ccca <rn CJ
o<t •• ••••••
••••
•••• •••»
•••• ••••
••••
•• •• •••• ••••
»••• •••• •••• •••• •• ••••»
• •• ••••••••
wr-4ro*r uT»or>.ooo»o*-«r-iro
-b")"or s«.rooO'-«rjro<"ij"3ofN.coc>.o»HCNro*r u'j'orooo
o woii-o"in»or ,scoo ,»o»-tcNro*ruT*ojN.cc:
MrofOMwroMroro-r-^r
--mmiiTijiu'iii'Jii'Jinwb'j'O'O'O-O'O'O'O'O'O'OrxiN.rsfs.r
rsrrsrNfvooaDcxjoooocDcDcouj
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOA
o ooo OOOOOO OOOO OO OO OOOOOO OO OOOOOOOOOO OO OOOOOO OOOO OOOO OOOO O.'S
t-»2£ JZMUOSbJIi.
a. cn >- _i cn cs cc A
to m 0HI-33C40ZUUIZ H
BH
o.a
.ouuatf(
n
&U
I«0>C
4
in «rro&. a> OOOOO
ooooo
oooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooooo
OOOO OOO
o*oco*»JO»ai
c-irJ»-'0'<3CD~sj<h.ui
wrj»-»0'0a3'
>sio»ci4»uttj*-»o>oa3
w«si»-O"
300vjCKtnx»
oo
o o
o o
m m
MMM H 30 3030 OO I-OOOOOOOO
e>
a zzz z mmm OO O OOOOOOOO
c
c HHH -1
CC o 33331332
M M
• mmm m
f-r-i— wee M 33333333
c
c
QOCl o
r-r-o oooooooo
3>
3>
mmm m
mm
I> zzzzzzzz
r-
r~
303370 30
r*
m
m
=030X> •o-o
"s,
v. -s,
«S»
z
z
TiTZZ
J •H 0«3I 37 33 o W3cies-«r"zco
o
o zem
—1 xwm mm to ci>»»nc»*<
m
m
3>3>0
-<
oo 30 »X3H3Z3(0
ZHO
«•
Jk<« o
» MM M Z"W»T) m-H
mx>?o O w-gw enen o
mi* m
m H
«• 30-HW X
C
37 3
MM-.
CI) ^o-< OO
WV.S.SSSN
OOP 7; CXZ zz o
^K)T
i~—j>
a OCWTJHHXO
zncocflTimoraj
» w3? 3? —l-t»3 2>0 o MZBmHZ«
ei>o3:r7jrMtnHi>-om Z O m H«m MA
CT
30M- I>3-<Z>C
T>3Z>O-IOC:3O>3-H3OO
i>
rr o a:-
—* 30A H
z-
HmrHxnsminoo
3: m
OJw z nwM»«omx
!>'-••• pai's'NH'c
ws)
m •*
30
tflr-ro
50 "•
<•
x-»ai
roM« -
^ o
T»
-H — C o
<• +o
a»
«•
— « «
ro
x» Z
tn-« X 00>»
3TZ-
*-"•
«• •• 5030
O -4
C3 3cn
30 K) 70 Ow
<• >tn
«• 30-4-- - ?0;BCK?2079ee
w m
m CfiZ
o O-
33*
Ce»W3?C3DI>»001>»
/>
-H 3tn»
-<<
• 3 OH
»mr
Z 2> t?0
Z>
W
«• 0—-3 «nx O MH
x» -
w 33 ??<• m e—>
zm
»u)H
«•
2> m**i-» 3:o»
- 3
mz
cn-
—J Z rjk
OTJ
n»
«NJ
H
*TJ AC-o*
X
«• 3
AO- 0»OlMCOw«-wwv.«
s CZ wrn-«
z-<
so
»m
O— OO^ww^w. <•
m —H
-m-*
o
m-WW Wv>s/l« •«<•<«
*•«»
•a ??
z 3
0"0
w
ww<* ••
u M OM»
ro
o
z
«•
— "•
w o Ow3 w
-•
i>- m
V 3
30
r-w—
en
m C3 w
I>
<•
Ow
A o
-H H
T;-*
z
2>
Tl mo
<•
z>
«•>»
-*z
r*
3
h*
>z>
«•
m O
to
•H
ro w
« m
o
*TJ —»
35 ro
mw
en*
030
30Z
.2>
MS
—m
z » 3 m
nnnnnnnn ooo
ii II
n II
TI II
II II
c e
«H W
"T? 30
C O
—I c H
in
H-I
c: z
w m
30 o o
c: o
—i m
»-# o
3»
2>?3
COO
tnc —
i Q
}M
»z
r-m
3> zo
oc
m-t T?
x>c
#*ZZ3C .HHHZHSZHTJH T>3>t
J f)TN
3>I>7JC
OAU)7J»(OBD
H? ocn
MM(T10
A)(/)HINXM>»
3D o
«I>050
013N030 7JHH
cn 3
30 C3
MEM MN»»
TO
»-<
0CO
HH OX
Z
oooooooooooooooooooo
oooooooooooooooooooo
ooooooooonooijjvjvjNjNjooo
edx* eo 2> >0
03*10-cnoc»iro o-tko
oou
"OTJUDTjTJTinnnnnnnnnnn
ccH
Mor(n-<xcoa)-<x
zpi»zm»ac0oo
HOHRNHHHHHH
cnxcnx
oooooooooooooo
oooooooooooooo
OO
OO
01O
0»W
MM
O0»W
H
OOOO OOO OOOO OOOO 00
oooooooooooooo
3: en
XJ>
"030
Mf7
OO
oo
DM
FR-T CO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOQooooooooooooooooooooooooooooooooooooo o
Mh4oooooooooooooooooooooooooooooooooooooooooooooooo o
ioigHMMHHHMKHOooooooooo
>o<0'C'«*o<i'0'4*o<oco(sco(Da)QocDaoocosis>jMNJNiN)MMo>o>o>o>
o>o>0'0«i>scncfiuiciiu!Uicncn c
n M
O<C
OD
MO
«U
IJkU
K)H
O'O
OO
s)0
>(.'I^M
rJ^0^09M
I>U
I^U
K)K
O'0
(D,><JO
«C
4^M
tO^O
<O
OO
s||>L'lik
C>JK
)HO
<O
Q)N
JO
«U
^U
NH
O'O
I9M
O«U
I»U
(lJH
•• •• ••
•• •••• ••«••••• •• •» »
••••• •• *•»••• •••»•••••• ••*••••• •••• •••••••• •••• •••• ••••
««*•
••••
•••»•••• ••••«••« •••••••••• ••
cnnnoM
o
ui
ooo o
ooo
ooo
ooo
o o o
Ul
Ut
O
oo o
«-<
«
CV)CC
« o cc OOO PM c cncccc O ooo?;?? 3
? 39 ooa o oa
oo o
o-»
own 3?XZ2
o o 3050 I> 1>1» o~n
"9 »zzzz o 2>i>i>ocm
m Z>2> 3>
3> J>I>
z z
c— Hl>HM
z MM rrr o 0 (0MHMM z
-i
—1—1 —1
-H HH
-<ro—• c OKH*MO-<i-zo HHHHOCCtfl c -4-« p*r-r- 3>o
3>-T I
.I.I. 1
c rrr-iHo 39 1»2»I»
3> 3>3>
<OH m oMwotoo n o mTocncnozz
m mm
l-lsj
-<
II cncncncn m
J»3>39 M
3>3>
M z 39 ZM
II zc
-<CJ
tl :HHM
so
*Ti-n-
n uso
m c—
39
m cnzso M
I>M
-HMC
—• H«H-<H2H
II —i
—I-H «»«»0OM
-H
it c 30« Z> o
cn**i
n m
M II
tl It
II IM HMWWHWWM
HH O MM OO
«H Mvw%
w HHOv33 m »MZ
"N,. xo
HH z Z-<HHZ«<>-MZ
-<70
|| If
2T—• —»
«
-<-<
roQ3>x Z •H II
11 II
11 o OOT? ii
ii m
H\O
cn
-•NSO
J>
CI-*»«
• rocco«
«• (OCCCHM4k o
<• "•
cncncnr-w m
toccccn o cnu)Z2?Jo
3D 390 m
"Z
•«-o-
to
H3J22R IDO
i—
1 If
"ZZZZ 3>
m "•
•• H M
V.
II cn wO* zo o M\HH
«-»
»-»
c oo 03930 o o HMMHC) r* 3J»SX> o cno
•m z»r
vt -<
\
o 00>HH MM z uio
M2>X» o o
»»M39—1
o 1»SS
-O cno
z
o -<
<~>ocncn v w
m cnzz
x>
x> *cncotn"
i> zzcnm»
so
cn** N
•m xo
H
o o z
-I
—i
ZK"V
0 1-
r~
z agzn o X K
M "O
NO
-n
r-z m
M o
~ II
so
«•»
! « — crc
ii 0 mm—
v.-<o
-s. "O
NO
m m
i w
CUvw — cn
M c-n
-»-< c z
HH KW
rotnui
•a >s.
H
i -<
cn ZWV.+
II z o zo
>• * z 2> X***w
-n
«•
<•
39 *C"*1
-0
-n
-<
—.
cn
P»C CO
MjO
*-*
cn OTIO«
p-??30
o OZN M
ZOCnC"DM39
30
« H
HWOZ zr*
-n -IZ
00
cn OI« 33• «* c c?o
z
-n
»oznD»m
**
x>
M M
(OK* M M
r— cn*
i>i»
cn
m 3>I>
oo
3!3>DHOH CO
M
o
M \/
— NH -HO
o
~so
-i-i
-n N.OIXUIO
-4-i
0 \Z3J M
nrMxaw
o
—i
*—»
•-« wen
cn-» c nm
M r~
»o
cn J»l>
M mi>
mZ—»"T3 s
o o
H
N w
cn-
*-» M
in
« •• w o OSWN* o
«• «•
cn NZ ro
o
\
-<
- •
vj M "W
- o as
«: OWys
r~ DC
ZK OTJ
WCMM—7;M
z
-< cn
HI
OJ«-* Qw
-n
MM
• a»v.a»— M
• C
•• 0 w
CO
cn c
II M+
so
It o
men
99 SOMOM o
cncn
O-H
•• i> •«
c z
M c MO o
M«"
Z> coooo cn ?;p;
O
—1 3
*• z w * z
«• r~
•H z- o* o
ON
o
h* H •W t-L
-UT? zz
m M
« •
-i zz
- »s|
O
-H s«g
|--H
I o
M M o
»CD—H
w cn ©»0
00 o
M cn cn "O
* o
wM»--»o I>
m ocn
a?
-n ~ Z 39
o«o
h*
so
I>
<N0
•
z
m Ul o o
cn
0"*1 M
O' o»cnrow w
o m
M -s—
so
N W
O
1— o
*n c
—• r- x X
ON M
— OO*-"- 4k
z
«n
Ul
m 3>
m C
GJ M
ro
w —i
so
\
-H
i-z
•« ••
••
x> *•
M X
m M
w o
o
cn
M so
r~
r*
n
so
-H
m w
c
Cfl
CO
x> H
-4 o
M z
j> z
« m
*NI
x> SO
m
o
z
«•
cn
<*
o
00
o
cn
35
o
*n z
x>
o z
w
x>
<o
"0
z z
O
cn
"O
m M
M z
-H
cn
c
M cn
o z
cn
140
0122: 0123J20 0124! 0125'C 0126! 0127! 0128:30 0129SC 0130! 0131: 0132i4S 0133: 0134:c 0135: 0136: 0137! 0138: 0139! OHO: 0141: 0142! 0143: 0144! 0145! 0146! 0147: 0148:c 0149!C oi5o:c 0151! 0152! 0153! 0154S25 0155! 0156:c 0157! 0158: 0159:35 oi6o:c 0161*. 0162: 0163S40 0164:c 0165: 0166: c 0167: 0168:c 0169:100 0170: 0171:105 0172! 0173! 0174:110 0175! 0176: 0177: 01785 0179! 0180! 0181: 0182:115 0183: 0184: 0185:120 0186:122 0187:124 0188: c 0189:
X(I)=X(I)*<100.-PROX<3)) CONTINUE
Y(IF(7))=Y(IF<7))*100.
DO 30 I=8>12 Y(IF(I) )=Y(IF(I) X1000000. CONTINUE
DO 45 1 = 1 F4 S( I)=S(I)*(1.0-SASH)*100. CONTINUE
SASH»SASH*100.
URITE(TTY»115) URITE(TTY»120) X(1)TXNAME(1)IS(1)ISNAME(1)>Y(1)IYNAME(1)>Y(4)
+ FYNAHE<4) URITETTTY1120) X(2)FXNAHE(2)»S(2)RSNAHEC2)TY(2)RYNAHEC2)IY(5)
+ FYNAME(5) URITE(TTYI120) XC3)»XNAHE(3)»S(3)»SNAHE(3)»Y(3)»YNAHE<3>FY<7>
+ >YNAME<7) URITE(TTYF120) X(4)FXNAME<4)FS<4)FSNAHE<4)FY(6)FYNAHEC6)FY<8)
+ FYNAHE(8) URITE(TTYF120) X(5)FXNAHE(5)FSASHFASHFY(10)FYNAHE(10)FY(9)
+ IYNAME(9) URITE(TTYF122) X(6)FXNAHE(6)FY(LL)FYNAHE(11) URITE(TTYF122) PR0X<3)FASHFY<12)FYNAME<12)
RESTORE FLUE FRACTIONS FROH PERCENTAGES AND PPHV
DO 25 1=1F 6 YTIF(I))=Y(IF(I))/100. X(I)=X(I)/(100.-PR0XC3)) CONTINUE
Y(IF(7))=Y(IFC7))/100.
DO 35 IS8F12 Y(IF(I))=Y(IF(I))/L000000. CONTINUE
DO 40 1=1F4 S( I)=S(I)/<100.-SASH) CONTINUE
HRITE(TTY F124)
RETURN
F0RHAT(//A2F'*** RECORD'.I3F5XF'PROBE'FI3F5XF + I2F'/'FI2F'/'FI2F5XFI2F':'FI2F'!'FI2F5XF40A2) F0RHAT(//24XF' [=]'F2XF'LB/HR'.13XF'KG/S'//
+ '***'F6XF' COAL INPUT RATE = 'F1PE10.3F7XF1PE10.3/ + '***'F3XF' FLUE SOLIDS OUTPUT = 'F1PE10.3F7XF1PE10.3) FORMAT(/24XF ' C = 3' F2XF 'SCFM' F 13XF 'MM3/S'//
+ '***'F6XF' FLUE GAS OUTPUT = 'F1PE10.3F7XF1PE10.3/ + '***',7X.' AIR INPUT RATE = 'F1PE10.3F7XF1PE10.3//F12X T 'TRANSPORT AIR = 'F1PE10.3F7XF1PE10.3/F12X + 'SECONDARY AIR = 'F1PE10,3F7XF1PE10.3/F12X + ' STAGED AIR = 'F1PE10.3F7XF1PE10.3// + '***'F3XF' STOICHIOMETRIC AIR = 'F1PE10.3F7XF1PE10.3// + ' STOICHIOMETRIC RATIO = 'FOPF5.2) F0RMAT</4XF'COAL'FIIXF'FLUE SOLIDS'F8XF'FLUE GAS'F9XF'FLUE GAS'
+ ' PERCENTAGES 'F5XF' PERCENTAGES 'F5XF' PERCENTAGES 'F5XF + 'TRACE PPHV'/) F0RMAT(4(F8.2FA4F5X)) F0RHAT(F8.2FA4F5XF17XF2(F8.2FA4F5X)> F0RMAT(11(/))
END »ERROR COUNT: OOOOF PSECT SIZE! 1461F DSECT SIZES 00258 REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
09/16/80 BLOCKNAHES
A>OVO*OCOHN n
<to
m«
oo
uo
oooooooo
oooooooo
I— LJ FT.«ZFT.Z
TOCZZHXXO!
>-<
Xr3
UJ<E
<I<
t=3
TOZJH
AO
XN
•ON(D4'NU.(DO>«(&RSDUIM
) u
j uj U
iiti tu u. tiiu
j uj iii a
a a ro
OOOMMOWWWW»HHH<r
oooooooooooooo
ZCO ft. o «j a
a _i cc tt u
j
«r *+ ui O
HU
C£U
3«HA
»XM
K
U. U_
CO
U. U. U
. U. U. tu U
. u. u. u. u.
UUUUUUUUUUUUUOCJUUUUUUUUQ.CLUUUUU
ooooooou«uvoooooacKnu.Muo>4UJt
<)M)tijnin 0'HHM
«OOONR<ROMOOOOCNN»HN<IRSNM
OOOO<TO'V oooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooo
££
Z
UJ
uiu
iu
iu
iu
ju
j ccn
z tucnxi-i
: <zut
££
CC
tsa
.H
k
xt-iu
ji^
cn
oj—
o
uju
ji-Z
UJ
<r <
x<x<
t<t<
x:c<x»
-<
I*:
o»—3
oujcs:_j:c
hi<
r<rr
ZZ
ZZ
ZZ
UQ
ZH
UJJZ
AE
A.3(N
AU
.«HQ
Z«
D3X
>-(NX
>-U)A
.UO
KC
I£3«A.3B
.TNA
.^M
MA
I-Z
CJ CJCJO CJCJ OCJ CJ CJ CJCJ ft-Q_ CJft- Ok. CJ U(L ft- ft- ft-ft- ft. O CXJ
o o «
h cm
ro oo o
O'«r »-• o o- c
m <
l a a uju_ *-* o
» ro i
n o
» a
a u. o
nm
«r to -
o fs
. INOOOOOOUOOOOOOOOOHHHHriNOVNOOOOHHiiH
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
O
XZO
_» a.
ui fiCQ.UH£ .jiuistt a*:
ic ft- z
jtt
MZHOOZ <100.000:
HxrjH«au<xnaoujLoxa
>-coxo ttujttottoiuozzottoz <rco<£<xtttttttt»H»-4»"ii-fi-ii-i»-«itt
>-»-• «uitt»~«i— CM ox tnzuc <ruiQ_u-cn
oz <xcno»-«<r<x<x<x:««x<x<x
<r<r —> >—
»—0:CC£U}«Z»-«OLJC-)>-OU£CCCC:A:_L»-«<X:C>-TTN U3)—
r>. ** *r rs. f
s. ui o
co cm
a o
* <
c c
m u
j cj rs *
-«
K)"O
^CO»00>A
II.OIN
I>'«QO
(MA
<•
w «h *-« CM in to w to
*r «
ooooooooooooooooo
o ID
o
mo CJ
<*r O
O
~4INOTNOOM«HCMCMTOU,)OCM
II II
II II
II II
It II
II II
II It
UI II
II Of
II II
3
II II
H-II
II <X
II II
II II
A tl
II <r
II II
3
II It
O
It II
U II
Z
11 u
<C It
H 1-4
tf It
CO It
II CO
II tl
3
II II
<r II
II 0
II It
II UJ
It oe
It z
II 0
II *-
II u.
II II
X
II u. •
II UI
A II
oa
tt «t
II z
II A
II LLKX
II <£
X
II zxt
II N.
t II
JO
II O
tt UI
II <rui
II h-
•a z
II II
M t-t
O
0
u z
u •* z
z
II u>-«
II «•»» H A
H-H
II z
II -O
_I~<T Z
tt n
1—>-II
O-XZh
•s. "N.
UJ O
n 1-
II •. *.UJ
0 O A
CO it
U)H II
to — «->A
•
Z
V. it
ZCO It
I— CM to «
«-4 O
UJ 0
11 ttz n
»-»
•--«
•s «• ft. O
=» UJ
11 OUJ
tl z cocoi—
UJ to
UJ 3 1- z
11
h-l-O
II ZD
l-H-A z X A
h-•s. O
u UI
II HHU 0
UJ z
-s»
1 11
<r cc.<x
n \ zzo
UJ M
UJ UJ
11 1—
h-tt
z> 33 A
a: UJ Z UI
11 A
ZUI ti
M •s. 0
UI z OOtt
n UI OA
n ft.
O
UJ z 0 •4-3 O
it O M
11 X
UJUJUJ A
»—
1 l-l-UJ
n A
l-UJ tt
<r CJCJCJ
CJ •1
9 vSA
11 O-
tt z zzz
"S» X z Z *I-W
n Z ZUJ
11 s UJUJUJ
O A
cc u O 3J
11 -J_l_l
3
0
u M£«
11 H
U-0, 11 z
<x<r<r 1— X U.
«HUJ £hx z
11 •— z
it 0 !>=>Z>
10 1 Ui
l-H—1 II tt
11 O coo
11 z
•t «r z ZO£
JX« 0
11 z t-O
11 z 003
H-H-
<x tl O
Xlt 1— •—
it O zz
11 0 aaa
<r <C
Q£ 3UI
IIXLU UJ
it Lu HM
11 CJ
UJUJUJ 0 A
h-ZA XA A
tt 11
11 n
it 11 11
11 11
11 it
11 CJCJCJ
uuucjuu a 1
a 1 CJ
CJCJCJ 1 (J
CJ •••••• ••• • ••*
• •• •••
• •• • • ••••
••••
••
c-^ro
-«r u-3
*o
r>. 0
01
> o
^ cm
ro
>or^
00
cn
cm
ro*rM
-> s
3r«
. co
c^
o
O O
o O
O O
O O
o »
-«w
•-* »
H *
•* *H
•-» rH
w«
-»C
M CM
CM
CM C
M fS
| CM
CM
CM
CJ JO
O
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
oooooooooooooooooooooooooooooo
142
0031: END »ERROR COUNT: 0000. PSECT SIZE: 0095. DSECT SIZE: 0018? REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
0002 0004 0006
DOEBTA OOOA T
TUO ONE X
DEGREE 0008 NU OOOA XLIMIT 0002 N 0004 BETA OOOA •ARA OOOC •ARB OOOE •ARC 0010
0009
p p
F p c c
UNITS 0000 C FfSBU 004F SORT 0050
m\ m FJRER 005E
09/16/80 BLOCKNAHES
MAXPIV OOCl
V oo oooooo oooooooooooooo oo ooo ooooooo oo oo oooo oo OOO OOOOOOO o
vooooooooooooooooooooooooooooooooooooooooooooooooooooooo
ntuK.>tc/)cflcnui^
»j»4»>MMMuuuiuuuuMrjtoKjrjMr
-JfoMMMH*MHHMMHKOoooooooo
£2 ° °
ooo
o
on***"
CO 50
ooo ooooo
rn
,C»U
)(IX
n»D
OO
OH
C
. HajcmmmiowHw
50 OM(n«7Q7-<U)
to xnrn COQH
55 HHHQ2WO
oooooooooo o o
oooooo oooooo
MOOOOOoooooo
OA
OW
OH
OM
HO
OH
oooooo ooooo O
a)-<xcDT?cn-<xoo33
zzzzzzo
»»»»»»>
rn mnHnrnm >
oooooooooooo
oooooo ooooo o
OUHHON MOOblMO
OO
OO
OO
^O
OC
OJ»
O
oooooo ooooo o
ccnuzworacHMa
mn-<i>cmc>mm2:i>
OtnZAOZSHXDH
•Hsonnrrc
:xo-om3>
oom O MPIX
wxz
oooooooooooo
oooooooooooo
CONjNiikOO OOU(*JHO>
*-cocooo4-*» eonomo.
c:
++
•»
.
-f
zm
-H
Z
WO
O
t3
B
O
OO
o
o
••O
2
>2
>
j>
a»
i>.
3>
x>
—
l«H
—«
1
-i-
H —• —4
o
I>I>
2
>J>
3>
J>
1
»I>
s>
3>
o o
C*-«
CTTJCO
-< XO 30 —1
o
(T1Z zzz
z zz
o
•H
c-
HO
J>
I>
3>
-<
x>
o
m
ZZ
Z
2 Z
Z
—1
30 "O
xx
mm
m
m
mm
O
•-•
CO HN NNN
S NS N
H4
3>m
SM
S « «
% S S
S ^
to CO
a?
o
ro
--H**1
O o
r~
-H
•o
ro
3
D* o
xxzo
co
oo
o
m
*•-
zo
ro
to
oo
x>
<«
z
COCO
•-»
w
co
*
co
to
r~
3>
M
<• X
M
oo
o
*-fc 50
m
o
m
••
uc
-n
o
o
o-3
D* zxco
xo
zxr m
o • H
xz
ro
on
o
c o
w
o oo
-h •
oro
z
m s 50
o
s.-*
m
3>0
o
50-
»-*
N
50
«•
cn
to
*-* •HZZZOOXO
o
-<
to
to GJCO
to
xxro
to
to
rn
«•
o
x
o
Ul
o
H
w
-H
W « « «
•• \»
—
S *o
CO
-n
o
M
cn
r*xco
h
4
*•
cto
o
m
M
mo
\
o-
-o
s\s
50 o
cn
oo
oo
to
m
o
o-
o—
c
ro
5050
v|
mm
to
e
N5
•
00
cn
GJ o
o
h»
W
O
NJ
O**
z*
no>
00
••
zo
o
(-*
i>o
«o
3
:
m
to
to
• »•*
•
3C
3>m
xo
"0-H
ooooooooooo
tooizoaros
m-ocmc2>mmzi>
I>CN
333A
Z3:M
3:OH
so—itnzc zoT?m
om o »xmx
X2
—
BD
OO
50
50
oooo mm
CI>CC
3>I»
crtnooxoo-icncHwT?
z»ao
zron-4z"rn»20
»-«C0 2>X><*k3>50 W-C"- i-»X03>
—-IH
-2H
C I>
CTHM
N MNPEWITNX2>
--- -C- X- >-OOH-*
-*
-OO
-**.--—
<•«• 5
0CD(N
<*<.RO
UI (MivwMinmwwo
•• —'i>otn"* o-«
- R
-4-0
E- X
QH
X ^
31- OOXmCT-»3>
cnz»fr
« h« x
•-« to -r-i <>•
to z co »
Nm
z-* xro
ma?«*
<-»» »OHO
OHW-<3:ITI-
!>••
0<* »
-^xro-ozcom
l»CJ
ZOWO
m**
m
m
mnmm
coxcoco
toco
X>- 3> o
H
z
m II
z
II -*<
n z z
O
m CO
II u
H
I>
m u
*n
II z
-»
•t*
—«
II O
II
OO
—'O
n
50
II z
O)
II ii
<• TJX»
X
u CO
»
-<- z
H
II X
II o—<m
•N
II x>
II ZD-
-
—I
it 50
II •H
O
II
m II
»
Z
to
II o
ti
z>
CO
II II
(-» z
o
n o
it to m
z
it CO
ii
M N
m n
z
II II n it ii II
o
—i
ii a it n II II II
CA)
144
T 0074 C QDATA 0000 c PDATA 0070 C UDATA 0010 c TDATA 0074 C XDATA 0018 c MAXREC 0002 C YDATA 0030 c IREC 0003 C SEAT A 0060 c NSERCH OOBO C LASTZ 0000 c NSIZE OOCO C DELZ 0058 c
INDEX 0000 c TAXIS 0000 c UEIGHT 0000 c UNITS 0000 c
MAXPIV 00C1
0001:c 0002.C 0003SC 0004:c ooos:c 0006!C=== ooo7:c 0008: ooo?: ooio:c ooii: 0012JC ooi3: ooi4: 0015! ooi&:c ooi7: 0018: 0019! 0020: 0021:c 0022: 0023!c 0024:10 0025SC 0026:c 0027:c 0028: 0029 JC 0030:c oo3i:c 0032: 0033: 0034: 0035! 0036: 0037!C 0038! 0039:c 0040:c 004i:c 0042! 0043! 0044: 0045: 0046! 0047:20 0048!C 0049:c 0050:c oosi: 0052! 0053: 0054! 0055*. 0056J30 0057:c 0058:c 0059:c
:SSG33SSS3SSSSSSS3SSSSSS23SS5 = ESSSSSS3SS=SS88SS8a3ZaS5ESSSSSMES
D.O.E. FURNACE CPU INTENSIVE MAIN-LINE
= SS3 = SS = = = FI3:S
INTEGER RDATA(102)FTTYfDISKFN0U(2) INTEGER RANGETFRANPUTIPUSHFPULL
LOGICAL DEBUGFRESETFSHIFTFSSQHIN
COMMON /DATA / RDATA COMMON /LUN / TTYFDISKFMAXRECFIREC COMMON /DEBUG / DEBUGFRESETFSHIFTFSSQHIN
DATA JOBfJ0B6FJ0B27/0F6F27/ DATA M0DEFI0PT/2*0/F N0U/0F4/ DATA RANGETFRANPUT/Z105FFZ109F/ DATA PUSHFPULL/0F1/F A/O.O/
CALL FREMAT
CONTINUE
RETRIEVE LABELED COMMON
CALL DOESTK(PULL)
GET THE OPTION FROM THE STATUS RECORD
RDATA(2)=MAXREC+1 CALL FiOPN(IiISK) CALL F«IOS(RANGET»RDATAFDISK»HODE> CALL FtCLS(DISK) I0PT=RDATA<4)
IF(IDPT.LT•1.OR)IOPT.GT.2) GO TO 10
CHECK FOR MASS BALANCE
IF(IOPT.NE.l) GO TO 20 JOB—J0B6 RESET=.FALSE. CALL DOECNV CALL DOENEU CONTINUE
CHECK FOR A COGGIN SEARCH
IF(IOPT.NE.2) GO TO 30 J0B=J0B6 DEBUG=.FALSE. CALL DOESET
JMP J0B=JGB27
PUT THE OPTION ON THE DISK
145
0060! 0061! 0062*. 0063! 0064! 0065! 0066S 0067JC 0068:c 006?:c 0070: 0071! 0072 J 0073! 0074! 0075J 0076SC 0077!
I0PT=I0PT+1 RDATA(2)=MAXREC+1 CALL F»0PN(DISK> CALL F*IOS(RANGET>RDATA»DISK.MODE) RDATA<4)=I0PT CALL F$IOS(RANPUT>RDATAfDISKfHODE) CALL FtCLS(DISK)
SWAP TASKS TO EXECUTE THE OPTION
CALL DOESTK(PUSH) CALL TPNf1(JOBrNQUiMODE) CALL RiFOF IF(.TRUE.) GO TO 10 A=ALOG(A) A=DLOG(A)
END ERROR COUNT! OOOOr PSECT SIZE! 0156. DSECT SIZE! 0001; REV. 5 LABELS VARIABLES ARRAYS PROCEDURES
) 10 0018 TTY 0000 C RDATA 0000 c FREMAT 008B >20 0046 DISK 0001 C NOU 0000 P DOESTK 008C >30 0058 RANGET 0002 P F*OPN 008D
RANPUT 0003 P F$IOS 008E PUSH 0004 P F$CLS 008F PULL 0005 P FtMDl 0090 DEBUG 0000 C DOECNV 0091 RESET 0001 c DOENEU 0092 SHIFT 0002 c DOESET 0093 SSQMIN 0003 c TPNI1 0094 MAXREC 0002 c RIFOF 0095 IREC 0003 c ALOG 0096 JOB 0006 p DLOG 0097 J0B6 0007 p FIMD4 0099 J0B27 0008 p F$V41 009A MODE 0009 p FIX1T 009B IOPT OOOA p A OOOB p •ALA 0000
09/16/80 BLOCKNAMES
DATA 0066 LUN 0004 DEBUG 0004
oooi: c 0002!C 0003!C 0004! 0005!C 0006IC 0007!C 0008!C 00095C 0010! ooii:c 0012! 00131c 0014!C 0015:C 0016!C 0017! 0018! 0019! 0020! 0021! 0022! 0023!C 0024! 0025!
SUBROUTINE DQESET
THIS ROUTINE INITIALIZES THE COGGIN SEARCH SPACE SSSSSSSS3SS3SSSSSS3
5027:c 0028! 0029!C 0030!C
LOGICAL 02RICH>C0GGINrCHR0M0>DEBUG»RESETrSHIFTrSSQMIN
INTEGER TTYiDISK
INPUT IS FROH LABELED COHHON /SYSTEM/ OUTPUT IS TO LABELED COMMON /SEARCH/
COMMON /LUN / TTY«BISK>MAXREC»IREC COMMON /BURN / 02RICH.COGGIN.CHROMO COMMON /DEBUG / DEBUGrRESETiSHIFTrSSQHIN COMMON /SYSTEM/ Q<4)»U(2)»X<6>»Y(12)rS<4)»P»T COMMON /SEARCH/ QDATA(4).UDATA(2).XBATA(6)»YDATAC12>»
SDATA(4>rPDATA>TDATA
DOUBLE PRECISION QDATA>HDATA>XDATAiYDATAiSDATArPDATAiTDATAi QrUfXrYfSfPiT
DATA 1/0/
INITIALIZE ALL VARIABLES FROM DATA
146
0031!C 0032! 0033! 0034J10 0035SC 0036: 0037: 0038:c 003?: 0040: 0041:20 0042SC 0043: 0044S 0045130 0046:c 0047! 0048*. 0049:60 0050:c oosi: 0052:c 0053:c 0054:c 0055: 0056:c 0057! 0058 :c 0059:c 0060: »ERROR COUNT: OOOOj PSECT SIZE: 0125>
DO 10 1=1 »4 QDATA(I)=Q(I> CONTINUE
WDATA(1)=U(1) UDATA(2)=U<2>
DO 20 1=1(6 XDATA(I)=XCI) CONTINUE
DO 30 1=1 »4 SDATA(I)=S(I) CONTINUE
DO 60 1=1R12 YDATA(I)=Y(I) CONTINUE
TDATA=T
START COGGIN SEARCH
IF(.NOT.RESET) CALL DOECOG
RETURN
END
LABELS VARIABLES ARRAYS
>10 001C 02RICH 0000 C a 0000 c >20 0039 COGGIN 0001 C U 0010 C >30 004E CHROHO 0002 C X 0018 C >60 0063 DEBUG 0000 C Y 0030 C
RESET 0001 C S 0060 C SHIFT 0002 C QDATA 0000 C SSQMIN 0003 C UDATA 0010 C TTY 0000 C XDATA 0018 c DISK 0001 c YDATA 0030 c HAXREC 0002 c SDATA 0060 c IREC 0003 c P 0070 c T 0074 c PDATA 0070 c TDATA 0074 c I 0000 p •AIA 0009 *AIB OOOA
DSECT SIZE: OOII; REV. PROCEDURES
F«HD4 0074 DOECOG 007B F»RET 007C
5 09/16/80 BLOCKNAHES
LUN 0004 BURN 0003 DEBUG 0004 SYSTEM 0078 SEARCH 0078
OOOliC 0002!C= 0003:C 0004: 0005!C ooo6:c ooo7:c 0008 :c ooo9:c==> ooio:c oon: 0012: ooi3:c 0014! oois'.c 0016: 0017! 0018:c 0019:
SUBROUTINE DOESTK(IOPT)
THIS ROUTINE STORES/RETRIEVES LABELED CONHON DATA TO/FROH THE DISK DURING TASK SWAPPING.
SS8SSS85SA9BSB3SSSSBSSSSS3SSBS:S:S338&33SSSSSBS8SSA33
INTEGER RDATA(102)RDISK.TTY INTEGER BUFFER<1)RPULLIPUSHINULL(3)
LOGICAL 02RICH>C0GGINICHR0H0»DEBUG>RESETRSHIFTRSSQMIN
REAL CNANE(2)RGNAME<4> REAL XNAHE<6) R YNAHE (12). SNANE<4) >PNAHE (4)
DOUBLE PRECISION SR.AIRSR
147
0020 0021 0022 0023 C 0024 0025 C 0026 0027 0026 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 C 0041 0042 0043 0044 C 0045 0046 C 0047 0048 0049 C 0050 C 0051 C 0052 0053 0054 0055 20 0056 0057 0058 10 0059 0060 C 0061 C 0062 C 0063 0064 C 0065 0066 25 0067 C 0068 C 0069 C 0070 0071 0072 C 0073 0074 C 0075 C 0076 C 0077 0078 0079 0080 0081 0082 40 00B3 30 0084 0085 C 0086 0087
DOUBLE PRECISION Q>U>XrYrS>P>Tr QDATA.UDATA.XDATA.YDATA.SDATA.PDATArTDATA DOUBLE PRECISION LASTZ<22>»DELZ(22)
EQUIVALENCE <RDATA<3)»BUFFER<1))
COMMON /DATA / RDATA COMMON /INDEX / INDEXOO) COMMON /TEMPER/ TAXIS(24> COHMON /UEIGHT/ UEIGHTC30) COMMON /GAMMA / SR.AIRSR COMMON /VECTOR/ LASTZrDELZfNSERCH COMMON /LUN / TTY.DISK.MAXREC.IREC COMMON /DEBUG / DEBUGtRESET»SHIFTiSSQMIN COHHON /BURN / 02RICH.C0GGIN.CHR0M0 COMMON /NAHE / XNAHEiYNAMEiSNAMErPNAMEiCNAHEiGNAME COMMON /SYSTEM/ 0(4)»U<2)»X<6)rY(12)iS<4),P»T COMMON /SEARCH/ QDATA<4)fUDATA(2>»XDATA(6>»YDATA<12)i
SDATA(4)1PBATA1TDATA COMMON /MAXPIV/ UNITS(96)»NSIZE
DATA IOSPUT rI0SGET/Z109FiZ105F/ DATA PUSH»PULL/0f1/F I»JIM/3*0/ DATA NUORDS/O/, NRECRD/7/r NULL/1t 0 , 0 /
NUORDS=<RDATA<1)+l)/2
CALL F$OPN<DISK) IF(IOPT.EQ.PULL) GO TU 25
SAVE LABELED COHHON ON THE DISK
DO 10 I=liNRECRD DO 20 J=1rNUORDS
RDATA(J+2)-BUFFER(J+(I-1)*NUORDS) CONTINUE
RDATA(2)*MAXREC+I+3 CALL F$IOS(IOSPUT>RDATArDISK>M) CONTINUE
CALL FtCLS(DISK)
DISABLE "C WHILE SWAPPING TASKS
CALL UMNTR(TTY».FALSE.)
RETURN CONTINUE
ENABLE ~C AFTER THE JOB NUMBER IS IN THE DCB
CALL F$IOS(IOSPUT»NULL»TTY»M) CALL U$INTR(TTY».TRUE.>
CALL FIOPN(DISK)
RETRIEVE DATA FROM THE DISK-
DO 30 I=liNRECRD RDATA(2)=MAXREC+4+NRECRD-I CALL F*IOS(IOSGET>RDATArDISKrM) DO 40 Jsl»NUQRDS
BUFFER < J+(NRECRD-I)*NUORDS)=RDATA t J+2) CONTINUE
CONTINUE CALL FtCLS(DISK)
»ERROR COUNT! 1 LABELS
RETURN END
0000» PSECT SIZE: VARIABLES
0175* DSECT SIZE! 0012$ REV. S ARRAYS PROCEDURES
09/16/80 BLOCKNAHES
148
)25 005D IOPT 0009 RDATA 0000 c FtSBU 00A4 DATA 0066 )10 004E DISK 0001 C BUFFER 0002 c FSDOO 00A5 INDEX 001E )20 003A TTY 0000 C NULL 0002 p FIOPN 00A6 TEMPER 0030 >30 0099 PULL 0000 P CNAME 0034 c F$MD4 00A7 UEIGHT 003C >40 0092 PUSH 0001 P GNAME 0038 c F$MOO 00A8 GAMMA 0008
02RICH 0000 C XNAME 0000 c FtlOS 00A9 VECTOR 00B1 COGGIN 0001 C YNAME OOOC c FtCLS OOAA LUN 0004 CHROMO 0002 C SNAME 0024 c UtINTR OOAB DEBUG 0004 DEBUG 0000 C PNAME 002C c F$RET OOAD BURN 0003 RESET 0001 c 0 0000 c NAHE 0040 SHIFT 0002 c U 0010 c SYSTEM 0078 5SQHIN 0003 c X 0018 c SEARCH 0078 SR 0000 c Y 0030 c HAXPIV OOCl AIRSR 0004 c S 0060 c
OOCl
P 0070 c QDATA 0000 c T 0074 c UDATA 0010 c PDATA 0070 c XDATA 0018 c TDATA 0074 c YDATA 0030 c N5ERCH OOBO c SDATA 0060 c MAXREC 0002 c LASTZ 0000 c IREC 0003 c DELZ 0058 c NSIZE OOCO c INDEX 0000 c IOSPUT 0005 p TAXIS 0000 c IOSGET 0006 p UEIGHT 0000 c I 0007 p UNITS 0000 c J 0008 p H 0009 p NUORDS OOOA p NRECRD OOOB p •A1A OOOA *AIB OOOB
oooi:c 0002:c 0003JC 0004.C 0005SC 0006!C 0007!C 0008JC ooo?:c ooio: ooii:c 0012: 0013!C 0014! 0015: 0016: 0017 5 OOlBiC 0019! oo2o:c 0021: 0022: 0023:0 0024: 0025: 0026:c 0027! 0028! 0029! 0030: 0031: 0032! 0033! 0034: 0035: 0036SC 0037:1 0038! 0039:
THIS SUBROUTINE IMPLEMENTS THE MODIFIED COGGIN ALGORITHM TO MINIMIZE INSTRUMENTATION ERROR ON THE D.O.E. COAL FURNACE.
SSSCSS3S=SS23==S==2SSSSS
SUBROUTINE DOECOG
IMPLICIT DOUBLE PRECISION <A-H»0-Z)
COMMON /VECTOR/ LASTZ,DELZ,NSERCH COMMON /LUN / TTY.DISKrHAXRECfIREC COMMON /BURN / 02RICH»COGGIN,CHROMO COMMON /DEBUG / DEBUG*RESET.SHIFTrSSQHIN
DOUBLE PRECISION LASTZ<22>,DELZ<22>,STPSIZ(23),F<4>,Z<4>
INTEGER I VIA IT C 2) INTEGER TTYfDISK
LOGICAL DEBUG,RESET,SHIFT,SSQMIN,DONE,FACTOR LOGICAL 02RICHtCOGGINrCHROMOrTRUErFALSE
DATA SSQMAX/1.0D10/, IUAIT/0.1/ DATA FACTOR/.FALSE./, DONE/.TRUE./ DATA TRUE,FALSE/.TRUE.,.FALSE./ DATA DENOM,TOLER?CONVRG/1.0D-10,1.0D-6,1.OD-5/, Z»F/8*0.0D0/ S5W ITER/O/ DATA ZEROrONE/O.ODO,1«0D0/ DATA CHECK/0.ODO/, STPSIZ/23*-O.01D0/ DATA I,J/0,0/ DATA STEP,BASE/2*0.ODO/
CONTINUE COGGIN=TRUE ITER=0
ooo oo o © ©oo©oooooooooooooooooooo oooooooooooo oo©ooooo oooooooooo©ooooo©©© o
I—0000000©0000©0000000ooooooooooooooo o©ooo000©00000000000©©00 o
MOOOOOOOOOOS)'O<0S)*0<OS)>0«0D0)A)(0CDT9C000CD(DMM'SJNJNJVJMNJ
M0«0«(H(K0>0«0>0>00 0
< CICUNCICNCNCNCNUUI^IK
^
0,OQOM(HC1
UMHKO'OCO>JO>L'1I»UMHO*OCDM(HU>WTOH'0,CA}'>G(M'I
MMHO'OA)
,<J(>C<LI>WRJH>0<OA3>JO«(.N>UUMOS)00>J(MNWK)KO
•• •••• •••*
••*••• •••••*••
•••««••* »• «• •#•*»•••«•»•«**•
««••#» ••
woon
ooo
ooo ooo
ronon
ooo
i-» ooo
i-*ocn ooo
o
o
tn
o
ON
*nN
O*n
NO
cn
oa
J-Ti»s
4"Tir
si 0
»-«cn
tii-s
i c
HM
0 *»
INZO
•H
TI
-n »>*
w *m
r>i c
n z
*T>
0—• —
cn
X
-0
•n
m
X
•——
tno
—T1
I» 4 c
n M
^RIK
Z
0 m
i-*M
>tor
o 2>
"^
mro
ro
0
ro W
G4-H
Z Tl
ro
H»^c
nro»
-«ro
-4
O
«r
w.—
1 H
fw^w
Z
T> -n
z 0
WWM—
« ro
M
m
3
on
11 I
I II
II *-4
T|
O
II t
l It I
I II
GJ
—•«
u n
—4
—»
cn
5*
It II
"D4-I
U
1! —
tl It
It I
I T3
c?
-nrj 0
~n rs
iz
c
1 tlN
TtN
M
roro
-niM
m
GJ
-H
WW
11 z
a>
•n
cjM
NN
ocn
11 cn
II
C-O
-x
z
roco
-'-s'
-.—
wm
-n
o
oze
—»o
—» «
OH
O
-4
c_ 11
mo4
ojm
»-»u
im
0
O-T
UU
MM
cn
•
OU
U
r-*
-0
a
roro
cnm
cn
Mm
* M
HfTl
TJ
3>
| I-N
W
-4
M—
WW
W
-H
2>
CI*
a?
U)NH
—t
w
enro
w <—
Ntn
3D
C 50
-4-H
T3
ro m
o
OI
-4C5
tn<=
m
ro
cno
CM
—1
cn
r* —
i-n
0 "O
• *
-4
• —1
cn
o
r--0
"TJ
o
* I-M
M
«•»
«">
z
ro
•ncn
**
!• cn
—
>N
z
H
TIM
I*
0
—-H
—4
0
HM
H
1-4
HfT
I H
M
0
f-0
H C
M
w
z
IM
M-+
-w
30
—"
T?
O w
0
cn
O
O -n
M
—'-n
H
0 m
•
• RA
m
-4
•H
z
O 33
z
0
O TJ
i>
o
0
ro
X
ro
H
0
u
0
-4
3D
O z
3D
-0
m
G5
y
»
w
73
H m
*-«
OH
ro
•m
O
M
-4
N
m
O
z
Z •
O W
cn
ro
«*•»
2>
z
cn
—4
z
cn
3> ro
-4
3D
h*
cn
-4
CO
(flu
m
cn
I>
O
0 Z
«-»
M m
-H
O ro
w
CJ
"O
ro
0
U)
M *T?
cn
IJH
HO
S>-N-NO
N-»Z
++ m
ci
H «
7!
M
OMHH
»WMZ
it ca?
c "n
o- rn
X»~CH
r~ -T
CNC»
MSDIX
MX
M-D
—»3>
-4C«
»-»m
0-4
o
c
-7J
N PI
3D
I> C M
or* 01
OZ>
zcn»-« o
CR
30
MW
11 ro
035
00
mz
N
rosso
SOX
I II
o* ro
xoo
30
ZO
CODE
xz
It CO O
M 3D O X
a
ro O
*. rsio
0£ •^O
o
~
»
N
1—1— LU
o
3
u. ce
O • H
cc
•t _l
OX
ZD
>-
u. CO
o
1-1
CJ K
oc
«~»a o
UJ
roz
UJ =>
CO I—
o
U. «-»
<x t~*
•1-00 «o
X
cc z
1— Ul©
o
3
<c 001*4
H 3
• UJ *>UJ •>
o
«—»
C£ X
K>3
>--J
CO o
<r -I—
Q£ UJH-
u. ZD
u. Z
HH
I- 31-
fiC
ca ao
^u
zz
Ul
LLI cnziut-ozt-du
z> a
o
Ol -V-UJZ3V-1—
o
«•» IU
— —
u.
X
U.Li_G£UJUlOO£ z
H
CJ »-4I-H30£0£03
<r
UL UJZ 3U
_ ..
tfLJUIllllJU
J H0303DH II OZAZO
•-»»-« O
(O-IZ
-IZJ
uj<xo<xo<r o
KU
UU
UU
O
CM N
JL
«r H
M
M
\
*+
in ro
*
**
«+ Lu
o
—. •
•4-•—
CM (O UJ
O
M
_l «-4
O
1 CO
CM <x
M
M
1 O
S*-** oc
•—>•
UlCM <z
ro in—
it*** r>
M
X
o *row
o
*
»—i—
•*t £E
UJ <1
-J CM
O • 1 M
UJ
n
O-oCM-o
cn U.
A*U
.A
<-» cn
M
•"«* +
«
li. cn
H
o
•«
OMfJCM—»
:>
ro
Z*N»—
*M
M
UJ •w
UJ^N
M •>
« CJ
X
fj C=i'-<—
"--0 o
z
CJ 1
cc •
ir+CC CC
UJ CtL
o
f-W^N
VUI
—» UJ o
<r
CM JN
HN
N N
N
ce UJ
<x • | |
• » *
©
UJ en
fsJ z
«-»»-» U_ CM w HU_ H
=>
H
z
X
**
X
Wl»4»JO
h*J
O
o
3
o
WM
O—'S>cnct:z>
h-CJ
X
TH z
N^A
MN
UK
DN
H
UI"«-»
UJ W
win w
UJ UJUJ UJ UJ o
^1
I— 3U
. a
COCO * N00003
o
c
a. Z
'-' n
ao
^ao
qo
z
ca o
•-i II
<X<Z U * || 11
11 »H o
CJ
A&
"> *-»
--"-J 1-
cc _i
•—
z*r UJ
UJO UJ
o
UJ O
-w
X
u. Ii.—'
w<x o
D
h
3
O
CJhJ o
M
MN
U.N
U.U
NU
zu
Z
AC
M
O
»-U-»—
Li.
z«
z
OU
. o
U£
UM
o
CJ
NCM
O
ON
O
oe CE-»I—
h-O o
U
IM
CO t—
o
CJ ©
UJ •>tMO—
JO 00
<x u
ii- I a:
u. o
zen
'—
o
Q£ o
0<Z05TZ
b~ UJ
z
h-o
X
jtfvO
>-
o
C£ X
M I ujrsjej
o
H
M
o
UJ C
J—
•
"T o
H*
o
Nl OC—1^* •—
'Ul <r
a» UJ=>-'O
U,J_IUJ
N
©
OS U
)NN
UJA
*C0 U
UJ ©
UJ CM
zut II
• <r :^uj 1 —
UJZUJ «J
m *UJ
_l •0
-"^O
UO
HO
OW
UJ
II UJU-Z Z
fiJ >-
CJ OS_JO:-*-M
UO
II II —
1<£X III-HNII-I -<Xf-3«M
^NN
UO
aiK-H
H*»-U
.I-Z>-
<RJUI
ZZU)ZON2;
MII O
wu
ju.x(i.o
o«o
zi-uio
s i—
uJi s*tNica»-icj»-«cacj_icj •lilt—3
ZZ
O
OO
ILUOFUJ
UAQ HK3K
CJ UIUI •»—
XLJ <x
rja: u o
o
ZI-4UJ0CKQ
>- M
ill—Q
UI It
_J a. ZUJUZH
a. O
HU
.<I II W <C
UMHI^HN
UU
U
< c
jc
jc
j
M W
UU(J<R U
UU
U<R
UN
UO
O'O
V4R<M*RO*ONCO(HO
MN«IN'ONOOO>OR<IRO7B')>ORN(D(HO»4C<IIO
,TF>ONOOO*OHNN<RIN M «-4
«-I «H «-««-< «HRJ(MRM C4CM CM(M CM CSM ro ro RORO RO RO roro RO «R
W
R
BO V) »TO U 1) o
OO
OO
OO
OO
OO
O©
OO
OO
OO
OO
OO
OO
OO
OO
O©
OO
OO
OO
OO
OO
O©
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
sor-coo-OT-irMto^r m
*orNCooo*HCMM
«rii->*or^coo»o*-t bo V) b^to b 1) 10 inu
1) u*) «o *o «o
"O-O <o <o «o rs. rs rv rsr»-rs> r% rs IN. r>. aa a>
en
H «TtO^>
Ul A
OO
O
z
O O
OO
o<x
O O
OO
C
BZ
sitf
CC
-co
o
o
HO
»-
2D
O
ZK
A
0>A
U
33U
I o
r>
_JCQQ
<**
cn
co
z
UiU
J
o
««
3
»-
•••A
4
(Mill
3
too
O
OO
•k
Ul«
"»
Ofic
«»
a.
WH
-C
£
Ui
xo
IM
00
l-A
H
H
<x
CO
C
3IN
. 3
(OH
Z
•—
—to
o
cox
u
a.
z>~
uicn
to O
H
MM
tn>-
HX
v
>«
A«
oca C
C
h(9
*ac nro
>
UJ
ro<c
M
OC
<X
o
z
o- z
• » »
o
HW
O 33
I-Z0C
oo
<xui<
r JJ
UJ
ttXU
J
u.u
N
u
ju
jc
o
1
1
H
ccoc
mm
H
O
•> I.M
.I u
j
oc
x
i>r>
V
—-J
«*0
-CK
oo
OA
**ZH
u
j4
**H
v.
MM
(flw
<»
**
a.0
£
N-
00—
«*** <x
ss .
3"
o u
ju.o
«h
cn
u~
)c
qg
d«
xa
) c
j
OO OOOOO»CO>O>OSS>OO>A«O
r-< ,-
ih
,-(»
-i
»h
cn
c-jc
n c
m
o o
oo
oo
oo
oo
oo
O
O
f- Z
SO
.XS
Z
o
cccc~*c&cccc
Q
o 00-0
00
z** O
II.U.«RTLU.U. UJH— Z
-+-
3
OAI (j—
i o
cm
«r«ooo
uj
OO
O
OO
OCA
Uh
h
0<E •• •• •••• «••• •••• •• •• rv i N
ro«ms)N
OD
O«O
Htf
00
00
oo
co
00
00
00
00
©»
&. u
l
HH
HH
HW
HfiH
HA
o
oo
oo
oo
oo
oa
*R 1-U.II.U.WMQCZUSUI &
nu
fl£
0:u
j«
>0
)(0
uz
(f)
z ujo:3<xi—
_juiuiumjui
•
o*
0«
»«
iu
io
oo
oo
U-QTLILTLI
PAOBQCA
OO
CLO.O
.Q.
oo
do
oo
o
o inoin^oN
o
oo
oo
o
oo
oo
oo
SI
Nl H
t—
t— MTN I-I
O O
O O
O D
O O
CJ O
O C
J Q
- O.O
. O. O
u OuO
. O. O
. 0-0
- Q- fi_
fl-O. O
. Ci_ <
L0-
OOH(NROOHCMO~HCMROUIU_OHCMO<XUJCMRO*IO»O<XUJCMRO«ROOO-><RAJII_ROR'»MU.
A O
OO
OO
OO
OO
OO
NN
0CO
0OO
OO
OO
CK
a>^O>(h(M
h444<CO
OO
OH
r4HH
o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
oo
co
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
x
o iz
o
x
a: x
oco o
u
l
oh
zo
kh
h o
u
a.
^
cc ^Q
euH
003Liu
.£tut-u
jcoco
uixL
u
jc
co
o
a.b
)44«n
uau
in
u>
*a
)x
bjfle
oq
£a
(n
mo
zu
3_
ic
3z
^z
x
»—
ujc
clu
uj
uju
ih
ja
ao
aq
h
in H-»-*«L^rj0XU
JUJXt/5 0<XL£: <zcnuioo<i
whujzi
k<i <c«x «x<c <r<r<r<r
ZHASHOUUECECNTAAL-T—U.A)OT-URZHNOUH-)(ON#«**##«#
S)«-(OOIABN>OA3RJ«A0'>OONCD
,AMOUJ A UJUJCMO»OC*-JOOO»ROOU-R S»*OO OO» «XUIUJHIN OOOW
CMnHHCMtOCMHtOtOCMCMCMCMCMCMtOtO o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
o
cm
c
ds)
*•
oo
ow
oo
oo
N'fo
orj*rm
oo
no
o
*-« m
h in h p
j to h«
r *r *-• h to to *r
rx tN oo h
II u
II n
II u
II u
II II
II it
fl it
11 n
u tt
It u
11 II
z
II II
H
tl it
z
II it
o
1) . n
cn II
N
tt tn
II
z> tt
It H
n
t— II
CL.
u U.
II X
u
H
11 «X
it z
n z
ti CO
it V.
II ti
ti H
o«
it UJ
II it
CO II
*>» II
UJ u
z
it O£
o
N UJN*
a UJ
it UJ
l-X
n O
CC II
o
coui U
3
M
ti <r
H A
u z
coco n
ui o
II
CC
\>
tt A
UJ it
3
co ti
CC ii
U-zs
u O
X
ti o
II
X
«x u
CE zz
u O
z
11 o
zo
ti
CC II
u. o
z
tt X
C
CU
Z II
us
tt o
coco
II UJ
o
H fg
H
tl z AO
It z
HQ
II
M
UJ If
H
<x -II
»-
-J A It
o
•»>
-II
3
UJUJ tl
CO Oct—
tl 3
o
CQ_J tl
o
cot— II
UJ CC
<100 It
o
II z
_i<r II
•K CO W
II Ul
z
_j It
X
H
It o
o
z
H o
A
<r II A
co o
o
II H
z
II X
Q:H>
tl C
C
>-
zz
II Ul
Q-u.
It CM
I— «3
H z
<X CO
a o
»-
CO—1 II
H
QC
0)H
n
It H
-1
H
u CC
tl 3
Z
t—
u <c
UJ zz
II o
o
H
D
II o
CO
oo
It
CC *-
31
II H
UJ
zz
II A
3
a.»—
u o
H-
rr
tl 3
UJ Z
3
tt o
z
oo
tl
tn
z
HO
II
M
oo
II
II II
II II
It II
tl II
II II
II OOO i
o o
oo
oo
oo
o
o
1 ••• •••••• ••• ••
h rjfo
m »ors. oo o
* oh
cm
to«rw *
o r>»co
o o
o o
oo
oo
o «HH H
HrlH
HH
H
oo
oo
oo
oo
oo
o o
oo
oo
oo
o
oo
oo
oo
oo
oo
oo
oo
oo
o
152
0019! COHHON /SYSTEH/ QrU»X.YrS.POSITNfT oo2o: COHHON /MAXPIV/ A(6r6)>B(6)>Z(6)rNAX 0021! COHHON /BURN / 02RICH»COGGIN.CHROHO 0022! COHHON /DEBUG / DEBUGFRESET.SHIFT*SSQMIN 0023SC 0024! DOUBLE PRECISION 0(4)»U(2>»X(6>»Y<12)»S(4)»PDSITN 0025! DOUBLE PRECISION ZNEU<6)>OLD(6)fTESTf TOLER 0026! DOUBLE PRECISION ZEROiSRrAIRSR 0027SC 0028*. DOUBLE PRECISION A»B»Z 0029:c 0030! DATA T0LER.ZER0/1.0D-7.0.0D0/ 0031! DATA ITER>11TEST> ZNEU(1)>0LD(1)/2*0r3*0.ODO/ 0032!C 0033! HAX*4 0034! IF(COGGIN) MAX=6 0035! IF(.NOT.CHROMO.AND.COGGIN) HAX=5 0036! IF(.NOT.SHIFT.AND.COGGIN) HAX=5 0037! IF(COGGIN.AND.RESET) MAX=5 0038! ITER=0 0039!C 00401C GET INITIAL GUESSES 0041: c 0042! ZNEU(1)=Q(4) 0043! ZNEHC2)=Y(11) 0044! ZNEU < 3)=U(2) 0045! IF(02RICH) 0046! + ZNEU(3)=U(1) 0047! ZNEU(4)=Y<8) 0048! ZNEU(5)=Y(2)
88lo!c ZNEU(6)=Y(10)
0051110 CONTINUE 0052iC 0053SC 0054 iC
CALCULATE FUNCTION VECTOR FOR THIS ITERATION
0055! CALL DOEFVC 0056!C 0057!C SET UP JAC0B1AN MATRIX 0058!C 0059! CALL DOEJAC 0060SC 0061;c SOLVE FOR ITERATION STEP VECTOR 0062!C 0063! CALL DOEPIV 0064!C 0065!C UPDATE INDEPENDENT VARIABLES 0066!C 0067! DO 20 I=1»HAX 0068! OLD(I)=ZNEU(I) 0069! ZNEU(I)=Z(I)+OLD(I) 0070!20 CONTINUE 0071!C 0072! Q(4)=ZNEU(1) 0073! Y(11)=ZNEU(2) 0074! IF(.NOT.02RICH) 0075! U(2)=ZNEU(3) 0076! IF(02RICH) 0077! + U<1)=ZNEU(3) 0078! Y(8)=ZNEU(4) 0079! Y(2)=ZNEU(5) 0080! Y(10)=ZNEU(6) 0081SC 0082! ITER=ITER+1 0083! IF(ITER.GT.25) RETURN 0084!C 0085!C TEST FOR CONVERGENCE 0086:c 0087! DO 30 I=1FHAX 0088! TEST=DABS((OLD(I)-ZNEU(I))/ZNEU(I)) 0089! IF(TEST.GT.TOLER) GO TO 10
1 5 3
0090S30 0091SC 0092SC 0093:c 0094SC 0095SC 0096S 0097! 00985 00995C oioo: OIOI:
CONTINUE
CONVERGED
CALCULATE STOICIOMETRIC RATIO AND THEORETICAL AIR
SR=0.21*(Q(l)tQ(2>+Q<3))/«<!>/ (X?l)/12+X(2)/4-X(3)/32+X(4)/32)
AIRSR=(Q(1)+Q(2)+Q(3))/SR/0.1705
RETURN END
1 >ERROR COUNT: 0000r PSECT SIZE! 0369f DSECT SIZE: 0028> REV
LABELS VARIABLES ARRAYS PROCEDURES
)10 0097 02RICH 0000 c Q 0000 C FIMD4 01 ID >20 00B4 COGGIN 0001 c U 0010 c DOEFVC 012B )30 0104 CHROMO 0002 c X 0018 c DOEJAC 012C
DEBUG 0000 c Y 0030 c DOEPIV 012D RESET 0001 c S 0060 c F$RET 012E SHIFT 0002 c A 0000 c F$D40 0133 SSQMIN 0003 c B 0090 c FtM41 016D TTY 0000 c 7. 00A8 c F*U41 016F DISK 0001 c ZNEU 0000 p SR 0000 c OLD 0018 p AIRSR 0004 c MAXREC 0002 c IREC 0003 c POSITN 0070 c T 0074 c MAX OOCO c TEST 0030 p TOLER 0034 p ZERO 0038 p ITER 003C p I 003D p *AIA 0009 *AIB OOOA *AIC OOOB •ADA OOOC *ADB 0010 •ADC 0014 *ADD 0018
09/16/80 BLOCKNAMES
GAMMA 0008 LUN 0004 SYSTEM "0078 MAXPIV 00C1 BURN 0003 DEBUG 0004
OOOliC 0002!C=== 0003!C 0004: 0005SC 0006IC 0007JC 0008:c 0009:c ooio:c=== OOlltC 0012: 0013: 0014SC oois: ooi6: ooi7: ooi8:c 0019: 0020: 0021: 0022:C 0023: 0024! 0025:c 0026: 0027:
SUBROUTINE DOECNV
sssssssssssssa
THIS ROUTINE PULLS A GIVEN RECORD OFF THE DISK AND CONVERTS THE RAU DATA TO DATA WITH THE UNITS REQUIRED FOR THE MASS BALANCE.
DOUBLE PRECISION 0(4)>U(2)>X(6)iY(12)rS(4)rPOSITNrTO DOUBLE PRECISION DZERO.OHE.DTEMP
INTEGER REC0RD>DATE(3)>TIME(3)rRDATA<102) INTEGER KNAME(20)r NAME(20) INTEGER KDATA<102)iIC0MP(12)
REAL LFE(3)>PRESSR(3> tAXIS(8)
LOGICAL 02RICH>C0GGINrCHR0M0 LOGICAL DEBUGtRESETtSHIFTrSSQMIN
COMMON /TEMPER/ T(24) COMMON /DATA / RDATA
O
o too
xcouio O O:HH su»z
CJ »-»CJ»— * XUJ»-t
zcoofco t-t -x
o
CST-<CA.X C9U1X - -O
CO -Oi—»
O UI
•»«© ••OCCO>-CK X ->-4 U OAXCO
»-(=>» ••»— 0£ A>-3I-L CM
liil- »Z
O FIH63
C9 UJM
Z3
WQ
. CCAZCOX 3UJ3>-« FFIQJWC
•. » ». »OO
—•. •>
^ow-»«n«o *>o
*0*'— —NJ"-'—-FN.
MFOOOW>HV4VW««.V(NH<RO-(-ODC
vv4^w
w^H
hO
<h«w
h<
«<
IH
«<x>o»—M
A ccaav«
•-•-<R<C>-I—«<X AA >
«X2: *R<R A
4<Q0<C
4QQ
fiCb
:403 •»«*£ - -»—1«£ A
aceaeoAccae » -H
-a: -—a
•> cc.ee
*• -o
ccc
K4
»"»
• »• •""•»»*• R
HH
Q/
*—<«-»
•>W
W
AUJHHJ-HHWWTFHVCCQ.VZUJ ••—' C
C(6W
V(lhvw
£UJ «.w
^ajaix»-ti*;_juj OOULILXVTIIXH
JLILT-(0HOHO«C OOS »- XKTFIC 3
OL-O « X «U1 CCCC _JX O
«
TIIO.«»-I CO*H J OS JZ O « A OC »-H A. 3
to CJ z
O;JAKH4U.<L3(OCJZA.C
U:
<r :>
•s. s.
0
* A
10
0
r*»N» •s
•.©» 0
•
• - *N,
0
rooo a.
0
<0 »
x:
to »r*N
.w z
•k • -O
h-
a
• W
WN.A
H
0
in «H
>-
«o •"T
*. <r
fv • •« •.v.
CJ CD CM v. 0
H
CO
r» r)H
oa
u_ o
«
- -O
H
H
<
t •H
O •
CJ h-
•-1 N
H«H
UJ
<x •s»
>-
CM -.ro-s. a.
as U
l h-
-oxu
CO
z
K-• V
*
Z
0
V.I-H •*
«-i kS
O
H
CM • Itf
k: SN
<OD
Z
X
N
Z
CO U. - "CO •*
UJ «-ice
>-«
tn *w
os £
u_ a
OU
1 - »
o
UJ 0
• X
•> ~4«*4CMO.A
_J O
h
»-
M - ~
xo
UJ
CO CM<Z
Ul \ -»-HxJ •
UJ K
TH C9
C0N»»-O 3
x
CM CO Z
»—
v. xs
O
CJ • X
<x
UJ a. •»o
-J
z n
en
co
co
xo
a:
U. M
•S.CO
Z>-«00£bl UJH
cz
<XXCJUJM
CC
0 IK CO
UJ <X
I—
JO.
0
Z
Ul <r<x<r <r<x
M
x
«X <x H
ac
u. l-h
-z
<r «r<r <x<r <r
u
<x«x M
00000
_j cn
00
0
Ul A
X
OC
rr
"N. U.
Kit:
OC
X
UJ Ul
0
X
coco V
cc
0
CO M
M
UJ u.
^4 «
OO
_l
1 CO
0
X
a
»-« «<I
in X
cn
w
0
t-t—
z
•
1 <x
w
<x<r 0
CN 0
M
CO x
AA
M *
CO —1
O
0
X
Ul 0
OSitf 1—
3
rv •-
0
CO a:
M
Ul a
0
0£ >-
u_ CO
A «j
•-
•
3
a. -J
—t-f.z-.UJUJ'-*
O O
u. O
O
1 0
<~>CJ2£C9CD*£ 0.
ae X
m
z
0£ 4U
J(OZZU
) C
L. cc
u. «•»
U. 0
<r O
1—£c»-««<r»-«
Ul _J
M
CJ M
0
CJ <
zx(=
tcc o
ca
0
«I CO
w
CO vM
UJ
tJO<Xw
W W
W 0
to ro
ttUl
CO «i
oc UIOSXZCOCOCO
cc
H
UJ K
H
3 «
0
cr n Dd
oo
j Q_
X
z
oe <xz
X
_J CJ
UJ 0
<r 1—
it Ul
ttM
<£
U «HCN4»«»4»*» H
it
M
<pl— h-
0
h~ UJ
Bvw
u.lt.li.il.
CC z z
z
>-4Z fiC
CJ cc
M
ce<r<i UJ
H
M
O 0
wO
Ul
n Ul
a: Ph»t~ 1 l—
l 1 :>
<r
H
CJ OCJ
z>
»—
CJ «J 1 1 1
z
co i-
z
T4 z
UJ uaQ<x<r<z<i
0
0 A
O
0
0
ce ce^^o
oo
u 0
O
O
CJ 3
CJ
.
CJ> C3
UUUUU UUU
UUU UUU
CJCJCJ HUUU
CJCJCJ (DO
,'O«-IM|«)9IN'CNTOO>OMT*)<TIN
,ONCO(HONN9LI
,)'O|S0O«OHR4T<)VU7*ON(DOL>OHC<IRO<RB1
<4NOOOL>O
MNU,)'ORNA)O'O«-INIO«IN*ON(S
W WMMMWNR0WWMW**V
«T*<RTNII,)IIIII')IFLIRTWWI0IN'O
,0,0«0«0SJ'<J«0«FL'OF
I>»R\ISRISR\R»R
IVNNN[D(DFL)OCD0)®E0A)00 0»0»0 ,'O»0'0 I>M)'0 I' o
0000000 o
000000000 0
0 0
0 0
00000 o
000 0
0 O
OO
OO
O00 0
000 0
0 o
o 0
00 o
00 O
OO
O ©
o 0
0 0
0 0
0 O
o o
O OOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000000000000000000000000OOOOOOO
CO CO
_J \
UJ cn
CJ
Z
«o O
z
H
o
>-
1—
0£ Ui
Ui CJ
u. C
J C
J C
n
z
z
IN
fl£
z
<r Ui
«R
Lu >-
H
-J
_J >-
CJ
I :>
<X
*+• z
U>
o
ui .J
A
N
H
I
o
-J
CM UI
CM N
CM
«"» o
O
W
z
H
z
x to
o
z
>-
UJ W
o
o
>-
A
N
H
1 o
CS
>-
oc A
*+
• cn
*N.
o
«•*
1-•
Ui o
Ui
fiC
z
l h-
ui CO
AC CM
M
<r H
o
•o
•W
Ui cn
ui -J
1—
O
A
W
CM
M
cn
>-
CE _i
cn <r
M
a
>-
OS >-
co H
1
3
«
-J
U. z
UI <x
X
co cn
a. cn
UI
I—
U. <X
•• •»
O
-»o
H
z
>-
z
<X cn
• u.
II >-
_I
Ui O
IO
«-»C£ (A
Ui o
o
C£
z
u z
••
H-<r
h-*r
too. >-
z
Ui o
C
J <x
II UI
o
o
u o
ui
o
<r S* |
—J o
Ui o
H
z
«•"» a.
»-*
Z
X
M
h-in
CJ
cc a
UI X
o
II <r
<x CM
z
1— a
CJ
C£ <c
tl i*
I— o
* a.
Ui H
Ui
»-« 0£
t-4 CM
C£
>-
z
W
CM <x
ceo x
«
• H
cn
z
=3 Ui
•W
1— A
z
a: o
-f-
CJ
3
H
OS
no
UI
CI) O
—
' UJ
Ui ~J
3
«
>-
z
CJ
CM
H-Q_
1 >•
i H
H-CI)
o
cn cn
U
u_ _J
o
Ui o
o
cn
3
cco h-
H-«+
• • W
X
Q
>-
Of 11
U.
o
_l C
J Ui
a. ro—
' CM M
3
H
3
ON
«
H
N «
—i UJ
H
a
o. o
<-»
CO »-
«>-
O
o
W
O-
o
<-» -J
"*•*
O
«x a.
ll_ V
. as
z
z
A
—«.
cn 3
a—
o
cn z
H
M
O
•H
a: z
o
<-» Ui
<r OS
o
ro CM
Ui
O +\
CO N
M
v«0
V
CO w
Ui
<t o
—
» h-<
W
cn 3
M
=j ^z
X
UJ Q
UI
S —•
*
UJ
FM
H-a.
cc A
PO
A
•ui *o
>-
O
CO Ui
C-JZ3 C
JO
to cn
_|
• »
o
W
UJ a
ui C
MZ
Ui OJUi
Ui fN.
uicnui •- • C
J R
) wen C
3CI
»-«CD
«c
_|
<x <t
—
OS * I int-ui
3
^OU
i • 3
=> H
OU
J
A
3U
J
a
3
CM
1— 3-l3
UiN
t-N
wen C
3CI
cn C
J o
X
C
J o
*
^UiU
i —
'UJ
J
»S3Q
_J
Z
*.U3
z
•«_JD U
i —I
-4-_1
CC<XC£-J—'t3
<T u.
•*»**
CM —
to
»
CJ
-O *>N
3 X
Z»O
Z
u. HCO
ZUI U
. o.
CO
*-»Z
H
HU
.Z
•
U. 3
V
h '-oo
OX
X
to
" z
CJ
OK
HQ
Z
OO
II l|m
II II •
a. II —
»-* <T
II II Q-
<X • • *~
*a_ 1—
Ui
^4 111 • C
J C
J Ui
1H Ui
UJ «
*UI II u »-•
H
M«J—
. h*
UJ
»—«Uih-Z
CM
I— Z
U-II
U U
OTN
:C
CM
m H-
1—»-< H-l
H-w>
UI •—
3C
4N
H^H
Q_ n
MZ
OC H
Z»1
a: U
J 3Z
Ui »-»z
ri GC «
Ui ZZO
H II U
J O
z
<C O
-H
occ <c
3Z
J
<R ZH
Q
HZ
II O»C
M—
*O
UJ
«r—-o-'
Ui C
9 •O
-IO
oc o
~o
w
U
J cn
o
N
m z
II II Z CM
z
ii a: z
1-4 U II CM—-O
-•IHX
U
RH
INU
IN
z
«-<U_C
J C
M>-C
J >-
z> H
H
tso
-xa
h Z-O
• O
m
—3
_J M
i—
-»r-otncJ "O Ui
z
—*
z
1—
z
II »—
occoLk w
Uiv
1—
h-3«r
Ui I—
CM
I-Ui
I— Z^CM
—
1—o
o
o
u. o
x
o
Ui o
u_
o
o
ui C
NO
lL.Hu.
U. Ui
cn cn—»
U.U
. 3
cn —
-UI 3
cn Ui
0«^Q
X
XQ
U
O
*-i
CJ
CJ
A
CO A
»-«
O
»—
cn O
CJO
HFIH
(9
Ui
OO
M
H
U.
Ui 30C
u. cn Ui
u33q
HOCJO UUUUU
HCJOU MU OOU (JUU
UCJUUUUU (j
OCJUOO (ju
uu
un
ro
•* **
•• ••
•••••»
•••••••••«
•••••••••••»
«• »
•*••••«
••«
••• •••• ••••••«
••••••••• »
•«
••• ••#
•*••»
••••
0KOOOOOOOOCOI-IHF4HHHP4HTH<HN(MR'JC<IMR<IR'4NRM(MT<)I
I0NNNNT0T0N(07«<T
,4R4'B')B,)INB')U)B')UII/)B')B
,)'<0'<I<0'4)S)>0
,0S)S)'0 5
i li *»HHi 11 <r<H. irlH
tHrH
HH
tHi
i o
oo
oo
oo
oo
oo
oo
oo
oo
o O
OO
O O
OO
OO
OO
OO
OO
OO
OO
O O
OO
OO
OO
OO
OO
OO
O O
OO
OO
OO
OO
OO
oo
oo
oo
oo
o<r coz <OU
W-O
OO
ON
U
oo
oo
oo
o
oo
oo
oo
o
cc z=>
UJ CO
Q.4Z3 K-CL
CH
^azo
ix
ui<rouJ3>-<r H
AC
QP
JcnZ
z
a: 3
o HCNM cc
rsr»^fNU
J WRLHI
A O
OO
OA
RS. OO CKUUJA UJ 0*0 O-h
hh
hh
NC
MN
OH
H
CM
OO
OO
OO
Oo
oo
rvuj •1CJ OO
OOS
IUCI> co>-A
<r OE
•>« co<r ro in
0M
U£^O
>X
X«
«T 4»«T«»«»«» 4»4»*4» u. u.iLii.ti.ii.im
.u.iL
uu
uau
uu
uc)u
ua.u
uu
uu
uu
u(L
uo
.uu
OOOOOON*OOI<)INBJOAO>HHNMLO>ODILITJOO OHI-TM'OOOOO
ROONM
RONNCDH'OOO
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
ZUJ cc
<cui <za.
z
ux
mj
cn
cn u
juit-ziu
t-z XH
4UJ^OI
-O tncn
t~ K
X«<C
S40K
Oh
30tf -JZbJUJi-4
M4 «I-«A
Z«X Ao«-H
0£-j_iza_oinu.a:x 2
0 3X
>"Cn«t-tK
^Zltfi-l<X6.3lj.C
01 -
-
n
uo
a.a
.a.u
uu
uu
(Ju
uu
uu
uu
oo
a.a
.a.u
.Du
o.o
.(Lu
uu
1-4 cn to
o*rova>Hr<)«H
OH
NO
«Hr<ir)o«H
rjnoiiju.«-4toin<oo4;(MO
«ino»4UQ
UJ
NN
oo
oo
^o
-oo
oo
oo
oo
oo
ou
nn
nn
nM
wn
oo
No
oo
o
KJ
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
UA
O
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
000000000000
UI<C CN»-4
z
A xzo
z O
I— ZUJUI-JO-
CL.0C N»
o
<L.CC JO
HS
Oh
hM
Ut
UJ Q.
I—ZCOO-Z
<c i-f
oc zo
^«H
ua3U
iu.z:
^ccco 002:1
O<XHOX:»—
<x<xa*<x w
UIUIUJUOIXOUATOT-IOXOXUJ
ZUJS
o
OONZHIDOUDOZUJUJXCA»-h<CQ: <XUI»—cn
cnoza.cnM<r<x<x<x
O (LH>QOOIKU
OUUOQ£COC()HQ£M£Q;NXAHA.XTF JK-C*###
t-oomoocM
ro co
AQ
on
au.
OO
OrlH
HH
O
OO
OO
OO
oca*r-o
oocM
H
HH
ww
nn
»—
z
_|
0
M
H
O
3
cn UJ
O
0
UJ
<r zoe
IS
xo
C
M
Z
z
0
LU=> <ir
3
"S.
cc M
X
HH
zo
cn
0
3
HH
too.
•>Q£ >-
liCJO£
>-x
"-X
cc so
2H
tn<z
•flu
UJO
O
A
ce =><X
sz
*0 z»-
OO
0
U.Z
N
l-N
JZ O
CJ
A •
li-z
0
X
*.4
O
O
UJZ
oz
-J-'O
z
•>
ou. •#
U
J
x<z zo
•"O
O 0
cc *» z
l-A
rr
cn—0
a: C
M
UJZ
H
CC o
z
«ffiU
X
<w> N
3
m »—
030 00
0
3 •40
UJ •»
3
UJT
0
•"**X •»
rvtcs
zz
0
i— 1 0
X-O
CJ
z
00
a: 4U
) U
JA
• *>H
M
MO
£ cn
A
.JUJ —
IUJ
3-O
cr:
CD
3
3=9
UJJ
W
O
a
<X
C3
SK
0
cn C
-3<Z
AU
J
o<ro
O
<X
C3
00
z> _JO
4A
O
z
zz
OH
u.
cc <c
-J<Z
0
00
AU
U
J 0
OU
J
_l
arz> X
h
»•*#
-«
o<x 0
k" X
z
ujh 0
to cncn H
H
• u. A
U
U
JK
-00
1-a.Z
M
m cncn H
H
0 •
UJ
z
cnxas Crf
u
CX
J
sr
UJ
z> t-iCC
U.
>-43
CM U
J
.m.l
ID
z
»~o cn
cnxA
0
cc 0ccc
ocn m
z 3(L
CN** a.
O-O-cca
H-0
O
*-«
UJ •>
13
h ceae
»—
zzz
<x U
J
UJU
I N
O
o 1—
0
»-o
OO
O
CJ
«j _J_J
NO
<K C
J
CO
K—
30.
zzz
m A
A
A
<r<r A
z
hu
£L»-zzz
(9 3
OZ3
<r<r 0 3
ZU
1 23
OO
O
O
O
OO
<x<z
cn U
-»-«o
ou
o
A
OO
A
A
OCJLJ UUUUUAUUUUU
000
I-INN9U))NCDO>OH(MR)
IN*ORVOO(HO«4MNW4R,SO
OOOOOOOOORTHHH«<4HHH«-«CJ(MMNC<IC<INC>LN
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O
157
0029! 0030:c 0031: 0032! 0033! 0034!
8§II?5 0037! 0038! 0039SC 0040SC 0041:c 0042! 0043! 0044S 0045!15 0046! 0047! 0048110 0049SC OOSOiC 0051!C 0052SC 0053!C 0054! 0055!C 0056!C 0057!C 0058! 0059! 0060!C 0061IC 0062SC 0063! 0064! 0065!C 0066SC 00671C 0068! 0069!C 0070!C 0071!C 0072! 0073!C 0074!C 0075!C 0076! 0077! 0078!C 0079!C 0080!C 0081! 0082SC 0083!C 0084!C 0085! 0086! 0087120 0088!C 0089! 0090! »ERROR COUNT! 1 LABELS
DATA R/1.987D0/
QSUM=CK1)+Q(2)+Q(3) SUh=Y«12> DO 5 1=1.10
SUM=SUH+Y(I) CONTINUE
FACT0R=(0NE-Y(11))/SUM*Q(4) IF<.NOT.COGGIN) GO TO 10 FACT0R»Q(4)
ENSURE THE SUM OF HOLE/HASS FRACTIONS IS ONE
Y(12)*0NE DO 15 1=1.11
YC12)=Y(12)-Y(I) CONTINUE
XU)=0NE-X(2>-X<3>-X(4>-X<5)-X<6> S(1)=0NE-S(2)-S(3)-S<4) CONTINUE
CALCULATE STANDARD FREE ENERGY
H2 + C02 = H20 + CO
G=86SO.DO-7.59DO*T
NITROGEN BALANCE FUNCTION
B(l)=S(3)tU(2)/14-X(5>*U<l)/14-1.58*QSUH B(1)=B(1)+FACT0R«(Y<4)+Y<5)+Y(9)+2*Y(12>)
HYDROGEN BALANCE FUNCTION
B(2)=S(2)*U(2)-U(1)*(X(2)+X(6)/9)+2*Y(11)|Q(4) B<2)=B<2>+FACTOR*<Y?5>+4*Y<6>+2*Y<7>+3*Y<9>+2*Y<10>>
CARBON BALANCE FUNCTION
B<3)=SU)*W<2>/12-X<1>*U<1)/12+FACT0R*( Y<1 W<2W<5W<6) >
SULFUR BALANCE FUNCTION
B<4)=S(4)*U(2)/32-X(4)*U(l)/32+FACT0R*(Y(7>+Y(8)>
OXYGEN BALANCE FUNCTION
B<5>=-0.42*GISUM-U<n*<X<3)/16+X<6>/18>+Q<4>*Y<ll> B(5>=B(5>+FACT0R*<2*Y<lW<2>+2*Y(3W(4>+2tY<8)>
UATER GAS SHIFT EQUILIBRIA
B(6)=Y(11)/Y(10)*Y(2)/Y(1)*Q(4)/FACTOR-DEXP(-G/R/T)
NEGATE FUNCTIONS
DO 20 1=1.MAX B(I)=-B(I) CONTINUE
RETURN END
0000. PSECT SIZE! VARIABLES
0506. DSECT SIZE! 0082$ REV. 5 ARRAYS PROCEDURES
)5 0040 L 0070 C Q 0000 C FIHD4 00D9 )10 0086 T 0074 C U 0010 C DEXP OIDD )15 0069 MAX OOCO c X 0018 C FSH41 OOFE )20 01CF 02RICH 0000 c Y 0030 C F*D40 0101
COGGIN 0001 c S 0060 C FIM40 0105 CHROHO 0002 c A 0000 C F*RET 01F9
09/16/80 BLOCKNAHES
SYSTEH 0078 MAXPIV OOCl BURN 0003
1 5 8
ZERO 0000 P ONE 0004 P G 0008 P R OOOC P QSUH 0010 P FACTOR 0014 P SUM 0018 P I 001C P •ADA 0009 *ADB OOOD •ADC 0011 • ADD 0015 *ADE 0019 •ADF 001D •ADG 0021 •ADH 0025 *ADI 0029 • ADJ 002D •ADK 0031 •ADL 0035 •ADH 0039 •ADN 003D •ADO 0041 •ADF' 0045 •ADQ 0049 • ADR 004D •AIA 0051
0090 00A8
OOOliC 0002!C==== 0003:c ooo4i 0005:c ooo6:c 00075C ooo8:c 0009:c OOlOiC oou:c 0012:c ooi3:c 0014 5 C==== ooi5:c 0016! ooi7:c ooi8: 0019! 0020! 0021:c 0022! 0023SC 0024! 0025! 0026!C 0027! 0028! 0029! 0030!C 0031: 0032: 0033: 0034:10 0035: 0036: 0037: 0038: 0039:c oo4o:c oo4i:c 0042: 0043:
SUBROUTINE DOEJAC
JACOBIAN-MATRIX SUBROUTINE FOR FURNACE
THIS SUBROUTNE CALCULATES THE JACOBIAN ELEHENTS FOR THE MASS BALANCE EQUATION SET.
INPUT IS FROM LABELED COMMON /SYSTEH/ OUTPUT IS TO LABELED COMMON /HAXPIV/
LOGICAL 02RICH.C0GGINFCHR0M0
COMMON /SYSTEM/ Q»U»XrY.S»L»T COMMON /MAXPIV/ A<6>6)>B(6)>Z(6)iHAX COMMON /BURN / 02RICH»C0GGIN»CHROMO
DOUBLE PRECISION Q<4).U<2),X<&><Y(12)»S<4>rLfT
DOUBLE PRECISION A»B»Z»ZEROfONE DOUBLE PRECISION YSUM.ATEMP.FACTR1.FACTR2
DATA ZERO/O.0D00/» ONE/1.ODOO/ DATA YSUMiFACTRl»FACTR2»ATEMP/4*O.ODO/ DATA 1/0/
YSUM=Y(12) DO 10 1=1 * 10
YSUM=YSUM+Y(I) CONTINUE
FACTR1=(QNE-Y(11))/YSUM FACTR2»-Q(4)/YSUM IF(COGGIN) FACTR1=0NE IF(COGGIN) FACTR2=ZER0
NITROGEN BALANCE JACOBIAN ELEMENTS
ATEMP=(Y(4)+Y(5)+Y(9)+2*Y(12)) A(lfl)=FACTRl*ATEMP
SSBSS3B3SS
LD
m<x <r <x X CM CM CM
I tcoc.cc II I—
»—h-
*-CJOCJ
to<x<z<z <X
-U.U
.U.
f-J CC*>.<CCC£CCC
nw
v w
*>-0 V**
**C<M
CM
++ -+-0.0. >OUILIL w
f-h-><KT «r«-«M
-•-O
ca
CM ui
—
i x:
•O o.
UI -A.A.T
-J X
ZC
U
UI I ULULT—*— ~i—
i—-r^-
z
n»i«
«v
<i v
M»
MO
H
XCMCMCM**
n
i orcccen o
II h-h-h- n
u
^u
uu
<x •)
-U_U_U_ -CM***+**CM
ui
OROUOO
c —
n:<i:<r-<E U.U1UU.U.U. ii ii
• n II ii ui
^UL~.~.s->
to cM
tor«*rv)<o o
- -O
A HHVHHH O
— wu.w
ww
>-X
<zcccccc<z z
A
ihu
uC
'IAU
UU
<I<R«I«<R<RZ Z
>-U.U.(O
CJti.U.U.N ui
-^-n
ntti-H
iittno
CD
n CD
O &.HC4TOR4
B'>'<00 £c
r - • -»o - - -c
j ui r in
cs w nr-ici'—
H
vw
v>
u.w
w|i.
C-IO.O.OU •O
>S.UIU1U1 >-
<I<X <X~ -+
• xcirsicM
'w
tno.a. i ccfccco
WZZ
II I-1-1- II >-UiUJ
^u
ou
-»
-4-1—H-
n«<I<XU
l — <R<T
-U.U.U. » CM * »* c I RO *» * * RO
VP» t if" J Hv
HH
r*4 v
>-CC£C^<ZZCCCCC<t
Q. nZQ
-Q-
rou
irz *v.V—
UlUl «Tw
<z<t~ XRIMLM" i ccoccca
z:z: n h-h-H- n
UIUI ^(J
UO
V-H-
ro<z<x «x«r '-<C
<I •• U.U. u. •»
*-» *-»NRO«-»•— >-ccoc^<zcccccc<z
a. a.
—« CJCJ *-• ~ O CJ O
vU.LLU
lUlLli.lLH
>- T| II II M || || U CD ti ~.-*-O
C~~~C
D
A. IWN TIN <00
-O - -O
UIRONW-FORTN
h- «ww
*o U. w
w u
. <C C
C<£m
C4<C
M
-»CJCJ «T V- CJO L) -» RV<I<R—3:<R<X<TZ »"•' U-U. U) CJ U-U. II H
villi II
II It II CD n
D CLVHNNN TIN -OO r - » -o
» »
u
ui tt <• w
«j-*r ^ w
w
w w
u. «-* w
u.
cn V
1 CO
0
0Z
rH
0
>-
cn H
cn
M-\tn
z
1— A
>-
w
H-n
z
«<—
>-
Z
+
>o«cn UI
H
w
— M
\
UI —
-M>-
z
H
>-
z —
z
*r X
1 1 UI
•-0 1
so
UI
1 a. a. _J
>-
UI cn
> -j
>•
<OtC
lL Ui
1 z
>. w
>-
UI -i-a.
^UlU
JZ 111
0
-*•>
-s.
—%
:a_ v^h-V-UJ —
z
z
z
rouiz —
«x<r»—f
<x 0
V. <~C4 «—
0
<x h—UJ
ro-"w<r—
HH
w
z
•-<»-' T-tZ —
H
•-«
>-<11-w
«*M M
OT
A
V.
3
HV
H OC H
«»•
A
»W<Z
xr-jnr-i*—
0
cn —
'3-w
>->
-O
1 CCCCCCC4Q
u
H
>-
\s
O
H-CtCM II l-H-l—
It II <x
<x -'•-oc
— CJCJO —
>
»
«•*> o
n
-J ro<i«x it
«
s
CM CM^CM
0
w<rtj
•> »
1-w
>-UI
>-u.<r U
lWttK
blli') b.
0
>-
>->
->-z
>-«
0
-*-+u. w H
fH H
wn
H
H
M-
««W
HV
v./—
z
<X.CCCCiC<Z<Z X
w
Q_
b.a.a.cD's.
« H
<E
»—1— 1— CO
>-0 zo
ZZZCD
—0 v4«4
_1 '—
CJCJCJ'—-—
*VOE ui cc UJUI ui 0
NOC ~
<c >-w
wuirc«x<r <r z
z
cn U
iUiH
Ui»-K
KU
Mii
A
KV
ON
UU
.LLU.H
H
<x ZM
<ZN<Z<Z<C •>-KI>- l
nu
n 11 H
II 11 It CD CD CD
0 It 11 n n 11 ci 1— n «i 11 tl
Z
11 0£-^«"C
DO
It —
—•—
Q<—
U) a. -nriro n
«r in -000
cc 4.H«W«IN<2FWIRTO
0
0 - - -CJCJ
Ui z •>
>-
ui mm
m
h-ui-o *o«o «o*o
w«o^p«o«o X
w
L_ W—-U.U. <c
0
4444H
<E
«4H
H 3
«x<r <i<z <t«t <r H<r<x<r *t
CJOCJ UUU
UUU
CJUU CJCJCJ
CJ • • •••••••• •••••*
•••••••••• »
•»
•••••
••••
••••
•• •••• •• *• »
••• »
••• •••»
**
<• «
•••
•«
•«
•••• •«
*»
•••• »
« *
• •
•»
•••»
•»
••«
•••
v m
-or s<.ooc>'0«-trirO'«ri»i >or»oOOO^o»Hr^ro coc>»
rjro<rii"3'cr^oot>»o«-<ciM *ijT
,<if s«ooo^o»Hnfo*ruT'»or s«sCDo^o»~« r-jro <r ut -^rv m&
-o»-«rjro<r «r TT
*T T «rm
in m m
mm
in ui mm
«o -o -0*0 *omj -O«O +0 *0 r>. r>» r>. rN.fN.rvrsr^rvrv acq 0000 coco cow co co cm>* 0-o-ock 0*00-0- 0
000 00 0
0
O OOOOOOOOOOOOOOOOOOO OO OO OO OOOOOOO OOOOO OO OOOOOOOOOOOO OOO©
o 0
00000000000000000000000000000000000000O
OO
O00000000000000000000 o
oo
oo
oo
160
0115! RETURN 0116: END »ERROR COUNT! OOOOF PSECT
LABELS VARIABLES SIZE! 0689, DSECT SIZE! 0033! REV. S
ARRAYS
>10 0034 02RICH COGGIN CHROMO L T MAX ZERO ONE YSUM ATEMP FACTR1 FACTR2 I •ADA #ADB • ADC • ADD •AHE *ADF
0000 0001 0002 0070 0074 OOCO 0000 0004 0008 OOOC 0010 0014 0018 0009 OOOD 0011 0015 0019 001D
c Q 0000 C F$MD4 c U 0010 C FIM40 c X 0018 C FID40 c Y 0030 C F*RET c S 0060 c c A 0000 c p B 0090 c p Z 00A8 c
PROCEDURES
00E3 OOEF 00F7 02B0
09/16/80 BLOCKNAHES
SYSTEM 0078 MAXPIV 00C1 BURN 0003
oooi:c ooo2:c= ooo3:c 0004! 0005!C
IE 0008SC 0009!C ooio:c OOlliC 0012!C ooi3:c 0014SC==== oois:c ooi6: 0017! ooi8:c ooi9: 0020:c 0021! 0022!C 0023: 0024!C 0025: 0026:c 0027JC 0028:c 0029! 0030: 0031! 0032: 0033! 0034: 0035: 0036: 0037: 0038: 0039: 0040: 0041:30 0042:20 0043SC 0044SC 0045:c 0046IC
SUBROUTINE DOEPIV
GAUSS - riffiUDHRraSTz8VRlifiBvTHE
A = COEFFICIENT MATRIX B = CONSTANTS VECTOR X = SOLUTION VECTOR MAX = NUMBER OF EQUATIONS
SS3Sa8SSSSS8SSSSS3SSS8SSS3S6BSSSS8SB8SSSS3SS8388SSSSSSS8BSSa85SSa
IMPLICIT DOUBLE PRECISION (A-H) IMPLICIT DOUBLE PRECISION (0-Z)
COMMON /MAXPIV/ A(6r6)rB(6>tX(6)>HAX
INTEGER C(6)>R(6)
DATA C(1)rR(1)/Or0/> K.I.JtM0DE/4*0/i TEMP.AMAX/2*O.ODOO/
DO 10 K=1»MAX
CHOOSE THE PIVOT
AMAX=0.0D+00 DO 20 1=1fMAX
CALL DOEMAT(I»K.R»MODE> IF(MODE.EQ.O) GO TO 20 DO 30 J=1iMAX
CALL DOEMAT(J»K»C»MODE) IF<M0DE<EQ<0) GO TO 30 TEMP=DABS(A(I»J>) IF(TEMP.LT.AMAX) GO TO 30 AMAX=TEMP R(K)=I C(K)=J CONTINUE
CONTINUE
K-TH PIVOT = A(R(K>iC(K)>
NORHALIZE THE PIVOT'S ROU
161
0047SC 0048:
550 i 0051140 0052: 0053IC 0054:c 0055!C 0056: 0057: 0058! 0059J 0060*. 0061! 0062:60 0063: 0064 *.50 0065:10 0066:c 0067:c 0068:c 0069! 0070: . 0071! 0072: 0073!80 0074!70 0075: 0076! »ERR0R
TEMP=A(R(K)rC<K)> DO 40 J=1»HAX
A(R(K)»J>=A(R(K)»J)/TEMP CONTINUE
B(R<K))=B(R(K))/TEMP
REDUCTION OF THE MATRIX
DO 50 I=1»HAX IF(I.EQ.R(K)) GO TO 50 B<I)=B(I)-B(R(K))*A(IfC(K)) DO 60 J=1»HAX
IF(J.EQ.C(K)) GO TO 60 A(IiJ>=A<I»J)-A<R<K)»J)*A(I»C<K>) CONTINUE
A(I>C(K))=0>OD+00 CONTINUE
CONTINUE
UNSCRAMBLE THE SOLUTION VECTOR
DO 70 DO
1
K=1rMAX 80 I=liHAX
IF(A(IIK).EQ.O.00+00) GO TO 80 X(K)=B(I) CONTINUE
CONTINUE RETURN
END COUNT! OOOOr PSECT SIZE: 0396. DSECT SIZE! 0014. REV. 5
LABELS VARIABLES ARRAYS PROCEDURES
)10 014F HAX OOCO C A 0000 C F«HD4 OOFC ) 20 0070 K OOOC P B 0090 C DOEMAT OOFF >30 0069 I OOOD P X 00A8 C F*MOO 0100 >40 00A3 J OOOE P C 0000 P F*RET 018B ) 50 0148 MODE OOOF P R 0006 P
012D TEMP 0010 P >70 0182 AMAX 0014 P >80 0178 *A1A 0009
•AIB OOOA •AIC OOOB •AID OOOC *AIE OOOD
09/16/80 BLOCKNAHES
MAXPIV 00C1
0001:c 0002!C===== 888888888888888888888888888881 ooo3:c 0004: SUBROUTINE DOEMAT (JiKtLrH) ooossc ooo6:c SUPPORT ROUTINE FOR GAUSS - , 0007:c ooo8:c THIS ROUTINE UNSCRAMBLES THE 0009SC ooio:c===== 8S8S8SSSSS888SSS88SS88S8888SS! oon :c 0012: DIMENSION L(6) 0013! DATA MAXII/OIO/ ooi4:c 0015! IF(K.NE.l) GO TO 10 0016! H=1 0017: RETURN 0018:10 CONTINUE 0019! H=1 0020! MAX=K-1
»: DO 20 1=1>MAX »: IF(L(I>.EQ.J> M=0 0025120 CONTINUE 0024: RETURN 0025! END
3SSSasSS3SS8BS36888l
SSSS8.»S8S8aS8SS888883S88S
162
»ERROR COUNT! 0000» PSECT SIZE: 0048r DSECT SIZE? 0014? REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
09/16/80 BLOCKNAMES
>10 >20
0014 0026
oooi:c ooo2:c== 0003 :c 0004! ooos:c 00065C ooo7:c ooo8:c ooo9:c ooio:c OOll.'C 00125C 0013JC 0014 S C ooi5:c== 0016!C 0017! 0018IC 0019! 0020! 0021! 0022:C 0023: 0024:c 0025: 0026:C 0027! 0028! 0029! 0030: 003UC 0032: 0033:c 0034:c 0035:c 0036!C 0037: 0038:c 0039JC oo4o:c 0041:c 0042!C 0043! 0044:c 0045! 0046! 0047:c 0048: 0049! 0050:c 0051! 0052! 0053: 0054:c 0055:10 0056:c 0057JC 0058!C 0059:c 0060:c 0061:
J K H MAX I •AIA
0009 OOOA OOOC 0000 P 0001 P OOOD
OOOB FtSBT 002D F*MD1 002E F*RET 002F
Esas&s8«ssss=sssssssss:assc8accssss3«sss3ass»sssss=3&sssssi
DOUBLE PRECISION FUNCTION DOESSQ(NULL)
THIS ROUTINE CALCULATES THE SUM OF SQUARES FUNCTIONAL FOR THE FURNACE. THE FUNCTIONAL INCLUDES CALCULATED VARIABLE CONTRIBUTIONS AND SEARCH VARIABLE CONTRIBUTIONS
INPUT IS VIA COMMON /SEARCH/ INPUT IS VIA COMMON /SYSTEM/
FOR DATA FOR CALCULATED VARIABLES AND SEARCH VARIABLES.
IMPLICIT DOUBLE PRECISION (A-HiO-Z)
DOUBLE PRECISION Oi4> t W (2>.X(6)»Y<12)»S(4)»P»T DOUBLE PRECISION QDATA(4)>UDATA(2)rXDATA(6> rYDATAC12) DOUBLE PRECISION SDATA<4)rPDATA.TDATA
LOGICAL 02RICH>COGGIN>CHROHO
REAL UEIGHT(30>
COMMON /HEIGHT/ HEIGHT COMHON /BURN / 02RICH.C0GGIN.CHR0H0 COMMON /SYSTEM/ Q.U>X»YrSrPrT COMHON /SEARCH/ QDATAiUDATArXDATArYDATAtSDATArPDATA1TDATA
DATA ZERO/O.ODO/
COMPUTE HASS BALANCE
CALL DOENEU
COMPUTE CALCULATED VARIABLES CONTRIBUTION
DOESSQ=ZERO
DOESSO=DOESSO+DOESQR(XDATA(1> rX(l)> + +D0ESQR(YDATA(2>fY(2)>
IF(.NOT.02RICH) + DOESSQ=DOESSQ+DOESQR(SDATA(1), S(1) >
IF(.NOT.CHROMO) GO TO 10 DOESSQ=DOESSQ+DOESQR(YDATAt10)»Y<10)>
+ +DOESQR(YDATA(12)tY(12))
CONTINUE IF(COGGIN) RETURN
INCLUDE SEARCH VARIABLES CONTRIBUTION
DOESSQsDOESSQ+DOESQR(XDATA(2) >X<2))
163
0062: 0063! 0064: 0065: 0066! 0067: 0068! 0069: oo7o: 0071! 0072:c 0073S 0074S 0075: 0076: 0077! 0078! 0079SC 0080: 0081! 0082! 0083! 0084! 0085!C 0086! 0087:C 0088! END >>ERR0R COUNT! 0000r 1 LABELS
+D0ESQR<XDATA<3)»X<3>> . +D0ES0R(XDATA(4)iX(4)) +DOESQR XDATAC5)»X<5>) +D0ESQR(XDATA(6)tX(6J) +D0ESQR(YDATA(1)»Y(1)) +D0ESQR(YDATA(3)»Y(3)) +D0ES0R(YDATA(4)fY(4)) +D0ESQR(QDATA(1).Q(1)) +D0ESQR(QDATA<2)>0(2)> +D0ESQR(QDATA(3)>Q(3))
IF(02RICH> RETURN DOESSQoDOESSQ+DOESQR(SDATA(2 > > S (2 > >
+D0ESQR(SDATA(3)>S(3)) +D0ES0R(SDATA(4)>S(4)) +DOESQR(UDATA<1)iU(1)) +D0ESQR(TDATA>T)*UEIGHT<30)
IF(.NOT.CHROMO) RETURN D0ESSQ=D0ESSQ+D0ESQR(YDATA(7) rY(7))
+D0ESQR<YDATA(5)>Y(5)) +D0ESQR(YDATA<6)>Y(6)> +D0ESQR(YDATA<9)>Y(9))
RETURN
PSECT SIZE: 0261i DSECT SIZE! 0054> REV. 5 09/16/80
)10 0044
VARIABLES ARRAYS PROCEDURES BLOCKNAKES DOESSQ OOOA Q 0000 C FtSBU 00B7 UEIGHT 003C NULL 0009 U 0010 C DOENEU 00B8 BURN 0003 P 0070 C X 0018 c DOESQR 00B9 SYSTEM 0078 T 0074 C Y 0030 c FIMD4 OOBA SEARCH 0078 PDATA 0070 C S 0060 c FtRER 00C7 TDATA 0074 C QDATA 0000 c F««41 OOC8 02RICH 0000 C UDATA 0010 c COGGIN 0001 C XDATA 0018 c CHROMO 0002 C YDATA 0030 c ZERO 0000 P SDAT A 0060 c *ADA OOOE UEIGHT 0000 c *ADB 0012 •ADC 0016 • ADD 001A *ADE 001E •ADF 0022 •ADG 0026 *ADH 002A •ADI 002E *ADJ 0032
oooi:c 0002JC 0003 :c 0004! 0005 :c 0006:c ooo7:c ooo8:c ooo9:c ooio :c oon: 0012! 0013JC ooi4: 0015*. ooi6: ooi7:c ooi8: ooi9: 0020:
sssssssassssssssasssssaB
DOUBLE PRECISION FUNCTION DOEZVL(IrZSTEPrZl)
COGGIN SUPPORT ROUTINE TO ALLOU INDIRECT-INDEXED ADDRESSING OF THE SEARCH VARIABLES.
SS8SSC:SBSS2SSS398rnSSSaSdS3B8aa3SSSaSBESZ8SSS
IMPLICIT DOUBLE PRECISION (A-H>0-Z) COMMON /VECTOR/ 0LDZC22)»DELZ<22>fNSERCH
DATA J/0/ DATA ZTEHPiSCALAR/0.ODO.1.000/ DATA ONE>ZERO/1.ODO>0.0D0/
J=NSERCH+1 IF(I.EQ.J) GO TO 10 DOEZVL=DQEFVL(IiZSTEPtZl)
:SSS88aSSSSSSSSSBSSS88S
1 6 4
0021! 0022:C 0023110 0024IC 0025:c 0026!C 0027: 0028: 0029: 0030: 0031*. 0032:20 0033! 0034: »ERR0R COUNT: 1 LABELS
RETURN
CONTINUE
SEARCH ALONG HYPERVECTOR
SCALAR=Z1+SCALAR*ZSTEP DOEZVL=SCALAR DO 20 J=1rNSERCH
ZTEMP=OLDZ(J)-DELZ(J)+SCALAR*DELZ(J) ZTEHP=DOEFVLt J.ZERO > ZTEHP > CONTINUE
RETURN END
0000 r PSECT SIZE! 0097» DSECT SIZE: 0019S REV. 5
>10 ) 20
002A 0052
VARIABLES
DOEZVL OOOC I 0009 ZSTEP OOOA Zl OOOB NSERCH OOBO C J 0000 P ZTEMP 0001 P SCALAR 0005 P ONE 0009 P ZERO OOOD P *AIA 0010 •AIB 0011 #AIC 0012
ARRAYS
OLDZ DELZ
0000 0058
PROCEDURES
F$SBT 005B DOEFVL 005C F$RER 005D
09/16/80 BLOCKNAMES
VECTOR 00B1
oooi: c 0002!C= 0003JC
>:c 0006SC ooo7:c 0008IC ooo?:c ooio:c ooii :c '0012!C 0013:c 0014! 0015IC 0016: 0017! 0018!C 0019! oo2o:c 0021! 0022SC 0023: 0024:c 0025! 00265C 00275C 00282C 0029SC 0030iC 0031 :c 0032:c 0033 :c 0034JC 0035 :c 003&:c 0037SC 0038!C 0039:c 0040:
:B68SSS::sa88S&S8aSZS583S8SSSSSSSSSSSS38BSS&S3S18l8IS3SSSS3BB8a88S8
DOUBLE PRECISION FUNCTION DOEFVLd iZSTEP>Zl)
THIS FUNCTION INCREMENTS A SPECIFIED SEARCH VARIABLE BY THE GIVEN FRACTION 'ZSTEP' FROM THE BASE POINT Zl.
INPUT IS FROM THE PARAMETER LISTt OUTPUT IS VIA COMMON.
IMPLICIT DOUBLE PRECISION (A-HrO-Z)
COMMON /SYSTEM/ 0(4)»U(2)»X(6>»Y(12)»S<4)»P»T COMMON /INDEX/ INDEX
EQUIVALENCE <Z(1)»Q(1>)
INTEGER INDEX(30)
DOUBLE PRECISION Z(30)
DATA J/0/
0(1-4) = Z(l-4) W<1-2) = Z<5-6> X(1—6) = Z < 7—12) Y(1-12)= Z(13-24) S<l-4) = Z(25-28) P « Z<29) T = ZOO)
INDEX/1.2.3,8i9»10»11.12.13.15»16»5»26.27»28r30rl7,18.19r21/
UPDATE THE SPECIFIED SEARCH VARIABLE
Z(INDEX(I))=Z1+Z(INDEX(I))*ZSTEP
1 6 5
0041! 0042! 0043iC 0044! »ERR0R COUNT! 0000 1 LABELS
DOEFVL=Z(INDEX(I)) RETURN
END PSECT SIZES 0033» DSECT SIZE! 0018! REV. 5
PROCEDURES VARIABLES ARRAYS
DOEFVL OOOC 0 0000 C I 0009 U 0010 C ZSTEP OOOA X 0018 C 21 OOOB Y 0030 C P 0070 C S 0060 C T 0074 C INDEX 0000 C J 0000 P Z 0000 C tAIA 0010 *AIB 0011
FtSBT FiRER
001F 0020
09/16/80 BLOCKNAMES
SYSTEM 0078 INDEX 001E
0001 *.C 0002:c== 0003IC 0004! 0005:c 0006 :c 0007!C 0008!C== ooo?:c 0010! 0011 s 00125C 0013! 0014! 0015JC 0016! 0017! 0018! 0019! 0020!C oo2i:c 0022:c 0023! 0024! 0025! 0026: 0027: 0028: 0029120 0030:io 0031: 0032!
SUBROUTINE DOESRTtF.Z)
BUBBLE SORT ROUTINE FOR THE COGGIN ALGORITM
IMPLICIT DOUBLE PRECISION (A-HfO-Z) DIMENSION F(4)>Z<4)
DATA FTEHPfZTEMP/2*O.ODO/ DATA IiJ»K/3*0/
DO 10 J=lf3 K=4-J DO 20 1 = 1 fK
IF(F(I).LE.F(I+1)) GO TO 20
VECTORS F AND Z ARE ORDERED PAIRS
FTEMP=F(I> ZTEMP=Z(I) F<I)=F(1+1) Z(I)=Z(I+1) F(I4" X+l)®FTEMP Z<1+1)=ZTEHP CONTINUE
CONTINUE RETURN END
»ERROR COUNT! OOOOr PSECT SIZE! 1 LABELS
) 10 ) 20
0069 0062
VARIABLES
FTEMP 0000 P ZTENP 0004 P I J K *AIA •FTIB *AIC •A I [i *AIE *AIF
0008 P 0009 P OOOA P OOOB OOOC OOOD OOOE OOOF 0010
0119» DSECT SIZE! 0017J REV. ARRAYS PROCEDURES
F 0009 FtSBT 0072 Z OOOA FSMD4 0073
F*RET 0076
09/16/80 BLOCKNAHES
0001!C 0002:c=
OOOSiC 0006'C 0007!C
BSS33SS3SSSSS83SSSSBSSSaSSSSSSS8=SS8BaaSBS3S3SSaSSSS8SSSSSS8SS3S
DOUBLE PRECISION FUNCTION DOESOR'(DtX)
THIS ROUTINE COHPUTES THE SQUARE OF THE RESIDUALS AND INCLUDES A PENALTY TERM IF THE PREDICTION
1 6 6
0008JC IS NEGATIVE. ooo?:c 0010! CSSSC£ = S = = - = S = = = S~==SS = = SSSSE=SSS = SSS»=3SSSSS8S3C3SSS333SSSEaSB3SSSE
ooii:c IMPLICIT DOUBLE PRECISION (A-H>0-Z) 0012!
0013IC 00141 oois:c ooi&: ooi7: 0018! 0019S 0020JC 0021IC 0022.C 0023: 0024: 0025! 0026:
DATA CONSTIZERO/IOOO.ODOFO.ODO/
DOESQR=ZERO IF(X.EQ.ZERO) RETURN IF(D.EQ.ZERO) RETURN D0ESQR=<CX-D)/D>**2
ADD PENALTY TERHS IF VALUE IS NEGATIVE
IF(X.GE.ZERO) RETURN DOESQR=DOESQR*DEXP<CONST*DABS((X-D)/D>> RETURN END
»ERROR COUNT: OOOOr PSECT SIZE! 0089. DSECT SIZE! 0019? REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
09/16/80 BLOCKNAHES
DOESDR OOOB D 0009 X OOOA CONST 0000 P ZERO 0004 P •ADA OOOF
FSSBT 0052 F*RER 0055 DEXP 0057
00011 c 0002:c 0003SC 0004!C 0005JC 0006:c ooo7:c 0008SC 0009SC ooio:c 0011SC 0012 * C ooi3:c 0014SC ooi5:c 0016SC 0017IC 0018IC 0019! 0020:c 0021IC 0022! 0023: 0024SC 0025! 0026IC 0027JC 0028! 0029! 0030! 0031: 0032SC 0033SC 0034:C oo3s:c 0036:c 0037SC 0038:c 0039! 0040! 0041! 0042: 0043! 0044! 00455C 0046! 0047:C 0048! 0049! ooso: 0051: 0052!11 0053: 0054! 0055! 0056110 0057!C 0058IC 0059:c 0060! 0061! 0062! 0063! 0064:C 0065JC 0066:c 0067!C 0068IC 0069! 0070:
LINKING PROCESSOR FOR CROHEHCO
THIS PROGRAH LINKS CONTROL BASIC PROGRAHS WITH Z80 HACHINE LANGUAGE SUBROUTINES.
LUNSi
SI = USER BASIC FILE SO - US IS = DP LO = TY OM = TY U1 = 63 = UKZ80DIR)
IHPLICIT INTEGER (A-Z)
INTEGER SYHB0L<60>11> >ASCII(80)>SUBNAH(60i11) INTEGER Z80DIR<4>rNAHSAVUO)rLOADER(64>
LOGICAL FOUNDiNEUREC
DATA LOADSZ /64/i LOADER /64K1H0/ DATA SYHB0LC1>1)rASCII(1)iSUBNAH(1t1)rLOADER*1)/4*0/ DATA Z80DIR/'DS'»'Z8'»'00'»'IR'/ DATA I0SGET/Z205F/
PASS ONE
INITIALIZE SYHBOL TABLE
SI = 1 S0=2 L0=5 IS=6 0H=7 Ul=63
HAXREF=60
URITE(L0>501) DO 10 I=1»HAXREF
DO 11 J=l,8 SYHBOL(I>J)=1H CONTINUE
SYHBOL(Ir9)=0 SYMBOL!Ir10)=0 SYMBOL*It11)=0 CONTINUE
INITIALIZE COUNTERS
NCALL=0 NREC=0 NBYTES=X'2200' DIhSAV=0
GO TO TOP OF FILES
REUIND SI REWIND SO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
O©
GO
OO
OO
OO
OO
OO
OO
OO
OO
OO
CC
c
I
°OOOOOOOOO',
0'O"
,0'0
N0>0V0"
J>0N000C0CD00C000AJCDA)00'>JVJVJVJV4'SJVJNJ'SJ
HO<C00>JI>
<CNAUIV)HO
<4Q)NJ(HC1AUMMOY)Q
,G0>ULI»UM
OS)00'SJ0>C/L>MM
OS)A3>JL>C>1.TKW(0
O'«A}N|LHUI»UO'<L09M(HCQAC4MM
**** " •••••••••••••••«••••••••••»• **•••••••• •• ••••*•••••••••••„•• •••••••• •••••*••••••
••••«• ••
nno
-
-*»
nn
o
oo
o
oo
o
wo
oo
n
nn
w
oo
o
wn
nn
M
NNN*
OO
A. OO
occ
<r
0?030 Z
hh
3:
—<—*
—«
3>
omm
—i
—
n
>00
z
023
m
O- - O
cntn
o
ro
-o
OI»
Z>
WW
9
m
—•
z
S>
-4
cn
x
N M
»-H
CO
»-f
rn
OCO
II H
O
CI
OH
^»
a
o*n
on
z
II -1
>z
> r~
•-»
OCOI
-«••
ZNTTHHON N
COUTH
»-L|-
J> II
«
HHCNCNRRAJ
Z OO"* W-F
C
»-«I-«Z* "•
M HHNMZ
ASOO
32»* X
WWJO
X*
• *
X3D
MM
00 W
-l-H
O
O
OQ
»» 0
or
cn
O
f—
oocn
co 0
ocn
m
O
0
z n
o
3>
0
HH
MH
OH
WM
HH
^JJ
TO
h 0 «
H 0
0 **1
*n "n "n 0 —
i O
i-n
no
Z
Z
—
"—M
il Z
-n
C
^H
H H4
k2>X
»2>X
> i-«
X»
I>3>
0
IHM
+ w
•iMCO
cocn
tnr--
*--n
(0
(00)H
ti z
nn
nn
11 g
j 0 000 II
w
t-» c
M
HI
M >r
-70
H
HH
M
11 x m
H
MH
MC
O
H M
M<*
z
i-r-r
-r-3
0 H
HH
fl
0
m
WW
WW
—|
•»
..w
X
H
M»-
»* X
> X
mm
mm
z *
—"-
ZP5
00000
• •
m
• • • • 1
•>»
zz*
cn
HM
I m
mn
-i
xxxxso
•
• X
x>
-4
W
W W
W
XX
w
m
z*-*
x
OO
OO
w
wC
) m
O
OO
O
0
z
-4—1—
l-H
OO
-4
OO
OO
0
—«—
I O
O-t*
O
OO
O
0
rjroj
»ro
J>J>
O 00
OO
-f-zz
z
• M
O
z
oz
w
wo
w
3>
-no
0
030
r*
-<x
-<
Z->
Z
z
m
i>
— -1
C?
3>—<
1
—10
z
mso
rn
•
tn^H
TO
011
cn 11
to
3>O
Z I-
z
111_
11
cnw
c I>
ro
se
3D
z
z
on
m
z
om
m
09
cz
7v
0 0
-<
X
wt.
1 0
—1
w
—» 1
33
»-*
30
m
m
C_N)
m
C3
cn
73
•w
w 0
• •
0
Tl
z
0
mm
70
O
0
-n
OO
O
C
X
• •
z
z>
0
MM
M
30
X
X
X
-n
x>
am
0
ro
70
c
i>
i>
z
0
QZ
0
—1
OO
m
»
—I3>
cn
oc
n •V.
0
r~
N>w
M
0>M
z
m
c_
-•-
•*
OHCM
o*n
11 NJ
z-»c
o •HEN 1
U ZO*-*—
CW
>• PIN
CO
0
Z30D
TJNIO
M»Z
00—1
tl 2(O
Z
TOt-tC
Z
C
CO M
30
•3
CJ I XH
CO xu
m
<t MHX
BI M
VU
| X
—.
O
XX
0£~4
O
• (OOHUJZ ||
o
II LF>
II NU
ZIIH
-U
tOZ
HH
4H
<—1-iN
liluiO
=9 II I X
J(n>-MH
«33(0 ZCMZUJ-IXZ
*" 25EW
1-1*4 II Z
HOHHOHHU
zx
UA ZZH
O HO
cntnoooce UOQ
«R<ROCJC)3
X •
HU
I •z
<C U
000
HH
H
-j 000
fororo O
OO
O
OO
O
OO
M
l-H
-l-»-4
H O
O
000
->«»w
roco 000
h-IIX
XX
<r
oc H
H a 11
Uh
•H • • •
i— uiio
111 (e
nao
a
XX
X
or-5 __J
<X *-UJUJUJ 0 -
Z 11
CQ X
J • • •
CD-I • • »
it —
<x O
_J
UIUIUJ 1-
zzz
0>*H CD U
• • •
.J H
Z««t-«
• ZU1
4> 1 1 a
QfvH
MM
^CM
W
jjj n
h
JO
UU
O
-IZ
_j<x<x X
coococnov H *
OH MHH
cu
u
>-
-j ««<!«
•
T-T WCJCJ
tn »-i
ti cncn O
»-H<X«X _I
to _i
•+• u
zz
CO
JOO
II TL>*ON3HMHMN3
WH
MH
^HW
U zu
uu
tl Z
"O
OH(OU)U)HOM n
*-i— <L<Z<COZ*-*-
CO II c_ -J
ZTOCO
0
z
UI as 0
ll_ X
>-
*0 xoe u<z
UJ
kos f-
<xca »-»
UH
C
£
in-J 3
OC
J
A
KM
z
U) 3
UJ4
0
ja
u. A
UJ
1-K
M
Z
z
CM
0
H
UI
0
coco _jtn
-1
X
10 M
O
UI
Ui
•»
X
»z
O
H-0
»—
UIO
0 00
XH
C
O
X
CM
<x
sen
3
cut->-»—
UI
H-Z
1—
U
. 103
0
z 0
10 H
lU
UI
O
z
I— »-»
-C
O
«»-
tO£C
M
>—
0
z»-« cn
«•-*
UlA
3
UI a z
ooe
<r uioe
CA
3
UJ
0
0
UI
U3
a. 0C
3
SC
O
cc
CJCJCJ ro
ROCJUO CJOUN
UUUUUUUUUUU
W >OQ,III<ONAI(HOH(MN
IA*ONA)O>OHF<JRO<RTN,ONCO(SOF
R<M9II')*ONA)CKOHNTOII')
<ORVOO(HO<-IMTOIO
,OFS'(D(KO«4NIO
B'),OIN.A)O
I>O*4N *
VINIOB
,}B')BIINVIIOB')IO,4*0'0
,O,OM>O>O*O<ORSR\MSNSISR
I>>RSTVCOA)OO(DA)OOCOOA)COIM>>O«I>CHO>(HO>OCKOOOOOOOOOOHHH
_ ... HHMHHH
WCPICICMRINWNWNNN
oo
oo
oo
oo
oo
oo
o ©
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
ooOOOOOOOOOOOOOOOOOO OOOOOOOO
oo
o o
o
170
0213:C 0214:c 0215JC 0216SC 0217S 0218! 0219! 0220M0 0221! 0222:c
832?i6 0225: 0226:c 0227!C 02285C 0229: 0230: 0231! 0232:c 0233!c 0234SC 0235SC 0236! 0237!50 023B! 0239! 0240! 0241! 0242! 0243:c 0244:c 0245!C 0246! 0247: 0248: 0249! 0250: 0251: 0252:52 0253: 0254:c 0255:c 0256SC 0257:C 0258IC "?j56 0260 0261: 0262: 0263!C 0264JC 0265:C 0266:325 0267! 0268! 0269! 0270! 0271! 0272SC 0273: 0274! 0275: 0276! 02771310 0278:C
m\i 0281: 0282 >311 0283:
ACCOUNT FOR DIFFERENCE FOR SUBSTITUTIONS IN THE NUMBER OF BYTES
ISUM=0 DO 40 1=1rNCALL
£ON?INUEm+syhbol<i'11>-symbol<i'10>"5 IF(ISUM.GT.O) NBYTES=NBYTES+ISUM
COHPUTE PAGE FOR START OF SUBROUTINE
NBYTES=NBYTES+DIMSAV*2+X'80'
SUBROUTINE PAGE START
LOCBGN=NBYTES/X'100' L0CBGN=L0CBGN*X'100' LOCSUB=LOCBGN
GET NAME OF ALL SUBROUTINE ON FILE AND THEIR SIZE NSUB=0 CONTINUE READ(U1»500> (ASCII(I)* 1=1»BO> IF(ASCII(1).EQ•1H-) GO TO 56 NSUB=NSUB+1 SUBNAM(NSUBr9)=0 SUBNAHCNSUBt10>=0
PACK SUBNAH. LEFT JUSTIFY IT
K=0 DO 52 1=1>8
SUBNAH(NSUB>I)=1H IF(ASCII(I).EQ.1H ) GO TO 52 K=K+1 SUBNAM(NSUB f K)=ASCII(I) CONTINUE
GO TO 50
COUNT NUHBER OF BYTES IN EACH ASSEHBLED Z-80 SUBROUTINE
mm™ LINE=JHAX HO 300 I=1»NSUB
FIND SUBROUITNE
CONTINUE LINE=LINE+1
READ(U1>500> (ASCII(J)»J=1>9) IF(ASCII(7).EQ.1HE.AND.ASCII(8).EQ.1HN •AND•ASCII(9)lEQflHD) GO TO 60 IF(ASCII(1).EQ.1H ) GO TO 325
DO 311 11=1rNSUB ISUB=II DO 310 J=l»8
IF( ASCIK J) •NEiSUBNAHdl 1 J)) GO TO 311 CONTINUE
NATCH FOUND
GO TO 312 CONTINUE GO TO 300
028 41C 0285SC 0286!C 0287SC 0288S312 0289! 0290J315 02915 0292! 02935 0294! 0295! 0296! 0297! 02985 02995330 03005 0301!C 0302!C 0303:c 03041320 0305! 03061300 0307!C 03085C 0309!C 0310!C 0311:c 03125C 03135C 0314: C 03155C 03165C 03175C 03185C 0319560 03205 03215 0322!70 0323! 0324!C 0325! 0326! 0327574 0328! 0329!C 0330!C 0331!C 0332! 0333! 0334!C 0335!C 03365C 0337S76 033B5C 03395C 03405C 03415 0342! 0343! 0344!82 0345!C 0346!C 03475C 0348! 0349!C
8IS9iE 0352! 0353! 0354!C
MATCH FOUND. COUNT NUMBER OF BYTES UNTIL END OF DATA 'EOD' FOUND
SUBNAM(ISUBt11)-LINE NBYTES=0 CONTINUE READ(UlfSOO) (ASCII(J)>J=1r9) LINE=LINE+1 IF(ASCII(l).EQ.lHE.AND.ASCII(2).EQ.1H0 •AND.ASCII(3).EQ.1HD) GO TO 320 IF(ASCII<1).EQ.1H ) GO TO 315 DO 330 J=l»8
IF( ASCIK J) .EQ. 1H ) GO TO 315 NBYTES=NBYTES+1 CONTINUE
GO TO 315
'EOD' FOUND* SAVE NUMBER OF BYTES OF SUB
CONTINUE SUBNAM(ISUB»9)=(NBYTES+1)/2 CONTINUE
NSUB=NUMBER OF SUBROUTINES IN LIBRARY
SUBNAM(SUBrl)
1<I<8 1=9 1=10
SUBROUTINE NAME SUBROUTINE SIZE ABSOLUTE LOADING ADDRESS
READ BASIC FILE NREC TIMESi REPLACE CALL SUBNAH WITH CALL ZHHLL
CONTINUE K=1 REC=0 CONTINUE READ (SO 1500) (ASCIK I) • 1 = 1 >80) URITE(L0>500) (ASCIK I)»1 = 1 »80) REC~REC+1 J GUIQ'NREC) G0 T0 72 IF(SYMBOL(Ki9).EQ.REC) GO TO 76
NO CALL IN THIS RECORD
URITE(ISf500> (ASCIKI)11 = 1 >80) GO TO 70
CALL IN THIS STATEMENT RECORD
CONTINUE
FIND SUBROUTINE IN LIBRARY DIRECTORY
DO 80 I=1>NSUB DO 82 J=li8
IF(SYMBOL(KfJ).NE.SUBNAM(IiJ)) GO TO 80 CONTINUE
HATCH FOUND* CHECK IF PREVIOUSLY REF'D
IF(SUBNAM(I>10).GT.O) GO TO 84
FIRST REFERENCE FOR SUBNAM
SUBNAH(I>10)=L0CSUB LOCSUB=LOCSUB+SUBNAM(If9)
172
0355:c 0356JC 0357: 0358:80 0359SC 0360SC 03615C 0362: 0363! 0364: 0365:c 0366:c 0367:c 0368!C 0369SC 0370:84 03715 0372: 0373: 0374! 03755 C 0376: 0377! 0378! 0379! 0380iC 03815C 03825C 0383! 0384! 0385:C 0386:C 0387:C 0388: 0389: 03905 0391! 03925 0393:92 03945 0395JC 0396SC 03975C 0398: 0399! 04005 04015 04025 0403594 0404590 04055C 04065C 04075C 0408! 0409! 0410: 04ii: 0412: 0413! 0414! 0415IC 04165C 04175C 04185 04195 04205 0421598 0422596 0423 5 C 04245C 04255C
REPLACE CALL SUBNAH UITH CALL ZHHLL
GO TO 84 CONTINUE
UNSATISFIED REFERENCE
URITE<0H>506) <SYMBOL(K>I)r1=1F9) K=K+1 GO TO 74
REPLACE CALL SUBNAH UITH CALL ZHHLL
CHANGE HEX ADDRESS TO ASCII ADDRESS
CONTINUE 1HEX1=SUBNAH(I»10)/X'1000' IHEX2=(SUBNAM(I»10>-<IHEX1*X'1000'))/X'100' IHEX3=(SUBNAN(I»10)-(IHEX1*X'1000')-(IHEX2*X'100'))/X'10' IHEX4=SUBNAM(I»10)-(IHEX1*X'1000')-(IHEX2*X'100')-(IHEX3*X'10')
CALL HTOC(IHEXl) CALL HTOC(IHEX2) CALL HT0CUHEX3) CALL HT0CCIHEX4)
CHECK FOR SHIFT RIGHT
ISIZE=SYMBOL(Ki11)-SYMBOL(K»10) IF(ISIZE.GE.5) GO TO 90
SHIFT RIGHT
ISHIFT=80-5+ISIZE
J=80+SYMB0L(K>11)-I ASCII(J)=ASCII(J-l) CONTINUE
SYMBOL(KF11)=SYMBOL(K»10>+5
UPDATE OTHER REFERENCES ON THIS RECORD
ISTRT=K+1 DO 94 I=ISTRTrNCALL
IF(SYMBOL!I»9).NE.REC) GO TO 90 SYHBOL(I»10)=SYMB0L(I»10)+5-ISIZE SYMBOL(III1)=SYMB0L(IF11)+5-ISIZE CONTINUE
CONTINUE
URITE ASCII ADDRESS INTO RECORD
I=SYHBOL(Ki10) ASCII(I)=1H% ASCII(I+1)*IHEX1 ASCII(1+2)=IHEX2 ASCII(I+3)=IHEX3 ASCII(I+4)=IHEX4 IF(ISIZE.LE.5) GO TO 96
SET REMAINDER OF SIZE TO BLANKS
ISIZE=SYMBOL(K>11)-SYMBOL(K»10)-5 DO 98 J-liISIZE
ASCII(I+4+J)=lH CONTINUE
CONTINUE
READY FOR NEXT REFERENCE
173
0426! 0427! 042B!72 0429!C 0430!C 0431: c 0432!C 0433!C 0434!C 0435!C 0436!C 0437! 0438! 0439! 0440! 0441! 0442! 0443! 0444!73 0445!C 04461C 04471C 0448! 0449! 04501100 0451!C 0452!C 0453!C 0454 !C 04555 0456! 0457! 0458! 0459S62 0460! 0461! 0462!64 0463! 04641C 0465IC 0466 !C 0467! 110 0468! 0469! 0470SC 0471iC 0472! 0473! 0474! 0475!C 0476!C 0477!C 0478!120 0479! 0480! 0481! 0482! 0483! 04841121 0485! 0486! 0487! 0488!122 0489!C 0490!C 0491!C 0492! 0493!C 0494!C 0495!C 0496!C
K=K+1 GO TO 74 CONTINUE
ALL SUBSTITUTIONS HADE
ATTACH SUBROUTINES TO LOADER FILE
LOAD=LOCBGN NEED«LOADSZ URITE(ISi508) LOCBGN URITE(L0i520) DIHSAV URITE(L0>514) LOCBGN NREAD=0 REUIND U1 CONTINUE
LOOK FOR A LOADING ADDRESS MATCH
DO 100 1=1»NSUB IF(SUBNAMCIflO).EQ.LOAD) GO TO 110 CONTINUE
NO MATCH FOUNDf ALL REFERENCES SATISFIED fclRITE LAST RECORD
CALL OUTPUT(LOADERfISfLOADSZ) WRITE(ISr502) WRITE(L0r510) DO 62 1=1fNSUB URITE(L0>511) CSUBNAM(I.J)»J=1.10) URITE(L0r512) DO 64 1=1iNCALL URITE(LOf511) (SYMBOL(I»J)jJ=119) STOP
MATCH FOUNDfPICK UP REFERENCE
CONTINUE SUB=I L0AD=L0AD+SUBNAH<SUBf9>
SKIP PAST DIRECTORY ASCII(1)=80 ASCII(2)=SUBNAH(SUBf11>-2 CALL FilOSCIOSGETrASCII>UlrI>
FIND MACHINE LANGUAGE SUBROUTINE
CONTINUE READ(UliSOO) (ASCII(I)rl=lr80) IF(ASCII(7)»NE>1HE•OR•ASCII(8)«NE»1HN .OK.ASCII(V).NE.1HD) GO TO 121 URITECOMi522) (SUBNAM(SUBrI)r1=1>8) GO TO 73 CONTINUE DO 122 1=1i80
J=81-I IF(ASCII(J).NE.1H ) GO TO 124 CONTINUE
BLANK RECORD FOUNDf SKIP IT
GO TO 120
NON-BLANK RECORD FOUND SEARCH FOR SUBNAM MATCH
1 7 4
04971124 0498! 0499SC 0500:c 0501!C 0502! 0503! 0504! 0505! 0506! 05075126 0508! 05095 0510'. 05111127 0512: C 0513IC 0514:C 0515: 0516! 0517:128 0518:c 0519SC 0520!C 0521! 0522! 0523: 0524! 0525! 0526! 0527: 0528:130 0529! 0530! 0531*. 0532'. 0533! 0534: 0535! 0536: 0537:132 0538:C 0539:c 0540!C 0541!131 0542JC 0543JC 0544iC 0545! 0546! 0547:C 05481133 0549: 0550! 0551! 0552: 0553:c 0554:c 0555:c 0556:c 0557:c 0558:134 0559! 0560: 0561: 0562: 0563: 0564: 0565: 0566iC 0567!C
CONTINUE IF(J.6T.8> 60 TO 120
PACK ASCII LEFT K=0 DO 126 1=1*8
IF(ASCII(I) .EQ.1H ) GO TO 126 K=K+1 ASCII(K)=ASCII(I) CONTINUE
K=K+1 DO 127 J=K»9
ASCIK J)=1H CONTINUE
HATCH CHAR. BY CHAR.
DO 128 I=li8 IF(ASCII(I).NE.SUBNAH(SUB>I)) GO TO 120 CONTINUE
HATCH FOUND PICK UP SUBROUTINE
URITE(L0i507) (SUBNAh(SUBiI>»1=1»8) URITE(LD.SOB) SUBNAH(SUBilO) LOCABS=SUBNAH(SUB>10) L0CREL=0 TEST=SUBNAM(SUBf9)*2 SCHCNT=0 FQUND=.FALSE. CONTINUE NEUREC=.TRUE. READ(U1 >500) (ASCIKI)11 = 1.80) IF(ASCII(7).EQ.1HE.AND.ASCII(B).EQ.IHN .AND.ASCII(9).EQ.1HD) GO TO 133 IF<ASCII(1).EQ.1H ) GO TO 131 DO 132 I=li80
^FtfticiK J) .NE.1H ) GO TO 134 CONTINUE
BLANK RECORD
CONTINUE
COHHENT
URITE(L0.500) (ASCII(I)t1=1>60) GO TO 130
CONTINUE IF(.NOT.FOUND) GO TO 130 URITE(0H>516) (SUBNAM(SUB»I)»1=1»8) URITE(0Hr518) SUBNAM(SUB»9) GO TO 73
NON-BLANK RECORD*
SEARCH FOR '*+LL'
CONTINUE FOUND*.TRUE. JSAV=J+1 DO 136 1=1rJSAV
HCHAR=I-1 IF(ASCII(I),EQ.1H ) GO TO 138 IF(ASCII(I).EQ.1H0) GO TO 137 IF<ASCII(I).NE.lHt) GO TO 136
'*+LL' FOUND* REPLACE IT UITH
MACHINE LANGUAGE START
'LLHH'
1 7 5
0568JC 056?:
137
h\ 0602:200 0603:c 0604:c 060s:c
0607::c 0608:c
!!!
c 202
C c
7!
06 0 0 0
m\ 8S5?I810
m\i %m2n
mi c 0628:c 0629IC 0630.212 0631!C 0632JC 0633:c
m\ 0636S218 0637!C 0638!
IHEX1=ASCII(1+2) IHEX2=ASCII(I+3) CALL CTOH(IHEXl) CALL CT0HCIHEX2) IHEX1=16*IHEX1+IHEX2 LOCSUB=SUBNAM(SUB»10)+IHEX1 CONTINUE
IHEXl-LOCSUB/X'lOOO' IHEX2=<L0CSUB-(IHEX1*X'1000'>)/X'100' IHEX3=(L0CSUB-( IHEX1*X' 1000')-(IHEX2IX' 100') )/X' 10' IHEX4=L0CSUB-( IHEX1*X' 1000' > - (IHEX2*X' 100') - (IHEX3*X '10')
CALL HTOC(IHEXl) CALL HTOC(IHEX2) CALL HT0C(IHEX3) CALL HTOC(1HEX4) ASCIHI ) = IHEX3 ASCII(1+1)=IHEX4 ASCII(I+2 >=IHEX1 ASCII(I+3)=IHEX2 60 TO 136 CONTINUE
SEARCH FOR GLOBAL REFERENCE
IF(ASCII(I+1>.NE.IHO) GO TO 136 IF(ASCII(1+2).NE.1H0) GO TO 136 IF(ASCII(I+3).NE.IHO) GO TO 136
SEARCH FOR GLOBAL FLAG ' * '
00 200 K=IiJSAV IF(ASCII(K).NE.lHt) GO TO 200 GO TO 202 CONTINUE
NO GLOBAL IN THIS STATEMENT
GO TO 136
PICK UP GLOBAL REFERENCE
CONTINUE
SEARCH LEFT
KSAU=K DO 210 K=1»8
J=KSAV-K IF(ASCII(J).EQ.1H ) GO TO 212 IF( ASCIH J) .EQ. 1H() GO TO 212 IF(ASCII(J)>EQ. IHi ) GO TO 212 CONTINUE
NO DELIMETER FOUND
CONTINUE URITE(0HrS26) (SUBNAh(SUBrK)»K=1.B),(ASCII(K)>K-JfKSAV) GO TO 136
VALID DELIMETER FOUND
CONTINUE
PICK UP GLOBAL NAME
DO §HPSL5VK?=LH CONTINUE
L=0
176
0639! 0640! 0641! 0642! 0643! 0644! 064S! 0646! 0647! 0648! 0649! 0650!220 0651!C 0652!C 0653!C 0654! 0655!C 0656!C 0657!C 06581222 0659! 0660! 0661! 0662! 0663! 0664! 0665!224 0666!C 0667!C 0668!C 0669! 0670! 0671! 0672!232 0673SC 0674SC 0675!C 0676! 0677! 06781230 0679!C 0680!C 0681!C 0682! 0683!136 0684!138 0685! 0686! 0687! 0688! 0689! 0690! 0691! 0692! 0693!139 0694! 0695! 0696!C 0697!C 0698!C 0699! 0700! 0701! 0702! 0703!140 0704!C 0705iC 0706iC 0707! 0708! 0709!C
J=J+1 KSAV=J+8 NAMSAV(9)=0 NAMSAV(10)=0 DO 220 K=J.KSAV
L=U+1 IF(ASCII(K).EQ.1H > GO TO 224 IF<ASCII(K>. EQ.1H)) GO TO 224 IF(ASCII(K)>EQ.1H.) GO TO 224 IF (ASCII (K) •EQilH'f > GO TO 222 NAHSAV(L)=ASCI1(K) CONTINUE
NO DELIMETER FOUND
GO TO 211
DISPLACEMENT DELIMETER FOUND • + •
CONTINUE NAMSAV(9)=ASCII(K+1) NAhSAV(10)=ASCII(K+2> CALL CT0H(NAHSAV(9)) CALL CTOH(NAMSAV(10)) IF(NAMSAV(10).EO.-l) GO TO 224 NAMSAV<9)=NAMSAV(9)*X'10'+NAMSAVU0) CONTINUE
FIND NAME IN DIRECTORY
DO 230 J=1»NSUB DO 232 K=l .8
IF(NAMSAV(K).NE.SUBNAM(J>K)) GO TO 230 CONTINUE
MATCH FOUND..SUBSTITUTE CORRECT ADDRESS
LOCSUB=SUBNAM<J.10>+NAMSAV(9) GO TO 234 CONTINUE
UNSATISFIED GLOBAL REFERENCE
HRITE(0H.506) (NAMSAV(K)fK=1»0) CONTINUE
CONTINUE IF(NEMREC)URITE(LO.509) LOCABS.LOCREL.(ASCII(I>.1=1.JSAV) IF <NEMREC) LOCREL=LOCREL+ <NCHAR+1)/2 IF<NEMREC>LOCABS=LOCABS+(NCHAR+1)/2 NEMREC=.FALSE. CHECK=SCHCNT+NCHAR IF(CHECK.LE.TEST) GO TO 139 MRITEtOKi516) (SUBNAM(SUB.I).1=1.8) MRITE(0M>518) SUBNAM(SUB.9> CONTINUE IF(NCHAR.GT.NEED) GO TO 150 IF(NCHAR.LT.NEED) GO TO 160
NCHAR = NUMBER NEEDED BY LOADER
K=LOADSZ-NEED DO 140 1=1(NEED
L=K+I LOADER(L)=ASCII(I) CONTINUE
LOADER FULL. DUMP TO OUTPUT
SCHCNTsSCHCNT+NEED CALL OUTPUT(LOADER.IS.LOADSZ)
177
0710 C 0711 C 0712 0713 c 0714 c 0715 c 0716 0717 c 0718 c 0719 c 0720 0721 150 0722 C 0723 c 0724 c 0725 0726 0727 0728 072? 152 0730 C 0731 C 0732 C 0733 0734 0735 C 0736 C 0737 C 0738 073? 0740 C 0741 c 0742 c 0743 0744 0745 0746 154 0747 c 0748 C 074? C 0750 0751 0752 0753 156 0754 0755 0756 C 0757 C 0758 C 075? 0760 0761 160 0762 C 0763 C 0764 C 0765 0766 0767 0768 076? 162 0770 C 0771 c 0772 c 0773 c 0774 0775 0776 c 0777 c 0778 c 0779 0780 c
DONE WITH THIS RECORD
NEED=LOADSZ
TEST FOR COMPLETION (CHECKSUM)
IF(SCHCNT.LT.TEST) GO TO 130
DONE UITH THIS SUBROUTINE
GO TO 73 CONTINUE
NCHAR > NUMBER NEEDED BY LOADER
K=LOADSZ-NEED DO 152 1=1rNEED
L=K+I LOADER(L)=ASCII(I> CONTINUE
LOADER FULLi DUMP TO OUTPUT
SCHCNT=SCHCNT+NEED CALL OUTPUT(LOADER>ISfLOADSZ)
TEST FOR COMPLETION (CHECKSUH)
IF(SCHCNT.LT.TEST) GO TO 154 IF(SCHCNT.EQ.TEST) GO TO 73
ERROR IN CHECKSUM
NEEIicLOADSZ URITE(0M»516> (SUBNAM(SUB»I)»I=l»8) GO TO 73 CONTINUE
SHIFT ASCII LEFT 'NEED' TIMES
JFIN=80-NEED DO 156 J=l»JFIN
ASCII(J)=ASCII(J+NEED) CONTINUE
ASCII(JFIN+1)=1H NEED=LOADSZ
SIMULATE NEU RECORD UITHOUT READ
J=JFIN GO TO 134 CONTINUE
NCHAR < NUMBER NEEDED BY LOADER
K=LOADSZ-NEED DO 162 1=1iNCHAR
L=K+I LOADER (L)sASCII(I) CONTINUE
LOADER NOT FULL DONE UITH THIS RECORD
SCHCNT=SCHCNT+NCHAR NEED=NEED-NCHAR
TEST FOR COMPLETETION
IF(SCHCNT.LT.TEST) GO TO 130
178
0781JC DONE UITH THIS SUBROUTINE 07825C 0783! GO TO 73 0784 SC 07851500 F0RMAT(80A1> 0786*501 F0RMAT(/'SPC-16/CR0MEMC0 LINKER? '» 07875 + ' CONTROL BASIC / ZBO ASSEHBLY'//) 0788(502 F0RMAT(9H END) 07891504 F0RMAT(8A1>F10>0) 0790!506 FORMAT(/'UNSATISFIED REFERENCE: 'F8A1 07915507 FORHAT(//BOA1/) 0792!508 FORMAT('*='»Z4> 0793:509 FORMAT(Z416X r Z4»6X.80A1) 0794S510 FORMAT(///'REFERENCE MAP'/' 07955511 FORMAT(8A1>3XrI4«5X>Z4) 0796S512 FORMAT(///'SYMBOLS LINE #'/' 07975514 FORMAT(/'SUBROUTINES BEGIN AT!'»Z6> 0798J516 FORHAT(/'CHECKSUM ERROR IN! '»8A1) 0799:518 FORMAT('* BYTES IN ROUTINE NOT EQUAL T05 '.14 08001520 F0RMAT(/I4(' WORDS RESERVED FOR 0(1)') 0801*522 FORMATt/'ERROR! '»8Ali' NOT FOUND IN LIBRARY 0802J524 FORMATt/'UNMATCHED PARENTHESES') 08035526 FORMAT(/'INVALID GLOBAL VARIABLE IN! '»8Alf' 08045 END »ERROR COUNTS OOOOr PSECT SIZE! 4446f DSECT SIZE! 0071 r REV. 5
B LINE'>14)
'/)
)
***'rBAl)
VARIABLES
>501 )10 >11 )20 )500 ) 22 ) 24 )26 )400 ) 402 )404 ) 414 )406 )40B >410 ) 524 ) 412 >30 >32 >34 >36 >502 >40 >50 )56 >52 )300 >325 ) 60 >311 >310 ) 312 >315 >320 1330 )70 ) 72 >74 )76 >80 > 8 2 ) 84 ) 506 >90
1055 0609 05F2 061C 1052 063F 0647 OBOE 0761 06C7 06DC 0766 0709 0703 072A
0808 07EB 0795 07E5 1077 082C 0849 08A8 08A1 096D 08AE 0973 0907 0900 090F 0917 0963 095C 0977 OAFA 0996 09B4 09EA 09CC OAOE 1084 OAAC
FOUND NEUREC LOADSZ IOSGET SI SO LO IS OM U1 MAXREF I J •AIA •AIB
NCALL NREC NBYTES DIMSAV •ALD •ALE NCHAR LSTRT L K H N IHEX1 JSTRT ISUM LOCBGN LOCSUB NSUB JHAX LINE •ALA •ALB II ISUB REC IHEX2 IHEX3 IHEX4
OOOA OOOB 05BC P 05BD P OOOC OOOD OOOE OOOF 0010 0011 0012 0013 0014 0015 0016 0017 001B 0019 001A OOIB 001C 001D 001E 001F 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F 0030 0031 0032 0033
ARRAYS PROCEDURES
SYMBOL 0000 P F$URF 1024 ASCII 0294 P F*TEF 0EF2 SUBNAM 02E4 P FtHDl OEOE Z80DIR 0578 P F$H00 0EF3 NAMSAV 0000 FtREU 0B53 LOADER 057C P FIREF 0C44
F*ARF 0EF4 CTOH OEOF F$E00 07A2 FIDOO OEIO HTOC 0E11 OUTPUT 1027 F$STO 0C46 F*IOS 0C47
09/16/80 BLOCKNAHES
179
>92 0A6C •All 0034 )94 0AA7 *AIE 0035 >96 0AF7 •AIF 0036 >98 0AF1 ISIZE 0037 >508 10A0 ISHIFT 0038 >520 1113 I TUP 0039 >514 10E1 ISTRT 003A >73 0B21 LOAD 003B >100 0B2B NEED 003C >110 0B91 NREAD 003D >510 10AE SUB 003E >62 0B43 LOCABS 003F >511 10C1 LOCREL 0040 >512 10CA TEST 0041 >64 0B6F SCHCNT 0042 >120 OBAE JSAV 0043 >121 OBFE KSAV 0044 >522 1123 CHECK 0045 >122 OCOB JFIN 0046 >124 0C12 >126 0C2F >127 0C48 >128 OC6O >507 109B >130 0CA2 >133 0B06 >131 OCFO >132 OCEA >134 0D38 >516 10F0 >518 10FF >136 OFOO >138 0F06 >137 0DC3 >234 0D7C >200 0DE7 >202 ODEF >210 0E1B >212 0E5Q >211 0E22 >526 1145 >218 0E5A >220 0E98 >224 OEBB >222 OEAO >230 OEEO >232 OEDO >509 10A5 >139 0F73 >150 OFAA >160 101E >140 0F92 >152 OFCO >154 0FF7 >156 100C >162 103D >504 107E
SUBROUTINE HTOC(I> INTEGER CHR(15) DATA CHR/'l'r#2/i'3'»'4,f'5'r'A'f'7'r'8'i/9#f 'A'»'B'»'C'f'D'f'E'»'F'/ J=I IF(J.NE.O) GO TO 10 I=1H0 RETURN I=CHR(J) RETURN END
»ERROR COUNTS 0000» PSECT SIZES 0046» DSECT SIZES 0012! REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
00015 0002S 0003! 0004 S 0005S 0006! 0007! 0008! o°mi10
o o i i : 09/16/80 BLOCKNAMES
180
)10 0023 I J •AIA
0009 000A OOOB
CHR 0000 P F*SBU 002B F*HD1 002C F«RET 002D
0001J 0002: 00035 DATA CHAR/'l'i'2'i'J i'4 i'5'i'i' 0004: + 'A'f'B'»'C'»'D'f'E'I'F'/ 0005! 0006! 0007 J 0008: 000?: IF(J.EQ.CHAR(K>) I=K 0010! IF(J.EQ.CHAR(K>) RETURN 0011:10 0012: ooi3: 0014! »ERROR COUNT! 0000. PSECT SIZE: 0072. DSECT SIZE*. 0013f REV. 5 1 LABELS VARIABLES ARRAYS PROCEDURES
SUBROUTINE CTOH(I) INTEGER CHAR(16) DATA CHAR/'1'»'2'. 'A'f'B'.'C'.'D'.'E' J=I IF(J.EQ.IHO) 1=0 IF(J.EQ.IHO) RETURN DO 10 K=l«15
IF(J.EQ.CHAR(K>) IF(J.EQ.CHAR(K)) CONTINUE
1=-1 RETURN END
09/16/S0 BLOCKNAHES
) 10 003B I 0009 J OOOA K OOOB »AIA OOOC
CHAR 0000 P F$SBU 0045 FtHDl 0046 FiRET 0047
OOOi: SUBROUTINE OUTPUT<LOADER»LUN.LOADSZ> 0002! DIMENSION L0ADER(64) 0003! URITE(LUNrlO) (LOADER(I>>I=liLOADSZ> 0004: DO 5 1=1iLOADSZ 0005! LOADERCI)=1H0 0006S5 CONTINUE 0007! RETURN 0008!10 FORNAT(80A1) 0009! END »ERROR COUNT: 0000. PSECT SIZES 0058. DSECT SIZE*. 00145 REV, 1 LABELS VARIABLES ARRAYS PROCEDURES
09/16/80 BLOCKNAHES
>10 >5
0037 002B
LUN OOOA LOADSZ OOOB I OOOC •AIA OOOD
LOADER 0009 FSSBT 0031 F*URF 0032 FtHDl 0033 F»ARF 0034 FtTEF 0035 FIRET 0036
SPC-16 CLOB REV 7 T PSECT RANGE DSECT RANGE DYNS DEF VALUE DEF VALUE DEF VALU
181
SPC-16/CR0MEMC0 LINKERS CONTROL BASIC / Z80 ASSEKBLY
0 UORDS RESERVED FOR 6(1)
SUBROUTINES BEGIN ATS 2500
CHKjSUH *=2500
CHECK - SUM ROUTINES 3 PARAMETERS
1. STARTING ADDRESS 2. NUMBER OF BYTES 3. CHECK-SUM
2500 0 FDE1 POP IY 2502 2 DDE1 POP IX 2504 4 FD6E00 LD L,(IY+O) 2507 7 FD6601 LD H»(IY+1) 250A A DD4E00 LD C,(IX+0) 250D D DD4601 LD B»(IX+1) 2510 10 1600 LD D,00 2512 12 7A NEXT LD A,D 2513 13 B6 ADD Ar(HL) 2514 14 23 INC HL 2515 15 OB DEC BC 2516 16 57 LD Dt A 2517 17 3E00 LD A ,00 2519 19 B9 CP C 251A 1A 20F6 JR NZ NEXT 251C 1C B8 CP B 251D ID 20F3 JR NZ NEXT 251F IF El POP HL 2520 20 7E LD A,(HL) 2521 21 BA CP 0 2522 22 C8 RET Z 2523 23 3E03 LD A»"C 2525 25 D301 OUT (01),A 2527 27 C35204 JP BASIC
GET START OF CHKSUM A GET NUHBER OF BYTES A SET HL TO STARTING AD
SET BC TQ NUMBER OF BYTES TO BE ADDED INITIALIZE CHKSUM
UPDATE CHKSUM POINT TO NEXT BYTE DECREMENT BYTE COUNT SAVE CHKSUM IN D
CHECK IF DONE
GET ADDRESS OF CHKSUM GET L.S.B. OF CHKSUM COMPARE WITH COMPUTED RETURN IF CHKSUMS ARE CHKSUHS ARE NOT EQUAL SEND "C TO SPC-16 TRY AGAIN
SETUP *=252A
INITIALIZATION ROUTINE
252A 0 3E09 LD A»09 252C 2 D302 OUT " (02) iA 252E 4 3E09 LD A,09 2530 6 D3A2 OUT (A2)»A 2532 8 3E09 LD A,09 2534 A D3B2 OUT (B2), A 2536 C 3E30 LD A,30 2538 E D303 OUT (03)fA 253A 10 3E3B LD A»3B 253C 12 D3A3 OUT (A3)>A 253E 14 3E10 LD AilO 2540 16 D3B3 OUT (B3) ,A 2542 18 3E10 LD A,10 2544 1A D300 OUT (00) ,A 2546 1C 3E04 LD A,04 2548 IE D3A0 OUT (AO),A 254A 20 3E08 LD A,08 254C 22 D3B0 OUT (BO),A 254E 24 3E3E LD A,3E 2550 26 ED47 LD I,A
RESET SCC
RESET UART-A
RESET UART-B
MASK FOR SCC
MASK FOR UART-A
MASK FOR UART-B
BAUD SCC = 2400
BAUD UART-A = 300
BAUD UART-B = 1200
SET PAGE OF INTERRUPT
182
2552 28 ED5E IM 2 2554 2A El POP HL 2555 2B 31B030 LD SPi30B0 2558 2E E5 PUSH HL 2559 2F CD3C28 CALL IT«MAP 255C 32 0EA1 LD C>A1 255E 34 210E04 LD HL>040E 2561 37 CD3029 CALL PSMSG 2564 3A 3E80 LD At 80 2566 3C D3A5 OUT <AS)iA 2568 3E FB EI 2569 3F 1SFE LOOP JR LOOP
SET Z-80 MODE INTERRU
SET TOP OF SYSTEM STAC
FILL ISR TABLE
'CROMEHCO SCCHON'
START TIMER-1
UAIT FOR AN INTERRUPT
T*ISR *=256B
TABLE OF INTERRUPT SERVICE ROUTINES ( ISR )
256B 0 1C26 DU HtISR+50 A - TIMER1 256D 2 2C26 DU HtISR+60 A - TIMER2 256F 4 0000 DU A - SENS 2571 6 3C26 DU HtISR+70 A - TIMER3 2573 8 EC25 DU HSISR+20 A - RDA 2575 A FC25 DU H*ISR+30 A - TBE 2577 C 0000 DU A - TIMER4 2579 E 0000 DU A - TIHERS 257B 10 0000 DU B - TIHER1 257D 12 0000 DU B - TIMER2 257F 14 0000 DU B - SENS 2581 16 0000 DU B - TIMER3 2583 18 0C26 DU HIISR+40 B - RDA 2585 1A 0000 DU B - TBE 2587 1C 0000 DU B - TIMER4 2589 IE 0000 DU B - TIMERS 258B 20 000000 DBDU 258E 23 00000000 DUDU 2592 27 00000000 DUDU SCC - TIMER1 2596 2B 00000000 DUDU 259A 2F 00000000 DUDU SCC - TIHER2 259E 33 00000000 DUDU 25A2 37 00000000 DUDU SCC - SENS 25A6 3B 00000000 DUDU 25AA 3F 00000000 DUDU SCC - TIHER3 25AE 43 00000000 DUDU 25B2 47 CC25CC25 DUDU HiISR+0 SCC - RDA 25B6 4B 00000000 DUDU 25BA 4F DC25DC25 DUDU HtISR+10 SCC - TBE 25BE 53 00000000 DUDU 25C2 57 00000000 DUDU SCC - TIMER4 25C6 SB 00000000 DUDU 25CA 5F 0000 DU SCC - TIMER5
HtlSR *=25CC
INTERRUPT SERVICE ROUTINE HANDLER
SCC RDA ENTRY
25CC 25CF 25D3 25D6 25D9
25DC
CD4C26 DD2A7626 CD9E26 CD5D26 FBC900
SCC TBE ENTRY
10 CD4C26
CALL LD CALL CALL RETI
CALL
SARSt IXi(TfPUT+8) DtRDA LARS*
SARSt
SAVE ALL REGISTERS GET DCB ADDRESS CALL INPUT DRIVER LOAD ALL REGISTERS RETURN FROM INTERRUPT
SAVE ALL REGISTERS
183
25DF 13 DD2A7826 LD IX»(TtPUT+A) GET DCB ADDRESS 25E3 17 CDDD26 CALL D*TBE CALL OUTPUT DRIVER 25E6 1A CD5D26 CALL LARSt LOAD ALL REGISTERS 25E9 10 FBC900 RETI RETURN FROH INTERRUPT
UART-A RDA ENTRY
25EC 20 CD4C26 CALL SARSt 25EF 23 DD2A8626 LD IX»(T*PUT+18) 25F3 27 CD9E26 CALL DtRDA 25F6 2A CD5D26 CALL LARS* 25F9 2D FBC900 RETI
UART-A TBE ENTRY
25FC 30 CD4C26 CALL SARSt 25FF 33 DD2A8826 LD IX»(TtPUT+lA) 2603 37 CDDD26 CALL DtTBE 2606 3A CD5D26 CALL LARSt 2609 3D FBC900 RETI
UART-B RDA ENTRY
260C 40 CD4C26 CALL SARSt 260F 43 DD2A9626 LD IX r(TtPUT+28) 2613 47 CD9E26 CALL DtRDA 2616 4A CD5D26 CALL LARSt 2619 4D FBC900 RETI
TUART A TIHER-1 ENTRY
261C 50 CD4C26 CALL SARSt 261F 53 DD2A7E26 LD IXr(TtPUT+10) 2623 57 CDC32A CALL DtTIHR 2626 5A CD5D26 CALL LARSt 2629 5D FBC900 RETI
TUART A TIMER-2 ENTRY
262C 60 CD4C26 CALL SARSt 262F 63 DD2AB026 LD IXt(TtPUT+12) 2633 67 CDC32A CALL DtTIHR 2636 6A CD5D26 CALL LARSt 2639 6D FBC900 RETI
TUART A TIMER-3 ENTRY
263C 70 CD4C26 CALL SARSt 263F 73 DD2A8426 LD IX>(TtPUT+16) 2643 77 CDC32A CALL DtTIHR 2646 7A CD5D26 CALL LARSt 2649 7D FBC900 RETI
SARSt *=264C
SAVE ALL REGISTERS
264C 0 D9 EXX 264D 1 El POP HL SAVE RETURN ADDRESS 264E 2 FDE5 PUSH IY SAVE IY ON STACK 2650 4 E5 PUSH HL HOVE RETURN ADDRESS TO IY 2651 5 FDE1 POP IY 2653 7 D9 EXX 2654 a F5 PUSH AF 2655 9 C5 PUSH BC 2656 A D5 PUSH DE SAVE ALL REGISTERS 2657 B E5 PUSH HL 2658 C DDE5 PUSH IX
184
265A E FDE5 PUSH IY 265C 10 C9 RET
LARS* M265D
LOAD ALL REGISTERS
265D 0 FDE1 POP IY 265F 2 DDE1 POP IX 2661 4 El POP HL 2662 5 D1 POP DE 2663 6 CI POP BC 2664 7 F1 POP AF 2665 8 D9 EXX
AF
2666 9 FDE5 PUSH IY 2668 B El POP HL 2669 C FDE1 POP IY 266B E E5 PUSH HL 266C F D9 EXX 266D 10 C9 RET
RESTORE RETURN ADDRESS
SAVE RETURN ADDRESS
LOAD ALL REGISTERS
MOVE RETURN ADDRESS TO HL
RESTORE IY RESTORE RETURN ADDRESS
T$PUT *=266E
TABLE OF PHYSICAL UNITS
266E 0 0000 DU 2670 2 0000 DU 2672 4 0000 DU 2674 6 0000 DU 2676 8 2D2A DU 2678 A 4E2A DU 267A C 0000 DU 267C E 0000 DU 267E 10 602C DU 2680 12 732C DU 2682 14 0000 DU 2684 16 7F2C DU 2686 18 4E2A DU 2688 1A 2D2A DU 268A 1C 0000 DU 26BC IE 0000 DU 268E 20 0000 DU 2690 22 0000 DU 2692 24 0000 DU 2694 26 0000 DU 2696 28 6F2A DU 2698 2A 0000 DU 269A 2C 0000 DU 269C 2E 0000 DU
SSDCB A$DCB
AltDCB A2SDCB
A3IDCB AtDCB StDCB
BtDCB
SCC TIHER1 DCB SCC TIHER2 DCB SCC SENS DCB SCC TIHER3 DCB SCC RDA DCB SCC TBE DCB SCC TIMER4 DCB SCC TIHER5 DCB
TIHER1 DCB TIMERS DCB SENS DCB TIMER3 DCB RDA DCB TBE DCB TIHER4 DCB TIMERS DCB TIMER1 DCB TIMER2 DCB SENS DCB TIMER3 DCB RDA DCB TBE DCB TIMER4 DCB TIMER5 DCB
DtRDA *=269E
DRIVER FOR RECEIVER DATA AVAILABLE ( RDA )
269E 0 DD4E08 LD C»(IX+B) 26A1 3 CD6E29 CALL H*INPT 26A4 6 0E11 LD Cill 26A6 8 0600 LD BiOO 26A8 A DDE5 PUSH IX 26AA C FDE1 POP IY 26AC E FD09 ADD IY.BC 26AE 10 CD6427 CALL HiRDA 26B1 13 DD6E02 LD Lf(IX+2) 26B4 16 DD6603 LD Hr(IX+3)
GET INPUT PORT NUMBER GET CHARACTER GET OPTION LIST
TRANSFER IX TO IY
CALL CHARACTER HANDLE PUT CHARACTER IN BUFF
185
26B7 19 DD7E09 LB A»(IX+9) 26BA 1C 77 LD (HL)IA 26BB ID 23 INC HL 26BC IE DD4E06 LD CF(IX+6) 26BF 21 DD4607 LD B»(IX+7) 26C2 24 78 LD AFB 26C3 25 BC CP H 26C4 26 200A JR NZ RDA1 26C6 28 79 LD AFC 26C7 29 BD CP L 26C8 2A 2006 JR NZ RDA1 26CA 2C BD6E04 LD LF(IX+4) 26CD 2F DD660S LD HF (IX+5) 26D0 32 DD7502 RDA1 LD (1X4-2) >L 26D3 35 DD7403 LD (IX+3)FH 26D6 38 CDA92A CALL X$OFF 26D9 3B CD4D29 CALL 0$CHK 26DC 3E C9 RET
POINT TO NEXT LOCATIO
CHECK FOR END OF BUFF
IF POINTER IS AT ENDI RESET POINTER TO BEGINNING.
UPDATE RDA POINTER
BiTBE *=26DD
DRIVER FOR TRANSMITTER BUFFER EMPTY ( TBE )
26DB 0 DD4E0A LD C R <IX+A) 26E0 3 DD6E00 LD LF(IX+O) 26E3 6 DD6601 LD HF(IX+1) 26E6 9 DD5E02 LD EF(IX+2) 26E9 C DD5603 LD DF(IX+3) 26EC F 7B LD AFE 26ED 10 BD CP L 26EE 11 2008 JR NZ TBE1 26F0 13 7A LD AFD 26F1 14 BC CP H 26F2 15 2004 JR NZ TBEL 26F4 17 CD2828 CALL H»DPLX 26F7 1A C9 RET 26F8 IB CD1D27 TBE1 CALL HtTBE 26FB IE DD6EOO LD LF(IX+O) 26FE •21 DD6601 LD HF(IX+1) 2701 24 23 INC HL 2702 25 DD5E06 LD EF(IX+6) 2705 28 DD5607 LD DF(IX+7) 2708 2B 7B LD AFE 2709 2C BD CP L 270A 2D 200A JR NZ TBE2 270C 2F 7A LD AFD 270D 30 BC CP H 270E 31 2006 JR NZ TBE2 2710 33 DD6E04 LD LF(IX+4) 2713 36 DD6605 LD HF(IX+5) 2716 39 DD7500 TBE2 LD (IX+O)FL 2719 3C DD7401 LD (IX+1) FH 271C 3F C9 RET
GET OUTPUT PORT NUMBE
CHECK FOR TBE POINTER EQUAL TO RDA POINTER
IF TBE POINTER EQUALS POINTERI BUFFER IS EH
SCHEDULE FULL DUPLEX
CALL CHARACTER HANDLE UPDATE TBE POINTER TO NEXT BUFFER ADORES
CHECK IF TBE POINTER IS AT THE END OF BUFF
IF TBE POINTER IS AT OF BUFFERF SET POINTE THE BEGINNING OF BUFF
PUT UPDATED POINTER I
H*TBE M271D
HANDLER FOR TRANSMITTER BUFFER EMPTY
271D 271E 2720 2722 2723 2725 2726 2728
79 FEA1 2016 OD ED78 OC E6C4 EE84
LB CP JR NZ DEC IN INC AND XOR
A>C A1 TBE1 C AF (C) C AFC4 A>84
CHECK FOR TTY OUTPUT
IF NOT TTY OUTPUT TEST UART STATUS
GET RDAR TBE. AND SRV TEST FOR RDA SETF
186
272A D 2802 JR Z TBEO TBE RESET. OR SRV RES 272C F El POP HL RETURN TO INTERRUPT D 272D 10 C? RET 272E 11 7E TBEO LD Ar(HL) TTY OUTPUT ONLY 272F 12 ED79 OUT (C) r A OUTPUT CHARACTER 2731 14 DD770B LD (IX+B)»A SAVE DATA IN DCB 2734 17 CD902A CALL XtON
SAVE DATA IN DCB
2737 1A C9 RET 2738 IB FD2A7626 TBE1 LD IYf(T$PUT+8) SET IY TO ADDRESS 273C IF FD7E0B LD A»(IY+B) OF SCC RDA DCB 273F 22 FEAE CP / /
* CHECK IF LAST CHARACT 2741 24 2803 JR Z TBE2 FROM SPC UAS A PROMPT 2743 26 FDE1 POP IY POP STACK SO RETURN I 2745 28 C9 RET THE INTERRUPT DRIVER 2746 2? 7E TBE2 LD At (HL) PROMPT FOUND SO SEND 2747 2A FEOD CP <CR> CHARACTER TO SPC 274? 2C 2004 JR NZ TBE3 CHECK FOR <CR> TO BE 274B 2E FD360B00 LD (IY+B)»00 SENTi CHANGE LAST CHA 274F 32 DD770B TBE3 LD CIX+B)> A SAVE DATA IN DCB 2752 35 C5 PUSH BC SAVE BC 2753 36 0EA1 LD CrAl 2755 38 CDDF28 CALL OUT$ ECHO TO TTY 2758 3B OD DEC C 275? 3C ED78 TBE4 IN A r (C) GET PORT STATUS 275B 3E E680 AND A>80 WAIT FOR TBE SET 275D 40 28FA JR Z TBE4 275F 42 CI POP BC RESTORE BC 2760 43 7E LD At(HL) 2761 44 ED79 OUT (C) iA SEND CHARACTER TO SPC 2763 46 C? RET
HtRDA *=2764
HANDLER FOR RECEIVER 1 DATA AVAILABLE
2764 0 DD7E09 LD A>(IX+9) GET CHARACTER 2767 3 FDBEOO CP (IY+O) 276A 6 CABC27 JP Z DUMP SEND DATA TO REQUESTI 276D ? FDBE01 CP (IY+1) 2770 C CAC327 JP Z CNTRLO STOP SPC-16 OUTPUT 2773 F FDBE02 CP (IY+2) 2776. 12 CACA27 JP Z GOSCC GO TO SCC MONITOR 277? 15 FDBE03 CP (IY+3) DUMP CHROHATOGRAPH 277C 18 CACF27 JP Z CHRTTY TO TTY 277F IB FDBE04 CP (IY+4) DUMP CHROMATOGRAPH 2782 IE CAD827 JP Z CHRSPC TO SPC 2785 21 FDBE05 CP (IY+5) 2788 24 CAE127 JP Z CHRDEL DELETE CHROMATOGRAPH 278B 27 FDBE08 CP (IY+8) 278E 2A CAE627 JP Z CNTRLS STOP SPC OUTPUT 27?1 2D FDBEO? CP (IY+9) 2794 30 CAFA27 JP Z CNTRLQ CONTINUE SPC OUTPUT 27?7 33 FDBEOA CP (IY+A) 279A 36 CA0228 JP Z CNTRLU CHANGE <DEL> TO "U 279D 39 FDBEOB CP (IY+B) DISABLE CHROHATOGRAPH 27 AO 3C CA0828 JP Z NOCHR 27A3 3F FDBEOC CP (IY+C> ENABLE CHROMATOGRAPH 27A6 42 CA1028 JP Z ONCHR 27A? 45 FDBEOD CP (IY+D) IGNORE CONTROL R 27AC 48 CA1828 JP Z IGNORE 27AF 4B FDBEOE CP (IY+E) IGNORE CONTROL I 27B2 4E CA1828 JP z IGNORE 27B5 51 FDBEOF CP (IY+F) CHROMATOGRAPH EOT 27B8 54 CA1C28 JP z CHREOT 27BB 57 C9 RET
RDA HANDLER OPTIONS
187
27BC 58 CDD02C DUMP CALL DUHPf DUMP DATA BUFFER 27BF 5B El POP HL 27C0 5C C34D29 JP OfCHK 27C3 5F CDD529 CNTRLO CALL CNTLf0 STOP SPC-16 OUTPUT 27C6 62 El POP HL 27C7 A3 C34D29 JP OfCHK 27CA 66 CD8729 GOSCC CALL GOfSCC CALL CONTROL C HANDLE 27CD 6? El POP HL 27CE 6A C9 RET 27CF 6B 0EA1 CHRTTY LD CrAl SET OUTPUT TO TTY 27D1 6D CD4A28 CALL CfDUMP DUHP BUFFER TO TTY 27D4 70 El POP HL RETURN TO INTERRUPT D 27D5 71 C34D29 JP OfCHK 27D8 74 OEOl CHRSPC LD CfOl SET OUTPUT TO SPC 27DA 76 CD4A28 CALL CfDUHP DUMP BUFFER TO SPC 27DD 7? El POP HL RETURN TO INTERRUPT D 27BE 7A C34D29 JP 0*CHK 27E1 7D CDE828 CHRDEL CALL C*DEL DELETE CHROHATORAPH B 27E4 80 El POP . HL 27E5 81 C9 RET 27E6 82 3E13 CNTRLS LD Af "S "S TO SPC-16 27ES 84 D301 OUT (01)>A
"S TO SPC-16
27EA 86 FD212D2A LD IYfSiDCB 27EE 8A FD7E0D LD A.(IYtD) GET -Q ENABLE BIT 27F1 8D E6FE AND AiFE RESET BIT TO DISABLE 27F3 8F FD770D LD (IY+D)»A 27F6 92 El POP HL 27F7 93 C34D29 JP OfCHK 27FA 96 3E11 CNTRLQ LD A.~Q "Q TO SPC-16 27FC 98 D301 OUT (01> fA 27FE 9A El POP HL 27FF 9B C34D29 JP OtCHK 2802 9E 3E15 CNTRLU LD A»"U CHANGE <DEL> TO ~U 2804 AO DD7709 LD (IX+9)»A 2807 A3 C9 RET 2808 A4 3E00 NOCHR LD AtOO MASK FOR RDA DISABLE 280A A6 D3B3 OUT (B3) i A AT THE CHROMATOGRAPH 280C A8 El POP HL
AT THE CHROMATOGRAPH
280D A9 C34D29 JP OSCHK 2810 AC 3E10 ONCHR LD A«10 MASK FOR RDA ENABLE 2812 AE D3B3 OUT (B3)>A AT THE CHROMATOGRAPH 2814 BO El POP HL 2815 B1 C34D29 JP OfCHK 2818 B4 El IGNORE POP HL IGNORE CHARACTER 2819 B5 C34D29 JP OfCHK 281C B8 0EA1 CHREOT LD CiAl CHROMATOGRAPH END 281E BA 21AD29 LD HLiTtMSG OF TRANSMISSION 2821 BD CD3029 CALL PfhSG 'SEND DATA TO SPC-16' 2824 CO El POP HL 2825 CI C34D29 JP OfCHK
HtDPLX *=2828
FULL DUPLEX PROTOCOL
2828 0 DD7E08 LD Ar(IX+8) IF NOT UART-A TBEi RE 282B 3 FE01 CP 01 282D 5 CO RET NZ
01
282E 6 DD7E0B LD Ar(IX+B) IF NOT SPC PROMPTi RE 2831 9 FEAE CP 1 1
» 2833 B CO RET NZ 2834 C DD2A7826 LD IX>(TfPUT+A) 2838 10 CDDD26 CALL DfTBE SIMULATE AN INTERRUPT 283B 13 C9 RET
SIMULATE AN INTERRUPT
ITfMAP *=283C
188
MOVES PSEUDO ISR TABLE INTO WORKING ISR TABLE 283C 0 216B25 LD HLrTJISR 283F 3 ED57 LD Ail 2841 S 57 LD DrA 2842 6 1EA0 LD Er AO 2844 8 016100 LD BCt0061 2847 B EDBO LDIR 2849 D C9 RET
START ADDRESS IS PSEU INTERRUPT SERVICE ROU TABLE. DESTINATION I INTERRUPT SERVICE ROU TABLE. USES BLOCK TR TO MAP THE TABLE.
C*DUHP *=284A
HANDLER FOR DUMPING CHROHATOGRAPH BUFFER
284A 0 CDB82C CALL ENTRY* ENABLE TIHERS 284D 3 FD2A9626 LD IYf(T*PUT+28) GET B-DCB ADDRESS 2851 7 FD6E00 LD Lr(IY+O) 2854 A FD6601 LD H» <IY+1) SUMP BEGINNING 2857 D FD5E02 LD Ei(IY+2) 285A 10 FD5603 LD Di(IY+3) DUMP ENDING 285D 13 79 LD ArC 285E 14 FE01 CP 01 DETERMINE WHICH PORT 2860 16 28 ID JR Z SDMP
2862 2864 2867 2869 286C 286D 286E 2870 2871 2872 2874 2877 2878
DUMP TO TTY
18 1A ID IF 22 23 24 26 27 28 2A 2D 2E
3E0A CDDF28 3E0D CDDF28 7D BB 2008 7C BA 2004 CDC42C C9 7E
TDMP1
LD CALL LD CALL LD CP JR NZ LD CP JR NZ CALL RET
Ar<LF> OUT* Ar<CR> OUT* ArL E TDMP2 ArH D TDMP2 EXIT*
2879 2F CDDF28 CALL OUT* 287C 32 23 INC HL 287D 33 18ED JR TDMP1
DUMP TO SPC
287F 35 FD360C00 SDMP LD (IY+C>r00 2883 39 7D SDMP1 LD ArL 2884 3A BB CP E 2885 3B 201B JR NZ SDHP2 2887 3D 7C LD ArH 2888 3E BA CP D 2889 3F 2017 JR NZ SDMP2 288B 41 CD2229 CALL SHAKE* 28BE 44 FD7E0C LD Ar(IY+C) 2891 47 CD2B2D CALL P2*HEX 2894 4A CD2A29 CALL CR* 2897 4D FD7E0C LD Ai (IY+C) 289A 50 FEOO CP 00 289C 52 200F JR NZ SDMP3 289E 54 CDC42C CALL EXIT* 28A1 57 C9 RET 28A2 58 3E0D SDMP2 LD Ai<CR> 28A4 5A BE CP (HL) 28A5 SB 23 INC HL 28A6 5C 20DB JR NZ SDMP1 28A8 5E FD340C INC (IY+C) 28AB 61 18D6 JR SDMP1
INITIALIZE PRINTER
CHECK FOR END OF DUMP
ENABLE INTERRUPTS
GET CHARACTER OUTPUT CHARACTER POINT TO NEXT LOCATIO
INITIALIZE <CR> COUNT
CHECK FOR END OF DUMP
OUTPUT NUMBER OF RECO
CHECK FOR NULL DUHP
ENABLE INTERRUPTS
CHECK FOR <CR>
INCREMENT RECORD COUN
189
28AD 63 CD2229 SDHP3 CALL SHAKE* 28B0 66 FD6E00 LD Li(IY+O) 28B3 69 FD6601 LD Hi(IY+l) 28B6 AC 7D SDMP6 LD AiL 28B7 6D BB CP E 28B8 6E 200B JR NZ SDHP4 28BA 70 7C LD AiH 28BB 71 BA CP D 2BBC 72 2007 JR NZ SDMP4 28BE 74 CD2A29 CALL CR* 28C1 77 CDC42C CALL EXIT* 28C4 7A C9 RET 28C5 7B 7E SDMP4 LD At(HL) 28C6 7C 23 INC HL 28C7 7D CDDF28 CALL OUT* 28CA 80 FEOD CP <CR> 28CC 82 20E8 JR NZ SDMP6 28CE 84 7D LD AiL 28CF 85 BB CP E 28DO 86 2008 JR NZ C0NT2 28D2 88 7C LD A»H 28D3 89 BA CP D 28114 8A 2004 JR NZ C0NT2 28D6 8C CDC42C CALL EXIT* 28D9 8F C9 RET 28DA 90 CD2229 C0NT2 CALL SHAKE* 28DD 93 18E6 JR SDHP4
INITIALIZE DUMP POINT
CHECK FOR END OF BUFF
IF NOT END OF BUFFER
IF NOT END OF BUFFER
SEND LAST RECORD
GET CHARACTER UPDATE POINTER OUTPUT THE CHARACTER CHECK FOR <CR> IF NOT CARRIAGE RETUR CHECK FOR END OF BUFF
IF NOT END OF BUFFER
IF NOT END OF BUFFER END OF BUFFER
HANDSHAKE WITH SF'C-16
OUT* *=28DF
CHARACTER OUTPUT HANDLER UHEN INTERRUPTS ARE DISABLED
28DF 28E2 28E4 28E7
0 CD1729 3 ED79 5 CD1729 8 C9
CALL OUT CALL RET
0*D0NE <C)iA OSDONE
ENSURE BUFFER IS EHPT OUTPUT CHARACTER
CiDEL *=28E8
INITIALIZE THE CHROHATOGRAPH BUFFER
28E8 0 2A9626 LD HLi<T*PUT+28) GET B-DCB ADDRESS 28EB 3 E5 PUSH HL 28EC 4 FDE1 POP IY TRANSFER HL TO IY 28EE 6 FD6E04 LD L»(IY+4) 28F1 9 FD6605 LD Hi(IY+5) 28F4 C FD7502 LD CIY+2)iL SET RDA BUFFER POINTE 28F7 F FD7403 LD (IY+3)iH TO THE BUFFER BEGINNI 28FA 12 DD2A7E26 LD IXi<T*PUT+10> GET TIHER-1 DCB 28FE 16 DD6E0B LD L»(IX+B > 2901 19 DD660C LD Hi(IX+C) GET T-6 POINTER 2904 1C DD5E0D LD Ei(IX+D) 2907 IF DD560E LD D»(IX+E) GET T-15 POINTER 290A 22 FD750D LD <IY+D)iL 290D 25 FD740E LD (IY+E) iH SAVE T-6 POINTER 2910 28 FD730F LD (IY+F)»E 2913 2B FD7210 LD (IY+10)iD SAVE T-15 POINTER 2916 2E C9 RET
0*D9NE *=2917
WAIT UNTIL TBE HIGH
190
2917 0 F5 PUSH AF 2918 1 OD PEC C 2919 2 ED78 LOOP IN Ai (C) 291B 4 E480 AND Ar80 291D 4 28FA JR Z LOOP 291F 8 OC INC C 2920 9 F1 POP AF 2921 A C9 RET
SAVE AF AND BC
GET STATUS GET TBE BIT WAIT UNTIL TBE SET
RETORE AF AND BC
SHAKE* *=2922
HANDSHAKE ROUTINE FOR ZBO/SPC
2922 2925 2927 2929
CDA029 UAIT FE2E 20F9 C9
CAUL CP JR NZ RET
GETCH* / t UAIT
LOOK FOR PROMPT
LOOP UNTIL PROMPT
CR* *=292A
ROUTINE TO OUTPUT A CARRIAGE RETURN
292A 292C 292F
3E0D CDDF28 C9
LB CALL RET
At<CR> OUT*
OUTPUT A <CR>
PtMSG *=2930
PRINTS MESSAGE BEGINNING AT (HL) DONE WHEN PARITY BIT SET
2930 0 CDB82C CALL ENTRY* 2933 3 F5 PUSH AF 2934 4 E5 PUSH HL 2935 5 3E0A LB A.<LF> 2937 7 CDDF28 CALL OUT* 293A A 3E0D LD Ai<CR> 293C C CDDF28 CALL OUT* 293F F 7E PSl LD Ai(HL) 2940 10 23 INC HL 2941 11 CDDF28 CALL OUT* 2944 14 17 RLA 2945 15 30F8 JR NC PSl 2947 17 El POP HL 2948 18 F1 POP AF 2949 19 CDC42C CALL EXIT* 294C 1C C9 RET
SAVE ACCUMULATOR SAVE ADDRESS
OUTPUT <LF>
OUTPUT <CR>
OUTPUT MESSAGE
CHECK FOR PARITY SET
0*CHK *=294D
CHECK FOR OUTPUT INTERRUPT REQUEST
294D 0 DD4E0A LD C?(IX+A) 2950 3 79 LD AtC 2951 4 FEB1 CP B1 2953 6 2810 JR Z CHK 2955 8 OD DEC C 2954 9 ED78 IN A> (C) 2958 B E4C4 AND Af C4 295A D EE84 XOR A.84 295C F 2007 JR NZ CHK 295E 11 • ED78 IN Ar (C)
GET OUTPUT PORT NUMBE
CHECK FOR CHROMATOGRA
SET TO STATUS PORT GET OUTPUT PORT STATU GET RDAr TBEi AND SRV CHECK FOR RDA SETt SRV RESET» OR TBE RES GET STATUS
191
2960 13 E680 AND At 80 2962 15 C4DD26 CALL NZ DtTBE 2965 18 DD7E0A CHK LD
NZ AF <IX+A)
2968 IB FEA1 CP A1 296A ID C4FC25 CALL NZ HIISR+30 29 6D 20 C9 RET
HIISR+30
MASK FOR TBE SET
CHECK OUTPUT PORT NUM
IF OUTPUT NOT TO TTYf SIMULATE A TTY THE RE
HilNPT *=296E
INPUT CHARACTER AND CHECK FOR SPC-16 PROMPT
A> (C) B>A ArC 01 IN2 AiB A.7F (IX+9)»A
AfB
296E 0 ED78 IN 2970 2 47 LD 2971 3 79 LD 2972 4 FE01 CP 2974 6 2807 JR Z 2976 8 78 INI LD 2977 9 E67F AND 2979 B DD7709 LD 297C E C9 RET 297D F 78 IN2 LD 297E 10 FE2E CP 2980 12 20F4 JR NZ 2982 14 DD3609AE LD 2986 18 C9 RET
INI (IX+9) AE
GET INPUT DATA SAVE DATA IN B CHECK INPUT PORT
INPUT NOT VIA SPC-16 HASK OF PARITY SAVE IN DCB
INPUT VIA SPC-16 CHECK FOR PROMPT
PROMPT FOUND
GOSSCC *=2987
CONTROL C HANDLER
2987 0 3E13 LD 2989 2 D301 OUT 298B 4 CDB82C CALL 298E 7 0E01 LD 2990 9 3E03 LD 2992 B CDDF28 CALL 2995 E 3E00 LD 2997 10 CDDF28 CALL 299A 13 CDD529 CALL 299D 16 C3C42C JP
GETCHt *=29A0
CHARACTER INPUT HANDLER
29A0 0 OD DEC 29A1 1 ED78 CHKIN IN 29A3 3 E640 AND 29A5 5 28FA JR Z 29A7 7 OC INC 29A8 8 ED78 IN 29AA A E67F AND 29AC C C9 RET
A»"S (Ol)rA ENTRY* CfOl A."C OUTS Af 00 OUT« CNTLfO EXIT*
C Ai(C) A.40 CHKIN C A»(C> A.7F
STOP SPC-16 OUTPUT
ENABLE TIMERS
SEND "C TO SPC-16
SEND A NULL TO SPC-lo
INITIALIZE THE BUFFER RETURN TO THE HANDLER
SET TO STATUS PORT
UAIT FOR CHARACTER
INPUT CHARACTER
MASK OFF PARITY
TfHSG *=29AD
TABLE OF USER MESSAGES
29AD 29AE 29AF 29B0
OD OA 2A 2A
DB DB DB DB
<CR> <LF>
'*'
29B1 4 2A DB 29B2 5 20 DB <SP> 29B3 6 53 DB 'S' 29B4 7 68 DB 'H' 29B5 8 69 DB 'I' 29B6 9 70 DB /pi 29B7 A 20 DB <SP> 29B8 B 64 DB 'D' 29B9 C 61 DB 'A' 29BA B 74 DB 'T' 29BB E 61 DB 'A' 29BC F 20 DB <SP> 29BD 10 74 DB ' T 29BE 11 6F DB '0' 29BF 12 20 DB <SP> 29C0 13 74 DB 'T' 29C1 14 68 DB 'H' 29C2 15 65 DB 'E' 29C3 16 20 DB <SP> 29C4 17 53 DB 'S' 29C5 18 50 DB ,p, 29C6 19 43 DB 'C' 29C7 1A 2D DB / _ /
29C8 IB 31 DB '1' 29C9 1C 36 DB '6' 29CA ID 21 DB ' I' 29CB IE OD DB <CR> 29CC IF OA DB <LF> 29CD 20 0707 DU "G 29CF 22 0707 DU ~G 29D1 24 0707 DU "G 29D3 26 0787 DU "G
CNTHO *=29D5
INHIBIT OUTPUT ROUTINE
29D5 0 FD2A7626 LD IY(T*PUT+8) 29D9 4 FD7E0B LD At <IY+B) IGNORE IF INP 29DC 7 FEAE CP t t IS SOLICITED 29DE 9 C8 RET Z 29DF A 3E0F LD A r"0 29E1 C D301 OUT (01),A 29E3 E CDB82C CALL ENTRY* ENABLE TIMERS 29E6 11 0EA1 LD CiAl 29E8 13 3E0D LD A»<CR> 29EA 15 CDDF28 CALL OUT* OUTPUT A <CR> 29ED 18 3E0A LD Af<LF> 29EF 1A CDDF28 CALL OUT* OUTPUT A <LF> 29F2 ID FD7E09 LD A»(IY+9) 29F5 20 FEAE CP / /
29F7 22 2008 JR NZ CNTLO OUTPUT "0 IF 29F9 24 3EAE LD A.'.'
OUTPUT "0 IF
29FB 26 FD770B LD <IY+B)»A INITIALIZE 1/ 29FE 29 CDDF28 CALL OUT* PROMPT OPERAT 2A01 2C DD7E02 CNTLO LD Af(IX+2) 2A04 2F DD7700 LB (IX+O)»A SET SCC TBE P 2A07 32 DD7E03 LD Ai(IX+3) TO TTY RDA PO 2A0A 35 DD7701 LD (IX+1)»A 2A0D 38 FD7E02 LO AF(IY+2) 2A10 3B FD7700 LD (IYtO).A SET TTY TBE P 2A13 3E FD7E03 LD Ai<IY+3) TO SCC RDA PO 2A16 41 FD7701 LD (IY+l)fA 2A19 44 3E00 LD A,00 INITIALIZE BY 2A1B 46 FD7710 LD (IY+10)FA 2A1E 49 FDCB0D86 RES OidY+D) RESET "Q ENAB 2A22 4D 3E11 LD A»"Q 2A24 4F 0E01 LD CiOl SEND SPC-16 T
193
2A26 51 CDDF28 CALL OUT« 2A29 54 CDC42C CALL EXIT* EN* 2A2C 57 C9 RET
StDCB *=2A2D
see RDA DEVICE CONTROL BLOCK ( DCB )
2A2D 0 0037 DU 3700 TBE POINTER 2A2F 2 0037 DU 3700 RDA POINTER 2A31 4 0037 DU 3700 BUFFER BEGINNING 2A33 6 0038 DU 3800 BUFFER ENDING 2A3S 8 01 DB 01 INPUT PORT 2A36 9 00 DB 00 INPUT DATA 2A37 A A1 DB A1 OUTPUT PORT 2A3S B 30 DB 30 OUTPUT DATA 2A39 C 00 DB 00 FREE FOR EXPANSION 2A3A D 00 DB 00 STATUS BYTE 2A3B E 10 DB 10 LOU BYTE COUNT 2A3C F FO DB FO HIGH BYTE COUNT 2A3H 10 00 DB 00 BUFFER BYTE COUNT 2A3E 11 01 DB "A 2A3F 12 80 DB 80 2A40 13 03 DB "C 2A41 14 05 DB "E 2A42 15 04 DB "D 2A43 16 02 DB "B 2A44 17 80 DB 80 2A4S 18 80 DB 80 2A46 19 80 DB 80 2A47 1A 80 DB 80 2A48 IB 80 DB 80 2A49 1C 10 DB "P 2A4A ID 05 DB ~E 2A4B IE 80 DB 80 2A4C IF 80 DB 80 2A4D 20 80 DB 80
ENABLE CHARAC
AfDCB *=2A4E
UART-A RDA DEVICE CONTROL BLOCK ( DCB )
2A4E 0 0036 DU 3600 2A50 2 0036 DU 3600 2A52 4 0036 DU 3600 2A54 6 0037 DU 3700 2A56 8 A1 DB A1 2A57 9 00 DB 00 2A58 A 01 DB 01 2A59 B 30 DB 30 2A5A C 00 DB 00 2A5B D 00 DB 00 2A5C E 00 DB 00 2A5D F 00 DB 00 2A5E 10 00 DB 00 2A5F 11 01 DB "A 2A60 12 OF DB "0 2A61 13 03 DB "C 2A62 14 04 DB "D 2A63 15 80 DB 80 2A64 16 02 DB "B 2A65 17 80 DB 80 2A66 18 80 DB 80 2A67 19 13 DB ~s 2A68 1A 11 DB "Q 2A&9 IB 7F DB <R0>
TBE POINTER RDA POINTER BUFFER BEGINNING BUFFER ENDING INPUT PORT INPUT DATA OUTPUT PORT OUTPUT DATA FREE FOR EXPANSION FREE FOR EXPANSION FREE FOR EXPANSION FREE FOR EXPANSION FREE FOR EXPANSION
194
2A6A 1C 10 DB -P 2A6B ID 05 DB 'E 2A6C IE 12 DB "R 2A6D IF 09 DB "I 2A6E 20 06 DB "F
BtDCB *=2A6F
UART-B RDA DEVICE CONTROL BLOCK ( DCB >
2A6F 0 0038 DU 3800 TBE POINTER 2A71 2 0038 DU 3800 RDA POINTER 2A73 4 0038 DU 3800 BUFFER BEGINNING 2A75 6 003E DU 3E00 BUFFER ENDING 2A77 8 B1 DB B1 INPUT PORT 2A78 9 00 DB 00 INPUT DATA 2A79 A B1 DB B1 OUTPUT PORT 2A7A B 80 DB 80 OUTPUT DATA 2A7B C 00 DB 00 RECORD COUNT 2A7C D 0032 DU 3200 T-6 POINTER 2A7E F 0032 DU 3200 T-15 POINTER 2A80 11 80 DB 80 2A81 12 80 DB 80 2A82 13 80 DB 80 2A83 14 BO DB 80 2A84 15 80 DB 80 2A85 16 24 DB INITIALIZE BUFFER 2A86 17 80 DB 80 2A87 18 80 DB 80 2A88 19 80 DB 80 2A89 1A 80 DB 80 2A8A IB 80 DB 80 2A8B 1C 80 DB 80 2A8C ID 80 DB 80 2ABD IE 80 DB 80 2A8E IF 80 DB 80 2A8F 20 3F DB '*** SHIP DATA TO SPC 16'
XtON *=2A90
BUFFER LOU BYTE COUNT CHECK
2A90 0 D03510 DEC tix+10) DECREMENT BYTE COUNT 2A93 3 DD7E0D LD Af(IX+D) GET STATUS BYTE 2A96 6 E601 AND AtOl CHECK ~Q ENABLE FLAG 2A9B 8 C8 RET Z 2A99 9 DD7E10 LD Ai(IX+10) GET BYTE COUNT 2A9C C DDBEOE CP (IX+E) B.C. - L.B. 2A9F F CO RET NZ RETURN IF B.C. <> L.B 2AA0 10 DDCB0D86 RES Oi(IX+D) RESET "Q ENABLE BIT 2AA4 14 3E11 LD A.-Q OUTPUT "0 TO SPC 2AA6 16 D301 OUT A>(01) 2AA8 18 C9 RET
XJOFF *=2AA9
BUFFER HIGH BYTE COUNT CHECK
2AA9 0 DD7E08 LD A»(IX+8) CHECK FOR SPC INPUT 2AAC 3 FE01 CP 01 2AAE 5 CO RET NZ IF NOT SPC. RETURN 2AAF 6 DD3410 INC
NZ (IX+10) INCREMENT BYTE COUNT
2AB2 9 A7 AND A>A CLEAR CARRY FLAG 2AB3 A DD7E10 LD AF (IX+10)
195
2AB6 B BDBEOF CP (IX+F) B.C. - H.B. 2AB9 10 D8 RET C IF B.C.' < H.B. 2ABA 11 DDCB0DC6 SET 0>(IX+D) SET "Q ENABLE BIT 2ABE 15 3E13 LD Ar-S SEND "S TO SPC 16 2AC0 17 D301 OUT A.(01)
SEND "S TO SPC 16
2AC2 19 C9 RET
DtTIHR *=2AC3
DRIVER FOR TIMER INTERRUPT SERVICE
2AC3 0 DD4E00 LD Ci(IX+0> GET TIMER PORT 2AC6 3 DD7E01 LD At(IX+1) GET TIMER LOAD COUNT 2AC9 6 E079 OUT (C) i A RESTART TIMER 2ACB 8 DD7E02 LD Ai(IX+2) UPDATE INDEX 1 2ACE B 3D DEC A 2ACF C DD7702 LD (IX+2).A 2AB2 F CO RET NZ 2AD3 10 DD7E03 LD Ai(IX+3) RESET INDEX 1 2AD6 13 DD7702 LD (IX+2)rA 2AD9 16 DD7E04 LD Ai(IX+4) UPDATE INDEX 2 2ADC 19 3D DEC A
UPDATE INDEX 2
2ADD 1A DD7704 LD (IX+4)i A 2AE0 ID CO RET NZ 2AE1 IE DD7E05 LD Ai(IX+5) RESET INDEX 2 2AE4 21 DD7704 LD (IX+4)iA
RESET INDEX 2
2AE7 24 DDCB0646 BIT Of(IX+6) TEST FOR HANDLER SERV 2AEB 28 C8 RET Z
TEST FOR HANDLER SERV
2AEC 29 C3EF2A JP H$TIMR
H*TIMR *=2AEF
HANDLER FOR TIHER INTERRUPT SERVICE
2AEF 0 79 LD AiC 2AF0 1 FEA5 CP AS 2AF2 3 CA002B JP Z A1»TIH SERVICE DEV-A TIMER 1 2AF5 A FEA6 CP A6
SERVICE DEV-A TIMER 1
2AF7 8 CA232B JP Z A2STIH SERVICE DEV-A TIMER 2 2AFA B FEA7 CP A7
SERVICE DEV-A TIMER 2
2AFC D CA6F2B JP Z A3ITIM SERVICE DEV-A TIMER 3 2AFF 10 C9 RET
SERVICE DEV-A TIMER 3
A1ITIM *=2B00
HANDLER FOR 1 MINUTE BUFFER SERVICE
2B00 0 DD7E07 LD At(IX+7) 2B03 3 3D DEC A CHECK FOR FULL BUFFER 2B04 4 DD7707 LD (IX+7) »A
CHECK FOR FULL BUFFER 2B07 7 2009 JR NZ TIME1 2B09 9 CDBF2B CALL B*FULL 2B0C C DD7E08 LD Ai(IX+8) RESET BUFFER COUNTER 2B0F F DD7707 LD (IX+7).A 2B12 12 FD2A8026 TIHE1 LD IY»(TtPUT+12) MUX TIHER DCB 2B16 16 FB4E00 LD Cf(IY+O) GET TIMER PORT 2B19 19 FD7E01 LD Ai(IY+1) GET LOAD COUNT 2B1C 1C ED79 OUT (C)iA
GET LOAD COUNT
2B1E IE FDCB06C6 SET Oi(IY+6) ENABLE HUX HANDLER 2B22 22 C9 RET
ENABLE HUX HANDLER
A2*TIM *=2B23
196
HANDLER FOR HUX TIMER INTERRUPTS
2B23 0 DDCB0686 RES Oi (IX+6) DISABLE MUX SERVICE 2B27 4 FD2A8426 LD IYf(T*PUT+16) GET A/D TIHER DCB 2B2B 8 DD7E07 LD A»(IX+7) 2B2E B DDBE08 CP (IX+8) CHECK FOR END OF SET 2B31 E 201E JR NZ NEXT 2B33 10 FD6E0B LD L.(IY+B) RESET BUFFER POINTER 2B36 13 FD660C LD H»(IY+C) 2B39 16 FD7509 LD (IY+9) fL 2B3C 19 FD740A LD (IY+A)fH 2B3F 1C DD4E09 LD Cr <IX+9) GET MUX PORT 2B42 IF 21902C LD HLfT»MUX GET CONTROL BYTE 2B45 22 7E LD A.(HL) 2B46 23 ED79 OUT (C) > A OUTPUT MUX CONTROL BY 2B48 25 DD770B LD < IX-f-B> > A SAVE A/D CONTROL BYTE 2B4B 28 3E00 LD AfOO 2B4D 2A DD7707 LD (IX+7)»A INITIALIZE CONTROL CO 2B50 2D C9 RET 2B51 2E DD3407 NEXT INC (IX+7) UPDATE SET COUNTER 2B54 31 DD4E0A LD Cf(IX+A) GET A/D OUTPUT PORT 2B57 34 DD7E0B LD A.(IX+B) GET A/D CONVERT BYTE 2B5A 37 CBF7 SET 6.A A/D CONVERT SET 2B5C 39 ED79 OUT (C) iA PULSE A/D 2B5E 3B CBB7 RES 6» A A/D CONVERT RESET 2B60 3D ED79 OUT (C) >A PULSE A/D 2B62 3F FD4E00 LD CF(IY+0) A/D TIHER PORT 2B65 42 FD7E01 LD Af (IY+l) GET TIHER LOAD COUNT 2B68 45 ED79 OUT (C).A START TIMER 2B6A 47 FDCB06C6 SET Of (IY+6) ENABLE A/D SERVICE 2B6E 4B C9 RET
A3*TIH *=2B6F
HANDLER FOR A/D TIMER INTERRUPTS
2B6F 0 DDCB0686 RES 0»(IX+6) DISABLE A/D 2B73 4 DD6E09 LD L»(IX+9) GET BUFFER POINTER 2B76 7 DD660A LD Hf(IX+A) 2B79 A DD4E0F LD C»(IX+F) A/D INPUT PORT LOU 2B7C D ED78 IN A> (C) GET LOU BYTE 2B7E F BF CP A CLEAR CARRY FLAG 2B7F 10 8E ADC Ar(HL) SUH CURRENT VALUE 2B80 11 77 LD (HL)fA SAVE SUH LOU 2B81 12 DD4E10 LD Cf(IX+10) A/D INPUT PORT HIGH 2B84 15 23 INC HL HIGH BYTE OF SUM 2B85 16 3E00 LD AfOO 2B87 18 8E ADC Af (HL) ADD CARRY PRIOR TO HA 2B8B 19 77 LD (HL)fA 2B89 1A ED78 IN Af (C) GET HIGH BYTE 2B8B 1C E60F AND OF HASK OFF HIGH ORDER B 2B8D IE 8E ADC Af(HL) SUM CURRENT VALUE 2B8E IF 77 LD (HL)fA SAVE SUH HIGH 2B8F 20 23 INC HL UPDATE POINTER 2B90 21 DD7509 LD (IX+9)fL SAVE BUFFER POINTER 2B93 24 DD740A LD (IX+A)fH 2B96 27 FD2A8026 LD IY f(T*PUT+12) MUX TIMER DCB 2B9A 2B FD3407 INC (IY+7) BUMP BUFFER COUNTER 2B9D 2E FD7E07 LD At(IY+7) 2BA0 31 CB3F SRL A 2BA2 33 5F LD Et A COMPUTE INDEXED hUX-A 2BA3 34 1600 LD Df 00 CONTROL BYTE ADDRESS 2BA5 36 21902C LD HLfTtMUX 2BA8 39 19 ADD HLfDE
GET MUX OUTPUT PORT 2BA9 3A FD4E09 LD Cf (IY+9) GET MUX OUTPUT PORT 2BAC 3D 7E LD Af(HL) GET HUX CHANNEL 2BAD 3E ED79 OUT (C) f A SELECT HUX CHANNEL
198
2C2C 2C2E 2C2F 2C32 2C34 2C37 2C3A 2C3D 2C40 2C43 2C46 2C47 2C48 2C4B 2C4D 2C4E 2C51 2C53 2C56 2C59 2C5C 2C5F
6D 200C JR NZ Til 6F 7C LD AiH 70 DDBE12 CP (IX+12) 73 2006 JR NZ Til 75 DD6E0F LD Li(IX+F) 78 DD6610 LD Hi<IX+10) 7B DD7S0D Til LD (IX+D)iL 7E DD740E LD (IX+E)»H 81 DD6E09 LD Lr(IX+9) 84 DD660A LD Hi(IX+A) 87 09 ADD HLiBC 88 7D LD A.L 89 DDBE11 CP (iX+11) 8C 200C JR NZ TO 8E 7C LD AiH 8F DDBE12 CP UX+12) 92 2006 JR NZ TO 94 DD6E0F LD Li(IX+F) 97 DD6610 LD HI(IX+10) 9A DD7509 TO LD (IX+9) iL 9D DD740A LD (IX+A)iH AO C9 RET
(IX+A)iH
CHECK BUFFER ENDING H
RESET POINTER TO BEGI
SAVE CURRENT POINTER
UPDATE T-l POINTER
CHECK BUFFER ENDING L
CHECK BUFFER ENDING H
RESET POINTER TO BEGI
SAVE CURRENT POINTER
A1*DCB *=2C60
TUART TIHER-A1 DEVICE CONTROL BLOCK
2C60 0 AS DB A5 2C61 1 F1 DB F1 2C62 2 01 DB 01 2C63 3 F2 DB F2 2C64 4 01 DB 01 2C65 S 01 DB 01 2C66 6 01 DB 01 2C67 7 01 DB 01 2C68 8 10 DB 10 2C69 9 0031 DU 3100 2C6B B 2034 DU 3420 2C6D D 5031 DU 3150 2C6F F 0031 DU 3100 2C71 11 0036 DU 3600
TIHER PORT TIMER LOAD COUNT INDEX 1 INDEX 1 LOAD COUNT INDEX 2 INDEX 2 LOAD COUNT HANDLER STATUS INDEX 3 INDEX 3 LOAD COUNT BUFFER POINTER T-l BUFFER POINTER T-6 BUFFER POINTER T-15 BUFFER BEGINNING BUFFER ENDING
A2IDCB *=2C73
TUART TIHER-A2 DEVICE CONTROL BLOCK
2C73 0 A6 DB A6 2C74 1 80 DB 80 2C75 2 01 DB 01 2C76 3 01 DB 01 2C77 4 01 DB 01 2C78 5 01 DB 01 2C79 6 00 DB 00 2C7A 7 00 DB 00 2C7B 8 50 DB 50 2C7C 9 OA DB OA 2C7D A OA DB OA 2C7E B 00 DB 00
TIMER PORT TIMER LOAD COUNT INDEX 1 INDEX 1 LOAD COUNT INDEX 2 INDEX 2 LOAD COUNT HANDLER STATUS INDEX Z NUMBER OF CHANNELS MUX OUTPUT PORT A/D OUTPUT PORT A/D CONVERT BYTE
* 2
A3*DCB *=2C7F
2C7F
TUART TIMER-A3 DEVICE CONTROL BLOCK
0 A7 DB A7 TIMER PORT
197
2BAF 40 FD770B ID (IY+B)»A A/D CONVERT BYTE 2BB2 43 FD4E00 LD Cr(IY+O) MUX TIMER PORT 2BB5 46 FD7E01 LD Af(IY+1) MUX TIMER PORT LOAD 2BB8 49 ED79 OUT (C)»A START MUX TIMER 2BBA 4B FDCB06C6 SET 0» (IY+6) ENABLE HUX SERVICE 2BBE 4F C9 RET
B$FULL *=2BBF
UPDATES 16 HINUTE BUFFER AND INITIALIZES 1 MINUTE BUFFER
2BBF 0 FD2A8026 LD IY<(TIPUT+12) MUX TIHER BCB 2BC3 4 FD7E08 LD A.UY+8) GET NUMBER OF 2BC6 7 4F LD CrA CHANNELS*2 2BC7 B CB3F SRL A DIVIDE BY TUO 2BC9 A FD2A8426 LD IY.(T»PUT+16) A/D TIHER DCB 2BCD E FD6E0B LD Lf(IY+B) 2BD0 11 FD660C LD Hf(IY+C) 2BD3 14 5E DIV16 LD E.(HL) 2BH4 15 23 INC HL 2BD5 16 56 LD D>(HL) 2BD6 17 2B DEC HL 2BD7 18 CB3A SRL D 2BD9 1A CB1B RR E DIVIDE CONTENTS OF 2BDB 1C CB3A SRL D REGISTER PAIR DE 2BDD IE CB1B RR E BY SIXTEEN 2BDF 20 CB3A SRL D 2BE1 22 CB1B RR E 2BE3 24 CB3A SRL D 2BE5 26 CB1B RR E 2BE7 28 3001 JR NC RNDDUN 2BE9 2A 13 IMC DE ROUND UP QUOTIENT 2BEA 2B 73 RNDDUN LD (HL)fE SAVE RESULT IN BUFFER 2BEB 2C 23 INC HL 2BEC 2D 72 LD (HL)»D 2BED 2E 23 INC HL
CHECK FOR END OF SET 2BEE 2F 3D DEC A CHECK FOR END OF SET 2BEF 30 20E2 JR NZ DIV16 2BF1 . 32 41 UPDATE LD BrC 2BF2 33 DD5E0B LD Er(IX+B) BLOCK DESTINATION 2BF5 36 DD560C LD Dr(IX+C) 2BF8 39 FD6E0B LD L»(IY+B) BLOCK SOURCE 2BFB 3C FD660C LD H»(IY+C) 2BFE 3F 7E NEXT LD At(HL) BLOCK TRANSFER 2BFF 40 12 LD (DE)rA 2C00 41 3600 LB (HL)»00 INITIALIZE SUM TO ZER 2C02 43 23 INC HL 2C03 44 13 INC DE BUMP POINTERS 2C04 45 7B LD AtB INITIALIZE BLOCK COU 2C05 46 3D DEC A DECREMENT BLOCK 2C06 47 47 LD Br A SAVE A IN B 2C07 48 20F5 JR NZ NEXT 2C09 4A 7B LD A»E UPDATE T-6 POINTER 2C0A 4B DDBE11 CP (IX+11) CHECK BUFFER ENDING L 2C0D 4E 200C JR NZ T15 2C0F 50 7A LD AiD 2C10 51 DDBE12 CP (IX+12) CHECK BUFFER ENDING H 2C13 54 2006 JR NZ T15 2C15 56 DD5E0F LD E»(IX+F) RESET POINTER TO BEGI 2C18 59 DD5610 LD Df(IX+10) 2C1B 5C DD730B T15 LD (IX+B)»E SAVE CURRENT POINTER 2C1E 5F DD720C LD (IX+C)iD 2C21 62 DD6E0D LB L»(IX+D) UPDATE T-15 POINTER 2C24 65 DD660E LD H»(IX+E) 2C27 68 09 ADD HLrBC 2C2B 69 7D LD A>L 2C29 6A DDBE11 CP (IX+11) CHECK BUFFER ENDING L
2C80 1 80 DB 80 TIMER LOAD COUNT 2C81 2 01 DB 01 INDEX 1 2C82 3 01 DB 01 INDEX 1 LOAD COUNT 2C83 4 01 DB 01 INDEX 2 2C84 5 01 DB 01 INDEX 2 LOAD COUNT 2C85 6 00 DB 00 HANDLER STATUS 2C86 7 00 DB 00 INDEX 3 2C87 8 00 DB 00 INDEX 3 LOAD COUNT 2C88 9 B030 DU 30B0 BUFFER POINTER 2C8A B B030 DU 30B0 BUFFER BEGINNING 2C8C D 0031 DU 3100 BUFFER ENDING 2C8E F OA DB OA A/D INPUT PORT LOU 2C8F 10 OB DB OB A/D INPUT PORT HIGH
TIMUX *=2C90
TABLE OF MULTIPLEXOR CONTROL BYTES
2C90 0 00 DB 00 2C91 1 01 DB 01 2C92 2 02 DB 02 2C93 3 03 DB 03 2C94 4 04 DB 04 2C95 5 05 DB 05 2C96 6 06 DB 06 2C97 7 07 DB 07 TRACE CHANNEL 2C98 8 08 DB 08 2C99 9 09 DB 09 2C9A A OA DB OA 2C9B B OB DB OB 2C9C C OC DB OC 2C9D D OD DB OD 2C9E E OE DB OE 2C9F . F OF DB OF TRACE CHANNEL 2CA0 10 10 DB 10 2CA1 U 11 DB 11 2CA2 12 12 DB 12 2CA3 13 13 DB 13 2CA4 14 14 DB 14 2CA5 15 15 DB 15 2CA6 16 16 DB 16
TRACE CHANNEL 2CA7 17 17 DB 17 TRACE CHANNEL 2CA8 18 18 DB 18 TRANSPORT AIR 2CA9 19 19 DB 19 SECONDARY AIR 2CAA 1A 1A DB 1A STAGED AIR 2CAB IB IB DB IB C02 ANALYZER 2CAC 1C 1C DB 1C CO ANALYZER 2CAD ID ID DB ID 02 ANALYZER 2CAE IE IE DB IE NO ANALYZER 2CAF IF IF DB IF TRACE CHANNEL 2CB0 20 20 DB 20 2CB1 21 21 DB 21 2CB2 22 22 DB 22 2CB3 23 23 DB 23 2CB4 24 24 DB 24 2CB5 25 25 DB 25 2CB6 26 26 DB 26 2CB7 27 27 DB 27 TRACE CHANNEL
ENTRY* *=2CB8
DISABLE CHARACTER SERVICE f ENABLE TIMERS
2CB8 0 F5 PUSH AF SAVE AF 2CB9 1 3EOO LD A>00 2CBB 3 D303 OUT (03>rA MASK OUT SCC UART
200
2CBD 5 3E0B LD AiOB 2CBF 7 D3A3 OUT (A3)rA MASK OUT DEV-A UART 2CC1 9 F1 POP AF 2CC2 A FB EI ENABLE INTERRUPTS 2CC3 B C9 RET
EXIT* *=2CC4
ENABLE CHARACTER SERVICE t ENABLE TIMERS
2CC4 0 F3 DI DISABLE INTERRUPTS 2CCS 1 F5 PUSH AF 2CC6 2 3E30 LD A >30
MASK FOR SCC UART 2CC8 4 D303 OUT (03)>A MASK FOR SCC UART 2CCA 6 3E3B LD A»3B 2CCC 8 D3A3 OUT <A3)fA MASK FOR DEV-A UART 2CCE A F1 POP AF 2CCF B C9 RET
DUMP* *=2CD0
SEND T-l i T-6 AND T-15 BUFFERS TO REQUESTING PORT
2CD0 0 DD7E08 LD A.QX+8) GET REQUESTING PORT N 2CD3 3 FEB1 CP B1 2CD5 S C8 RET Z IGNORE IF CHROKATOGRA 2CD6 6 FD2A7E26 LD IYf(T*PUT+10) GET MINUTE TIMER DCB 2CBA A FDCB0686 RES 0»(IY+6) DISABLE MINUTE BUFFER 2CDE E CDB82C CALL ENTRY* ENABLE TIMERS/DISABLE 2CE1 11 DD4E08 LD C»(IX+8> GET REQUESTING PORT N 2CE4 14 DD2A9626 LD IXi (T*PUT+28) GET CHROMATOGRAPH DCB 2CE8 18 FD6E09 LD LrtIY+9) 2CEB IB FD660A LD H»(IY+A) 2CEE IE CD0B2D CALL WRITE* SEND T-l BUFFER 2CF1 21 DD6E0D LD Li<IY+D) 2CF4 24 DD660E LD Hr(IY+E) 2CF7 27 CD0B2D CALL WRITE* SEND T-6 BUFFER 2CFA 2A DD6E0F LD Li(IY+F) 2CFD 2D DD6610 LD Hi(IY+10) 2D00 30 CD0B2D CALL WRITE* SEND T-15 BUFFER 2D03 33 CDC42C CALL EXIT* ENABLE CHARACTER SERV 2D06 36 FDCB06C6 SET Or(IY+6) ENABLE MINUTE BUFFER 2B0A 3ft C9 RET
WRITE* *=2D0B
ROUTINE TO TRANSMIT 2 HALF RECORDS
2D0B 0 1E02 LD Ei02 NUMBER OF RECORDS TO 2D0D 2 1614 NXTREC LD Di 14 NUHBER OF WORDS PER R 2D0F 4 CD2229 CALL SHAKE* 2IU2 7 46 NXTBYT LD Bi(HL) GET LOW BYTE 2IU3 8 23 INC HL 2D14 9 7E LD Af(HL) GET HIGH BYTE 2D IS A 23 INC HL 2D16 B CD2B2D CALL P2*HEX PRINT HIGH BYTE 2B19 E 78 LD ArB 2D1A F CD2B2D CALL P2*HEX PRINT LOU BYTE 2D1D 12 7A LD Af D 2D1E 13 3D DEC A UPDATE UORD COUNTER 2D1F 14 57 LD Df A 2D20 15 2OF0 JR NZ NXTBYT 2D22 17 CD2A29 CALL CR* 2D25 1A 7B LD Af E
201
2D26 IB 3D DEC A UPDATE RECORD COUNTER 2D27 1C 5F LD ErA 2D28- ID 20E3 JR NZ NXTREC END OF TRANSMISSION 2D2A IF C9 RET
P2*HEX »=2D2B
PRINTS CONTENTS OF A-REGISTER AS TUO HEX DIGITS
2D2B 0 CD2F2D CALL P1HEX PRINT HIGH NIBBLE 2D2E 3 IF RRA PRINT LOU NIBBLE 2D2F 4 IF P1HEX RRA 2D30 5 IF RRA SUAP NIBBLES 2Ii 31 6 IF RRA 2D32 7 IF RRA 2D33 8 F5 PUSH AF SAVE AF 2D34 9 E60F AND OF MASK OFF DIGIT 2036 B FEOA CP OA 2D38 D 3802 JR C PHI 2D3A F C607 ADD 07 A THROUGH F 2D3C 11 C630 PHI ADD 30 ASCII BIAS 2D3E 13 CDDF28 CALL OUTS PRINT CHARACTER 2D41 16 F1 POP AF 2042 17 C9 RET
REFERENCE MAP
CHKSUH 42 2500 SETUP 65 252A HtlSR 128 25CC SARS* 17 264C LARSt 17 265D T$PUT 48 266E TtlSR 97 256B DtRDA 63 269E D$TBE 64 26DD H*RDA 196 2764 H*TBE 71 271D HSDPLX 20 2828 HIINPT 25 296E OtCHK 33 294D ITIMAP 14 2R.1C SHAKE* 8 2922 CRt 6 292A CIDUHP 149 284A OUT* 9 28DF C*DEL 47 28E8 ••DONE: 11 2917 P«HSG 29 2930 GOSSCC 25 2987 T $MSG 40 29AD GETCH* 13 29A0 CNTLSO 88 29D5 SSDCB 33 2A2D AtDCB 33 2A4E BtDCB 33 2A6F XtON 25 2A90 XIOFF 26 2AA9 DITIMR 44 2AC3 HITIMR 17 2AEF A1*TIM 35 2B00 A2»TIM 76 2B23 A3*TIM 80 2B6F B$FULL 161 2BBF AltDCB 19 2C60
202
A2*BCB A3*DCB TSMUX ENTRYi EXIT* DUMP* URITE* P2*HEX
12 2C73 17 2C7F 40 2C90 12 2CB8 12 2CC4 59 2CD0 32 2D0B 24 2D2B
203
REFERENCES
1. Anscombe, F. J., "Rejection of Outliers,11 Technometrics, Vol. 2, No. 2, pp. 123-147, May, 1960 .
2. Carnahan, B., H. A. Luther and J. 0. Wilkes, Applied Numerical Methods, John Wiley and Sons, Inc., New York, 1969.
3. Davidson, E. R. and G. P. Christian, "Quantitative Analysis of Multicomponent Fluorescence Using the Methods of Least Squares and Non-Negative Sum of Errors," Analytical Chemistry, Vol. 49, No. 14, Dec., 1977.
4. Glass, J. W., Private Conversation, Dept. of Chemical Engineering, University of Arizona, 1980.
5. Glass, J. W. and J. 0. L. Wendt, Combustion Research and Air Pollution Colloquia, Chem. Eng., University of Arizona, Fall, 1980.
6. Glass, J. W., "Influence of Coal Combustion on the Fate of Coal Nitrogen During Staged Combustion," M. S. Thesis, University of Arizona, 1978.
7. Himmelblau, D. M., Process Analysis by Statistical Methods, John Wiley and Sons, Inc. , New York, l"969.
8. Hockings, W. A. and R. W. Cullen, "Computer Program for Calculating Mass Flow Balances of Continuous Process Streams," SME/AIME Preprint 77-B-372, Oct., 1977.
9. Kuester, J. L. and J. H. Mize, Optimization Techniques with FORTRAN, McGraw Hill, New York, 1973.
10. Pearson, E. S. and H. 0. Hartley, Biometrika Tables for Statisticians, Vol. 1, pp. 32-33, Cambridge, 1954.
11. Smith, H. W. and N. M. Ichiyen, "Computer Adjustment of Metallurgical Balances," Can. Mln. and Met. Bull., pp. 97-100, Sep., 1973.
12. "Student", "Errors of Routine Analysis," Biometrika, Vol. 19, pp. 151-164, 1927.
204
13. Takacs, L. , "Improving the Efficiency of Industrial Boilers by Microprocessor Control," Power Eng., pp. 80-83, Nov., 1977.
14. Wendt, J. 0. L., Private Conversation, Dept. of Chemical Engineering, University of Arizona, 1981.
15. Wendt, J. 0. L. and J. W. Glass, Topical Report No. 1, "Pollutant Control Through Staged Combustion of Pulverized Coal," U.S. Dept. of Energy, Contract DE-AC01-79ET-15184, May, 1979-
16. Wendt, J. 0. L., "Advanced Staged Combustion Configurations for Pulverized Coal," Proposal for Research Renewal of Contract DE-AC01-79ET-15184, Dept. of Chem. Eng., University of Arizona, Aug., 1977.
17. White, J. W. and R. L. Winslow, "Flowsheet Analysis for Mass Balance Calculations in Overdefined Metallurgical Systems with Recycle," SME/AIME Preprint No. 79-80, Feb., 1979.
18. White, J. W., R. L. Winslow and G. J. Rossiter, "A Useful Technique for Metallurgical Mass Balances -Applications in Grinding," Int'l J. Min'l Proc., Vol. 4, pp. 39-49, 1977.
19. Whiten, W. J., "Model Building Techniques for Mineral-Treatment Process," Symp. on Auto. Control Sys. in Min'l Proc. Plants, Tech. Papers, Brisbane, pp. 129-148, May, 1971.
20. Wiegel, R. L., "Advances in Mineral Processing Material Balances," Can. Met. Quart., Vol. 71, No. 2, pp. 412-424, 1972.
21. Winslow, R. L., "A Systems Approach to Analysis of Industrial Wet Grinding Circuit Data," M. S. Thesis, University of Arizona, 1980.