EPA-AA-SDSB-87-08
Technical Report
Operational Characteristics Study
Columbus, Ohio Program
By
Glenn Thompson
Robin McCoy
Mark Hoekwater
Lisa Snapp
Alan Schuler
August 1987
NOTICE
Technical Reports do not necessarily represent final EPA
decisions or positions. They are intended to present technical
analysis of issues using data which are currently available.
The purpose in the release of such reports is to facilitate the
exchange of technical information and to inform the public of
technical developments which may form the basis for a final EPA
decision, position or regulatory action.
Standards Development and Support Branch
Emission Control Technology Division
Office of Mobile Sources
Office of Air and Radiation
U. S. Environmental Protection Agency
-------
Table of Contents
Page
List of Figures iii
List of Tables ". '". . iv
Abstract 1
I. Introduction 1
II. Report Layout 1
III. Program Design 2
IV. Equipment . . . . 3
V. Data Collection 4
VI. Data Preparation 8
VII. Data Reduction 15
VIII. Trip Statistics Results ._ . 20
IX. Summary of Temperature Analysis ... 32
X. Conclusions 42
References 43
Appendixes 44
11.
-------
List of Figures
Figure Page
1 Time Within A Hypothetical Stop 17
2 Average Trip Speed-Histogram (0-64 mph) 24
3 Trip Distance - Histogram (0-25 miles) 25
\
4 Time Since Last Trip - Histogram (0-24 hours)- .... 26
5 Number of Trips Made Per Day - Histogram (0-17) ... 27
6 Number of Trips vs. Time of Day (Urban Only) .... 30
7 Number of Trips vs. Time of Day (Urban and Rural) . . 31
8 Average Distance Travelled (Urban Only) 33
9 Number of Stops Per Trip (Urban Only) 34
10 Average Trip Speed (Urban Only) 35
11 Time Since Last Trip (Urban Only) 36
12 Trip Duration (Urban Only) 37
13 Temperature Plots - During Trip . 38
14 Temperature Plots - Beginning of Soak 39
15 Temperature Plots - Complete Soak 40
111
-------
List of Tables
Table Page
1 Trips Selected for Temperature Analysis 21
2A Mean Values For Urban Only Trips 22
2B Mean Values For Urban And/Or Rural Trips 22
3 OCS Data Overview Urban Trips 29
4 Hot Soak Times 42
IV.
-------
Abstract
The Columbus, Ohio program of the Operational
Characteristics Study (OCS) monitored the driving patterns of
47 private citizens in Columbus, Ohio over a nine month period
from April 1983 to January 1984. These citizens were loaned
one of four vehicles equipped with time, speed, distance, and
temperature recording devices to gather a total of 251 days of
in-use data. This report describes the details of this
program, the results, and a comparison of the average trip
statistics to the Federal Test Procedure used in emissions
testing.
I. Introduction
The Federal Test Procedure (FTP) is the urban dynamometer
driving cycle used for vehicle exhaust emission certification
and fuel economy measurement. The cycle is based on a Los
Angeles road route, designated the LA-4, which was selected by
Los Angeles County and California State personnel in 1965 or
1966. [1] The FTP was developed about 1970, and consists of the
LA-4, a 10 minute engine off period (soak), and a repeat of the
first section (bag) of the LA-4.[2]
Many notable changes have occurred in the U.S. during the
twenty years since the LA-4 was developed. Demographically,
the population distributions have shifted toward increased
urbanization. Particularly notable is the recent trend .toward
growth of small urban areas.[3] The gasoline shortage of the
1974-75 years initiated or accelerated the trend toward smaller
vehicles. In addition, the Energy Conservation and Policy Act
introduced Corporate Average Fuel Economy Standards for vehicle
manufacturers, increasing the incentive for the production of
fuel efficient vehicles.[4]
The accumulative effect of all of these changes on vehicle
usage is unknown and was the primary objective of this program.
Specifically, .the program was designed to study the operational
characteristics of vehicles while also comparing current
average vehicle operation with the LA-4 (and hence the FTP).
II. Report Layout
Th.e report will first summarize the main ideas and results
from this program. The main body will then proceed with the
program design, data collection and preparation, data analysis,
results, and finally with some conclusions. The appendexes
contain more voluminous and detailed materials including
listings of several computer programs used to analyse the data,
histograms of trip characteristics, graphs of the average trip
statistics versus trip starting time, a summary of the
questionnaire given to the participants, and an engine
temperature analysis.
-------
-2-
III. Program Design
In any program of this type the goal is to obtain as much
vehicle use data as possible, without interference from the
data collection technique. Past approaches have included
operator surveys, mechanical recording devices, human observers
in the monitored vehicle and "chase cars".
Questionnaire surveys of vehicle owner-operators can
obtain large quantities of data at very low cost, but the
accuracy and the detail of data can be very poor. This
approach has primarily been used for, and is best suited for,
collecting information such as annual miles traveled, commuting
distances, and ratios of the number of hot start versus cold
start trips.
Greater confidence and more detailed data may be obtained
by using a mechanical recording device to provide a direct
record of the vehicle operation. However, mechanical recorders
have limited resolution and usually small data capacity. These
devices have primarily been used to measure time in various
speed regions or to sense and record maximum vehicle or engine
speeds.
The chase car approach is notably different from the
recorder approach because in this case the recording
instrumentation is placed in a vehicle which follows or
"chases" the actual vehicle of interest. Since a specially
instrumented vehicle is used, the instrumentation can be.quite
extensive. Also, it can be controlled by the driver or a
passenger in the chase car. The weakness of this approach is
that the use data is really data on the use of the chase car,
not directly the vehicle of interest. There is always some
uncertainty about how well the chase vehicle mimics the driving
characteristics of the followed vehicle. Sampling is also a
problem because the chase car data must be weighted to reflect
rush hour traffic densities or the operation of the vehicle
must be adjusted to reflect these traffic patterns. Several
chase car studies have been conducted to investigate the
representativeness of the EPA test cycles.[5]
The final historical approach which has been used is
installation of chase car type instrumentation directly in the
vehicle of interest. In this case, an observer was sent in the
vehicle to operate the instrumentation. This approach was used
in an EPA study to develop driving cycles for heavy-duty
trucks.[6] While this approach may be suitable for commercial
vehicles in delivery use, it is at the very least inconvenient
for passenger car use. In either case there is the potential
problem that the presence of the observer may alter the
behavior of the vehicle operator.
The approach chosen for this study was a logical extension
of this previous technique. An instrumentation system was
-------
-3-
developed with sufficient capacity and intelligence so that an
attendant operator was not required. Ideally this system would
have been installed in the vehicle owned by the study
participant, however, early experience with the system
demonstrated that it was quite time intensive to install and to
adequately test prior to use. Consequently it was decided to
install the instrumentation in several vehicles which were then
loaned to the study participants. These vehicles were similar
in size and type to the vehicle owned by the study
participant. This similarity of the vehicles would hopefully
lead the participant to operate the vehicle as he/she would
operate his/her own and therefore minimize any changes from
"normal" vehicle use.
IV. Equipment
The program design required that the data . recording
equipment operate unattended in a vehicle for a minimum of
several days. However, during most of this time the vehicle
would probably be inactive and, therefore, the most important
data, the vehicle speed information would be unnecessary.
Therefore, the data acquisition system required the ability to
adjust as a- result of the system signals. A microprocessor
provided this instrumentation control, replacing the human
instrumentation operator necessary in previous.programs.
The instrumentation system was designed and constructed by
MB Associates (MBA) of San Ramon, California. The system was
based on an RCA development board using the 1802 CMOS
microprocessor. This microprocessor was chosen because of its
low power requirements, typical of CMOS integrated circuits.
In 1975 when the system was first designed, this was one of the
very few CMOS microprocessors commercially available. The
microprocessor controlled the collection of data from the
speed, temperature, and other sensors, applied calibration
factors to these data and monitored the recording of the data
on a cassette tape.
The vehicle speed signal was generated by an optical
encoder connected to the speedometer cable. The encoder pulses
were sent to the interrupt request line of the microprocesor
and were subsequently counted by the interrupt request
subroutine. The microprocessor divided the number of pulses
counted each second by a calibration factor to obtain the
vehicle speed in mi/hr. This value was then modified by the
data encoding system before being queued for the cassette tape.
Eight temperature channels were provided. -Six of these
channels were used in the program. Each sensor was a
thermistor which was multiplexed to a single analog to digital
converter. The temperature sensors were installed at the
following locations: 1) behind or adjacent to the rear bumper,
to measure the ambient temperature; 2) at the water pump, to
-------
-4-
measure the engine coolant temperature; 3) on the underside of
the oil pan, to measure the engine lubricant temperature; 4) at
or near the air cleaner intake, to measure the engine
compartment temperature; 5) on the underside of the fuel tank,
to measure the fuel tank temperature; and 6) at one other
nonspecific location under the hood. Temperatures were
recorded every minute during the time that the vehicles were
running and throughout most of the time when the vehicles sat
idle. When the vehicle had not been running for over twelve
hours, the temperatures were recorded every twenty minutes.
A few things should be noted about these temperature
sensor locations. A sensor attached to the rear bumper of a
vehicle in operation will not provide a very accurate
measurement of ambient temperature. The bumper is subject to
solar heating on sunny days and rapid cooling from puddle
splashes on rainy days. .Therefore, the "bumper temperature"
was not included in the temperature analysis. Improved fuel
tank temperatures could have been obtained by inserting the
thermistor inside the fuel tank. Unfortunately, this was not
feasible. Therefore, an attempt was made at obtaining an
approximate temperature profile by placing the sensor
underneath the fuel tank, although this too is subject to road
splash. The sensor on the underside of the oil pan may be in a
similar situation, but due to the confined area where -it is
placed and the relatively large changes experienced in oil
temperature it will not be as affected by outside elements as
the sensor on the fuel tank is. Also, the "underhood"
temperature may not be comparable between vehicles as the
sensor location is not specifically defined. '
One additional iata input was used in the OCS program, a
switch which was operated by the vehicle driver to indicate
urban versus rural operation of the vehicle.
V. Data Collection
The general program approach was to instrument vehicles
and then provide these vehicles as loaner cars to the
participants of the study. Since vehicle size might effect the
operational characteristics of the vehicle, the loan vehicles
were selected to represent the diverse sizes of vehicles in
use. The participants were selected randomly, but were always
provided with a vehicle of approximately the same size as their
personally owned vehicle.
The data collection phase of the program was conducted by
Automotive Testing Laboratories (ATL) of East Liberty, Ohio
under an EPA contract.[7]
-------
-5-
A. Vehicle Selection
Full size, intermediate, compact and subcompact vehicles
were initially planned for the following number of loans.
Vehicle Size Number of Planned Loans
Full size 12
Intermediate 25
Compact 5
Subcompact 30
Total 72
The vehicle size classifications are those used in the DOE/EPA
vehicle mileage guides.[8] The number of loans planned for
each category was proportional to the total number of vehicles
registered in that category. Therefore, the vehicle sampling
process was designed to be a representative sample, by vehicle
size, of the total in-use fleet.
During the progress of the program occasional difficulties
occurred, primarily either intermittant electronic problems
with one of the recorders or loss of battery power due to
premature battery drainage. This caused a reduction in the
total amount of data which could be obtained within the data
collection contract funds. The following number of
instrumented vehicle loans were actually used in the final
analysis as valid loans.
Number of Successful
Vehicle Size Instrumented Loans
Chevrolet Impala Full size 12
Ford Fairmont Intermediate 13
Chevrolet Chevette Subcompact 22
Total 47
The loan period was between April 12, 1983 and
January 11, 1984. Two different Chevettes were equipped, which
resulted in a total of four vehicles used in this study.
B. Participant Selection
The participants in the study were selected randomly
subject to the constraint that each participant receive a loan
vehicle of approximately the same size as the vehicle owned by
the participant. Lists were obtained for 1979 model year
vehicles registered in all postal zip codes located within ten
miles of zip code 43211. This was essentially Columbus, Ohio.
From this list 2000 vehicle owners were sent a letter asking if
they were interested in participating in an EPA sponsored test
program. All those responding affirmatively, approximately 20
-------
-6-
percent, were listed and numbered sequentially. A random
number generator was then used to select numbers from this list
which were then sequentially tabulated according to vehicle
size.
C. The Vehicle Loan
Immediately preceding each .loan the battery packs in the
vehicle were replaced with freshly charged packs or they were
recharged in the vehicle. The vehicle speed sensor was
calibrated by driving the vehicle for one mile on a chassis
dynamometer. Finally, the vehicle was driven over the first
segment of the EPA urban test cycle.
After these preliminary steps the vehicle was delivered to
the participant. The time of delivery was noted so that any
data recorded while the vehicle was operated by the ATL
employee could be separated in the analysis process.
The study participant was instructed to operate the
vehicle in the same manner as the participant's own vehicle
would be used. Only two additional requests were made; the
operator was asked to maintain a fuel purchase log and to flip
a switch to a rural position whenever the vehicle was driven in
a rural area. For this study an urban area was defined .by the
Ohio Department of Transportation 1975 urbanized area limits.
These urbanized area limits are developed in conjunction with
U.S. Department of Transportation guidelines. All other
regions were considered rural.
The distinction between an urban and rural area is often
not clear and, therefore, several precautions were taken to
attempt to improve the urban/rural switch data. First, the
participant was given a map of the Columbus area with the
boundary of the urbanized area clearly outlined on this map.
If the participant's typical daily commute crossed the
boundary, the participant was asked to note the boundary point
on the map and to try to change the switch position at the
precise boundary point. It was also pointed out to the
participant that the boundary was < approximated by the 1-270
freeway circumscribing Columbus. The participant was asked to
change the switch position at this freeway whenever the
participant was entering or leaving the urban area but was not
certain about the exact boundary. While there is always
uncertainty about the accuracy of the switch data, Columbus was
an ideal metropolitan area for participant accuracy. It is a
nearly circular metropolitan area surrounded by rural
farmland. The beltway is a good, easily recognized approximate
boundary between the urban and rural regions. Finally, there
are no long corridors of urbanization along any geographical
boundaries.
-------
-7-
D. Quality Control
Several steps were taken to maintain quality control,
therefore minimizing the collection of data which might later
prove to be useless. The initial system test verified that the
instrumentation was correctly installed, monthly quality
control tapes ensured the long term accuracy of the equipment
and data inspection after each loan provided a frequent test
that the instrumentation continued to function.
1. Initial System Test
After the instrumentation was first installed in a loan
vehicle, the vehicle was operated .by ATL personnel for about
one week. This data tape was reviewed to ensure that the data
appeared reasonable. Only after it was verified that the data
appeared reasonable and it was demonstrated that the instrument
and battery would survive approximately a week of unattended
operation was the vehicle loaned to a participant.
2. Monthly Quality Control Test
The initial system test relied on the ability of ATL
personnel to ascertain if the data appeared reasonable. Since
the actual use of the vehicle was not accurately .known,, there
was the possibility that some instrumentation drift or other
problem might occur and might not be detected. To ensure that
any problems of this nature would be detected a quality control
data tape was made after the initial installation test and each
subsequent month. The quality control data tape consisted of a
driving record of the instrumented vehicle over the federal
test procedure (FTP) cycle used for exhaust emissions
measurement. This data tape was forwarded to EPA for analysis
along with all other data. Since the FTP cycle is accurately
known, comparison of the driven cycle to the theoretical cycle
would detect even minute problems and would provide a method to
correct the field data for any calibration drift should this be
necessary. For all cases in this study, reasonable comparisons
were found.
3. Data Inspection
Immediately after each vehicle loan, random segments of
the data were displayed using an Apple microcomputer. These
data were visually inspected by the ATL Project Manager to
ensure that the instrumentation system continued to function
properly. If the data appeared reasonable, the Apple was used
to transcribe the data from the cassette tape used in the
vehicle recorder onto floppy diskettes. The diskette and the
original cassette tape were then transmitted to the EPA Motor
Vehicle Emission Laboratory.
-------
-8-
VI. Data Preparation
The purpose of the data preparation phase was to detect
and correct data problems. Two types of problems were
possible: a malfunctioning instrument might result in total
loss of usable data, or relatively infrequent random errors
might cause extensive data analysis difficulties. The data
preparation phase attempted to remove or correct any data
problems prior to the analysis of the data.
Analysis of data from an early pilot program indicated
that the most significant data problem was the occasional loss
of one byte of the recorded data. This problem was never
clearly identified but is believed to result from a real time
programming or hardware error in the data collection system.
After any cleaning or correction of the raw data, the
information was converted into standard engineering units.
Once converted, tests of the data, such as the ranges of
parameter values or the rate of change of the parameters could
be made to assess the reasonableness of the data. Infrequent
errors could be corrected or if blocks of data were missing the
entire data set could be rejected.
A. Initial Cleaning - The Missing Bytes Problem
The missing data byte problem occurs infrequently, about
0.01 percent of the data are missing. Yet it is potentially a
very severe problem because one lost byte could result in many
subsequent data being erroneously interpreted, causing a much
higher effective data error rate. For example, a single error
in a one minute string of speed data could cause all of the
data for the remainder of the minute to be analyzed as speeds
of several hundred miles per hour. Simply using such obviously
.illogical data would be undesirable and eliminating significant
blocks of these data would seriously compromise the analysis.
The greatest obstacle in correcting the missing data bytes
was that no error detection/correction code had been used in
the original data collection. The only data decoding asset
provided by the collection system was that a unique
synchronization mark, an "FD", was provided at the beginning of
each minute of recorded data. This "FD" was used as the first
step toward an automated data correction system.
The data were reformatted so that all "FDs" were at the
beginning of the lines of the data files. This reformatting
was done with the Apple using a program written in BASIC. A
copy of the program is included in Appendix A.
Reformatting emphasized the data patterns which
facilitated recognition of blocks of data which contained one
or more missing bytes. Each "FD" was followed by six bytes of
-------
-9-
identifier information followed by six temperature bytes.
After this there might or might not be 60 seconds of speed data
in the form of one speed byte pair each second. If any speeds
appeared there should always be 60 seconds of data unless the
vehicle engine stopped, in which case this would be indicated
by an "FE" code. Consequently, by reformatting the data in
lines of twelve bytes per line and forcing any "FDs", "FEs", or
"FC" calibration codes to start a new line, any missing data
would result in a short line and would be immediately obvious.
Unfortunately, the end of a diskette data file could also
result in a break, in the data which would not correspond to any
of the identifier flags. This data break problem was resolved
by transferring the data to the main computer used by EPA, the
University of Michigan MTS system. This system can accommodate
much larger files than the Apple. Therefore, all files of each
vehicle loan were concatenated into a single large data file.
The transfer of data to MTS was done by configuring the Apple
as a data terminal using a binary communications program
supplied by MTS.
Initially the reformatted MTS data files were printed and
then scanned by data analysis personnel to determine the
specific locations of missing data. This location could be
unambiguously determined in virtually all cas.es. For example,
in the case of sequential temperature data a dislocation of the
data columns was usually apparent:
5C
5C
41
42
57
4B
4A
short line
5C 43 57 4C
The 57 is missing in the middle line and the 4B is shifted.
The identity of a missing speed datum was more subtle but
also unambiguous. For example:
01 27
01 28
01 29
Q1 29 *29 01
30 01
30 01
31 01
29
- ----- short line
The "01" is missing at point * and all subsequent data are
shifted.
Once the system evolved to this stage where unambiguous
human editing could be based on pattern recognitions, than it
was obvious that automated computer editing was also possible.
Two programs were written, OCS.S-TMPFIX, and OCS.S-SPDFIX to
correct temperature and speed missing data, respectively. This
-------
-10-
automation greatly increased the speed and accuracy of the data
editing process.
TMPFIX searches for a line with a missing temperature
datum which is both preceded and followed by a correct line.
When this condition is found the two correct lines are
interpolated to predict values for all temperatures in the line
with the missing datam. These predicted temperatures are
compared with the observed temperatures and the difference or
"errors" are squared and then summed over all temperatures in
the line. The last temperature datum is then shifted one
position and the process is repeated. In this manner an array
of the sums of the squares of the errors is computed for all
possible positions of the blank or missing datum. The minimum
of this array is then computed and the location of this minimum
selects the location of the missing datum. Once the location
is known, the preceding and following values are simply
averaged to obtain the value which is inserted in the location
of the missing datum. A copy of this program and the
mathematics of the algorithm are given in Appendix A.
The temperature errors were randomly distributed and
infrequent, therefore, the condition that the line with the
error lie between two correct lines was generally met. If this
condition was not met, the program placed flags in the -margin
of the output file but did not attempt a correction.
The speed corrections program used a very similar approach
to the temperature correction program. Each speed datum
required two bytes, the high order or most significant byte
(MSB) and the lower order or least significant byte (LSB).
Because of the scaling the MSB always had a value of 04 or less
while the LSB could have any value. Consequently when low-high
pairs appeared in consecutive odd-even positions, respectively,
the data stream was known to be correct. Once a high-low pair
occurred in a consecutive odd-even position, data loss must
have occurred before this point. This logic was used to locate
the datum known to be correct before any data loss and the
first datum known to be shifted after data loss. Once these
reference points were located there was usually only one
intermediate point which was the obvious location of the
missing datum. In this case the average of the two known
reference points was inserted as the missing value. In some
instances where the missing datum could occur at more than one
point the average of the preceding and following data were
tested as the possible missing datum at each point. The
configuration which gave the minimum sum of the squares of the
acceleration, that is the smoothest transition, was selected as
the missing data point. If a'clear minimum was not apparent,
then the editing program did not introduce any change but wrote
an error message to a separate file for later reviewing. A
copy of the OCS.S-SPDFIX program is given in Appendix A.
-------
-11-
After both editing programs were run, results of the
programs were investigated by running the MTS-supplied software
*APC (All Purpose Compare) which detected all differences
between the original and the edited file. Whenever a change
was made, the data before and after the modifications were
reviewed to ascertain that the editing programs were
functioning in a logical manner. Also, any .problems that the
programs could not correct were reviewed to see if a logical
unambiguous resolution was possible.
The general philosophy toward all data correction was very
conservative. Only those corrections that were obvious and
unambiguous were made or accepted. This was generally possible
because the errors were infrequent and most were completely
missing single bytes in a known data sequence. Great care was
taken not to introduce any biasing of the data by making
frequent or extensive change.
B. Data Conversion
The conversion of the data into engineering units was done
by the Fortran program OCS.S-PREPARE run on the MTS system. A
copy of the program is given in Appendix A.
Conversion of the data into engineering units is slightly
confusing because of the diverse encoding systems used by the
recorder systems. Consequently each decoding system is
discussed in conjunction with the type of data it was used to
decode.
1. Identifier Line
A segment of identifier data appeared each minute unless
the vehicle had not been used in the last eight hours, in which
case the identifier segment appeared every twenty minutes.
This segment always contained an "FD mark" followed by the
date, time, and loan number. For example:
FD 38 13 46 01 00
"mark" day time loan number
38 1:46 100
All of the parameters on the FD line were recorded as binary
encoded decimal, therefore, it was not necessary to perform any
change in the numerical system or units.
The date encoding was the only frequent problem in this
field. We intended to use the last two digits of the Julian
calendar date so that the starting date of all loans, or at
least all loans on any one vehicle, would have unique dates.
Unfortunately, the software of the recording system was written
to subtract 30 from the date at each hour change if the date
value was greater than 30. Consequently, Julian 68 would be
modified to 38 and then 08. Since this was considered to be a
-------
-12-
potential cause for confusion, these dates were corrected back
to the correct Julian Values. This correction was made
whenever necessary by the data analysis personnel using the
general MTS Supplied EDIT programs.
2. Temperatures
Six temperatures always followed the identifier block.
The information supplied by MBA with the recording units stated
that the conversion to degrees Celsius was given by:
C = (H-57)
where H is the decimal value of the recorded hexidecimal (base
16) data. An example of the temperature decoding is:
Recorded temperature value 39 64 85 86 61 6D 6F
Conversion to decimal 57 100 133 134 97 109 111
Subtraction of 57 0 43 76 77 40 52 54
Calibration of the temperature sensors in a hot water bath
indicated that the MBA conversion was not adequate for correct
Celcius temperatures. Therefore, an additional empirically
derived correction was applied. This correction was:
Correction = M * Sensor + B
where, when the sensor value was less than or equal to 90:
M = 0.82473
B = 0.4184
or, when the sensor value was greater than 90:
M = 0.51254
B = 28.847
3. Speed Data
The speed data always appeared in two byte pairs. The
conversion, supplied by MBA was:
Convert both hexadecimal bytes to binary.
Append the three least significant bits of the most
significant byte to bits 2 through 6 of the least significant
byte. The two least significant bits of the least significant
byte, bits 0 and 1 are the decimal fraction of the speed.
Convert the resulting binary number to decimal.
An example calculation follows:
-------
-13-
Most Sign. Byte Least Sign. Byte
Original Hex Data: 01 27
Binary Notation: 0000 0001 0010 0111
Decoded Binary: O0l0l00l.il
Decimal mi/hr: 41.75
4. Other Codes
In addition to the identifier, temperature, and speed
data, an FC code could appear once near the beginning of the
data and several FE codes could appear anywhere in the speed
data. The FC code indicated that a calibration had occurred
and the following speed data should be valid. This would
logically occur only once in each loan file. Each file was
checked to ensure that one and only one FC was found. All data
before the FC were ignored.
The FE codes indicated an engine on/off change or a change
in the urban/rural switch. The interpretation of these are:
FE OA ignition on urban
FE OB ignition off urban
FE 02 ignition on rural
FE 03 ignition off rural
The FE codes were somewhat troublesome, primarily because
repetitive or oscillating values occasionally occurred. The
source of these problems were never clearly identified but are
believed to be switch bounce or are related to an unsuccessful
attempt by MBA to include software to sense vehicle gear,
changes into the FE code.
C. Data Testing
Once the data were converted into engineering units each
value was tested for reasonableness by the FORTRAN program,
OCS.S-SCAN. The day, hour, and minute were checked to assure
that no data were missing. A message was written to a separate
file whenever the date and time did not follow segmentially.
The loan identification number was checked to assure it was
identical throughout the data: Another message was written to
the error file when discrepancies were found. The temperature
data were flagged if a change of greater than 10 degrees/minute
occurred. "Any speed point exhibiting an acceleration or
deceleration greater than 7 mph/sec from the preceding point
was flagged.
The program OCS.S-SCAN also tested for missing
temperatures and speeds. If any temperatures were missing at
this point in the analysis, the last (sixth) temperature would
be read as a zero. Therefore, a check for a zero valued sixth
temperature by the scanning program discovered any missing
temperatures. A similar test was made to detect the presence
-------
-14-
of less than 60 speeds in each minute in which any speeds
occurred. A Copy of OCS.S-SCAN is given in Appendix A.
In a typical loan file, approximately 100 possible data
problems were observed. Each of these possible problems were
reviewed by a data analyst. A few problems were traced to
obvious errors which had escaped the initial editing. These
data were corrected if the correct data could be unambiguously
determined. In most cases the data values appeared unusual but
not obviously erroneous. These values were not changed because
strong emphasis was placed on not biasing the data toward the
expectations of the reviewer. For example, an acceleration
rate might seem higher than expected but could be plausible,
particularly at low speed. In addition, temperatures often
changed abruptly near engine on and engine off segments. The
number and percentage of these instances were,small, typically
between .005 and .01 percent. This very small number should not
have any observable effect on the final analysis. Any
significant sequences of questionable data were noted or
"flagged" so that if any unusual statistics occurred from these
data the source could be identified and later traced if desired.
In a few cases, significant amounts of data were missing
and, of course, these could not be reconstructed from the
information in the file. In this case the interval of missing
data was determined and the original cassette data tape was
scanned to attempt to locate the data. Generally the
information was found. It was then processed through all of
the analysis steps as a "partial loan" and then inserted into
the original loan data. These losses probably occurred in the
original transcription of the data from cassette to the
diskettes or from a marginal quality region of the diskette.
In one instance, the data were clearly illogical and could
not be reconstructed. In this case the speed signal often
changed rapidly from zero to speeds of about 50 mph and then
back to zero. It was decided that the problem was most likely
a poor connection in the speed sensing area. The entire loan
was voided. A check of subsequent loans showed that the speed
sensor completely failed on the next loan and was then
replaced. A second instance also occurred when the speed
sensor apparently failed. This entire loan was also voided.
Upon reduction of the data, some loans were voided because
of apparent battery failure. In some instances, battery
failure occurred at the end of the loan period, while other
times it occurred fairly early in the week. It was decided to
void all tests in which the battery failed within three days.
If the battery failure occurred after three or more days, the
loan was not voided, but any data occur ing on and after the day
of failure was disregarded.
-------
-15-
VII. Data Reduction
The reduction phase of the data analysis reduced the
voluminous basic data files into a much more manageable volume
of descriptive parameters which could then be statistically
analyzed. A "trip" was chosen as the primary concept of the
reduced data and therefore most of the reduced data parameters
described "trip" characteristics.
The analysis was done with the FORTRAN program
OCS.S-STATS.FOR, and the FORTRAN program OCS-CMP.FOR, which are
given in Appendix B.
A. Trip Parameters
The following parameters were computed to describe each
trip and the results were stored in the output files
XXX.TRIPLOG (XXX represents the loan identification number).
Trip
Parameters
SAVDAY Day number at beginning of trip
TRIPCT Sequential number of trip
DAYTRP Sequential number of trip during day
SAVTIM Time at beginning of trip
TYPE 1 = urban, 2 = combination, 3 = rural
START 1 = hot, 2 = cold
OFFCT Time car is off before trip (minutes)
AVESPD Average speed (total distance/total time)
DISTNC Distance traveled during a trip (miles)
STOPCT Number of stops
AVEDBS Average distance between stops
ONCT Length, of trip (seconds)
TOTSS Total stopped seconds, speed < 4 mph
GOSC Total going seconds, speed _> 4 mph
Originally a trip was defined simply as the interval
between engine "on" and engine "off." Preliminary analysis of
the data showed that this definition of a trip may not reflect
actual conceptions of trip driving characterstics. In the
original case, a car could be driven for a series of "drives"
with short engine off times between the "drives" and have each
"drive" count as a separate trip. In reality, if the engine
off times are short enough, it might be more appropriate that
the whole series of "drives" should be .counted as one total
trip. For example, a person who drives to the post office,
stops only long enough to buy a roll of stamps and then drives
on to work, would most likely consider this as one trip with a
"quick" stop rather than two separate trips.
In light of this, the definition of a trip was
generalized. A program was written that revised the trip data
-------
-16-
file by combining sequential trips with very short engine off
times between trips. The engine off time was a variable in the
program, allowing for analysis and comparison using different
trip definitions. The program combines trips in such a manner
that a trip with an engine off time less than or equal to the
desired time, is combined with the previous trip to form one
new trip. The new total trip time and stop time will both
include the engine off time, since this time is now considered
as part of the trip. In this study, engine off times of 0
(original data), 5, 10, 15, and 20 minutes were analyzed. A
comparison of the number of trips per day, time of trip,
average speed, number of stops, and hot to cold start ratios
using these five trip definitions is included in the results
section. Engine off times longer than ten minutes may entail
significant hot soak emissions, which should not be overlooked
when calculating trip statistics for comparison to the urban
driving cycle. Ten minutes was also considered as a reasonable
upper time limit for a "quick stop." Therefore, unless
otherwise noted, the rest of this report assumes engine off
periods exceeding ten minutes as the delineator between trips.
B. Stop Parameters
Knowing the number of stops made during a trip, along with
the total time spent while stopped, is useful for developing
and verifying dynamometer test cycles. Obviously, the end of
each trip was considered as a stop. However, just adding the
number of zero mile per hour (mph) occurances to this "stop
count" could cause inaccuracies. For example, some drivers
make "rolling stops" without ever coming to a complete stop.
Also, in a congested traffic situation, drivers will frequently
stop and then "creep-up" to the car in front of them.
Occasionally, this movement will even entail a small, short
burst of speed. Counting all of these physical stops within a
nominal stop condition would be misleading. Therefore, a stop
was defined as any time the vehicle slowed from above 10 to
below 4 mph, and then returned to a speed greater than or equal
to 10 miles per hour. The end of a trip was also. counted as a
stop.
A noticeable amount of time and distance can be covered
while in these stop conditions. Therefore, bursts of speed
between 4 and 10 mph contributed towards "go time" and "go
distance", although the vehicle was still considered to be in
the same stop. "Stop time" (stop distance) was counted any
time the vehicle speed went below 4 mph. Figure 1 gives an
example of how these speeds and times interact within one stop
condition.
The following data were computed for the intervals between
each stop and stored in the output files XXX.STOPLOG.
-------
JC
a.
E
Q
LJ
U
a_
(A
LJ
.j
o
I
LJ
TIME WITHIN A HYPOTHETICAL STOP
(This Is considered as one stop)
Beginning of stop
Ending of stop
too Time
Go Time
Stop Time
H-
(D
TIME
-------
-18-
Stop
Parameters
SAVDAY
TRIPCT
DAYTRP
TIME
STOPCT
STOPSC
STOPDI
GOD I
Day number
Sequential number of trip
Sequential number of trip per day
Time at end of stop
Sequential number of stop during trip
Length of stop (seconds)
Distance travelled when "stopped," speed < 4 mph
Distance travelled when "moving," speed >^ 4 mph
C.
Final Data Verification
A key purpose of this study was to compare current trip
parameters to the LA-4 test cycle used in exhaust emission
certification. Since it would be undesirable to report differences
between the OCS data and the LA-4 that are due to instrumentation
error, an additional data check was made for each vehicle loan.
This check was made after generating the vehicle triplog, but
required an additional step to be taken before each vehicle loan.
Before .the vehicle was presented to each participant, the
vehicle was operated over the first 505 seconds of the LA-4. The
final data verification was a comparison between the analysis of rhe
results. from these dynamometer test periods to the results of
applying the data analysis programs to the equivalent interval of
the theoretical test cycle. For example, the trip statistics for
the first 505 seconds of the LA-4 are:
Average
Speed
(mi/hr)
Trip
Dist
(mi)
Number
of Stops
Avg.
Dist.
Between
stops
(mi)
Total
Trip
time
(sec)
Time In
Stops
(sec)
Time In
Motion
(sec)
25.6
3.59
0. 72
505
109
396
Each vehicle loan was checked to verify that it contained a
"signature" of statistics very similar to these at
approximately the time the data sheet supplied by ATL stated
that the dynamometer test was conducted.
D.
Trip Statistics File
After final verification, the trip statistics from each
loan were added to the aggregate trip statistics file,
OCS.D-TRIPS, using the Fortran program, OCS-CMP.FOR. At this
time several additional columns were created in this file to
facilitate subsequent analysis. The most important of these
was a loan number column that retained the identity of loan and
a column which indicated whether the data in the file were
-------
-19-
computed from a vehicle trip which occurred when the vehicle
was operated by the participant, whether it came from a road
trip when the vehicle was operated by ATL personnel, or if it
came from the dynamometer test. Columns relating to the
combining of short trips were also added so that the operator
could check for the reasonableness of the trip combining
methodology. This collection of the data into a single file
with multiple labeling columns was an ideal format for multiple
analyses using the MTS statistics program package MIDAS.
E. Description of Analysis
The total collected data base was very extensive.
Therefore, it was essential to extract simple statistics from
the data which described the important parameters of the data.
A logical method of organizing the data was to consider the
characteristics of observed vehicle trips. These trip
parameters can then be related to each other and used for
different analysis as suits each individual, such as comparing
the OCS results with the parameters of the LA-4. The following
trip parameters were investigated: trip type (urban, urban
and/or rural), trip distance, trip duration (including time
moving, and time stopped), time since last trip, trip speed,
number of trips per day, number of stops during trip, and the
number of observed hot to cold trip starts (assumed -engine
temperature at start of the trip).
Two trip speeds were calculated in this analysis: the
average trip speed, and the average driving speed. The average
trip speed is defined as the total distance traveled during the
trips of interest, divided by the total duration of these
trips. Since this speed includes the effects of stop time, it
is more descriptive of the entire trip condition (i.e., trips
with many long stops will have lower average trip speeds than
trips with only a few short stops). The average driving speed
describes the speeds seen during actual vehicle movement. It
is defined as the total distance traveled during the trips of
interest, divided by the total time moving (excludes total time
stopped). By comparing these speeds together, the effects of
stop duration can be seen.
All of the analysis described here considers only those
data obtained when the vehicle was being operated by the loan
participant. Furthermore, since receiving or surrendering the
instrumented vehicle in the middle of the day could influence
the number or type of trips made with the vehicle, only the
data from days in which the participant had the vehicle for the
entire day are included. This resulted in 251 days of in-use
vehicle operation data from the 47 different loans. Statistics
were calculated for urban trips only, and for urban and/or
rural (UAR) trips, to characterize driving habits in both
-------
-20-
cases. The urban only criteria limited the number of
acceptable data to 42 vehicle loans. The UAR analysis utilized
all 47 vehicle loans.
As previously mentioned, the temperature data may not be
highly accurate. However, a temperature analysis was performed
to develop representative time-temperature histories for five
of the six vehicle temperatures monitored. The goal was to
develop characteristic patterns for vehicles beginning at
ambient conditions, going through a full warmup, and
experiencing a hot soak followed by cooldown to ambient again.
The trips chosen for analysis therefore were those that were
felt to be isolated from the possible carryover effects from
previous trips. The trips needed to be long enough for the
measured temperatures to reach a somewhat steady level. The
soak after th? trip needed to be long enough for the
temperatures to return to their pre-trip levels. Therefore the
criteria for choosing a trip for temperature analysis were: 1)
an uninterrupted soak of. at least six hours prior to the trip,
2) a trip length of at least 15 minutes, and 3) an
uninterrupted soak of at least six hours after the trip.
Twenty-nine trips were found meeting these conditions, of which
ten trips were chosen at random. These are outlined in Table 1.
The lengths of the ten trips chosen ranged from 15- to 34
minutes. For the first 15 minutes, where data for all trips
existed, the temperatures measured were averaged across all ten
trips to obtain values for a typical trip. For the remainder
of the times, the average change in temperatures from minute to
minute for the remaining trips were averaged, and this change
was applied to the temperature for the previous minute. In
this iterative fashion, the temperatures for the typical trip
were determined. This continued until the trip reached a
length of 29 minutes after . which ony two of the original ten
trips remained.
VIII. Trip Statistics Results
The analysis of the trip data are broken down into four
areas: discussion of the general trip statistics and how they
vary by changing the trip definition; comparison to the LA-4
trip statistics; discussions of the distribution of the various
trip parameters; and comparison of the trip statistics for
different trip starting times. A summary of the results from
the temperature analysis is in Section IX. A more detailed
reporting of the temperature analysis is included in Appendix H.
A. General Trip Statistics vs. Trip Definition
Tables 2A and 23 show the statistics for trips separated
by engine off times exceeding 0, 5, 10, 15, and 20 minutes.
Table 2A is for urban trips only, while Table 2B is for UAR
trips (urban and/or rural). Both tables include hot trip start
to cold trip start ratios for cold start definitions of at
least 1, 4, 6, 8, and 12 hour engine off times.
-------
-21-
Table 1
Trips Selected for Temperature Analysis
Vehicle
83 Chevy
Irapala
83 Chevy
Impala
83 Chevy
Impala
83 Chevy
Che vet te
83 Chevy
Chevette
83 Chevy
Chevette
83 Ford
Fairmont
83 Ford
Fairmont
83 Ford
Fairmont
84 Chevy
Chevette
Loan tt
211
230
234
315
344
361
443
468
468
559
Date
5/24/83
7/28/83
8/18/83
6/7/83
10/3/83
12/5/83
10/3/83
12/26/83
12/28/83
12/1/83
Time
of
Trip
7: 19
7:38
7:20
7:20
7:20
7:40
7:40
21:03
8:05
8:49
Length
Prior to
to
Trip
(hrs/min)
8:03
11:12
14:28
11:31
18:54
62:57
15:04
7:56
10:49
11:07
Length
of
Trip
(min)
20
29
15
28
34
33
26
17
23
15
Length
of Soak
After
Trip
(hrs/min)
11:06
8:40
8: 16
8:47
- 8:55
8:32
8:48
10 :46
9: 11
6:53
-------
-22-
TABLE 2A
MEAN VALUES FOR URBAN ONLY TRIPS
Engine Off Time*
CHARACTERISTIC
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
i of trips/day**
Time since last trip (hrs)
Average trip speed (mph)
Ave. driving speed (mph)
Distance of trip (miles)
. i of stops during trip
Distance btwn stops (miles)
Total time of trip (min)
Total time stopped (min)
Total time moving (min)
i of trips analyzed
Hot start/cold start ratios
a. 1 hr min for cold start
b. 4 hr min for cold start
c. 6 hr min for cold start
d. 8 hr min for cold start
e. 12 hr min for cold start
MEAN VALUES FOR
0 MIN
6.6
3.3
21.1
28.8
3.3
6.0
0.55
9.3
2.5
6.8
1434
1.4
3.5
4.8
5.2
11.7
TABLE
URBAN
. 5 MIN.
5.4
4.0
20.1
28.8
4.0
7.4
0.55
12.0
3.6
8.4
1158
0.94
2.7
3.7
4.1
9.2
2B
10 MIN.
4.7
4.6
18.5
28.8
4.6
8.5
0.55
15.1
5.4
9.7
1000
0.69
2.2
3.1
3.4
8.0
15 MIN.
4.3
5.1
17.1
28.8
5.1
9.4
0.55
18.0
7.3
.10.7
900
0.52
1.9 .
2.7
3.0
7.1
20 MIN.
3.9
5.5
15.9
28.8
5.6
10.2
0.55
21.0
9.4
11.6
828
0.40
1.7
2.4
2.7
6.5
AND /OR RURAL TRIPS
Engine Off Time*
CHARACTERISTIC
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
i of trips/day
Time since last trip (hrs)
Average trip speed (mph)
Ave. driving speed (mph)
Distance of trip (miles)
I of stops during trip
Distance btwn stops (miles)
Total time of trip (min)
Total time stopped (min)
Total time moving (min)
i trips analyzed
Hot start/cold start ratios
a. 1 hr min for cold start
b. 4 hr min for cold start
c. 6 hr min for cold start
d. 8 hr min for cold start
e. 12 hr min for cold start
0 MIN
7.2
3.2
25.1
32.7
4.4
6.0
0.73
10.5
2.4
8.1
1795
1-4
3.7
5.0
- 5.4
11.9
. 5 MIN.
5.8
3.9
23.8
32.7
5.5
7.5
0.73
13.8
3.7
10.0
1443
0.93
2.7
3.8
4.1
9.4
10 MIN.
5.0
4.5
22.2
32.7
6.3
8.6
0.73
17.0
5.5
11.5
1255
0.68
2.3
3.2
3.5
8.0
15 MIN.
4.5
5.0
20.6
32.7
7.0
9.5
0.73
20.3
7.5
12.8
1131
0.52
1.9
2.8
3.0
7.1
20 MIN.
4.2
5.3
19.3
32.7
7.5
10.3
0.73
23.4
9.5
13.8
1047
0.40
1.7
2.5
2.7
6.5
**
Engine Off Time = the minimum time an engine off period must exceed
before a trip is considered ended. Seguential operations with engine
off .periods less than or equal to these amounts were included in the
same trip.
For calculating this parameter, we have excluded all days where any
non-urban trip occurred. (The 251 days was therefore reduced to 188
urban days.)
-------
-23-
A comparison between trip definitions shows the expected
trends. As the allowed engine off time within a trip
increases, the mean values for trip duration, total stopped
time, total time moving, distance travelled, and time since
last trip, all increase. Also with increased engine off time,
the number of trips made per day, and the average trip speed,
decrease. The decrease in average trip speed is expected since
this speed includes stopped time.
The hot to cold start ratios also decrease with the
increasing engine off time within a trip. This decrease
reflects the combining of trips that were, previously considered
as hot start, into longer trips. The ratio of hot trip starts
to cold trip starts shown in Tables 2A and 2B vary by a factor
of approximately 3.6 depending on the cold trip start
definition, and a factor of 2.0 depending on the trip
definition. There is little difference between the UAR data
set and the urban only data set.
Evaluating trips separated by a 10 minute minimum engine
off time, participants made an average of 4.7 urban (5.0 UAR)
trips per day, with a typical trip taking 15 (17) minutes and
covering 4.6 (6.3) miles. These trips included 8.5 (8.6)
stops, which'consumed 36 (32) percent of the total trip time.
B. Distribution of Trip Statistics
Histograms of the individual trip statistics for the urban
only trips and UAR trips are included in Appendixes C and D,
respectively. The histograms are for the 10 minute minimum
engine off time between trips, and show the average speeds,
distances traveled, number of stops, and total, moving, and
stop times. Histograms of the average trip speed, trip
distance, time since last trip, and the number of trips per day
are reproduced in Figures 2, 3, 4 and 5, respectively (urban
trips only). As seen in these figures, the distributions are
skewed. In the cases shown, most participants made slower
trips with shorter distances travelled, than indicated by the
average values in Table 2A. Most participants also made fewer
trips per day with less time between trips, than indicated by
the average values.
The number of short distances travelled during a trip are
higher than what may be expected. Figure 3 shows that ten
percent of the trips were less than half a mile in length, and
the data in Appendix C shows that 4.6 percent were less than
0.1 miles. A closer analysis indicated that 2.3 percent of the
trips went less than 0.01 miles (53 feet). Although no follow
through was made to the loan participants, these extremely
short trips likely represent such things as driving from one
store to another at a shopping mall or switching car position
on a driveway. Most (81 percent) of the 0.1 to 0.5 mile trips
were part of "longer trips", where the proceeding and/or
following engine off stops were less than one hour in duration.
-------
AVERAGE TRIP SPEED (0-64 mph)
URBAN TRIPS
each X = 2 trips
LEFT-END
TOT% COUNT
0.
2.0000
4.0000
6.0000
a .0000
10'. 000
1 ? . 000
14 .000
16.000
la . ooo
20.000
22.000
24.000
26.000
28.000
30.000
32.000
34.000
36.000
38.000
40.000
42 . 000
44 .000
46.000
48 .000
50.000
52.000
54.000 .
56.000
58.000
60.000
62.000
4.
2.
3.
4 ,
5.
6.
9.
10.
9.
7 .
10.
7.
5.
3.
2.
1 .
l .
1 .
0.
0.
0.
0.
.4
. 2
.7
2
. 4
ฐ<-
. 3
. 4
7
.9
.3
,7
.6
5
5
.9
5
,4
5
.3
3
3
3
2
1
2
t
1
44
22
37
42
54
60
93
104
97
79
103
77
56
35
25
19
15
14
5
3
3
3
3
2
1 .
2
0
0
0
0
1
1
+XXXXXXXXXXXXXXXXXXXXXX
+ XXXXXX.XXXXX
+XXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXX
+XXXXXXXXXX
+XXXXXXXX
+XXXXXXX
+ XXX
+ XX
+ XX
TOTAL
100.0 1000 (INTERVAL WIDTH= 2.0000)
-------
TRIP DISTANCE (0-25 miles)
URBAN TRIPS
LEFT-END TOT* COUNT
each X = 2 trips
0.
.50000
1 .
1 .
2.
2.
3.
3.
4 .
4.
5.
5.
6.
6.
7 .
7 .
8.
B.
9.
9.
10
10
1 1
1 |
12
12
13
13
14
14
15
15
16
16
17
17
18
IB
19
19
20
20
21
21
22
22
23
23
24
24
0000
5000
0000
5000
0000
5000
0000
5000
0000
5000
0000
5000
0000
5000
0000
5000
0000
5000
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
.000
.500
10.
8.
8.
7.
5.
5.
6.
4 .
6.
4.
2.
4 .
3.
2.
2.
0.
0.
0.
0.
0.
0.
0.
5
5
1
6
2
3
0
0
5
2
8
5
6
3
0
5
1
5
3
1
9
9
3
3
2
9
8
3
3
4
5
2
3
2
2
2
2
4
1
1
1
1
1
105
85
81
76
52
53
60
40
65
42
28
45
36
23
20
15
1 1
15
13
1 1
19
9
13
13
12
9
B
3
3
4
5
2
3
2
2
2
0
2
4
1
1
1
1
0
1
0
0
0
0
0
+ XX
+ XX
+xx
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
*xx
tXX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
*xx
+ XX
ปxx
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
*x
+ XX
+ x
+ x
+ x
+
+ x
+ XX
+x
+x
+x
+x
4-
+x
+
ป-
+
+
-fr
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXX
*xxxxxxxxxxxxxxxxxxxxxxx
tXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxx
xxxxxxxxxx
xxxxxxxx
xxxxxx
xxxxxxxx
xxxxxxx
xxxxxx
xxxxxxxxxx
NJ
Ul
TOTAL
.4
100.0
4 > 25.000
1000 (INTERVAL WIDTH= .50000)
-------
TIME SINCE LAST TRIP (0-24 hours)
URBAN TRIPS
each X = 3 trips
LEFT-END
TOT* COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4 .0000
4.5000
5.0000
5.5000
6.0000
b.5000
7 . 0000
7 .5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
1 2 . 500
13.000
13.500
14 .000
14.500
15.000
If. .500
16 . 000
16. 500
17.000
17 .500
18.000
18 .500
19.000
19.500
20.000
20.500
21 .000
21 .500
22.000
22.500
23 .000
23.500
TOTAL
25.0
15.7
8.6
7.2
3.6
3.4
3. 1
2.2
2. 1
2. 7
1 . 1
1 .0
.5
.5
. 2
.4
1 .6
2. 1
. 1
.6
.7
. 1
. 1
.3
.9
.9
.6
.8
1 . 3
". 4
.2
. 2
. 4
.3
. 2
.5
. 1
. 1
.4
.4
. 1
. 1
. 1
.4
. 1
.3
.4
. 1
1 .8
100.0
250
157
86
72
36
34
31
22
21
27
1 1
10
5
5
2
4
16
21
1 1
16
17
1 1
1 1
13
9
9
6
8
13
4
2
2
4
3
2
5
1
1
4
4
1
1
1
4
1
3
4
1
18
1000
ซ-xxxxxxx>
xxxxxxx>
+xxxxxxx>
+xxxxxxx>
+xxxxxxx>
+XXXXXXX)
+XXXXXXX)
+XXXXXXX)
+XXXXXXX
+XXXXXXX)
*xxxx
+ XXXX
ซxx
+ XX
+ x
+ XX
*xxxxxx
+XXXXXXX
+ XXXX
+XXXXXX
+XXXXXX
+ XXXX
+ XXXX
+XXXXX
xxx
XXX
XX
XXX
+XXXXX
XX
X
X
t XX
X
X
+ XX
+ x
X
+ XX
+ XX
+ x
+ x
+ x
XX
+ x
+ x
+ XX
ปx
> 24.001
(INTER*
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11 .'- ' '
^'^"t
-------
NUMBER OF TRIPS MADE PER DAY (0-17) each x = 1 day
URBAN DAYS
MIDPOINT HIST% COUNT
U.O 9.0 17 +XXXXXXXXXXXXXXXXX
1.0 6.4 12 +XXXXXXXXXXXX
2.0 11.2 21 +XXXXXXXXXXXXXXXXXXXXX
3.0 14.4 27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
4.0 10.1 19 +XXXXXXXXXXXXXXXXXXX
5.0 14.4 27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
6.0 8.0 15 +XXXXXXXXXXXXXXX
7.0 8.0 15 +XXXXXXXXXXXXXXX
fl.O 8.0 15 +XXXXXXXXXXXXXXX
9.0 4.3 8 +XXXXXXXX
10.0 2.7 5 +XXXXX [?.
ib
R
11.0 1.1 2 *XX
12.0 0.00+ R ' Mi
13.0 0.5 1 +X
14.0 0.0 0 +
15.0 0.5 1 +X
16.0 1.1 2 +XX
17.0 0.5 1 +X
TOTAL 188 (INTERVAL WIDTH= 1.0000)
-------
-28-
C. Comparison to the LA-4
Table 3 shows the trip statistics from the LA-4 along with
the mean and median trip statistics for the 1,000 Columbus
'irban trips (using the ten minute off time trip definition) .
Comparing the mean and median Columbus values first, in all
cases the median values are smaller than the mean values. This
is because the distributions are skewed, with a majority of the
participants making fewer, shorter (in both time and length),
slower speed trips than indicated by the mean, (as shown in
section B).
In general, the Columbus trips were substantially shorter
than the LA-4. Considering the mean values they went 62
percent of the distance in 66 percent of the time with 45
percent of the number of stops. However, the average speeds
are approximately equal, 18.5 versus 19.6 mph, and the average
Columbus trip went further between stops, 0.55 miles compared
to 0.41 miles. Considering the large urban spread with many
connecting freeways found in L.A., the longer trip distances
used in the LA-4 can be expected. The LA-4 is also based on
morning rush-hour traffic [2] which is usually characterized by
shorter distances between stops. Therefore, the differences
between the LA-4 and the Columbus statistics appear reasonable.
The Code of Federal Regulations weights the cold start and
hot start exhaust emission values by 0.43 and 0.57,
respectively, to obtain a composite value.[9] This gives a hot
to cold start ratio of 1.3, or 1.3 trips starting with the
engine hot for every trip starting with a cold engine. As
shown in Table 3, the hot start to cold start ratios from the
Columbus data are 0.69 and 2.2 for a one hour and four hour
cold start definition, respectively. Interpolating between
these values, the LA-4 cold start definition would correspond
to 2.2 hours of off time. Based upon the temperature results
to be discussed in Section IX, this amount of time would allow
peak vehicle temperatures (above ambient) to decline by 60-75
percent.
D, Trip Statistics by Trip Starting Time
Figures 6 and 7 (urban only and UAR trips, respectively),
show the number of trips starting within given hour
increments. The hour values shown represent the beginning of
the hour period. Morning and afternoon rush hours can be
observed centered at the 7-8 a.m. and 4-5 p.m. periods. As
might be expected, the number of trips made after 1 a.m. are
very few. While the trip statistics for these early morning
hours are included in the graphs in Appendixes E and F, the
values may not be representative of average driving habits for
these hours.
Graphs of the average distance travelled, the number of
stops made, the average trip speed, the time since last trip,
-------
-29-
TABLE 3
OCS DATA OVERVIEW URBAN TRIPS*
CHARACTERISTIC
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
tt of trips/day**
Average speed (tnph)
Distance of trip (miles)
Distance btwn stops (miles)
8 of stops during trip
Time since last trip (hrs)
Total time of trip (min)
Total time stopped (min)
Total time moving (min)
Hot start/cold start ratio
a. 1 hr min. for cold start
b. 4 hr min. for cold start
MEAN
4.7
18.5
4.6
0.55
8.5
4.6
15. 1
5.4
9.7
0.69
2.2
MEDIAN
LA-4
5.0
16.6
3.4
0.48
7.0
1.5
12.4
2.8
8.1
N/A
19.6
7.4
0.41
19.0
N/A
22.9
5.3
17.5
1.3
* *
Trips can include an engine off period lasting up to and
including 10 minutes. Engine off periods longer than 10
minutes imply the ending of the original trip.
For calculating the number of trips per day, we have excluded
all days where any non-urban trip occurred.
-------
NUMBER OF TRIPS vs TIME OF DAY
(Urban Only)
1 1 U
100 -
90 -
80 -
' 7|".
Q."
L. <=*-> -
o
LJ 50 -
Hi
^ 40 ~
30 -
20 -
10 -
15
*'
^
i.; r
_.i _i
X
_...--"'
..
'' .
28
/'
' /
45
/'"'
,-",
_..''
4/
e. i
:
t.-:-
68
./'
/-
(:>'..!
.'
f'
7'j
..
;'/
'/"'
/
90
.___,.
,-'"
/"
/"',
"/
7 0
<
'y
.-'
". /
/,
,."'
.... _...
..-'' ,
,,''
_,'
/,
"" /"
l". '-.'
"--
../'
x
' /
t
,,/;,
"'/
66
~?~
/
/'' _
'
.'
/'
/
/
X
' ,'"
52
,/'
.--'
/
/
x
/ ,
' .,
29
,.-'
x
/',..
' t
24
r?-]
"_/"
/
13
...-'
5
r-'ii-^-i ---
H-
0)
OJ
I
1
T
8.0 10.0 12.0 14.0 16.0 ' 18.0 20.0 22.0 24.0
IPIP STARTING TIME (HOUR)
-------
NUMBER OF TRIPS vs TIME OF DAY
h..
O
IX)
I'Urban and Pural'i
1 -JU
120 -
110 -
100 -
9 0 -
30 -
70 -
60 -
50 -
40 -
30 -
20 -
10 -
o
15
-7
/
i
3.0
....
'' 1
.,
'" ./
-" --j
3'j
r_
./"'
'' ..-
/
ซ- i
T
8.0
5t;
X
*'
_. ''
/;
x'
/
s
/'
/
*"
1
c: -7
.."'
y"
V
~1
0.(
j
/ 6
f-
,.
.-"
,--'
__.-
i
-7 .--.
.1 ^
._.,_.
-"' .-
.,
'
/'
..'
/
/
/'
/'
/
\
2.C
i
84
/
' ,-
-'
ff-
_..''
_/
s'
S f:
/
/ ,
/
.,-'"
'
8)
-~~~r
fs
/ ..-
f*
f
f
/'
/
/
\
14.0
102
' ~7
,.
/
/
'"' ,-
/
/
/
/
/
J j
1 12
,__
--'
/
/
/
/
/
' /
,-
/
s
J e
I
16.0
86
,t
.
/
-' ,
/'
_,/'
s
/
/
/'
/'
f'
/
/
' i
1
90
?
/
''
,-'
/
...*'
s
'" /
*''
/
/
'\
8.0
"i i,'i
C-
... ;
_,-''
.'""
/*
/'
,'
_.-'
/
X''
1
'"? l"1'
' 'lj
-;
/
.,.-'
,.-"''
/
s
/
/
\
0.0
c4
'''...-
,-'
..-'
/'
/
/
/
/'
/
J-Llj 1
32
s
/'
f
/
/ ,
^^
.-'
/'
1
'1 l'~
i. -L
)
30
, -^
/'
/' .
/'
X
_x
_. '*'
13
' ,,
..'
~T
H.C
6
/
-^_!
0 .,
"~ 1
f~ 7 j
I ^^
2.0
IT]
H-
ง
-J
I
U)
TRIP STARTING TIME (HOUR)
-------
-32-
and the trip duration are shown in Figures 8, 9, 10, 11, and
12, respectively, for urban only trips (these graphs can also
be found in Appendix E) . The distance travelled, trip speed,
and time since the last trip show pronounced morning time
effects. The value of 6.5 miles travelled during the morning
rush hour (7-8 a.m.) is fairly close to the 7.4 miles travelled
in the LA-4 (which simulates rush hour conditions). The
average trip speed drops from 25 mph during the 6 a.m. hour to
13.6 mph during the 9 a.m. hour. This drop in speed is
probably due to an increase in traffic. The time since the
last trip is large (10-12 hours) for the morning trips and
decreases from there. However, this is to be expected..
IX. Summary of Temperature Analysis
This section summarizes the temperature analysis. A more
detailed analysis including temperature profiles for trips
taken during a. sumer day, winter night, and winter day is
included in Appendix H.
Figure 13 shows the temperature profile for the typical
trip. The water pump has the most .rapid increase in
temperature, approaching its peak temperature of 45ฐC (113ฐF)
in 15 minutes. The oil pan also reaches this temperature seven
minutes later. The air cleaner and fuel tank temperatures
barely change. In all the data analyzed the fuel tank
temperature, measured by a skin sensor on the bottom of the
fuel tank, never appears to appreciably deviate from ambient
temperatures. Given the inconsistency of this result with
other in-use fuel tank temperature measurements, it appears
that the skin sensor did not adequately measure internal fuel
tank temperature. Therefore, the only use made of the fuel
tank temperature data has been to consider it a surrogate for
ambient temperature against which to compare the other
temperature data during vehicle cool down.
Figure 14 shows the temperature profile for the first 45
minutes after engine shut-off. The water pump temperature has
the largest increase, jumping 20ฐC to a peak level of. nearly
70ฐC (158ฐF) in the first ten minutes of the soak. The oil pan
reaches a peak temperature of 50ฐC (122ฐF). The temperature at
the air cleaner rises markedly, almost 30ฐC.
The temperature profile of the complete soak is shown in
Figure 15. The water pump, oil pan, air cleaner, and
underhood temperatures all exhibit decay down to ambient
temperature. The fuel tank temperature rises slowly through
the soak period, apparently tracking a rise in the ambient
temperature (all but one of the ten trips occured in the
morning).
Beginning at twenty minutes after the soak begins,
exponential decay curves were fit to the water pump, oil pan,
-------
AVERAGE DISTANCE TRAVELLED
(Urban Only)
9 -
8 -
i*>
^
1
u
o
<
fc
Q
LJ
O
ฃ
U
b -
t^ _
4 -
3 -
\
* These points incorporate
fewer than 10 trips
0 ff
'
n>
00
1 -
9
11 13 15 , 17 19
TRIP STARTING TIME (HOUR)
21
-------
1 ""I
I i.
1 1 -
Q. 10 ~
H
Lt
LJ
a.
a!
!"" -.' ,_
( t
(_,_
O 6 -
LL
LJ
ill 5 -
Z 4 _
LJ
O
< 3 _
LJ
-t
0~
h JMBER OF STOPS PER TRIP
(Urban Only)
fl
/ \ , ' \
/ ' \ " \
' ' iX i^t * 13
''Q / \
./ ~'B---d \
d Q.
\
Q^ ^^B^-B *
ป These points incorporate
fewer than 1 0 trips
i 'i ' i ' i. i ' ' "i ' ' i ' i i i ' i
7 y 11 . 13 15 '17 19 21 23 1 3
VO
I
OJ
TRIP STARTING TIME (HOUR)
-------
x
LL
5
Q
LJ
LJ
Q.
0.
H
LJ
O
LJ
40
35 H
30 H
20 -J
15 H
10 H
c; __
o
,
ia.
AVERAGE TRIP SPEED
(Urban Only)
a.
\ X '
* These points incorporate
fewer than 10 trips
11 13 15 . 17 19
TRIP STARTING TIME (HOUR)
21
23
\/
Q' *
-------
'(/}
QL
;
/
O
I
1
LL
ii;
h-
H-
(/>
_J
u
0
~7_
(/>
Ld
2
P
LJ
0
<
lZ
UJ
TIME SINCE LAST TRIP
(Urban Only)
15.0 -
14.0 -
13.0 -
12.0 -
1 1.0 -
10.0 -
9.0 -
3.0 -
7.0 -
6.0 -
5.0 -
4.0 -
3.0 -
2.0 -
1.0 -
0.0 -
ซ9
/ '> *
! \ \
A \ 1 \
\i \ f These points incorporate
a \ fewer than 10 trips
I
i
\
\ R
\ / \
i .' \
i/ \ ^ R*
** Q-X \ Q / \
/ \ ^d* \
13, / V ,^ BT \
\ / )3^s=tx \ v/ Vi*
^ V^&- ซ^
& -*-*- B
1 i i. ' i i i ' i i i i ' i i
7 9 11 13 15 . 17 19 21 23 1 3
ro
TRIP STARTING TIME (HOUR)
-------
TRIP DURATION
(Urban Only)
in
o>
3
c
E
V.*-
o_
E
H
Lu
o
7
0
<
Q
U
O
ft:
UJ
>
<
JU
.28 -
26 -
24 -
22 -
-) ,-.
zu -
18 --
16 -
14 -
12 -
10 -
8 -
6 -
4 -
2 -
y\ .A
~^J '^ r:j_
Q \ -' ~^ ^x P"~-
V /B-&-a \ ^/ ~ ~fi( / ~13J~B*
^ v \ /
V
* These points incorporate
fewer than 1 0 trips
i ' i ' r i. ' 'I " ' I ' I ' ' r i ' i i
7 9 11 13 15 17 19 21 23 1 3
H-
1
(6
NJ
I
U)
TRIP STARTING TIME (HOUR)
-------
OCS TEMPERATURE PLOTS
DURING TRIP
/ u
60 -
50 -
irt
D
^ 40-
o
13
tt 30 -
LI
a
20 -
c
10 -
0 -
c
-Q- -C3 _Lc--~?lj-- -JB^
...-"" C3"~-n .1. JTii^iii "Tn-F-t "Ttr*""^^
J3 a a a ^=^--^ tf-^-j -ซ ET
Q.-&-"0' _..+""*'
_-*T*
^ ^
X ^ ,, .^^. ^^_^->^::
/ fS* ^_^--^ -""" '
^ , --K-^x^"^" . \ ;_^---t--..^=A^^r^>^tr-^--wi ^---^
X ji T~l 1 -~I vw -S /, -~i,r-_ ^b Tcl*riffg^ ^^
1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 4 8 12 16 20 24 28
MINUTE
a Water Pump +oil Pan O Fuel Tank A Air Cleaner X Under Hood
I
H1
U)
i
u>
CO
-------
70
60 H
50 -\
40 H
30
20 H
fr--*-.
1o^
DCS TEMPERATURE PLOTS
BEGINNING OF SOAK
ODD
-g-4t-^-ป. Q 0000 0
"T I I I
0 10
D Water Pump -hoil Pan
20
30
40
MINUTE
O Fuel Tank A Air Cleaner X Under Hood
(D
U)
10
-------
o
LJ
UL
O
LU
DCS TEMPERATURE PLOTS
COMPLETE SOAK
Water Pump -h oil Pan
HOURS
O Fuel Tank A Air Cleaner X Under Hood
Tl
I-1-
" ?
01
-------
-41-
air cleaner, and underhood temperatures. These were first
adjusted by subtracting the fuel tank temperature, in order to
model decay to ambient temperature. The resulting decay
constants are .007, .Oil, .008, and .007 (I/minutes) for the
water pump, oil pan, air cleaner, and underhood temperatures,
respectively. To put these values in perspective, Table 4
shows the time required for the difference between the peak
soak temperatures and ambient temperatures to be reduced to 50
percent, 20 percent, 10 percent, 5 percent, and 1 percent of
their original values for the decay constants of .007 and .011
(I/minutes). These may be useful in determining when a vehicle
is experienceing a "hot start" versus a "cold-start".
X. Conclusions
Two hundred and fifty-one days worth of in-use vehicle
speed, time, distance, and temperature data were monitored and
analyzed from participants driving in the Columbus, Ohio area.
The data were catagorized by urban, and Urban and/or Rural
(UAR) trips, with an engine-off period exceeding 10 minutes
separating consecutive trips. The average participant made 4.7
urban (5.0 UAR) trips per day, going 4.6 (6.3) miles in 15 (17)
minutes. The majority of urban trips (indicated by median
values) went a smaller distance in less time than indicated by
the respective mean values.
The urban trips were considerably shorter and less time
consuming than the EPA urban dynamometer driving cycle (LA-4),
although average speeds are approximately the same. The
differences may occur because the current test cycle was only
intended to represent a morning commute (in Los Angeles), not
average vehicle use throughout a day. Also, the large urban
sprawl with connecting freeways found in L.A. is very different
from the smaller, more compact setting found in Columbus, which
would cause different driving habits.
Temperature data collected during the vehicle loans were
also analyzed .to determine characteristic temperature
profiles. The results showed that most parameters require
approximately 15-20 minutes to reach stable warm-up levels.
Soak temperatures rise very rapidly following engine shutdown,
reaching peak values within 10 to 20 minutes. After shut-off,
approximately half of the total temperature rise is dissipated
in about two hours, while 4.1 to 5.8 hours are required to
dissipate 80 to 90 percent of the peak hot soak temperature.
-------
-42-
Table 4
Hot Soak Times
Time Required to Reduce Temperature
Difference to Indicated Percentage of
Original
Decay Constant
(1/minutes)
.007
.011
(hrs :min)
50%
1:39
1:03
20%
3:50
2:26
- 10%
5:29
3:29
5%
7:08
4:32
1%
10:58
6:59
-------
-43-
References
1. "Laboratory Simulation of Driving Conditions in the
los Angeles Area," G. C. Mass, M. P. Sweeney, Society of
Automobive Engineers, Paper 660546.
2. "Development of the Federal Urban Driving Schedule,"
R. E. Kruse and T. A. Huls, Society of Automotive Engineers,
Paper 730553.
3. "The Changing Rural Village in America: Demographic
and Economic Trends Since 1950," H. Johansen and G. Fuguitt,
Harper and Rowe.
4. Title III of the Energy Policy and Conservation Act
of 1975 amending the Motor Vehicle Information and Cost Savings.
5. "Vehicle Operations Survey," prepared by Scott
Research Laboratories Inc., for the Coordinating Research
Council and the U. S. Environmental Protection Agency,
December 17, 1971.
6. "Truck Driving Pattern and Use Survey Phase II-Final
Report, Part 1," prepared by Wilber Smith and Associate for the
U. S. Environmental Protection Agency, June 1977.
7. Memorandum and Final Report for Work Assignment No.
3, Contract 68-03-3157, Myron, Gallogly, ATL February 24, "1984.
8. 1979 Gas Mileage Guide compiled and prepared by the
U. S. Environmental Protection Agency and published and
distributed by the U. S. Department of Energy, 1979.
9. Derived from the Code of Federal Regulations, Title
40, Section 86.144-78, "Calculations; exhaust emissions."
-------
-44-
Appendix A
Appendix B
Appendix C
Appendix D
Appendix E
Appendix F
Appendix G
APPENDIXES
Operational Characteristics Study
Columbus, Ohio Program
Data Preparation Programs
OCS.REFMT.SRC
OCS.S-TMPFIX
OCS.S-SPDFIX
OCS.S-PREPAR
OCS.S-SCAN
Data Reduction Programs
OCS.S-STATS.FOR
OCS-CMP.FOR
Histograms:
Histograms:
Urban Only Trips
Urban And/Or Rural Trips
Graphs - Trip Parameter vs. Trip Starting Time
Urban Only Trips
Graphs - Trip Parameter vs
Urban And/Or Rural Trips
Participant Survey
Sample Questionnaire
Summary of Answers
Trip Starting Time
Appendix H
Temperature Analysis
-------
Appendix A
Data Preparation Programs
-------
A2
OCS.REEMT.SRC
-------
10O
110
120
150
160
17O
180
190
200
2 1 0
220
230
24O
250
260
270
280
290
300
310
320
330
3 4 0
350
360
370
3 (?'"'
T|i
']!.. .
410
420
130
110-
150
160
170
180
190
~: ,- '. ."-.
7. i 0
'/ ''1 '-..-'
i::r C.T ,",
560
=570
530
590
60O
6 1 0
6 1.0
>:
6
6 ',' ' J
630
690
700
7 1 0
720
730
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
RET'!
REM
p|Tiv|
REM
REH
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
1::' ty M
i -. i i ป
REM
PEM
REM
REM
REM
REM
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
:*
#
*
*
*
*
*
*
*
t.
*
v
-i-
i-
ilr
V
.L-
-.t-
T
t-
.i.-
*
f.
't-
.t.-
1-
.f.
r-
:):
*
*
#
r
*
*
A 3
PROGRAM NAME: DCS. REFMT. SRC
PROGRAMMER: ALVARO M. CHPAMAN (SDSB)
YEAR WRITTEN: 1983
PURPOSE! THIS PROGRAM WAS DESIGNED TO REFORMAT
RAW DCS DATABASE FILES. IT UNPACKS THE
ORIGINAL DATA INTO A FROM WHICH LEAVES EACH NEW
STARTING WITH AN 'FD' IN COLUMNS 12<2. THEREAFTER,
HEXADICMAL SPEED BYTES MAY OR MAY NOT OCCUR.
CAR -ON AND CAR-OFF CODES ARE PRECEDED BY AN 'FE'
CODE. THERE ARE AT PRESENT ONLY FOUR RECOGNIZABLE
ON/OFF CODES, THESE ARE:
FE 02 --
FE 03 ^
FE OA ~
FE OB =
A CALIBRATION MODE CODE IS 'FC' AND ONLY APPEARS
ONCE THROUGHOUT. A FILE. IF MORE THAN ONE APPEARS,
DATA RECORDED PAST THE LAST DCCURANCE SHOULD BE
CONSIDERED VALID.
*
*
*
*
*
*
*
*
*
*
*
:*
*
*
*
*
*
:*
*
*
*
A NORMAL DATA BLOCK SHOULD CONSIST OF ONE FD--LINE, *
WITH NO MORE. THAN TEN
I MMED I ATEL Y FOLLOW I NG
LINES ARE ACCEPTABLE
MISSING DATA WHICH WO
ERRORS.
DATA DICTIONARY:
'.'API ABLE NAME TYRE
ฃฃ A
D~ A
; """"<: ;'''j
i i" '^ . 1
: ,;ฃ /':
A* .)
CH* . ;
NF .:.
i'-I i..'-
CHFTR i.
SO i.
DD
DC i
PTR E
LINES OF SPEED BYTES
. AN :1FD' . LESS THAN TEN
PROVIDED THAT SEEMS TO BE NO
ULD CAUSE LATER ANALYSIS
DESCRIPTION
CTRL -a (BELL;
CTRL--D (DOS)
1 j i- 1 1"' n o j--i . '-j r r ;:: r-. LV r i \~: ;::
,; '; ;::' ; R < ': Y G G M T I A M I IM G ;' ! A !' 1 E S G f ::
F 0 P M AT T F D F I !. . E S .
; i-. i T r - p i---i ir c , r -. :"J:T .':: ri . \c. i irMr;1'.
''''lUG i-'.-i w 1 TIG 1) ;; i i i' i i' ,!. i_i^:_i.
I M i' E R M E D I ft T E 3 : R I i i G G 3 E D
TO EXTRACT CTRL-..;'^.
!' r 1 "I" F R M F r) In'!' F: 'Hi' i":' MM f" '< I "' ''-' r
;/IEW DATA BYTES.
i M I E G E R S C ,'". L ; ; f ; .!. M D I G /"i 1" E S
N I J M B E R 0 F F E !.. E S i" G f G P M AT,,
INTEGER SCALAR If. ID I GATES
NUriL'bK Uh iJr'ifr. LI Mini iM ,"
FILL:..
T | . j j i::: (-; p p i:: p"- ,- i . .. d r r, , ,-, r p /-.( T !.:.- o
CURRENT CHARACTER
PG3ITIOM IN FILE.
I M !" E G E R B GAL, ': R I iM D I G ; 'i T E S
SOURCE DRIVE.
INTEGER SCALAR INDICATES
DESTINATION DRIVE.
INTEGER SCALAR I MO i GATES
DATA COUNT GR BUFFER.
[NTEGER SCALAR INDICATES
G U f :; R E N T POSITION W I T H I N
*
*
*
*
'r-
-Ar
V
i.
Ju
r-
if
!
-t-
1:
i-
.p
*
-v
:;:
:*
Y
-k
:t:
:*
%
r-
%
r-
v
%
-------
/4O Khl'l * Hit
73Or,; REJ* * EMPTY* A 4 CONSTANT STRING.. USED WHEN *
76a 'REW * A BLANK DATA LINE is READ *
770 REM * IN. *
780 REM * *
79( REM *****************************
80f.. REM .. ..
810 D* = CHR* <4>ปrREM CTRL-D
820 B* = CHR* <7)r-REM CTRL-G
830 EMPTY* = "MI S3 IN G* DA TA MI S3 IN G* DA TA MI SS IN G* "
840 DIM BUFF$<100)
850 REM
860 REM CALL SUBROUTINES TO INITIATE FILE PROCESSING
870 REM
1000 GOSUB 11000: REM SUBROUTINE DISK INFORMATION
101O GOSUB 120OO: REM SUBROUTINE FILE INFORMATION
1020 REM
1030 REM TOP OF OUTER-LOOP CONTROLLING FILE PROCESSING.
1040 REM
1050 FOR OL - 1 TO IMF
1060 TX* = "": REM RE-INITIALIZE TXU TO NOTHING
1070 REM.
1080 REM OPEN BOTH INPUT S: OUTPUT FILES.
1090 REM
1 100 PRINT D$; "OPEN ";UPS(OL) ; ",D";SD
1110 PRINT D4;"READ ";UF4(OD-
1.120 INPUT ND
1130 PRINT D*;"OPEN " ; FF$(OL) ; " , D" ; DD
1140 PRINT D$;"WRITE ";FF3CGL;
1150 PRINT FF*(OL)
1 ' -) GOSUB 13 0 0 0: REM S U E R 0 U T IN E IN P U T D A T A
1 ': REM
MtfO REM IF LENGTH OF TX* IS GREATER THAN 72 CHARACTERS, THEN
1190 REM START PROCESSING. OTHERWISE, GO BACK : OR MORE' DATA.
1200 REM
1210 IF LEN CTX*) / 72 THEN 2000
1220 DC ~ DC - .1: REM DECREMEfM DATA COUNT
1230 PTR - PTR !- 1: REN INCREMENT BUFFER POINTER
12 '10 TMPS - BUFF* (PTR): REN ASSIGN CURRENT DATA LINE TO TMP*
1 250 ! EN
1260 !":E!1 IMNEDIA TELV Ci-!ECK IT A CLANK i [ME WAS RL^;;:;-. IF IT
1270 REM . HAS DEEM, THEN INSERT THE ERRCR MESSAGE STRING EMPTY*.
LEN ; ;'Mf'^ ; :. 1 THEi'J : fli'"^ - LHP I , ;;:
SCAN THE TEXT LINE FOR , ;NY ClRL.-J;'S. TillS Ci'ECIAL
ITEM CHARACTER CAUSES -:\ LINE TEED ,"ND LATER CAUSES MANY
REFORMATTING EC;.;:':, :.F MiJ I" EXTRACTED i.iCW.
13-'!0
1360 FOR DL - 1 TO LEN (TNR.::.'
1370 IF MID* TMP*,DL,1> - Siii^ -1.0; THEI^J I'lOO
1330 IF MID? UT!R:~,,DL,2) - "' ' : i :EN liOO
139.0 A* - r-.'i' + HID* < I'M PS., DL,.!..'
IH00 NEXT DL
1='I10 TrlPS -(}*
i-r:>o TX* ~- TX* ! TMP*
1 ; REM
1 .; REM SEE IF WE HAVE :.:.... ;C: lED THE END OF OUR DUFFER. IF SU,
1-150 REM THErJ CO GET MC'i-;E :..-,-iT.-'i i'O RRGCE2S.
1160 REM
1^170 REM NEXT SEE IF WE !:./,.- !'EACHED THE END OF THE FILE. IF 30,
1'ISO REM . THEN JUMP TO. LIME :'.:: WHERE WE DUMP REMAINING DATA AND
1490 REM CLOSE BOTH FILE.:..
', <=i-i,"- OC'M
-------
1530 GOTO 1210 A ง
2000 REM- ********** f
201O REM
2020 REM CHECK 1ST CHARACTER POSITION TO BE SURE IT ISN'T A
20" REM BLANK.
20 REM
2050 IF MID* (TX*,.i, 1) < > " " THEN 300O
2060 TX* - MID* >
3000 REM **********
3010 REM
3020 REM SCAN THROUGH TX* UNTIL WE FALL UPON ONE THE THESE
3030 REM CHARACTER REPRESENTATIONS AND JUMP TO THE INDICATED
3040 REM INSTRUCTION BLOCKS.
3050 REM
3060 FOR CHPTR = 1 TO 36 STEP 3
3070 LN = 0
3072 CHS = MID* CTX*,CHPTR,2)
3080 IF CHS - "FD" THEN 4000
3090 IF CH$ - "FE" THEN LN = 6: GOTO 7000
3100 IF CH* = "FC" THEN LN - 3: GOTO 7000
3110 NEXT - CHPTR
3120 REM
3130 REM IF HERE, WE ASSUME WE EITHER HAVE A COMPLETE FD-LINE
3140 REM OR THERE ARE JUST SPEED BYTES TO BE PRINTED.
3150 REM
3160 P RINT MID * (T X *, 1,36)
3170 TX* - MID* )
3 ISO GOTO 1210
4000 REM * * # * * * * * # *
4010 REM
4- ') REM . IF HERE, WE HAVE FOUND AN 'FD'. SCAM THROUGH THE REST"
4', ..: REM OF THE LIME TO BE SURE NOTHING ELSE DOES NOT STAY WITH
4040 REM THE TEXT WHICH DOESN'T BELONG.
4050 REM
4060 REM HOWEVER, IF THE POINTER IS POINTING Tij THE 1ST CHARACTER
4 0 7 0 R E M P C] S I T I C] N J U M P T 0 A N 0 THE R BLOC K 0 F IN S T R U C T 10 N S.
4.080 REM
4090 IF CHPTR > 1 THEN 6000
4100 FOR DL - 19 TO 36 3TER 3
4110 CH* ; MID-:*: U'X3,DL,2>
IF CHS ' "FD" THEN 5000
IF CH*. - :T'E" THEN 5000
!F Cii-S - "00" THEN 5000
IF CM*. ~ "01" THEM.5000
Cli-2 --' "02" 'THEN 5000
CH$ - "03" THEN 5000
41 ฃ30 IF CH* - "04" THEN 5000
4190 NEXT DL
4200 REM
4210 REM IF HERE, WE ASSUME WE i ir.VE A COMPLETE FD-LINE.
4220 REM
4230 PRINT MID* ( T'Xf, 1,36;
4240 i"X* " MID* (T;;*, 37., LEN : : i-- ': ':
4250 GOTO 1210
5010 REM
5'""0 REM IF HERE, WE HAVE F'JUMD ADDITIONAL INFORMAT I OH ON
5 ) REM AN FD-LINE. MOST uF I'HE TIME IT IS EITHER ANOTHER
50,0 REM FD-LINE OR SPEEDS i.LGIN ITJ APPEAR HERE.
5050 REM
5060 PRir-JT MI-D$ (TX$,1,DL 1;
5070 TX* -- MID* irXD,DL, LEN
-------
DATA WE WISH TO LOOK AT. WE MUST DUMP DATA
UF TO THE POSITION WHICH OUR POINTER POINTS TO.
6
6060
60'
60
7000
7010
7020
7030
7040
7050
7060
7070
8000
SO 10
8020
8030
8040
8050
3060
3070
8080
3090
9000
9010
9020
9030
9040
9050
9 :>
9-, .;>
9080
9090
9100
9110
9120
9130
9140
9 1 50
9 1
1)
(TX*ป
IF HERE, WE HAVE COME ACROSS EITHER AN ? FE* OR 'FC'
BEYOND COLUMN
BEFORE IT.
ONE. DUMP THAT INFORMATION WHICH LIES
MID*
IF HERE, WE HAVE REACHED THE END OF THE INPUT FILE.
DATA
BOTH
STILL REMAINS
FILES.
IN TX*, SO GET RID OF IT AND CLOSE
LEN
(TX*):
HEN
( TX * ,
REM
9120
1 , 36 )
LAST CHARACTER POSITION
9172
917-1
9 ISO
9132 .
9190
9200
9210
9220
11000
11010
1 1 020
11030
11040
11050
1 i,0
1 ^O
1 1 :JBO
11090
11100
11110
11120
11130
11110
PRINT' MID* (TX*, 1 , CHPTR -
TX* - MID* (TX*, CHPTR, LEN
GOTO 3000
REM * * * *- %;*?-* * t *
REM <|j|**::v-.- -
REM IF HERE> WE HAVE COME ACROSS EITHER AN 'FE'OR
REM " :
IF CHPTR > 1 THEN 8000
PRINT MID* >
GOTO 1210
REM *****#*#:##
REM
REM
REM
REM
REM
PRINT
PRINT
TX* =
GOTO
REM
REM
REM
REM
REM
REM
LCH =
IF LCH < 36
PR I NT II ID*
LCH = LCH -
TX* " MID*
- GOTO 9060
PRINT . MID*
REM
REM
REM
P R I N I"
PRINT
VTAB (13
VTAB ( II-
NEXT OL
. PRINT
PRINT :
PRINT
PRINT
PRINT :
REM *
REM :!!
REM *
REM *
REM :*
REM *
REM
HOME :
PR I NT
REM
REM
REM
VTAB 3
IF SD
'.'TAD '1
NOW
(TX*,3
(TX$,1, LEN
CLOSE FILES
LEN (TX*>
D '$
C L. 0 S E
'';!.! F * ( 0 L )
;FF*(OL)
PRINT "DONE.
: INVERSE
"TO CONTINUE
"TYPE: CALL 606
: NORMAL : END
REFORMATTING"
CR::"
S U D
0 U
U
T I
M
N E
I 0 N
* * *
'.'TAB 1: HTAB
D I SKETTE I NFORMAT I ON
GET SOURCE DRIVE
- 953:
INVERSE
NORMAL
CALL - 953: INPUT "SOURCE DRIVE:
= 1 AND SD -.: - 2' THEN 11160
PRINT "'RANGE FPPOP " : H'S
-------
REM A 7
111.7W REfF GET DESTINATION DRIVE
11180 REtf
11190 VTAB 5: CALL - 95B: INPUT "DESTINATION DRIVE: ";DD
11 D IF DD > -=1 AND DD < = 2 THEN 11230
11 } VTAB 6: PRINT "(RANGE ERROR)" ; B*
11220 FOR DL = 1 TO 1500: NEXT DL: GOTO 11190
11230 REM
11240 REM MAKE SURE THEY ARE NOT THE SAME DISK DRIVES.
11250 REM
11260 IF SD < > DD THEN 11330
11270 PRINT : PRINT "ILLEGAL STATEMENT";B*
11280 INVERSE : PRINT "(PROGRAM REQUIRES 2 DISK DRIVES)": NORMAL
11290 PRINT : PRINT "DOES THIS SYSTEM HAVE 2 DISK DRIVES"
11300 INPUT "(Y/N) ? " ;YNซ
11310 IF YNซ ~ "N" THEN PRINT "(PROGRAM TERMINATED)";B$: END
11320 GOTO 11120
11330 REM
11340 REM HAVE USER REMOVE AMD INSERT PROPER DISKETTES AND SEE
11350 REM IF THE DISKETTE IN THE DESTINATION DRIVE IS TO BE
11360 REM 1NITIALI 2 ED.
11370 REM
11380 VTAB 11: INVERSE : PRINT "REMOVE": NORMAL
11390 PRINT "- OCS SYSTEM MASTER DISKETTE"
11400 PRINT
11410 INVERSE : PRINT "INSERT": NORMAL
11420 PRINT "- OCS DATA DISKETTE INTO DRIVE (";SD;")"
11430 PRINT "- CLEAN DATA DISKETTE INTO DRIVE (";DD;")"
11440 PRINT
11450 PRINT "INITIALIZE DISKETTE IN DRIVE (!1;DD;">";
1 30 INPUT YNt
1. 70 IF YN* - "N" THEN 11510
11480 PRINT D4;"INIT TEMP.,D";DD
11490 PRINT D$;"DELETE TEMP"
11492 PRINT
11500 PRINT "INITIALIZATION COMPLETE":OS
11510 VTAB 23: INVERSE
11520 PRINT "(DEPRESS AMY KEY TO CONTINUE)";
11530 GET YN3: NORMAL.
115 TO RETURN
12010 REM * :{;
12020 REM .ฃ :L '.; .: i:; 0 L! T ' i ' N E ' .i;
12030 REM :t: F [ L E i. :T !':' 0 K M A !" I 0 N . *
12040 REM :l: :\:
1 '"T1 ,"-, (^ ฃ~-| L"> r.7 M '^/ 't 'tf ** t * 'b * 'V \ ^ < ! -i.- v & & \i* - ',- & -.v ,i/ J. ^ -i-
12060 , REM
12070 ' HOME : VTAB 1: HTAB 10: ;.ri'.'i::R5E
12072 PRINT "FILE INFORMATIOi i" : riORMAL
, 12080 VTAB 2: PRINT D't; "CATAL; :C , L " ; SD
12090 VTAB IT: PRINT "(EMTEi'; ID END PROGRAM)"
12100 INPUT "NUMBER OF FILES !, : ,L.i'(JRMAT: " ; MF
12110 IF NF :; 1 THEM PRINT ";" : '...' J(.:\M TERMINATED" ; Dซ: END
12130 FOR DL -= 1 TO NF
121-10 PRirTT : VTAB (13 ' DL; :: '.:. ,',J.... - 953
12150 PRINT "FILE >";DL;" !1 ;
1 60 INPUT UF*(DL)
1 70 PRINT "SPELLED CORRECTL. . ;J;: ";: IN'.'ERGE
l:,;i72 PRINT UF$(DL);: NORM/VL : :':'::!TT " ";
12180 INPUT YN*
12190 IF YNS - "N" THEN 121 TV
12192 VTAB (13 t- DL.) : HTAB 20: :. ;LL - 958
12200 NEXT DL
12210 REM
12220 REM CREATE NEW FILE U. ,MEb FOR OUTPUT FILES.
-------
i^^.JO' I", tii i
12240 FDR DL =ป 1 TO NF A 8
12250 FF*(DL) = UF*(DL> + "*"
12260 NEXT DL
1227Q RETURN
13 :> REM ******#*#***#*###*#***##**
13*. J REM * *
13020 REM * SUBROUTINE *
13030 REM * DATA INPUT *
13O40 REM * *
13050 REM *#*******# -********###*##*!((
13060 REM
13070 PTR = 0: REM RE-INITIALIZE BUFFER POINTER
14000 REM
14O10 IF ND < 100 THEN 1'1080
14020 ND = ABS (ND - 1OO)
14030 DC - 100
14032 PRINT D*;"READ ";UF*(OD
14040 FOR DL = 1 TO DC
14050 BUFF*(DL) - "": INPUT BUFF*(DL)
14060 NEXT DL
14070 GOTO 14130
14030 DC = ND'
14090 ND ~ 0
14092 IF DC ^ 0 TI-IEN 14130
1 4094 PR I N'T D$; " READ " ; UF4 (QL)
14100 FOR DL - 1 TO DC
14110 BUFF$(DL) ^ "": INPUT BUFF*(DL)
14120 NEXT DL
14 130 PR I NT D* ; " WR ITE " ; FF5 (01...)
1f"40 RETURN
-------
A 9
OCS.S-TMPFIX
-------
. A 10
C**ttt******* ******************* ****** *****************************
ct
C*
C*
C*
C*
C*
C*
C*
C*.
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C4
C*
C*
C*
C4
C*
C4
C4
C4
C4
C4
C4
C4
C*
C4
C*
PROGRAM NAME
PROGRAMMER:
BRANCH:
PROJECT r
: QCS.S-TMPFIX
ALVARO M. CHAPMAN
-------
- -, / i -' I
A 11
C* VARIABLE DESCRIPTIONS: *
C* *
C* TYPE NAME DESCRIPTION :ซ
^^ __ . ฃ
C* I FDFLAG ARRAY CONTAINING STATUS OF FDBUFF. CONSIST *
C* OF ZEROS AND ONES. *
C* I FDPTR POINTS TO POSITION IN BUFFER WHERE AN FD-LINE *
C* OCCURS. *
C* I BUFCNT INDICATES CURRENT NUMBER OF ELEMENTS WITHIN *
C* BUFFER. *
C* I COUNT INTERMEDIATE VARIABLE USED WHEN SCROLLING THE *
C* BUFFER. *
C* I FDCNT INCREMENT COUNTER INDICATING NUMBER OF *
C* FD-LINES READ INTO THE BUFFER. *
C* I J WILD CARD VARIABLE USED FOR MEANINGLESS LOOPS.*
C* I PTRCNT INTERMEDIATE VARIABLE USED WHEN SCROLLING THE *
C* BUFFER. :*
C* . I ERRFIX CONTAINS NUMBER OF ERRORS CORRECTED BY PROGRAM*
C* DURING A RUN. *
C* I ' ERRCNT CONTAINS NUMBER OF ERRORS WHICH OCCURED DURING*
C* A RUN. :*
C* *
C* A FDEUFF ARRAY CONTAINING DUPLICATES OF FD-LINES FROM *
C* WITHIN THE BUFFER. *
C* A BUFFER ARRAY CONTAINING DATA READ IN FROM THE INPUT *
C* . FILE. *
C* A LINE INTERMEDIATE VARIABLE USED TO FILL THE BUFFER *
C* ARRAY. - *
C* A DATAFL STRING VARIABLE USED ONLY FOR ECHOING. ., *
C* A DATE STRING VARIABLE USED FOR ECHOING DATE FO THE *
C* SCREEN. .*
C* A DATAFL STRING VARIABLE USED FDR ECHOING THE NAME OF *
C* A DATA FILE DURING A RUN. .*.
C* A OPNAME STRING VARIABLE USED FOR ECHOING THE NAME OF *
C* THE ACTUAL USER DURING A RUN. .*
C* A TMPLIN INTERMEDIATE VARIABLE USED TO DISPLAY ORIGINAL*
C* DATA TO ERROR MESSAGE FILE BEFORE IT HAS DEEH :ซ
C* CORRECTED. *
C/,1! A ID 1ST 1ST PART UF I I IE VEHICLE LOAN ID NUMBER. *
C* A ID2ND 2ND PART OF THE VEHICLE LOAM ID NUMBER. *
C* .f
C* B FIXED BOOLEAN VARIABLE USED TO iMDICATE WHETHER A *
C* DATA LINE HAS BEEN LURRECTED. . .ฃ.
p -if " i
Lw (ป -f
* 'V + 'V * --V '* * ^ -^ * -V & * * '4' -V '* -V --t' i- \1-- *.- 1' -V --U * f '- .V -J-- -4-- * -t b Js j,- -V -b -.it -V i, -i- V -V 'V
1* Tป -T- <1ป -r -p -r- -h '^ 'i* -r- -\- n- ! -p -r- -i" -p ? 'iป -r- -p 'i* 'r -T- 'i- -iv -i> i- -r- -f- -t- -t- -i- iป -i> 'iv -^ -^ -r- -v- '? -T- -i* T- -^ -iป
-------
PI 06-153 A 12
INTEGER FDFLAGC3), FDPTR(3), BUFCNT, PTRCNT, ERRFIX
INTEGER ERRCNT, COUNT, FDCNT, J
INTEGER ERRORS, INPUT, OUTPUT, SCREEN
C
CHARACTER*5O FDBUFF(3), BUFFER(100), LINE, TMPLIN
CHARACTER** ID1ST, ID2ND, OPNAME
CHARACTER DATAFL*12, DATE*8
C
C
LOGICAL FIXED
C '
DATA ERRORS, INPUT, OUTPUT, SCREEN /'1,5,6,7/
DATA ERRCNT, ERRFIX, BUFCNT, FDCNT /0,0,0,0.-
C
C*************************************************************
C* *
C* USING A DO-LOOP, CLEAR ANY PREVIOUS TEXT FROM THE TERMINAL *
C* SCREEN, THEN PROMPT THE USER FOR THE FOLLOWING INFORMATION *
C* PERTAINING TO EACH INDIVIDUAL RUN. #
C* *
C******************************************************************
C
FIXED = .FALSE.
C
DO 10 J=l,22
WRITE(SCREEN,*)
10 CONTINUE
C
WRITE(SCREEN,100) 'OPERATIONAL CHARACTERISTICS STUDY'
WRITE(SCREEN.100) " TEMPERATURE FIXING PROGRAM'
WRITE(SCREEN,*)
C
WRITE (SCREEN, 100) 'INPUT TODAY'S DATE (MM/ CD/ YY ) . . . '
READ (SCREEN,100: DATE
C
WRITE(SCREEN,100) 'INPUT INITIALS GR FIRST NAME..:'
READ (SCREEN,100; OPNnME
C
WRITE (SCREEN, 100) 1iri!'UI OC3 DATA FILE Nf.-ME...'
READ (SCREEN. 100) L,', ! .".FL
C
WRITE (SCREEN, :* ;
WR 1 TE ( SCREEN, 120) .Df". ! E , UPNAME, DATAF L.
WRITECSCREEN,*)
r"
WRITE (SCREEN,*) ' PRCCE.:-.:: ING DATA SET...'
-------
A 13
C**************** *******************************************<****;ป*
C* X
C* READ IN ONE DATA LINE AT A TIME, PUT IT INTO THE WORKING *
C* BUFFER, THEN CHECK TO SEE IF A CHARACTER REPRESENTATION *
C* OF 'FD' APPEARS IN COLUMNS 1 & 2. *
C* *
C* IF AN 'FDr APPEARS IN COLUMNS 1 & 2, COPY THIS DATA LINE *
C* INTO THE FD-BUFFER, THEN CHECK ITS LENGTH TO SEE WHETHER *
C* IT HAS AN ERROR. IF THE LENGTH OF THE FD-LINE IS LESS *
C* THAN 36 UNITS, THE LINE IS BAD SO INDICATE SO BY SETTING *
C* ITS FLAG ARRAY ELEMENT (THE ELEMENT IS DETERMINED BY THE *
C* SEQUENCE THIS PARTICULAR FD-LINE WAS FOUND) TO 1. *
C* *
C* FINALLY, CHECK TO SEE IF WE HAVE FILLED OUR FD-BUFFER, *
C* IF NOT, THEN RESUME READING DATA UNTIL WE DO. *
C* ' *
C**********************************************:********************
C
20 READ(INPUT,100,END=80) LINE
BUFCNT ~ BUFCNT + 1
BUFFER (BUFCNT) "= LINE
C
IF (LINE(1:2).EG.'FD'> THEN
FDCNT = FDCNT *- 1
FDFLAG (FDCNT) - 0
FDPTR
-------
P 190-253
A 14
C**tt******************** ******** **********************************
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c*
c * * *
c
HERE IS WHERE MOST OF THI
MUST DETERMINE WHAT EXAX
FD-LINE WITHIN THE FD-BUi
BE SURE THAT WE HAVE A D
THE FOLLOWING WILL DEMON
WISH TO WORK WITH & NOT
ONE WE CAN WORK WITH
FD
FD
FD
ONE
FD
FD
FD
SEE
99 14 02
99 14 02
99 14 04
WE CAN'
99 1 4 02
99 14 03
99 14 04
03 39
03 39
03 39
T WORK
O3 39
03 39
O3 39
, THE TRICK IS
MIDDLE SO THAT WE
REPLACE THE
THE
BUT
ACTUAL
5A SB
5 A 5B
5A 5B
WITH:
5A 5B
5A 5B
5A 5B
E DECISION MAKING GOES ON. WE
CTLY NEEDS TO BE FIXED ON THE 2ND
FFER. HOWEVER, FIRST WE MUST
ESI RED FD-BUFFER TO WORK WITH.
STRATE WHAT TYPE OF PATTERN WE
WORK WITH:
5C
5C
5C
5C
5C
5C
TO WORK
5D
5D
5D
5D
5D
5D
WIT
CAN AVERAGE
MISSING ONE.
CALCUL
FIRST WE MUST
AT IONS
SEND I
IN
T
5E 5F
5E
5E 5F
5E
5E 5F
5E
H THE
:= 0
= 1
= 0
I
= 0
= 1
(GOOD
(BAD
(GOOD
(BAD
(GOOD
(BAD
BAD FD-LINE
FD-LINE)
FD-LINE)
FD-LINE)
FD-LINE)
FD-LINE)
FD-LINE)
IN THE
GUT THE TEMPERATURES TO
A SPECIAL
FINDING
A V
ALID F
* * * * * * ******************** * * * * * * * * * * *
IF
IF
IF
(FDFLAGC
< 13: 17)
TMFLIN - FDBUFFC2)
C
C * * * * * * * * * * * * * * * * * ****** * * * * * f. t: * * * * * * * * * * * .t :C :}: * * t * * * * K :f- * * * * * * * * t * * * :*
C* . . *
C* TO BE AT THIS POINT. WE MUST HAVE AN FD -BUFFER WHICH TO .*
C* WORK WITH. THE ONLY PROBLEM IS THAT WE DGN:' I' KNOW WHAT *
C* TO FIX - DATA TO THE LEFT OF 1 HE ID OR DAT,'\ TO THE RIGHT *
C* GF THE ID. IF. ID IS!' OGEES NOT EQUAL ID2IMD. THEN WE KNOW' *
C:* THE CORRECTION TO BE MADE MUST BE TO THE LEFT GF THE ID. *
C* *
C :f. * :-K :* * * * :* * * * * * * * * * * * * * * * :f- X -f- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
IF (I D2ND . NE . I D 1 ST ) ! I !EN
CALL I DF I X ( FDEUFF , F 1 XED )
IF (.NOT. FIXED; GOTO 30
FDFLAGC2) - 0
ELSE
GALL TMPFI.XC FDBUFF ;
FDFLAGC2) ~ 0
ENDIF
C
ERRFIX - ERRFIX
01 icrcrcD / (rnoTo/^
-------
P254-307 A 15
C* . *
:* NOW THAT WE HA'.'E MADE THE NEEDED CORRECTIONS, WRITE OUT THE *
C* LINES WHICH WERE AFFECTED TO THE ERROR MESSAGE" FILE FOR *
C* USER ANALYSIS AND WRITE OUT THE BUFFER UP TO THE 2ND :*
C* FD-LINE TO THE OUTPUT FILE. THIS IS SO THAT WE CAN SCROLL *
C* THE BUFFER UP NEXT. *
C* *
C*********************************************************
C
WRITE (ERRORS, 1 1O) FDBUFF ( 1 )
WR I TE ( ERRORS , 1 30 ) TMPL I N . FDBUFF ( 2 )
WR I TE ( ERRORS ,110) FDBUFF < 3 >
WRITE (ERRORS,*)
C '
40 IF (FDFLAG(l) . EQ. 1) BUFFER ( FDF'TR ( 1 ) >(40:4 = 'ERROR'
C
DO 50 J - 1. FDF'TR (2) -1
WR I TE < OUTPUT , 1 1 0 ) BUFFER ( J )
50 CONTINUE
C
C ******##*#*# **#*#****:t^**#*******^^
C* *
C* NOW, AT THIS POINT WE MUST DO THE ACTUAL SCROLLING OF THE *
C* BUFFER. ALL WE DO IS MOVE EVERYTHING FROM THE 2ND FD-LINE *
C* UP TO THE LAST LINE . IN THE DUFFER UP TQ THE TOP OF THE *
C* BUFFER. WE AL30 NEED TO KEEP INTACK WHERE THE POINTERS ARE *
C* POINT I NO. *
C* *
C * :K * * * :f * * * % * * * * '* # * * * * * * # * $ :t: :K * tt * * * :t * * * 1 1 * * * * * * * # :i: :* :* * * # * *
ซ.w
COUNT - 0
PTRCNT ^ 0 -
C
DO 60 J - FDF'TR C2: . FDPl'F: (3)
COUNT ^ COUNT ( 1
BUFFER ( COUNT ) -- BUFFER f.J;
r"
I F ; DUFFER C COUN f ) ; 1 : :_ ; . EQ - ' FD ;l ) ! i iEN
PTRCNT -- PTRCrH ? 1
FL'PTRC PTRCNT. ; - COUNT
END IF
C
iO CONTINUE
C
DO 70 J = 1,2
FDFLAG ( J ) = FDFLnG ; J i- 1 i
FDBUFF ( J ) ~ FDBUFK ; J i- 1 ;
CONTINUE
FDCNT ^2
BUFCNT - COUNT
GOTO 20
-------
f - '-' ฃ3 ~ O J "7* _ , . '
A 16
C*************************************************************#****
C* *
C* TO HAVE ARRIEVED HERE, WE MUST HAVE ENCOUNTERED THE EOF. ซ
C* SINCE THERE IS NO FURTHER DATA TO COMPARE ANYTHING WITH, *
C* WE WILL LEAVE THE REMAINDER OF THE BUFFER UNTOUCHED AND *
C* SIMPLY DUMP IT TO THE OUTPUT FILE. ALSO, WE WILL DISPLAY *
C* THE NUMBER OF ERRORS FOUND AND THOSE WHICH HAVE BEEN *
C* CORRECTED. *
C* . *
C********************************** ************** ******************
C
30 DO 90 J = l.BUFCNT
WRITE(OUTPUT,110) BUFFER 'PROCESSING COMPLETE!
C
WRITE (ERRORS,*) 'ERRORS FOUND = ' , ERRCNT
. WRITE(ERRORS,*) 'ERRORS FIXED = ',ERRFIX
C
WRITE (SCREEN,*) 'ERRORS FOUND -* ', ERRCNT
WRITE(SCREEN,*) 'ERRORS FIXED - ',ERRFI X
C
C FORMAT STATEMENTS
C
100 FORMAT(A)
11O FORMAT (' ' , A.)
120 FORMAT (' :' , 'DATE: ',A8,' OPERATOR: ',A8,' FILE: ',A12>
130 FORMAT ( ' ' , A, 7 < ; ' , A) -
C
STOP
END
-------
P348-396
A 17
C.D
CS)
C5)
o)"]) ii)j) a) a) S)
C
C
C
C
C
10
SUBROUTINE F N D V A L
THIS SUBROUTINE IS DESIGNED TO CALCULATE THE MISSING TEMP- .9
ERATURE3 WHEN CALLED UPON BY THE SUBROUTINE TMPFIX. IT 3
DOES THIS BY CALCULATING THE LEAST SQUARE ERROR DIFFERENCE 3
OF A 3 BY 6 MATRIX. 3
5;i)3:D3333;S:S3;D:3:33;D:3:3;2;S;2;DS^
SUBROUTINE FNDVAL( TEMPS )
INTEGER
INTEGER
TEMPS (3.6), TMP'.'AL (6) , TRUTMP i6) , ERROR (6)
ERRSUM(i), MINSUM, CNT, I, J, K
MINSUM = 10000
DO 20 I = l.i
ERRSUM(I) ~ 0
DO 10 J - 1,6
IF (J.LT.I) TMPVALU/ ~- TEMPS(2,J>
IF < J.GT. I> TMP'.'AL (J ) ~- TEMPS <2, J--1)
IF )
00 30 K - i.6
IF K. L ! . Cf'JT) TRU ! i'!!' ;
IF '.K.CT.'CNTJ TRLJ!'I!!";
IF !.K. ElJ.Chl") IT.urr-l!"",
CQNTINUE
DO 10 K ~ 1,6
TEMPS i,2. K) -- TRUFflf I:
CONTINUE
RETURN
END
EI-1F-3 ( l.K) i !'EMPSC3.K)
-------
P~"-"53 A 18
C3 3
C3 SUBROUTINE TMPFIX 3
C3> 3
C3 THIS SUBROUTINE IS DESIGNED TO REPAIR THE MISSING TEMP- 3
C3 ERATURE ONCE IT HAS BEEN SUPPLIED BY THE FNDVAL SUBROUTINE. 3
C3 3
C3 IT SIMPLY TRANSLATES THE ENGINEER UNIT NUMBER INTO ITS 3
C5> EQUIVALENT HEXADECIMAL CHARACTER VALUE USING THE SUBROUTINE 3
C3 HEXDEC (TRANSLATES FROM HEXS TO DECIMAL) AND THE SUBROUTINE 3
C3 DECHEX (TRANSLATES FROM DECIMAL TO HEXS). . 3
C3 3
C333323333333333333303333333333333333333333333333333333333
C
SUBROUTINE TMPFIX ( TMPBUF )
C
INTEGER DECVAL(3,6) , HEXVAL, CNT, I, J
CHARACTER TMPBUF (3) *5O, MATRI X (3, 6) *3, BLANKK3
C
C NULL OUT THE CHARACTER MATRIX
C
BLANK ~ '
DO 10 I = 1,3
DO 10 J - 1,6
MATRIX ( I ..J) " BLANK
10 CONTINUE
20 CONTINUE
C
C CONVERT THE HEX VECTOR INTO A DECIMAL MATRIX
C
DO TO I - 1,3
CNT = 0
DO 30 J = 19,36,3
CNT - CNT + 1
MATRIX ( I ,CNn - TMPBUF ( I ) ( J : J +2)
CALL HEXDEC < MATRI X < I , CNT ) , DECVAL ( I . CNT ) )
30 CONTINUE
10 CONTINUE
C
C . 2 a) ฃ 'ฃ ]) -I) ;i' :j) :2 :!/ :ฃ 3 2 2 3 ;.ฃ S 3 2 3 -'i) j) .'2 3 .2 ]) 3 3 2 3 3 3 323 3 3 3 2 3 2 2 2 2 2 2 2 2 2222 2 2 2 3 2 2 2 222 2 3 2 3
C2 3
C2 CALL UPON SUBROUTINE FND'.'AL AND RETURN Uil.Til MISSING 3
C2 TEMPERATURE. 3
C3 2
C '- 3 2 2 32 2 3 3 3 333 3 3 3 3 3 3 3 3 3 3 2' 3 3 2 3 2 3 2 2 2 2 2 2 3 2 3 3 2 2 2 3 i1 2 '2 3 3 2 3 .'.-- 2 3 3 2 2 2 2 2 3 3 2 i' 2 3
i"
u*
CALL FNDVAL( DECVAL )
C
DO 50 J - 1,6
CALL DECHEX ( DECVAL (2, J ) , MATRI X (2. J) :
50 CONTINUE
C
fMPDUF(2) (19:36) - MATRI X (2, 1 ) //MATRIX (2, 2) //MATRI X (2,
* 3) //MATRIX (2, 'U //MATRIX -;2, 5> //MATRIX (2,6;
C
RETURN
END
-------
C3 3
C3 SUBROUTINE HEXDEC 3
C3 3
C3> THIS SUBROUTINE IS DESIGNED TO CONVERT INCOMING DATA FROM 3
C3 ITS HEXADECIMAL VALUE INTO ITS EQUIVALENT DECIMAL VALUE. 3
CS> 3
C
SUBROUTINE HEXDEC( HEXDIG, VALUE )
C
INTEGER HEXVAL(2), VALUE, I, J
CHARACTER HEXS(!&)*!, HEXDIG*3
C
DATA HEXS / ' 0' , ' 1' , 7 2' , ' 3' , ' 1' , ' 5' , ' 6>' , ' 7' , ' Q' , "?' ,
* 'A','B','C','b'ป'E','F'/ '
C
DATA HEXVAL .'0,0/
C
C SEARCH THROUGH HEXADECIMAL ARRAY FOR EQUIVALENT REPRESENTA-
C TIQNS OF DIGITS OR LETTERS.
C
DO.20 1-1,2
DO 10 J -- 1, 16
IF (HEXDIGCI: I) .EQ.tlEXS(J) ) HEXVAL(I) - J-l
10 CONTINUE
20 CONTINUE
C
VALUE ~ HEXVAL ( 1 ': * 1 i ( 11EXVAL (2)
C
RETURN
END
-------
P486-514 A 20
C3 1
C3> SUBROUTINE DECHEX ;3
C5> ' 3
C3> THIS SUBROUTINE IS DESIGNED TO CONVERT INCOMING DATA FROM 3
C:3 ITS DECIMAL VALUE TO ITS EQUIVALENT CHARACTER REPRE3ENTA- 3
C5> TION. 13
C3 S>
c;2;2:D33333333$;233333333333ฎ33333ฃ3ฃ;2;2^
c
SUBROUTINE DECHEX ( DECVnL, I-IEXDIG )
C
INTEGER DIGIT 1, DIGIT2, DECVAL
CHARACTER HEXS<16>*1, HEXDIG*3, HEX1*1, HEX2*1
r^
DATA HEXS / ' 0' , ' 1' , ' 2' , ' 3', ' 4ป , ' S' , ' 6' , ' 7', ' 8', ' 9' ,
* :-A' , ' B' , JC' , 'D' , 'E'' , 'F' /
C
DIGIT1 = DECVAL/16
DIGIT2 = MOD( DECVAL,16 )
C
HEX1 - HEXSC DIGIT 1 > 1 )
HEX2 = HEXS( DIGIT 2 * 1 )
C
HEXDI6 :~ HEXI/.'HEX2
C
RETURN
END
-------
PS17-S66
C3 3
C3 SUBROUTINE IDFIX 3
CS) 3
CS> THIS SUBROUTINE IS DESIGNED TO CORRECT ALL DATA TO THE 3
C3 LEFT OF ANZ> INCLUDING THE LOAN- ID ON AN FD-LINE. 3
CS> 3
03 THIS SUBROUTINE IS ONLY INVOKED WHEN WE KNOW THERE EXIST 0
C3 ALL SIX TEMPERATURES. WHAT WE MAINLY CHECK FOR IN THIS *
C3 SUBROUTINE IS THE ACCURACY IN SEQUENTIAL TIME. IF THE 3
C3 TIME CN THE 2ND FD-LINE DOES NOT COMPUTE A DIFFERENCE OF 3
C3 EITHER '2 MINUTES OR 40 MINUTES, THEN WE KNOW A SERIOUS 3
C3 ERROR EXIST AND WE DO NOTHING TO IT. 3
Co) 3
0333333333333333333333333333333333333333333333333333333330)0)333334133
C
SUBROUTINE IDFIX ( BUFFER, FIXED )
C
INTEGER DAY, HOUR, MIN, FDLEN, DIFF, CNT, I, J
INTEGER DEC<3,3), TIME1, TIME2, TIME3, VAL$
C
CHARACTER BUFFER (3) *50, MAT (3, 12) *3, LOANID*6
LOGICAL FIXED
C
C
C EXTRACT THE CORRECT LOAN-ID FROM THE BUFFER'S 1ST ELEMENT
C -
FIXED ^ .FALSE.
LOAN I D = BUFFER < 1 > '.13:13)
C
C CONVERT THE BUFFER VECTOR INTO A 3X3 MATRIX FOR SIMPLER
C ACCESS.
C
DO 20 I = 1,3
CNT ~ 0
DO 10 J ~ 1,36,3
CNT -- CNT K 1
MAT( I, CNT ,' ^ BUFFER(I) CJ: J-!-2)
10 CONTINUE
20 CONTINUE
C
C a) i^i) ;j) 3 ii) 2 .j) j) i' i'j) :]) 3 3 3 3 'i 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
C3 SHIFT ALL ELEMENTS WITH IN. THE 2ND ROW ONE SPACE TO THE 3
C3 RIGHT. 3
C 3 3 3 3 3 3 3 3 3 3 3333 3 3 3 3 3 3 3 J3 3 3 3 3 3 3 3' 3 3 3 3 3 3 3 3 3 3 3 3 3 3 '3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 333 3 3
C
DO 30 I = 12,6, -1
MATC 2, I ) - MAT ( 2, 1-1 )
30 CONTINUE
C
-------
P567-624 . A 22
C3
Co)
Co)
Co)
C3
Co)
Co)
CS>
Co)
C3
Co)
C3
Co)
C5)
Co>
CONVERT CHARACTER REPRESENTATIONS INTO THEIR DECIMAL
EQUIVALENTS.
WE ARE CONCERNED WITH THE FOLLOWING:
1 2 3 4 5 6 7 3 9 10 11 12
1:FD 61 13 02 02 25 3 A 3B 3C 3D 3E 3F
2:FD 61 13 02 25 4A 4B 4C 4D IE 4F
3:FD 61. 13 04 02 25 5A 5B 5C 5D 5E 5F
< > < > < '>
WE ARE INTERESTED IN THOSE NUMBERS WHERE '<>' LIES
DIRECTLY BENEATH THEM. THESE NUMBERS ARE USED TO
CALCULATE THE MISSING TIME IN THE 2ND FD-LINE.
o)
9
o)
3
:ฃ>
:3
;D
o)
V
IJ
'V
:ฃi
;3
3
3
C'2'D'D^'D^'D^$'I)'i)Q'ViDQ'D'D^'D'Dป^'^
C
C
CNT = 1
40 DO 50 I = 2, 1, 1
DEC ( CNT , I - 1 ) = VAL* ( MAT ( CNT , I ) ( 1 : 1 ) )*10+
* VAL* ( M AT (CNT, I ) (2:2) )
50 CONTINUE
C
IF (CNT.LT.3) THEN
CNT = 3
GOTO '10
END IF
C
TIME1 ~ DECil, 1) *60*.21- 1- DEC(1,2)*60 + DEC (1,3)
TIME3 - DEC (3. 1) *60*21 t- DEC (3, 2) *60 ป DEC (3, 3)
C
DIFF = TIME3 - TIM El
C
IF ((DIFF.NE.2) .AND. ( D IFF. NE. 00> ) GOTO 99.9
r~-
l_
FIXED = . TRUE.
n
>wj
IF (DIFF.EQ.2) TIME2 - TIME1 < 1
IF (DIFF. ED. '10> TIME2 - TIME! * 20
C
DAY = TIME2/1440
TIME2 = TIME2 - DAY* I MO
C
HOUR = TIME2/60
TIME2 = TIME2 - HCUR.tiO
r*
\~f
MIN = FIME2
C
C I-JOW CONVERT THESE DELirv.L VALUES BACK INTO' THERE
C CHARACTER REPRESEfJ It , V I Gfi.
C
CALL STR* ( DAY, MAliJ..:)
CALL STR* ( HOUR , MA f ' ( 2 , '! i :
CALL STR*( MIN , MATCj, I; )
-------
MAT(2,5) =. LOANID(1:3>
MAT(2,6) = LOANID(4:6>
C
BUFFER<2) = MAT(2,1)//MAT(2,2)//MAT(2,3)//MAT(2,4)//MAT(2,
* 3>//MAT<2,A)//MAT<2,7)//MAT(2,8)//MAT(2,9)//MAT(2,
* 1Q^/MAT(2, 11)//MAT(2, 12)
C ""
999 RETURN
-------
P&34-663
A 24
C3 3
C3 INTEGER FUNCTION V A Lป 3
C3 3
C3 THIS INTEQER FUNCTION IS DESIGNED TO CONVERT INCOMING 3
C:S CHARACTER- DATA INTO ITS EQUIVALENT DECIMAL VALUE AND 3
C5> RETURN I T3 FORTRAN STATEMENT. 3
C3 a)
INTEGER FUNCTION VAL* ( CHR* )
C
INTEGER I
CHARACTER DECMAL ( 10) * 1 , CHR**1
C
DATA DECMAL /' G' , ' 1 ' , ' 2' , ' 3' , ' 4' , > 5' , '6' , ' 7' , 'S' , ' 9' /
C
VAL*= 0
C
DO 1G I - 1, 1O
IF (CHR*.EO.DECMAL(I) > GOTO 20
10 CONTINUE
C
VAL* = -1
GOTO 30
C
20 VAL* = 1-1
C
30 RETURN
END
-------
P664-688 A 25
SUBROUTINE STR* .j)
C3 ^ 3
C3 THIS SUBROUTINE IS DESIGNED TO CONVERT INCOMING DATA FROM 3
C5> ITS DEC^ftfe VALUE TO ITS EQUIVALENT CHARACTER 3
CS> REPRESENTATION. 3-
C:D
C
SUBROUTINE STR*( VAL,STRING )
C
INTEGER VAL, LEFT, RIGHT
CHARACTER 3TRING*3, HEXS(10)*1
C
DATA HEXS / ' 0' , ' 1 V 2' , ' 3' , ' V , ' 5' , ' &' , ' 7', ' S', ' 9'
C
LEFT = VAL.'10
.RIGHT = VAL - (LEFT*10)
C
STRINGd:!) - HEXS ( LEFT + 1 )
STRING(2:2) = HEXS< RIGHT + 1 )
C
RETURN
END
-------
A 26
The temperature correcting algorithm can be most easily
understood by considering an example. In this example it is
simpler to consider only four temperature inputs. A data set
with a missing datum might appear as:
5C 41 57 4A
5C 42 4B *
5C 43 57 4C
First we convert from hexadecimal to decimal:
92 65 87 74
92 66 75 *
92 67 87 76
The test or trial vector for the second row, which is the
interpolated mean of the first and third row, can now be
calculated.
92 66 87 75
Comparing the test vector against the second row, the sum of
the squares of the differences with no shifting of the row is:
(92-92)2 + (66-66)2 + (75-S7)2 = 144
If the last element of the row is shifted one location the sum
of the squares of the differences is:
(92-92)2 + (66-66)2 + (75-7S)2 = 0
Shifting the last two elements, the sum of the squares of the
differences is:
(92-92)2 + (S7-66)2 -I- (74-75)2 = 442
Shifting all elements, the sum of the squares of the
differences is:
(66-92)2 + (S7-66)2 + (74-7S)2 = 1118
Clearly shifting only the last element of the row results in
the minimum sum of the squares. Therefore we know that the
data array should be:
92 65 87 74
92 66 * 75
92 67 87 76
-------
A 27
The trial or test value, 87 is now inserted in the location of
the known missing datum.
Finally converting back into hexadecimal the corrected data are:
5C 41 57 4A
5C 42 57 4B
5C 43 57 4C
missing datum.
-------
A 28
OCS.S-SPDFIX
-------
..^.. A 29
ฃ--; -.
C OCS.S-SPDFIX IS AN ATTEMPT TO FIRST DETECT AND THEN
C CORRECT SPEED ERRORS IN OCS ORIGINAL HEX DATA FILES.
C
C
C HERE IS A SAMPLE OF THE ODD THINGS THAT OCCUR IN
C ORIGINAL OCS HEX DATA:
C
C FD LINE
C FE ON CODE
C (SPEEDS MAY OR MAY NOT FOLLOW BEFORE NEXT FD)
C FD
C ~ '
C OR A DIFFERENT SCENARIO:
C
C FD LINE
C (SPEEDS MAY OR MAY NOT FOLLOW BEFORE FE OFF CODE)
C FE OFF CODE
C FD
C
C OR TO FURTHER COMPLICATE MATTERS:
C
C FD LINE
C FE ON CODE
C (SPEEDS MAY OR MAY NOT FOLLOW BEFORE FE OFF CODE)
C FE OFF CODE
C FE ON CODE
C (SPEEDS MAY OR MAY NOT FOLLOW BEFORE FE OFF CODE)
C ETC. UNTIL NEXT FD
C FD
C NOTE: THE OTHER OCS. PROGRAMS ONLY PROVIDE FOR THE
C CAR TO CHANGE ITS MIND (ON--QFF STATUS) SIX
C TIMES IN ONE MINUTE! IF THIS SOUNDS OUTRAGEOUS,
C READ ON. . . I SET UP ONE PROGRAM TO DEAL. WITH
C THE CAR CHANG IMG STATUS ONLY FOUR TIMES IN
C ONE MINUTE, AND THE VERY FIRST TEST RUN CONTAINED
C AN INSTANCE WITH FIVE CHANGES. OF COURSE, THE
C SAME THING HAPPENED WITH THE MODIFIED VERSION
C TO DEAL WITH FIVE CHANGES. SO FAR, NO LOAN
C HAS BEEN DISCOVERED TO HAVE MORE THAN SIX.
C
C ANOTHER WRINKLE: SOMETHIMES (LOOSELY TRANSLATED: OFTEN)
C WHEN THE CAR IS TURNED OFF, TWO SPEED
C PAIRS FOLLOW THE FE OFF CODE (PROBABLY
C DUE TO SOME BUFFER BEING .EMF'T I ED BY
C THE RECORDING COMPUTER). OTHER OCS SOFT
C WARE HANDLES THIS BY IGNORING THE OFFENDING
C SPEED. THIS PROGRAM WILL FOLLOW SUIT. AND
C JUST SPIT IT OUT.
C
C ALSO, BESIDES FE ON AMD OFF CODES, THE DATA CONTAINS
C URBAN<=>RURAL CHANGE CODES. FOR EXAMPLE, A CAR CAM BE
C ON RURAL AND CHANGE TO ON URBAN. WE WANT TO CONTINUE
C KEEPING TRACK OF THE SPEEDS FOR A MINUTE AFTER A URBAN
C RURAL CHANGE WHEN IT OCCURS IN THE MIDDLE OF A MINUTE.
C THESE CHANGES CAN ALSO OCCUR WHEN THE CAR IS OFF, BUT
C THEY DO NOT CAUSE ANY MAJOR PROBLEMS LIKE WHEN THE CAR
C IS ON.
C
C
-------
c A 30
C I/O UNITS:
C
C NUMERIC MNEUMONIC PURPOSE
f* ^MV^V ^ซซป^ป^ป^ .H .ซ j^ ซ...ซ 1
C 4 INPUT ORIGINAL HEX DATA FILE
C 6 ' MSINC MESSAGES TO USER
C 7 OUTPUT CORRECTED HEX DATA FILE
C 8 MESSAG UNCORRECTED SUSPECTED ERRORS
C
C
C
C IMPORTANT VARIABLES:
C
C NAME TYPE DESCRIPTION
r^ __ _. _.,_. __ , _ __ _ซ. . _ .,. ป,. __ _
C LINE CHAR*40 DATA LINE JUST READ
C FDLINE CHAR*40 COPY OF LAST FD LINE READ
C SPEEDS CHAR*40 ARRAY TO STORE A MINUTE'S SPEEDS
C USED ONLY FOR PROBLEMS AROUND FC
C SNOBS CHAR*2 ARRAY TO STORE SPEEDS WITHOUT BLANKS
C USED TO CHECK SPEEDS
C TOTLIN INTEGER COUNTER FOR tt OF LINES OF SPEEDS BETWEEN FD'S.
C TOTSPD INTEGER COUNTER FOR tt OF SPEED BYTES
C
C
C
C
C
C DECLARATIONS
INIEGER INPUT.MSINK,OUTPUT,ME33AG.FIXED
INTEGER TOTLIN,TOTSPD
C
CHARACTER*40 SPEEDS(11) ,LINE,FDLINE
CHARACTERS SNOESU20) /120*'
CHARACTERS FD /'FD'/, FE /'FE'/, FC /'FC'/
CHARACTERS QA /' OtV /, OB ."OB11/, 02 /;102'/, 03 ."0311/
C
LOGICAL ON /'.FALSE. /
C
COMMON /10. INPUT.MS INK,OUTPUT,MESSAG,FIXED
C READ A LINE FROM DATA FILE
10 READ(INPUT,50,END=900M_INE
50 FORMAT(A)
C
C CHECK LINE FOR FC, FE, OR FD CODES
C
IF (LINE(1:2) .ED. FC) THEN
WRITE(MESSAG,60) TILE GOOD. FC FOUND HERE: '.FDLINE
60 . FORMAT (' :1,2A)
C
C ODD THINGS HAPPEN , .ROUND THE FC. JUST DUMP SPEEDS
C '.WITHOUT CHECKING /MMYTHING; AND START COLLECTING THEM
C AGAIN AFTER THE FC .
C
DO 3O I-1,TOILIN
WRITE(OUTPUT.70) SPEEDS CI)
-------
A 31
70 FORMAT (A)
SO CONTINUE
C
TOTLIN=0
TQTSPD=0
C
WRITE (OUTPUT, 70) LINE
C
C CHECK FOR FE CODE
C
ELSEIF .EQ. OA .OR. LINEM:5) .ED. O2) THEN
C
C RE- INITIALIZE SPEED COUNTERS WHEN CAR IS TURNED ON
C . AND BLANK OUT SPEEDS WITHOUT BLANKS ARRAY. ALSO
C RE- INITIALIZE IF THIS IS AN URBANO>RURAL TYPE CHANGE;
C ' BUT, FIRST, CHECK PRECEDING SPEEDS.
C
.IF (ON) THEN
CALL SPDCHK ( SNOBS , FDL I NE , TOTL I N , TOTSPD )
ENDIF
C
ON=.TRUE.
TOTLIN=O
TOTSPD-0
C
DO 90 1=1, 120
SNOBSd )--""
90 CONTINUE
C
WR I TE ( OUTPUT , 70 ; L I NE
ELSEIF (LINE ('1:5) .EG. OB .OR. LINE (4: 5) .EQ. 03) THEN
C
C CHECK LAST BLOCK OF SPEEDS WHEN CAR IS TURNED OFF.
C DO NOT CHECK SPEEDS IS URBAN-:ปRURAL TYPE CHANGE.
C
IF '.DIM) THEN
QN=. FALSE.
CALL SPDCHK (SNOBS, FDL I NE, TOTLIN, TOTSPD)
ENDIF
C
WR I TE ( OUTPUT , 70 ) I... I NE
C
C
ELSE
C
WRITE (MS INK, 100) 'BAD FE CODE FOUND HERE: ",LINE
FORMAT C ' , 2A ;
GO TO 999
C
ENDIF
C
C CHECK FOR FD CODE
' C
-------
A 32
ELSEIF (LINE(1:2) .EQ. FD) THEN
C
C IF CAR IS ON THEN CHECK THE LAST BLOCK OF SPEEDS
IF (ON) THEN
C
C CHECK PRECEDING BLOCK OF SPEEDS
C
CALL SPDCHK(SNOBS,FDLINE,TOTLIN,TOTSPD)
C
C THEN RE-INITIALIZE SPEED COUNTERS AND BLANK OUT SNOBS
C
TOTLIN=0
TOTSPD=0
C
DO no 1 = 1,120
SNOBS(I)='
110 CONTINUE
C
END IF
C
WRITE(OUTPUT,70) LINE
C
C SAVE THIS FD LINE FOR FUTURE USE
C
FDLINE=LINE
C
C NOW, FINALLY, WE ARE SURE WE HAVE A LINE OF SPEED BYTES
C IF THE CAR IS ON, COLLECT SPEEDS FOR CHECKING IN SNOBS.
C IF THE CAR -IS OFF, JUST SPIT OUT THE LINE. THIS TAKES
C CARE OF SITUATIONS WHEN FE OFF CODE IS FOLLOWED BY A
C SPEED PAIR.
C
ELSE
C"
IF (ON) THEN
C STORE LINE IN ARRAY SPEEDS
C ' HAVE TO CHECK FDR ODD SITUATIONS AROUND PC
IF (TOTLIN .LT. 11) THEN.
TOTLIN^TOTLINU
SPEEDS (TOTLIN) -= LINE
END IF
"'
C NOW, SEE HOW MANY SPEEDS ARE IN THIS LINE
0 FIRST STRIP OFF TRAILING BLANKS, LEAVING ONE.
C
DO 200 1=40,1,1
IF (SPEEDS ( TOT'LIN) (I: I) . NE. '. ') CO TO 210
200 CONTINUE
f
210 L.EN-I + 1
C
C TAKE OUT BLANKS BETWEEN SPEED BYTES FOR
C SUBROUTINE SPDCHK. AT THE SAME TIME,
C ADD UP THE NUMBER OF SPEED BYTES.
C
DO 300 I-3,LEN
IF (SPEEDS(TOTLIN)(I:I) .ED. ' ') THEN
TOTSPD-TOTSPD+1
-------
A 33
SNOBS (TQTSPD)=SPEEDS(TOTLIN) (1-2: 1-1)
END IF
300 CONTINUE
'
ELSE
WRITE (OUTPUT, 70) LINE
C
C THAT'S ALL FOR THIS LINE
C
ENDIF
C
C GO GET THE NEXT LINE
C
GO TO 10
C
C
C END OF DATA SET
C
900 WRITE (5, 9 10) 'DATA SET DONE'
910 FORMAT (' .' ,A)
C
999 STOP
END
-------
<.--" A 34
C
c
C
SUBROUTINE SPDCHK (SNOBS, FDLINE, TOTLIN, TOTSPD)
C
C
C SUBROUTINE TO CHECK THE NUMBER OF SPEEDS IN A BLOCK.
C ERROR MESSAGES PRINTED TO FILE MESSAG AND CORRECTED SPEEDS
C TO FILE OUTPUT.
C
C THE THEORY OF CORRECTING SPEED ERRORS FOLLOWS:
C
C BASICALLY, THE ONLY TIME WE KNOW DEFINITELY THAT
C THE SPEEDS ARE CORRECT IS WHEN WE HAVE A "LOW HIGH"
C PAIR. EXAMPLE: 01 36 01 48 01 69 01 75 01 Al
C THESE ARE ALL LOW HIGH PAIRS. HOWEVER, THESE ARE ONLY
C CONSIDERED GOOD IF THE LOW OCCURS IN AN "ODD" POSITION
C AND THE HIGH OCCURS IN AN "EVEN" POSITION.
C
C ODD EVEN WHAT WE KNOW
f* _ซ. _. ... . ____ . _. ________ _._.___. _ ___ _ __
C LOW HIGH GOOD SPEED PAIR
C LOW LOW WE DON'T KNOW ANYTHING COULD BE GOOD OR BAD
C HIGH LOW BAD SPEED PAIR
C HIGH HIGH BAD SPEED PAIR
C
C THE DEFINITION OF LOW AND HIGH DOES NOT CONCERN ITSELF
C WITH THE RELATIONSHIP BETWEEN THE ELEMENTS OF THE PAIR.
C LOW IS DEFINED AS 00, 01, 02, 03 AND HIGH IS DEFINED AS
C EVERYTHING ELSE. HOPEFULLY, THE CAR WILL NOT GO ABOVE
C 03 FF (127.3 MPH)
C
c ' .
I NTEGER I MPUT , MS I NK , OUTPUT , MESSAG , F I X ED
I NTEGER TOTL I N , TOTSPD
INTEGER I FIRST, INEXT, LGOOD, FBAD
c:
CHARACTER* 40 FDLINE
CHAR AC TER * 2 SNOBS ( 1 20 )
C
LOGICAL LOW, HIGH
C
COMMON ,' I O/ I NPUT , MS I NK , OUTPUT , MESSAG , F I X ED
C
C
c
'C CHECK IF THERE ARE 120 SPEED BYTES (60 PAIRS)
("
w
IF (TOTSPD . NE. 120) THEN .
C '
C IF NOT, CHECK IF THERE ARE AN EVEN OR ODD NUMBER OF BYTES
C
IF (TOTSPD/2*2 .NE. TOTSPD) THEN
C
C PRINT ERROR MESSAGE IF ODD NUMBER OF BYTES
C AND CONTINUE ON TO TRY AND FIX SPEED ERROR
C
WRITE '.MESSAG, 100) 'BAD SPEEDS IN THIS BLOCK: ', FDLINE
100 FORMAT (' 0' ,2A)
-------
A 35
C
C
C
C
C
C
C
C
C
C
C
C
C
C
'C
C
C
C
C
C
C
110
150
BEGIN LOOKING FOR UN-LOW HIGH PAIRS
LGOOD=0
FBAD ป0
IFIRST=1
INCXT =2
IF (INEXT .GT. TOTSPD) GO TO 180
LOW ".FALSE.
HIGH=.FALSE.
LOW=(SNOBS(IFIRST).EQ.'GO' .OR. SNOBS(IFIRST).EO.'01' .OR.
SNOBS(IFIRST).EQ.'02' .OR. SNOBS(IFIRST).EQ.'03')
HIGH=(SNOBS(INEXT>.NE.'00' -AND. SNOBS(INEXT).NE.'01' .AND.
SNOBS(INEXT).NE.'02' .AND. SNOBS(INEXT).NE.'03')
IF LOW HIGH PAIR, WE ARE CONFIDENT THAT SPEED PAIR IS
GOOD. SAVE THE INDEX OF THIS GOOD PAIR FOR LATER USE. .
THEN INCREMENT COUNTERS AND LOOK FOR MORE LOW HIGHS.
IF (LOW .AND. HIGH) THEN
IF (FBAD .NE. 0) THEN
WRITE(MESSAG,ISO) 'BAD SPEED BETWEEN SPEED PAIR',
LGOOD, LBOOD+-1, ' AND ', IFIRST, INEXT,
'BAD SPEED PAIR IS',FBAD,FBAD+1
FORMAT C' ' ,2 (A, 214)/A, 214)
FIX THESE SPEEDS
CALL GPDFIX(SNOBS.LGOOD,IFIRST,TOTSPD)
CO TO ISO
ELSE
LGOOD- IFIRST
I FIRST-- IFIRST -t-2
INEXT "INEXT +2
GO TO 110
END IF
NOW, IF A LOW HIGH PAIR DID NOT OCCUR, WE COULD BE IN
TROUBLE. IF THE PAIR IS A LOW LOW, WE DON'T KNOW
ANYTHING, SO CONTINUE PAIRING ALONG UNTIL SOMETHING
DEFINITELY GC30D OR DAD OCCURS. INCREMENT IFIRST AND
INEXT BY TWO, KEEPING THE PAIRING PATTERN, BUT DO
NOT SET VARIABLE LASTGOOD INDEX.
ELSEIF (LOW .AND. .NOT. HIGH) THEN
IFIRST^IFIRST i- '2
INEXT = INEXH2
GO TO 110
C
C
C
C
IF THE PAIR IS HIGH LOW OR HIGH HIGH WE KNOW SOMETHING
HAS GONE WRONG. HURRAY! CHANGE THE PAIRING PATTERN
BY SHIFTING IT OVER TO THE RIGHT ONE AND PAIR UP ANOTHER
SET TO TRY TO FIND A (GOOD) LOW HIGH. NOW, WE HAVE TWO
LOW HIGH PAIRS SANDWICHING THE ERROR. SET VARIABLE FIRST BAD.
ELSEIF (.NOT. LOW) THEN
-------
ฃ,'. ~*=T" ? FBAD =IFIRST
- 1. IFIRST=INEXT
INEXT =INEXT-ป-l
GO TO 110
ENDIF
C
C NOW?WE HAVE GONE THROUGH ALL THE SPEEDS IN SEARCH
C OF A- BAD PAIR. IF ONE WAS NOT FOUND, PRINT WARNING.
C '
180 IF (FBAD .EO. 0) THEN
WRITE(MESSAG,185) 'SORRY, UNABLE TO DETECT ERROR'
1Q5 FORMAT(' ',A)
ENDIF
C
C
C
C
ELSE
C
C PRINT WARNING MESSAGE IF EVEN NUMBER OF BYTES.
C THERE MAY BE TWO ERRORS IN ONE BLOCK. OR, THE CAR MAY
C HAVE BEEN TURNED ON OR OFF IN THE MIDDLE OF A MINUTE.
C DO NOT TRY TO CORRECT THESE ERRORS, BUT PRINT A WARNING.
C
WRITE(MESSAG,190) 'LESS THAN 60 SPEEDS IN THIS BLOCK: ',
+ FDLINE .
170 FORMAT('0',2A)
ENDIF
ENDIF
C
C IN ANY CASE, PRINT OUT SPEEDS
C NOTE AWFUL METHOD USED TO PRINT THESE OUT: PROBLEM ENCOUNTERED
C WITH REPEAT SPEC IFICATICMS IN FORMAT STATEMENTS. (UNFORTUNATELY
C FOR US, MTS DOESN'T HAVE ALL THE BUGS OUT OF F77 YET)
C
1 = 1
200 IF (I .GT. TOTSPD) GO TO 210
WRITE (OUTPUT, 2O5) (SNOBS (J ) , J -1 , I. * 11)
FORMAT
I-I+12 .
GO TTJ 200
210 CONTINUE
C
C
C
RETURN
END
-------
A' '37
C
C
C
C
rป
C
SUBROUTIW*HEXDEC
C
C THIS SUBROUTINE CONVERTS A HEX SPEED PAIR INTO A DECIMAL NUMBER.
C
C FOR EXAMPLE, SUPPOSE HEXIN1 = 01 AND HEXIIM2 = 3C HEXDEC WOULD
C RETURN DECOUT - XXX.
C
C THE METHOD IS NOT TERRIBLY STRAIGHTFORWARD BECAUSE HEXIN1 AND
C HEXIN2 ARE HEX CHARACTERS AND DECOUT IS AN INTEGER. ALSO, THERE
C ARE PROBLEMS IF THE LEFT -MOST MEMBER OF HEXIN2 IS 3 OR GREATER.
C THE FAMOUS "B-PROBLEM" ENCOUNTERED IN OCS. S-PREPAR. THERE IS
C THE ADDITIONAL B-PROBLEM IN THE RIGHT-MOST MEMBER OF HEX INI
C HERE BECAUSE OF THE SHIFTING. IN "NORMAL" SITUATIONS,
C HEX INI 'IS ALWAYS BETWEEN 00 AND 03; HOWEVER, SINCE WE
C ARE SHIFTING THE PAIRING SCHEME, IT IS LIKELY THAT HEX INI
C MAY BE "BIG" I.E. NOT BETWEEN 00 AND 03. THE LONG-HAND WAY OF
C CONVERTING CHOPS OFF THE LEFT -MOST BINARY DIGIT OF BOTH B
C PROBLEM HEX DIGITS. SO A CORRECTION MUST BE MADE.
C
C TO CONVERT HEX TO DECIMAL THE LONG WAY:
C
C
C
C
C
C
C
C
01
oooo
TO CONV
(123
(129
3C TAKE THE-
OOO1 0011 1100
XXX XXX XXDD
00101111.00
76543210
32<-9 + 4+2+l .00
59.00
ERT HEX TO DECIMAL
:*1 !' 3* 16 i C; .' '1
+ 96 +12) / 1
39. 00
ORIGINAL PAIR
CONVERT EACH DIGIT TO
SEPARATE OUT DECIMAL
STICK IT TOGETHER
BINARY
PART
CONVERT BACK TO DECIMAL: 2**X
ADD UP COMPONENTS
DONE !
USING J.P. '3 METHOD:
USE LONG EQUATION
DONE !
C
C
C
C
C
C
C THIS SUBROUTINE IS BUILT ON THE J.P. CONCEPT, HOWEVER,
C IT WILL MOT CONCERN ITSELF WITH THE DIVIDE BY TOUR PART.
C ALL SPEEDS WILL BE DEALT WITH IN THEIR WHOLE NUMBER
C COUNTERPARTS. THIS IS TGUGH ENOUGH WITHOUT HASSLING WITH
C THE DECIMAL VALUES. (SUGGESTED BY GLENN THOMPSON)
C DECLARATIONS
*_-
CHARACTERS HEX INI , HE/. IN2
C H A R A C T E R * 1 HEX M A P ( 1 i ;
C
INTEGER VAL1 (2) , VAL2 '. 2)
INTEGER DECOUT
DATA HEXMAP / ' 0 ' , ' 1 :' , ' 2 ' , ' 3 ' , ' *' , ' 5 ' , '6 ' , ;I 7 :' ,
+ ' 3 ' , ' 9 ' , ;1 ;-, ' , ' B ' , ' C ' , 7 D ' , ' E ' , ' F :' /
C
C BEGIN WITH THE FIRST HEX NUMBER
C
-------
DO 200 1=1,2 A 38
C
DO 100 J=l,16
IF (HEXINKI:!) .Ed. HEXMAP(J)) GO TO 150
100 CONTINUE
C
VAL1 ป -1
GO TO 20a
C
150 VAL1(I>=J-1
C
200 CONTINUE
C
C REPEAT WITH THE SECOND HEX NUMBER
C
DO 400 1=1,2
C
DO 300 J=l,16
IF (HEXIN2CI:!) .EO. HEXMAP(J)) GO TO 350
300 CONTINUE
C
VAL2(I) = -1
GO TO 400
C
350 VAL2(I>=J-1
C
400 CONTINUE
C
C FIX THE RIGHT-MOST MEMBER OF THE FIRST SPEED
C AND THE LEFT--MOST MEMBER OF THE SECOND SPEED.
C
IF -(VAL1 <2) . 6E. B) 1>IEN
VAL1 2:-^VALl (2) 3
END IF
C
IF C.'AL2(1> . GE. S; THEN
VAL2 '. 1 > -'.'AL2 a ; S
END IF
C
C r,iGW DO THE MUL TIPLYirJC
\.-
CECQUT- J.;:3:*VriLl C2> i Lot'.'nLZi 1 ) i VAL2(2)
RETURN
END
-------
C A 39
C
C
C
r>
c .KIN
c -:*<".
SUBROUTINE DECHEX(DECIN.HEX 1,HEX2)
C
C THIS SUBROUTINE CONVERTS A DECIMAL SPEED INTO A HEX SPEED PAIR.
C IT IS THE INVERSE OF SUBROUTINE HEXDEC. SEE THAT SUBROUTINE
C FOR A DETAILED EXPLANATION OF THE HEX SPEED CONVERSION.
C
C
C DECLARATIONS
C
CHARACTER*2 HEX1,HEX2
CHARACTER*! HEXMAP(16)
C
INTEGER VAL1(2),VAL2(2)
INTEGER DECIN
C
DATA HEXMAP /' 0' , ' 1' , ' 2' , ' 3' , ' V , ' 5' , ' 6' , ' 7' ,
C
C TURN THE DECIMAL NUMBER INTO ITS HEX EQUIVALENT
C
VAL1(1)^0
VAL1(2)^DECIN/128
TEMP -DECIN-(VAL1 (2)* 128)
VAL2(1)-TEMP/16
VAL2(2)=TEMP-(VAL2(1)* 16 >
C
C NOW CONVERT EACH NUMBER INTO A CHARACTER
C
HEX 1(1:1) =HEXMAP (VAL 1(1) + 1)
HEX1(2:2)^HEXMAP(VAL1(2)+l)
C
HEX2 (1: 1; -i^EXMAP (VAL2 ( 1 ) + 1)
HEX2(2:2)-HEXMAP(VAL2(2)+1)
C
C
RETURN
END
-------
A 40
c:
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c:
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SUBROlfTl&ป 3PDFIX (SNOBS, IGOOD1, IGOOD2,, TOTSPD)
.-.
SUBROUTINE TO FIND INCORRECT SPEED BETWEEN TWO GOOD SPEEDS.
NOT AN ALL-TOGETHER EASY TASK, SINCE WE HAVE NO IDEA HOW MANY
SPEEDS ARE IN BETWEEN THESE TWO GOOD SPEEDS.
EXAMPLE:
L H H L H
L H L L H L H
LHLLLLHL
ETC.
H
1 POSSIBLE PLACE POR ERROR
2 POSSIBLE PLACES POR ERROR
3 POSSIBLE PLACES POR ERROR
THE GENERAL IDEA OF SUBROUTINE SPDFIX IS TO TRY ALL POSSIBLE
COMBINATIONS OF SPEED PAIRS, EACH TIME CHOOSING A DIFFERENT HALF
PAIR TO SKIP. THE SPECIFIC APPROACH WILL MINIMIZE THE SUM OF
THE SQUARES OF THE CHANGES IN THE SPEED. THIS PROGRAM
WILL KEEP A RUNNING SUM OF THE SQUARED CHANGES AND A
"RUNNING MINIMUM" SUM. AFTER TRYING ALL THE POSSIBLE
PAIRING COMBINATIONS,- WE WILL KNOW WHICH SPEED IS MISSING
AND CAN REPLACE IT WITH THE AVERAGE OF THE TWO GOOD SPEEDS
ON EITHER SIDE.
HERE 13 AN EXAMPLE:
SUPPOSE OUR DATA LINE SEGMENT LINE LOOKED LIKE THIS:
01 5B 01 5C 5A 01 5B
L I! L H H L H
NOW IT IS OBVIOUS TO US THAT THE LINE SHOULD BE:
01 SB 01 5C 01 5A 01 5B
L H L H L H L H
BUT, LET'S PRETEND WE ARE A (DUMB) COMPUTER:
THE POSSIBLE PAIRINGS ARE:
1) 01 5B 2) 01 SB
01 SC
5C 5A -
Ol 5B 01 SB
THESE TRANSLATE INTO:
1) 219 2) 21?
730 220
21? 219
NOW THE SUM OF THE SQUARED DIFFERENCES ARE:
SUM1 = 511**2 + 311**2
= HUGE NUMBER
SUM2 - 1**2 *- 1**2
-------
A 41
Cr.--~" = 2
C
C SO THE WINNER IS SUM2
C
C NOW PUT THE AVERAGE OF THE TWO SURROUNDING 'GOOD'. PAIRS
C INTO THE SPOf WHERE ERROR WAS:
C 01 SB OLuOB.Oi SB 01 SB
C ''.ฃ;>:-
C NOTE: WHEW WE DO THIS AVERAGING, IT IS VERY LIKELY THAT
C THE ,GOOD PART OF THE BAD SPEED (?) WILL BE LOST.
C LIKE IN THIS EXAMPLE, 5A WAS GOOD BUT WHEhJ WE
C AVERAGED 5C AND 5B WE GOT 5B. ALL IS NOT LOST,
C WE HAVE DECIDED TO BE HAPPY WITH THIS AVERAGED
C NUMBER.
C
C
C
C DECLARATIONS
C
INTEGER INPUT,MSINK,OUTPUT,MESSAG,FIXED
INTEGER TOTSPD
INTEGER DIFF,SHIFTS,AVE,AVE1,AVE2,SUM
INTEGER DEC1..DEC2
INTEGER WHICHS
C
CHARACTER*2 SNOBS(120),TEMP(120),FIX1,FIX2
C '
COMMON /ID/ -I NPUT, MS INK, OUTPUT, MESSAG, FIXED
C .
C DEBUG
C
C WRITE(FIXED,5)TOTSPD
C 5 FORMAT (' ' , I -1 >
C 1-1 . -
C 6 IF ( I .GT. TOTSPD) GO TO 3
C WRITE (FIXED, 10) (SNOBS (J ), J = I, I-H 1)
C 10 FORMAT(12(A,' '))
C ' I -1 H 2
C (30 TO 6
C S CONTINUE
C
C BEGIN BY CHECKING THAT THERE ARE INDEED TWO GOOD SPEED PAIRS
C SENT HERE.
C
IF (IGOOD1 .EO. 0) THEN
WRITE(MESSAG,20) 'SORRY, HO FIRST LOWHIGH PA IR. CANNOT FIX'
20 FORMAT(' ',A>
RETURN
END IF
C
C NEXT FIND OUT HOW MANY GREEDS ARE IN BETWEEN TWO
C GOOD SPEED PAIRS. THIS MUST BE AN ODD NUMBER.
C
DIFF=IGOOD2-IGOOD1
IF (DIFF/2*2 .EO. DIFF) THEN
WRITE(MESSAG,50)'SORRY, EVEN NUMBER OF SPEEDS. CANNOT FIX.7
50 FORMAT(7 ',A)
RETURN
END IF
C
C NOW DECIDE HOW MANY DIFFERENT PAIRINGS THERE ARE TO TRY MISSING
-------
A 42
C SPEED IN EACH POSSIBLE PLACE.
C .
SHIFTS=DIFF/2
C
C NOW TRY THE MISSING SPEED IN EACH PLACE
C ASSUME EACHt HE W THE 2*1 + 1 PLACE. I.E. IF SHIFTS=3, THEN TRY
C THE 3RD, 5T ANff 7TH SPEEDS.
c --"**
DO 300 Iปป,SHIFTS
SUM=0
C
C GET THE DECIMAL EQUIVALENT OF THE FIRST GOOD PAIR
C
J=IGOOD1
CALL HEXDEC (SNOBS (J) , SNOBS (JM> , DEC1)
C
C GET THE DECIMAL EQUIVALENT OF THE NEXT PAIR
C
100 J=J+2
IF (J . GT. IGOOD2) GO TO 200
C .
C CHECK IF THIS PAIR SHOULD BE SKIPPED
C
IF (J .EO. 2*H-IGOOD1> J=J+-1
C
C NOW GET THE DECIMAL EQUIVALENT OF THE NEXT PAIR
C
CALL HEXDEC ( SNOBS ( J) , SNOBS (J+l) ,DEC2)
C
C TAKE THE AVERAGE OF THE TWO SPEEDS
C
AVE- (DECH-DEC2) /2
C
C KEEP A RUNNING SUM OF THE SQUARES OF THE DIFFERENCES
C
SUM-SUM-*- ( (DEC1 AVE) **2 + (DEC2-AVE) **2>
C
C GET READY FOR THE NEXT PAIR
C
DEC1-DEC2
GO TO 100
C
C NOW KEEP TRACK OF THE SMALLEST SUM
C
200 IF (I .EQ. 1) THEN
MIN=SUM
WHICHS=I
ELSE IF (SUM .LT. MIN) THEN
MIN=SUM
WHICHS=I
END IF
C
C
300 CONTINUE
C
C
C NOW WE KNOW WHICH SCENARIO GAVE US THE SMALLEST SUM OF THE
C SQUARED DIFFERENCES. ANOTHER PROBLEM ARISES: WE HAVE TO
C FIND THE TWO NEAREST GOOD PAIRS SURROUNDING THE ERROR AND
C CALCULATE THEIR AVERAGE. THE AVERAGE IS EASY, THE FINDING
C IS NOT.
-------
A 43
C
CALL HEXDEC(SNOBS,
+ SNOBS,AVE1)
CALL HEXDEC(SNOBS(WHICHS*2-MGOOD1+1),
+ SNOBS,AVE2)
C
AVE=< AVEH-AVE2)/2
C
CALL DECHEX(AVE,FIX1,FIX2>
C
C NOW INSERT THE CORRECT HEX PAIR INTO THE SPEED ARRAY.
C PROBLEM: THE PAIR GOES WHERE A HALF PAIR WAS BEFORE,
C SO WILL HAVE TO MOVE THE REST OF THE SNOBS
C ARRAY DOWN ONE.
C
C
C DEBUG
C
C WRITE(FIXED,5)TOTSPD
C WRITE(FIXED,11)MIN,WHICHS,FIX1,FIX2
C 11 FORMAT(' 7,2I10,2A>
SNOBS(WHICHS *2+1GOOD1> =FI X1
C
DO 400 I=WHICHS*2+IGOOD1+--2,TOTSPD-H
TEMP(I>ซSNOBS
-------
- --.-..-: A ^
c ' -- ' "'
COMMON /IO/ INPUT,MSINK,OUTPUT,MESSAG,FIXED
C
INTEGER INPUT,MSINK,OUTPUT,MESSAB,FIXED
ฐ DATA IM^fe/4//'t18INK /6/, OUTPUT 77/, MESSAG /B/,
c -i; '-
END
-------
A 45
OCS.S-PREPAR
-------
A 46
C SNH7:OCS.S-PREPAR HOLDS THE NEWEST VERSION OF THE DCS
C TRANSCRIPTION PROGRAM. IT CONVERTS HEX DATA INTO
C DECIMAL VALUES AND WRITES THEM TO THREE FILES:
C CHART: PSEUDO-STRIP CHART USED FOR VISUAL
C EDITING OF SPEED DATA.
C RESULT: BLOCK DATA LAYOUT WITH ฃ ROWS OF 10
C SPEEDS FOLLOWING THE ID RECORD.
C POST: BLOCK DATA LAYOUT WITH FLAGS TO HELP THE
C ANALYSIS PROGRAM READ IT. THIS FILE
C . ONLY CONTAINS DATA BEGINNING THE MINUTE
C AFTER THE CALIBRATION MODE.
C
C THIS PROGRAM IS A COMPOSITE OF:
C 1. J.P.CHENG'S ORIGINAL STRIP CHART PROGRAM
C 2. R.L.PARSON'S MODIFICATIONS TO DEAL WITH 5 TEMPERATURES
C 3. M.K.MEUCK'S MODIFICATIONS FOR DIFFERENT DATA LAYOUTS
C
C
C
C
C
c:
C
C
C
C
c
c
c
c
c
C
c
c
c
c
0
c
c
c
c
c
THIS PROGRAM ALSO CONTAINS A SECTION TO CORRECT TEMPERATURE
DATA:
CORRECT - M * SENSOR + B
WHERE M = 0.32*173
B ~ O.'11840 WHEN SENSOR :> 90
AND .
M = 0.5125-1
B ^ 23.347 WHEN SENSOR ; 90
THESE COEFFICIENTS WERE DETERMINED FROM MIDAS ANALYSIS OF
TEMPERATURE CALIBRATION DATA.
I/O UNIT ASSIGNMENTS:
MNEMONIC UNIT tt FILE ASSIGNMENT PURPOSE
IIMPUT HEXIDECIMAL ENGINE DATA
USER RESPONSES TO PROMPTS
PROMPTS TO USER
CONVERSION RESULTS
CGrJ'.'ERSIGr-.! RESULTS PLUS FLAGS
HEX
ANSWER
ASK
RESULT
POST
CHART
'! -::i!EX DATA FILE>
5 JMSOURCE*
o * MS INK*
7 :: OUT PUT FII_E>
3 ; OUTPUT FILE;
9 < OUTPUT FILE::
IIMPUT H
USER RE
PROMPTS
CQNVERS
CGrJ'.'ERS
STRIP C
fL.,-.G AGSIGNr-IGMTS:
MI'-JEMONIC HEX
VALUE
FLAGS(1) FE OA
FE CD
FE 02
FE 03
I" n
i.-.-p
FLAGS(2)
FLAGS(3,5,7,9,11)
FLAGS ( '1,6,3, 10,_12)
EXF-LANATIGN
CAR Gf-J URBAN
CAR OFF---UREAN
CAR On RURAL
CAR OFF--RURAL
CALIBRATION MODE
PROBLEM: FF CODE
NUMBER UF SPEEDS FOLLOWING
SWITCH CHANGE CCDE
rJUMBER OF SPEEDS FOLLOWING
I"! IE ORIGINAL FROGRAn W.",S WRITTEN APR O-'l, 1979 DY J. p.
LAST VERSION BEFORE THIS OME WnS COMPLETED MAY 24, 1932
CHENG. I'l IE
BY SDSB.
-------
A 47
C MODIFICATIONS MADE OCT 22, 1982 BY R. PARSONS, CSC, UNDER DELIVERY
C ORDER 6363-201, SUBTASK 025 (OPERATIONAL CHARACTERISTICS STUDY).
C
C FURTHER MODIFICATIONS MADE MARCH 8, 1983 BY M. K. MELICK, CSC,
C UNDER DELIVERY ORDER 6363-201, SUBTASK 025, OPERATIONAL
C CHARACTERISTICS STUDY.
C
C TEMPERATURE CORRECTION CODE ADDED APRIL 19,1983 BY M. K. MELICK.
C BUB IN POSTFL WRITE-OUT FIXED APRIL 26, 1983, MKM.
C
C 01-20-84: MARY KAY MELICK. CHANGES MADE TO FACILITATE #BATCH*
C RUNS OF PREPAR. SEE LINE 144.
C
C
INTEGER ASK, ANSWER, HEX, RESULT, POST, CHART
INTEGER FCSW
LOGICAL*! CH(600), SIXTSW
LOGICAL EQUC
COMMON /IO/ ASK, ANSWER, HEX, RESULT, POST, CHART
COMMON /BEGIN/ FCSW
COMMON /LOGIC/ SIXTSW
C
C INITIATE RUN.
C
CALL INIT
C
FIRST CHARACTER'S INDEX RIGHT AFTER "FD" FIELD
LAST CHARACTER'S INDEX JUST BEFORE "FD" FIELD
LAST CHARACTER'S INDEX WHICH IS NOT A BLANK
FIRST .CHARACTER'3 INDEX OF A DATA LINE TO BE READ
LAST CHARACTER'S INDEX OF A DATA LINE TO BE READ
INDEX POINTER FOR STARTING TO SEARCH A FIELD
C II
C 12
C II
C LI
C L.2
C IP
C
C LOCATE THE FIRST 'FD' FIELD IN THE DATA FILE.
C" DATA HAS BEEN RE-FORMATTED BY APPLE PROGRAM
C SO THAT ALL FD, FE, FC CODES BEGIN IN COLUMN 1.
C ALSO, ONLY ONE FD, FE, OR FC PER LINE.
C
T r'i i
11- L
LI -- I '
L2 ^ 40
10 READ (HEX,30,END=210) (Cl I (L) , L-l , '10)
30 FORMAT <2O C2A 1, 1X > >
CALL FINDSTCCH,
c:
C CUT OFF BLANK FIELDS AT RIGHT END OF DATA LINE.
C
DG 50 K - 1, 20
II = 10 - 2 * (K - 1;
IF (EQUC ( ' ;> , CH (II;.') GO TO 50
GO TO 70
50 CONTINUE
C
70 II = IFNSH t- 2
IP - IFNSH > 2
L2 = II
W
C THIS SECTION COMMENTED GUT SINCE APPLE RE-FORMATTED
C DATA DOES NOT HAVE TWO FD'3 ON ONE LINE.
C LOCATE THE SECOND 'FD' FIELD IN THIS DATA LINE.
-------
I" i i i-0 .
A 48
C
CMK CALL FINDSTCCH, L2, 'FD', 2, IP, IFNSH, 8cl70)
CMK GO TO 190
C
C LOCATE THE NEXT 'FD' FIELD.
C RESET CHARACTER INDICES FIRST
C
30 LI = II + 1
L2 = II * 40
IP = LI
90 READ (HEX,30,END=210) (CH(L),L=L1,L2>
CALL FINDSTtCH, L2, 'FD', 2, IP, IFNSH, 1:110)
C
C CUT OFF BLANK FIELDS.
C
110 DO 130 K = 1, 20
II - L2 - 2 # (K ~ 1 >
IF (EQUCC ',CH(II)>> GO TO ISC-
GO TO 150
130 CONTINUE
C
C IF THE NEXT 'FD' WAS FOUND, PROCESS CHARACTERS BETWEEN THE
C 'FD' FIELDS. IF NEXT 'FD' WAS NOT FOUND (IFNSH - 0),
C RESET LI, L2 AND IP (INDEX POINTER), AND CONTINUE SEARCH.
C
150 IF (IFNSH .NE. 0) CO TO 190
GO TO 30
C
C WORK ON THE CHARACTERS BETWEEN THE TWO 'FD' FIELDS.
C
190 12 = IFNSH - 1
CALL OCSOUT(CH, II, 12)
C
C BACKUP THE HEX FILE LINERO INTER ONE LINE TO , .LLDW REREAD OF
C CURRENT LIME AND SET INDICES TO SEARCH FOR NEXT 'FD' FIELD.
C
BACKSPACE HEX
II - (12 - LI) ^ -I
L1 - I.
L2 -- --TO
IP - I 1
GO TO C?'J
C
210 CALL CMD ',' $SOURCE DCS. C-TSAVE :',20)
STOP
END
-------
A 49
C
C
C
C
C
SUBROUTINE INIT
C
C INIT PROMPTS FOR THE RUN TITLE, WRITES THE RESULT, CHART AND
C POST TABLE HEADERS, PROMPTS FOR THE NUMBER OF TEMPERATURES AND
C SETS THE LOGIC SWITCH FOR THE NUMBER READ.
C
INTEGER ASK, ANSWER, HEX, RESULT, POST, CHART
INTEGER NTEMPS
REAL*4 COMM
LOGICAL*! SIXTSW, FMT
LOGICAL*1 AST,BLNK,PT(31)
DIMENSION COMM(25), FMT(1)
DATA FMT /'*'/
COMMON /ID/ ASK, ANSWER, HEX, RESULT, POST, CHART
COMMON /LOGIC/ SIXTSW
COMMON /GRAPH/ AST,BLNK,PT
C
C INPUT COMMENT STATEMENT FOR OUTPUT HEADING.
C
WRITE (ASK,10)
READ (ANSWER,30) COMM
10 FORMAT (' ', 'YOU ARE IN THE OCS PROGRAM, ENTER INPUT COMMENTS',
+ ' (MAX OF 100 CHARACTERS)', ." ', IOC -: 1'))
30 FORMAT (25A'l)
C
C WRITE OUTPUT HEADING.
C
WRITE (CHART,50) COMM
WRITE (RESULT,50) COMM
50 FORMAT ( ' 1 :l . 25 A-I," :' , ' DD IIII MM ID Tl T2 T3 T'I T5 T6 FF -R
IS ' )
C
C NUMBER OF TEMPERATURES MUST BE 5 OR i.
C
70 WRITE (AGK,75)
75 FORMAT ( '0;' ., 'ENTER NUMBER GF TEMPERATURES (5 OR ฃ):')
READ (ANSWER, FMT J NTEMPS
IF (NTEMPS .EQ. 6) GO TO 80
IF (NTEMPS .NE. 5) GO TO 70
SIXTSW - .FALSE.
C
C WRITE NUMBER OF TEMPERATURES TO POST
C
80 WRI TE (POST. ;D5) NT EiIPS
35 FORMAT (:1 :i , I 1 )
C
C INTIALIZE ARRAY PT FDR GRAPHICS
C
DO 90 1^1,81
PT(I)-BLNK
90 CONTINUE
C
RETURN
END
-------
A 50
C
c
C
c
c
SUBROUTINE OCSOUT(CH, II, 12)
C
C THE SUBROUTINE "OCSQUT" SEPARATES, CONVERTS, AND OUTPUTS
C TIME, VEHICLE ID, TEMPERATURE, SWITCH, AND SPEED VALUES
C FROM THE HEX DATA FILE. (BY J. P. CHENG 04/06/79)
C
C MODIFICATIONS TO WRITE TO FILE POST ASSUME THAT THE FIRST FE CODE
C FOLLOWS THE FIRST FD. IF THIS IS NOT THE CASE, IT WILL BE NECESSARY
C TO CHANGE THE HEX INPUT FILE SO THAT THE FIRST FD PRECEDES THE FE
C CODE. THIS WILL NOT CHANGE ANY OF THE STATISTICS SINCE THE POST
C FILE ONLY CONTAINS DATA STARTING THE MINUTE AFTER THE CALIBRATION
C MODE. ASSUME FURTHER THAT THE CALIBRATION MODE FOLLOWS THE FIRST FD.
C
C IF, IN ANY MINUTE, THERE HAPPENS TO BE MORE
C THAN 6O 3PEEDS, THE POST FILE WILL CONTAIN ONLY THE FIRST
C idTHE REST BEING IGNORED.
C
INTEGER ASK, ANSWER, HEX, RESULT, POST, CHART
INTEGER FCSW
INTEGER NTEMPS, XX, FLAGS(12)
INTEGER FLGCT,SAVEF!_
LOG ICAL * 1 CH (600) , IN U -1) , ELANK, SIX TSW
LOG ICAL* 1 AST,BLNK,PT(31)
DIMENSION I TEMP(6) , BUFFER<60) , POSTDF(60)
DATA BLANK /' '/
DATA XX ," XX'/
DATA SAVEFL /!/
COMMON /IQ/ ASK, ANSWER, HEX, RESULT, POET, CHART
COMMON /BEGIN/ FCSW
COMMON /LOGIC/ SIXTSW
COMMON /GRAPH/ A3T,BLNK,PT
C .
C ACCORDING TO REQUESTOR, I 10 SPLIT HEX PAIRS WILL OCCUR IN INPUT DATA:
C ...00 77 00 70 EO ... INSTEAD OF'... 00 77 00 7E ...
C WILL. MOT HAPPEN. THEREFORE THE NUMBER OF CHARACTERS TO BE PROCESSED IS
C ALWAYS .",N EVEN NUMBER. IN ADDITION, THE NUMBER GF SPEEDS IS ALWAYS A
C MULTIPLE GF !, SINCE EACH SPEED IS WRITTEN INTO HIE INPUT DATA FILE
C AS TWO HEX PA IT'S.
C
C INITIALIZE NUMBER OF TEMPERATURES (NTEMPS) AS PER 3IXTII3W
C
N'TEMPS -^ 5
IF (SIXTSW) NTEMPS - S
C
C INITIALIZE FLAGS AND rL:-LT
c'
FLGCT-1
DO 20 1^1,12
FLAGSCI)~O
20 CONTINUE
FLAGS(1>=SAVEFL
C
C OBTAIN DD-HH-MM, I-D1 ?... [L}J CHARACTERS.
C
C ASSUME 12 > II (SEQUENCE "ID FD" NEVER OCCURS). THUS, INT ALWAYS 0.
C
-------
A 51
INT =12-11+1
DO 10 ID -- 1, 10
IN (ID) = BLANK
10 CONTINUE
C
C INT >= 10 => STORE (NO CONVERSION REQUIRED) THE FIRST 1O CHARACTERS.
C IN IN<1> THRU IN(10). THESE CORRESPOND TO DD HH MM VEID" IN OUTPUT.
C
C INT < 1O => DAD DATA - DUMP WHAT'S THERE (UNCONVERTED) INTO IN<1>
C THROUGH IN (INT) .
C
IDTEST - 10
IF (INT . LT. 10) IDTEST == INT
DO 30 ID = 1, IDTEST
IN (ID) - CHdl i- ID - 1)
30 CONTINUE
C
C INITIALIZE TEMPERATURES TO ZERO.
C
DO 50 IT = 1. 6
I TEMP (IT) ~ 0
50 CONTINUE
C
C INT < 12 -> PROCESSING DOME => TEMPERATURES ALL 0, NO CODES, AND N
C SPEEDS.
C
IF (INT . LT. 12) GO TO 370
C
C FGR SIX TEMPERATURES:
C INT >- 22 ~> CONVERT THE NEXT 6 HEX PAIRS TO THE CORRESPONDING ฃ
C TEMPERATURES, IN DEGREES CENTIGRADE, AND STORE IN I TEMP ( 1 ) THRU
C ITEMP (6) .
C INT ; 22 -; MISSING DATA, CONVERT THE INT--10) /2 PAIRS AND USE THE
C DEFAULT ZEROES FOR THE I'll S3 ING PAIRS.
C FGR FIVE TEMPER A rURESs
C INT ::-: 20 '-' CONVERT THE NEXT 5 HEX FA IRS TO THE CORRESPONDING 5
C TEMPERATURES. IN DEGREES CENTIGRADE. AND STORE IN I. TEMP (1) THRU
c i TEMP (5). T! ;;;: OUTPUT FIELD FOR THE :::;.ix TIT TEMPERATURE WILL CONTAIN
C TO INDICATE LlrJLV FIVE TEMPERATURES.
C
C INT :: 20 ~-> MI S3 IMG DATA,. CONVERT THE i I N I' 1. 0 ; 2 PAIRS AND USE THE
DEFAULT ZEROES FOR THE MISSING PAIRS.
K l = Ili-S
(.*
C KI. 13 THE UJDEX OF T! IE- ;i~)J D I G I I" OF THE VEHICLE ID.
C
ITTEST "' rJTEMPS
IF '.INT .LT. ( aJTEMrG.rj) i- 10;) ITTE3 T ^ (INT - 10) / 2
DO 70 IT :== 1, ITTES T
ia = i a ;i- 2
c
C l-:..l, K l-i-l ARE INDICES CF HOC) HEX DIGITS IN "CH" REPRESEIM T ING A
C TEMPERATURE.
C
C TEMPERATURE CORRECTION HERE.
C
CALL CONTWO(CH, M, !.l i- 1, IT1, IT2)
-------
A 52
ITEMP(IT) = U6SIT1) + IT2 - 57
RTEMP=FLOAT(ITEMP
IF (RTEMP .LE. 90.) RTEMP^= (0. 82473*RTEMP) +0. 4184
IF (RTEMP .GT. 90.) RTEMP=(0.51254*RTEMP)+23.847
ITEMP(IT)=IFIX(RTEMP)
IF (SIXTSW) WRITE (RESULT,230) (IN(L),L-l,10), ITEMP
IF (SIXTSW) WRITE (CHART,230) (IN(L),L=l,1O), ITEMP
C
IF ( .NOT. SIXTSW) WRITE (RESULT,330) (IN(L),Lปl,10), (ITEMP(L),
+ L-1,5), XX
IF ( .NOT. SIXTSW) WRITE (CHART,330) (IN(L),L=l,10), (ITEMP(L),
+ L-1,5), X X
C
N = 0
NTOTAL-N
C
C FOR SIX TEMPERATURES:
C INT < 24 => PROCESSING DONE. INT > 2'1 ==> CHECK REMAINING (INT-22)
C HEX PAIR(S) FOR THE FF, FC, FE, AND SPEED CASES AND PROCESS ACCORDINGLY.
C
C
C FOR FIVE TEMPERATURES:
C INT < 22 -> PROCESSING DONE. INT > 22 -> CHECK REMAINING (INT-20)
C HEX PAIRS FOR THE FF, FC, FE, AND SPEED CASES AND PROCESS
C ACCORDINGLY.
C
IF (INT . LT. ((NTEMPS*2) i- 12)) GO TO 350
90 IGATE ~ 0
110 Kl - Kl > 2
K2 - Kl <- 1
C
C Kl, !<2 ARE INDICES OF NEXT PAIR OF HEX DIGITS IN ."CH".
IF (K2 f- 2 .GT. 12) GO TO 350
IF (IGATE .ME. 0) GO TO 130
C
IN ill) - CI-KK1)
IN(12) - CH(K2)
IN (13) - CHvKl i- 2)
IN (I'D- - CH(K2 < 2)
r*
.^
C IF NO -FF,-' 'FC,'" OR ' FE" ARE FOUrJD, THEN THE iMEXT
C HEX DIGITS REPRESENT ONE SPEED DATUM POINT.
130 CALL FINDST(CH. K2. 'IT", 2, Kl, IFTJSH, .^150>
IF (N .NE. 0) WRITE r:'ฃSUL I', 250) ( BUFFER I ;, 1^ 1, N)
FLGCT^FLGCT+-1
FLAGS(FLGCT)-N
FLGCI'-=FLGCTt-l
FLAG3'(FLGCT)-6
('"*
WRITE (RESULT,290)
WRITE (CHART, 290)
C
00 TO 90
C
150 CALL FINDST(CH, K2, TC7, 2, Kl, IFN3H, ^.:170)
IF (N . ME. 0) WRITE (RESULT, 250) -( BUFFER ( I; , I = 1, N)
FLGCT-=FLGCT+1
-------
A 53
FCSW = FCSW+1
FLAGS(FLGCT)^N
FLGCT=FLGCT>1
FLAGS(FLGCT)=5
N = 0
C
WRITE
IN(14) - CH(IM H 3)
C
IF (N .ME. 0> WRITE (RESULT,250) (BUFFER(I),1=1,N)
WRITE (CHART,332) 2, IFND, 1:1 74 )
FLGCT^-FLGCTM
FLAGS(FLGCT)-l
GO TO 133
C
17 f\ CALL FINDST (Cl I, I<2 +-2, ' OB' , 2, K 1^2,1 FHD, 2-: 176)
FLGCT-FLGCTK i
FLAGS(FLGCT)~2
GO TO 135
C
176 CALL FINDST (CII,K2i-2, -'02' ,2, K.I K2, IF:Ni},:!, ISO)
FLGCT^FLGCT-i-1
FLAGS (FLGCT) ^-3
GO TO 185
W
1 GO CALL. FI NDST C!-!. K2 i-2 , :' ..'.:;' , 2 , K1 i 2, 1 FiMD, i. 1. 36 :
FLGCT'-FLQCT ! j. '
FLAGS (I--L.GC !') "1
ia5 n -- o
WRITE (RESULT, 270) ( 11J L .' . L -1 1 , 1.1 )
I GATE - 1
CO TO 210
186 I'JR I TE (RESULT, 230)
(-i
C SEND FIRST PAIR OF GREED.' IT; TE TO ฃE CON'.'ERTED
I"'
i'?0 CALL COM TWO (CM. Kl , I-J, I I'1 , t'T2)
SPEED' - I.TJ. * 16 i- ,t'f2
C
IF (IT1 . GT. 0) CO TO i 1.0
^j
C SEND SECOND FAIR OF SPEED L'VTE TO BE CGN'.'ERTED. BUT FIRST,
C IT MUST BE CHECKED FCR THE '0' PROBLEM
C FIRST PLACE OF SECOND R;">!R GETS CUT OFF WHEN CONVERTING MANUALLY.
C EXAMPLE: 00 B'\ -> OOoOO'./uu 10110100 ~> 00001101.00 -;; 13.0.
C CCNTWG GIVES (0*128 i- 11 Mo <-})/'} - -'15. BAD NEWS.
-------
- w_.- .
A 54
C SOLUTION: CHANGE B4 TO THE EQUIVALENT 34 => 0011O100 => 13.0.
C
CALL CONFIX (CH, Kl + 2, Kl * 3, IT1, IT2)
SPEED = (SPEED*129 + IT1*16 * IT2) / 4
C
C WRITE SPEED TO STRIP CHART
C
IFIXED=
IF (IFIXED .GT. 31) IFIXED^Sl
PT(IFIXED)-AST
WRITE',, 1 Al , 2X , '! Al, 61 -1 , 121 'I)
240 FORMAT'.' ' , 2A1 , 1 X , '1 Al, 2X , 1A1 , 511, A-1, 121 -1)
2'15 FORMAT (' ',20F5.1>
250 FORMAT (' :' , 1CF6. 1 >
270 FORMAT ('' ' , 37X, 2(1X,2AD)
230 FORMAT ; :' , :i # :|. :!:*:* Bi"\D FE CODE :!' ?-r.:,'. * ' :
290 FORMAT :' . ' , :i *. * Z #. * "FF" FIELD SHOWS UP ^ .V. :?.:>::';
310 FORMAT C :' ;l , '***** CALID MODE HERE .;'..K .{: t:?.J )
330 FORMAT :'-, 3(2A1,1X), 1A1, 511, A4)
331 FORMAT (' :' , F6. 1 , 31A1)
332 FORMAT (38X,2<1X,2A1)i
C WRITE FINAL SPEED COUNTS TO FLi-.GS, TI-IEN SAVE L/VST STATUS OF
C CAR ON/OFF URBAN/RURAL STATUS FOR NEXT MINUTE;13 IDENTIFICATION
C
350 FLGCT-FLGCT-i-1
FLAGS (FLGCT)'^N
C
DO 360 1-1,11,2
IF(FLAGS(I) .LE. 1 .AND. FLAGS(I) .ME. 0; SAVEFL=FLAG3CI;
360 CONTINUE
C
C WRITE RESULT AND POST
C
IF (N .NE. 0) WRITE ^RESULT,250) (BUFFER(I),1=1,N)
-------
:P1S1-241
-'--- A 55
|ฃ USER DESIRES HOT STARTS ONLY, AND DATA IS COLD
IF (HOTCOL .EQ. HOT .AND. START .NE. 1) GO TO 500
USER DESIRES COLD START ONLY, AND DATA IS HOT
IF (HOTCOU .EQ. COLD .AND. START .NE. 2) GO TO 500
O -J-I+- ' "-
C OK, NOW SAFE Til-AD& 01* SECONDS IN SPEED AND ACCEL BANDS
C " ' '
DO 45O 1=1,8
ISPEED(I)=ISPEED(I)+TSPD(I)
CSPEED(I)=CSPEED(I>+TSPD
450 CONTINUE
C
DO 460 1-1,23
I ACCEL (I) -1 ACCEL (I) -+-TACC ( I)
CACCEL < I) --^CACCEL (I) +TACC ', I)
460 CONTINUE
C
DO 480 1=1,8
DO 470 J=l,23
IMATRX (J, I)=IMATRX (J, I)+TMTX (J, I)
CMATRX (J, I>=CMATRX (J, D+TMTX (J, I)
470 CONTINUE
480 CONTINUE
C
ISUM=ISUM+SEC(1)
CSUM=CSUM+SEC(1)
C
1 END OF READ ING/SUMMING
500 CONTINUE
C
C GO GET MORE DATA
C
GO TO 300
C
C FINALLY, DONE READING ALL DATA
600 CALL FIMCAL'.iJLGAN. ISPEED. I ACCEL. IMATRX, I SUM)
CALL FIIMCAL (LSUM , CSPEED, CACCEL , CMATRX , C2UM ;
GO TO ??9
C
C READ ERROR
700 WRITE(MS INK,710)LOAN.DA IL, TRIPNGU;.TIME(1>
T10 FORMAT (' 0' , ;' OH NO! RE.".D ERROR ON LOAN-',15,
i- ' ' , ' ! !EX DAY ' . 13,
I- ' ' , ;1 i'RIP l-JUMDER ' , 13;
GO TO 999
C
G EARL1,-' EOF
C
300 WR I TE C MS I NK ,310) LOAN . i};, i E - I ; , T' I ME '. 1 : , T'R IF t JO ( 1 )
sio FORMA r ( o'. oi-i NO1 :jr;;;;. ..";;...;. r ED EOF ON LOArj ',15,
i- / ;' ' ' ., ' HEX DAY ' , 13,
+ /''," TIME ' ., 15,
f- /'?,' TRIP NUMBER - , 13)
C
999 STOP-
END
-------
A 56
C
n
SUBROUTINE INIT(SHORT,LONG,BOX,SUM)
C
C THIS SUBROUTINE ZEROES OUT ALL RUNNING SUMS
C
. INTEGER SHORT(9),LONG(23),BOX(23,9),SUM
C
C
C
DO 10 1=1,9
SHORT(I)=0
10 CONTINUE
C
DO 20 1=1,23
LONG (I)-0
20 CONTINUE
C
DO 40 I--1,23
DO 30 J=l,9
BOX(I,J)=0
30 CONTINUE
40 CONTINUE
C
SUM-0
RETURN
END
-------
A 57
SUBROUTINE LIMIT (OLOAN, IRTN)
C THIS SUBROUTIN^ INITIALIZES THE LOAN NUMBER
C *= >-.-.-
INTEGER OLOAN
C
INTEGER TRPIN, SPDIN,MSOURC,MSINK, DEBUG, 3PDOUT, ACCOUT, MTXOUT
C
COMMON / IO/ TRPIN, SPDIN, MSOURC, MS INK, DEBUG, 3PDOUT, ACCOUT, MTXOUT
C
IRTN=O
C
-RE AD (TRPIN, 100, END=8OO, ERR^=700) OLD AN
1OO FORMAT
-------
_
A 58
SUBROUT I NE: PROMPT
C '-H". .
C THIS ROUTINE PROMPTS USER FOR THE RUN OPTIONS
G
INTEGER*2 DEFALT, PARTIC, URBRUR, HOTCOL
I NTEGER * 2 YES , NO , DAY , TR I P , URBAN , RURAL , ALL , HOT , COLD
C .
I NTEGER TRP I N . SPD I N , MSOURC , MS I NK , DEBUG , SPDOUT , ACCOUT , MTXOUT
C .
COMMON /ID/ TRPIN, SPDIN, MSOURC. MSINK, DEBUG, SPDOUT, ACCOUT, MTXOUT
COMMON /OPTION/ DEFALT, PARTIC, URBRUR, HOTCOL
COMMON /WORDS/ YES, NO, DAY, TRIP, URBAN, RURAL, ALL, HOT, COLD
C
C
C
10 WRITE (MS INK, 100)
100 FORMAT ( ' 0 ', 'YOU ARE IN THE OC3. 3 -SPEEDS PROGRAM.7,
+ / ' ','THE FOLLOWING ARE DEFAULT VALUES:',
t- / 'O','l. COMPLETE PARTICIPANT DAYS ONLY',
+ / ' ','2. URBAN AND RURAL TRIPS',
+ '/ ' ','3. HOT AND COLD STARTS',
+ / ' 0 ' ,
i- / 'ฃ','DO YOU WISH TO TAKE THE DEFAULT? (YE/NO): ')
C
F::EAD (MSOURC, 110; DEFALT
110 FORMAT !A25
IF (DEFALT .EG. YES) GO TO 300
IF (DEFALT . NE. NO) GO TO 1.0
w
C
120 WRITE iriSLiJK. 130!
130 FORMAT' 'O'1 , '/OU MUST i IGW ANSWER T! IE FOLLOW I ,NG QUESTIONS:7,
i- / "0'.. 'i. COMPLETL: P/'-RIMCIPANT C-AYS/LE^S DATA)',
i- / '.::,',' Of: PARTICIPANT TRIPS : MOPE D,". T, , ; v (DA/ IT:): :' ;
nLAD(MGCiUPC. 1 .!.:::) PARTIC
IF (p. ;r. r :!::; .ME:. UAY . Arjo. r.-,r:Tic: . T.IE. TRIP; cu ro r.:o
110 WRITE (MS INK, 150;
ISO FORMAT ( '0' ,
'! / '^',:12. URBAt-J, r:L;rr,!_, OR ALL TRIPS':1 (UR/RU/AL): ' ;
C
READ ( MSOURC ,110) URBPUP
IF (URBRUR .ME. URBAf4 . ,,MD. URDRUR .ME. RURAL .AND.
<- URERUR . t.!E. ALL; GO F L J I Io
c-
loO WPITE(rl3irJK, 1 ;'0)
170 FORMAT ( ' 0 ' , '
i- / ' ฃ ;t , ' 3 . HOT. COLD, OR ALL STARTS? (HO/CO/ AL>: ;' )
READ (MSOURC,. 110) HOTC3L
IF '.HOTCOL .ME. HOT . ;'irJD. I-IOTCOL .ME. COLD .AND.
i- HOTCOL .ME. ALL) GO i'Q l,l;0
C
IF (Pc'iRTIC .EL!. DAY ..,!}:.-. LJ!-BRU!':; .ED. ALL .AND.
-------
A 59-
HOTCOL -EQ- ALL) WRITE (MSINK,180)
FORMAT CO','YOU HAVE JUST SELECTED ALL DEFAULT VALUES.',
+ / ' ','NEXT TIME JUST ANSWER "YES" TO THE FIRST QUESTION!')
RETURN
C ASSIGN DEFAULT VALUES
C %~
300 PARTIC-DAYrT-
URBRUR-ALL
HOTCOL=ALL
RETURN
END
-------
A 60
SUBROUTINE CHECK(DATE,TRIPNO,DAYTR,TIME,SEC,IRTN)
C
C THIS SUBROUTINE MAKES SURE THAT THE INFORMATION FROM THE TRIP
C FILE MATCHES THE: INFORMATION IN THE SPEEDS FILE.
C
INTEGER DATE(2).TRIPNO(2),DAYTR(2),TIME(2),SEC(2)
INTEGER IRTN
C
INTEGER TRPIN,SPDIN,MSOURC,MSINK,DEBUG,SPDOUT,ACCOUT,MTXOUT
C
COMMON /ID/ TRPIN,SPDIN,MSQURC,MSINK,DEBUG,SPDOUT,ACCOUT, MTXOUT
C
C
C
IRTN=0
C
C
C
IF (DATE(l) .EQ. DATE(2) .AND. TRIPNOC1) .ED. TRIPNO(2> .AND.
+ DAYTR(1) .EQ. DAYTR (2) .AND. TIME(l) . EO. TIME (2) .AND.
+ SEC(l) .EQ. SEC(2>> RETURN
C
C IF HERE, DATA IN TRIP AND SPEED FILES IS IN WRONG ORDER
C
IRTN--10
WRITE(MSINK,910) DATE 1 , DATE '.2) , TRIPNO (1) , TRIPNO (25 , DAYTR (1) , DAYTR (2) ,
+ . T I ME >: 1 > , T I ME (2) , SEC '. 1) , SEC C 2;
910 FORMAT C ' 0' , :1 OH NO! THIS PROGRAM HAS BOMBED BECAUSE THE',
i- / 7 ?,:1DATA IN THE TRIP AND SPEED FILE3 DOES NOT MATCH.'
+ / ' ','CHECK THE ORDER OF EACH FILE.'
+ / ' ',:'HERE ARE SOME CLUES:',
i- / '0;',:1 - TRIP FILE '.YiLLJE SPEED FILE VALUE7,
> / ' :',:'DAV NUMBER ', 16,' ', 16,
i / '' '' , ;1 TFrif NUMBER li, ' ' , 16,
i- ,' ' ','DAY3 TRIP NUMBER :' , Io,;l ?, 16,
i- ,' ' ',!'I ME AT 3T.",h 1" ", .L^,7 ' , 16,
i- / ' ' . ' LErJ IN SEC " , Is, ' ;1 , 16)
RETURN
END
-------
. ' r"':: "' A 61
C" ->
c
SUBROUTINE FINCAL(NUM,SPEED,ACCEL,MATRX,SUM)
C
C SUBROUTINE TO CALCULATE AND PRINT OUT THE FINAL RESULS
C
INTEGER NUM,SPEED<8),ACCEL(23),MATRX(23,3), SUM
C
INTEGER TRPIN,SPDIN,MSOURC,MS INK,DEBUG,SPDOUT,ACCOUT,MTXOUT
C
REAL SPDFRC8)
REAL ACCFR(23)
REAL MATFR(23,3>
C
COMMON /IO/ TRPIN,3PDIN,MSOURC,MSINK,DEBUG,SPDOUT,ACCOUT,MTXOUT
C
C DEBUG HERE
C
tgRITE (DEBUG, 1)NUM, (SPEED(I) , 1 = 1,8) , SUM
1 FORMAT(15,317,110)
C
C CHECK HERE FOR DIVIDE BY ZERO
C
IF (SUM .EQ. 0) GO TO SCO
C
C OK, SAFE TO DIVIDE
\
DO .too 1.^1,a
SPDFR ( I > AFLOAT (SPEED ( I > ? .'SUM
100 CONTINUE
C
DO 200 1-1,23
ACCFR ( I ) -FLOAT (ACCEL .!);, SUM
200 CONTINUE
C
DO 100 1-K23
DO 300 J L,S
i-IA I'TR ; .[ . J ) -I- LQA T . W-, TF":;< 1 , J ; ; / CUM
300 CONTINUE
100 CONTINUE
C
C NOW PRINT OUT THESE FRACTIONS
C'
I'JRITE (SPDOUT, 450) NUM. (GPDTR ( I ) . I-1,3)
150 FORMAT(15,3F10.5)
C
WRITE(ACCOUT,550)NUM,(ACCFR(I),I~1,23)
350 FORMAT(15,23F10.5)
C
DO 700 1^1.23
WRITE (MT-UJU i , .nSO; NUM. -.MAITR ( I , ,J ) , J-l , 2)
650 FORMAT'. 15, 2F 10,5)
700 CONTINUE
RETURN
C
C
-------
-QEฃiฃi*rn* DIVIDE- BY ZERO A 62
WRITE (MSINK, 910) NUM
810 FORMAT (' 0' , ' NO TRIPS OCCURRED WITH THESE CHARACTERISTICS',
+ / ' ','IN LOAN NUMBER ',15,
-i- / ' ^.^ BEWAREs OUTPUT FILES MAY HAVE "HOLES'")
RETURN.
END
-------
A 63
BLOCK DATA
U
c
INTEGER Tlipi^SPDIN, MSOURC, MS INK, DEBUG, SPDOUT, ACCOUT, MTXOUT
l^ '.-'*'
INTEBERt2 DEFALT,PARTIC,URBRUR,HOTCOL
INTEBER*2 YES,NO,DAY,TRIP,URBAN,RURAL,ALL,HOT,COLD
C
COMMON /ID/ TRPIN,SPDIN,MSOURC,MSINK,DEBUG,SPDOUT,ACCOUT,MTXOUT
COMMON /OPTION/ DEFALT,PART1C,URBRUR,HOTCOL
COMMON /WORDS/ YES,NO,DAY,TRIP,URBAN,RURAL,ALL,HOT,COLD
C
DATA TRPIN ,'2/, SPDIN /3/, MSOURC /5/, MS INK >'6/,
+ DEBUG /7/, SPDOUT ,'S/, ACCOUT /9/, MTXOUT /1O/
C
DATA YES /'YE'/, NO /'NO'/, DAY /'DA'/, TRIP /'TR'/,
+ URBAN ,"UR'/, RURAL /'RU'/, ALL /'AL'/,
+ HOT /'HO'/, COLD /'CO'/
C
C
C
END
-------
^
A 64
C
IF (FCSW .LT. 1) GO TO 370
IF (FCSW .EQ. 1) GO TO 365
C
IF (SIXTSW) WRITE(POST,235)(IN(I),1=1,10),ITEMP,FLAGS
IF (.NOT. SIXTSW)
+WRITE(POST,240)(IN(I),Iซl,10),(ITEMP(I),1-1,5),XX,FLAGS
IF(NTOTAL .EQ. 0) GO TO 370
Ll = l
L2=0
DO 262 K-2,12,2
L2^L2-i-FLAGS(!<)
IF (FLAGS < K) .HE. 0) WRITE(POST,245) (POSTBF(I),I=L1,L2)
L1=L2+1
262 COMTir4UE
GO I'O 370
C
365 FCSW-FCGW+1
C
370 RETURN
END
-------
A 65
C
C
C
C
C
SUBROUTINE CONTWCXCH, Cl, C2, Nl, N2)
C
C CONVERT TWO HEX DIGITS TO DECIHAL.
C
LOGICAL*! ARR(16), CH<600)
INTEGER Cl, C2, CHFND
C
DATA ARR ,"0', '!', '2', '3', ' 1' , '5', >6', '7', '3', '?', 'A',
i- *B' , 'C' , 'V , 'ฃ' , 7F? /
C
Nl = -10000
N2 - -10000
C
CALL FINDC(ARR, 16, CH(Cl), 1, 1, Nl, CHFND, 2-: 10)
Nl - Nl - 1
C
CALL FINDCCARR, 16, CH(C2>, 1, 1, hJ2, CHFND, 2<10)
N2 = N2 - 1 '
C
10 RETURN
END
-------
f sJ / O "" Ci A i
C A 66
C .
C
C
C
SUBROUTINE CQNFIX(CH, CHI, CH2, DEC1, DEC2)
C
C SOLUTION TO THE 'B" PROBLEM IN THE FIRST CHARACTER OF SECOND SPEED
C PAIR. FORMULA IN MAIN DOES NOT WORK CORRECTLY IF FIRST CHARACTER IS IN
C RANGE 8 TO F (HEX).
C
LOGICAL*! ALL(16), PROBLM(8), CH<600)
INTEGER CHI, CH2, CHFND, DEC1, DEC2
DATA ALL /'O', '!', '2', 'S7, '4', '5', '6', '7', '8', '9', 'A',
+ 'B', 'C', 'D', 'E', 'F'/_
DATA PROBLM /' B', ''', 'A', ' B' , 'C', 'D', ' E' , 'F'/
C .
C
DEC1 - -10000
DEC2 = --100OO
C
C
CALL FINDC(PROBLM, 8, CM(CHI), 1, 1, DEC1, CHFND, &1O)
DEC1 ซ DEC1 - 1
GO TO 30
C
10 CALL FINDC(ALL, 16, CH(CHl), 1, 1, DEC1, CHFND, 2<30)
DEC1 = DEC1 - 1
C
30 CALL FINDC(ALL, 16, CIKCH2), 1, 1, DEC2, CHFND, &50)
DEC2 = DEC2 - 1
C
SO RETURN
END
-------
r o i "" o ~- _ _
C A 67
C
C
C
C
BLOCK DATA
C
COMMON /ID/ ASK, ANSWER, HEX, RESULT, POST, CHART
COMMON /BEGIN/ FCSW
COMMON /LOGIC/ SIXTSW
COMMON /GRAPH/ AST, BLNK, PT
C
INTEGER ASK, ANSWER, HEX, RESULT, POST, CHART
INTEGER FCSW
LOGICAL*! SIXTSW
LOGICAL*! AST, BLNK, PTO1)
C
DATA ASK /&.', ANSWER /5/, HEX /4/, RESULT /7/ , POST /8/,
+ CHART /9/
DATA FCSW /O/
DATA SIXTSW / .TRUE. /
DATA AST / ' * ' / ,
C
END
-------
A 68
OCS.SCAN
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
A 69
OCS.S-SCAN IS A DATA-VERIFICATION PROGRAM FOR USE ON
XXX.FLAGS BEFORE RUNNING THE STATS PROGRAM.
THIS PROGRAM READS THE FLAGS FILE IN A MANNER SIMILAR
TO THE STATS PROGRAM. IF A READ-ERROR OCCURS, THE
PROGRAM WILL WRITE A WARNING MESSAGE TO THE ERROR FILE
AND MAKE AN ATTEMPT TO RE-READ THE LINE WITH A DIFFERENT
FORMAT. THERE ARE ONLY TWO DATA FORMATS ASSOCIATED WITH
THE FLAGS DATA.
THE PROGRAM WILL CHECK THE FOLLOWING DATA:
DAY SHOULD SE SAME AS PREVIOUS DAY EXCEPT AT MIDNIGHT
HOUR SHOULD BE SAME AS PREVIOUS HOUR EXCEPT ON THE HOUR
MINUTE SHOULD BE PREVIGUS+1 EXCEPT WHEN CAR OFF MORE THAN
EIGHT HOURS
IDCODE SHOULD BE SAME A3 PREVIOUS IDCODE THROUGHOUT ENTIRE FILE
TO CHECK FOR MISSING SPEEDS AND TEMPERATURES, THE PROGRAM
WILL CHECK THE CHANGE IN SPEEDS AND TEMPERATURES:
SPEED CHANGE SHOULD BE LESS THAN 7.0 MPH/SEC
TEMP CHANGE SHOULD BE LESS THAN 10.0 DEGREES/MIN
I/O ASSIGNMENTS
MNEMONIC . UNIT It FILE ASSIGNMENT
1
INPUT
MESSAG
; INPUT FILE ;
:: OUTPUT FILE ;
PURPOSE
FLAGS FILE FROM PREPAR
ERROR/WARNING MESSAGES
C
C
c
SEE PROGRAM OCS.S-STATS FOR DETAILED EXPLANATION OF THE
THEORY OF THE FLAGS. THIS PROGRAM WILL USE MOST ASSUMPTIONS
MADE IN DCS.G-STATS AMD THE SAME GENERAL STRUCTURE. SOME
OF THE EXTRA PROVISIONS !"!AQE IN STATS ARE NOT HERE (EXAMPLE:
PG3SIDILI TV OF 3 OR 6 TEMPERATURES IS NOT MERE- I'M 13 WILL
WORK ONLY' ON FILES WITH S TEMPERATURES.) .
C MAIN PROGRAM STRUCTURE:
L
r
C
C
(-
C
C
c
c
c
c
c
c
c
READ NTEMPS (PROMPTLY I URGET NTEMPS>
READ FIRST MINUTE'S I L- :-:ECGf:D
INITIALIZE ODAY.OMCLP.uMIN,DID (0~OLDJ
DETERMINE STATUS OF C.'iK:
CHECK FOR STATUS CHANGE IMS IDE FIRST MIMUTE
IF CAR IS ON, CALL -;I!-!ECK TO CHECK SPEEDS
READ NEXT MINUTE'S ID RECORD
CHECK DAY, HOUR, MIN, .[D. TEMPS AGAINS OLD VERSIONS
CHECK FOR'STATUS CMnMuE BETWEEN MINUTES
IF CAR IS ON, CALL LARGN TO CHECK SPEEDS
CHECK FOR STATUS CHANGE INSIDE THIS MINUTE
GET ANOTHER ID RECORD
-------
__*:=. . A 70
SUBROUTINE CAROFF(DAY,TIME)
C 03-07-841 MA8gSe KAY MELICK. MODIFIED SUBROUTINE CAROFF TO FIX
C BUปWHEN TRIPS CONTINUE DURING MIDNIGHT. DISCOVERED
C W*W*OHIO DATA #312. NOTE: THIS ROUTINE WAS ENTIRELY
C RESTRUCTURED.
C
C
C
C SINCE THE RECORDING DEVICE ONLY RECORDS EVERY 20 MINUTES AFTER
C THE CAR HAS BEEN OFF FOR 9 HOURS, OFFCT(MINS) MUST BE CALCULATED
C INSTEAD OF SIMPLY INCREMENTED.
C ALSO, MUST CHECK FOR "ON THE HOUR" AND MIDNIGHT DISCONTINUITIES.
C
INTEGER DAY,TIME
INTEGER OFFCT,DIFF,OLDTIM
INTEGER POST,DAYLG,TRIPLG,STOPLG,3PEDLG,TEMPLG,ONOFLG
INTEGER SAVDAY,DAYTRP,COMPL,TYPECT(3),STRTCT(2)
C
REAL DAYDIS
C
LOGICAL*! HOT
LOGICAL*! MIDNIT
C
C
COMMON ,'IQ/ POST, DAYLG,TRIPLG,STGPLG,SFEDLG, TEMPLG, ONOFLG
COMMON ,'OFFMIN/ OFFCT
COMMON /IDAYT/ SAVDAY,DAYTRP,COMPL,TYPECT,STRTCT
COMMON .RDAYT/ DAYDI3
COMMON /ONTYPE/ HOT
COMMON /LMIDNT/ MIDNIT
C
C
C
MR ITE(QNOFLG,10) TIME
10 FORMAT C ',:'CAR OFF ',16)
C
C SPECIAL HANDLING FDR MIDNIGHT DURING A CARGFF PERIOD .OR.
C THE FIRST CARGFF MINUTE AFTER MIDNIGHT OCCURRED DURING
C THE LAST TRIP.
c:
20 IF (TIME .NE. 0 .AND. (.NOT. MIDNIT)) GO TO 30
C
C WRITE OUT DAY TOTALS AT MIDNIGHT
C
DAYDIS=DAYDIS/1609.Z4
C
WRITE(DAYLG,22)COMPL,SAVDAY,DAYTRP,TYPECT, STRTCT,DAYDIS
22 FORMAT(816,F10.3)
C
MIDNIT-=. FALSE.
C
: ZERO OUT DAY TOTALS
DAYTRP=0
C
DO 21 1=1,3
TYPECT(I)=O
-------
CONTINUE A 71
DO 26 1=1,2
STRTCT (I )
26 CONTINUE
COMPL=I '.<%"""
SAVDAY=DAY-
C
C CHECK THAT THIS IS NOT THE FIRST MINUTE OF A CAROFF PERIOD
C
IF (OFFCT .EQ. 0) GO TO 50
OFFCT=OFFCT+2360-OLDT I M
GO TO 40
C
C TIME NOT MIDNIGHT. CHECK FOR HOUR CHANGEOVER AND 20 MINUTE
C PROBLEMS BEFORE INCREMENTING QFFCT.
C BUT FIRST, CHECK THAT THIS IS NOT THE FIRST MINUTE OF A CAROFF PERIOD
C
30 IF (OFFCT .EQ. 0) GO TO 50
DIFF=TIME-OLDTIM
IF (DIFF .GT. 20) DIFF-=DIFF-40
OFFCT=OFFCT+D I FF
C
40 IF (OFFCT .GE. ISO) HOT^. FALSE.
OLDTIM=TIME
C
RETURN
J SPECIAL HANDLING FOR FIRST MINUTE DURING CAROFF PERIOD
C
50 OFFCT^QFFCT-H
OLDTIM=TIME
RETURN
END
-------
...".-> . A 72
C
c
SUBRQUTINE QNOFF(DAY,TIME,OLDST,J,ONCT,TRIPCT)
C ;
C
INTEGER DA*iTIME,OLDST,J,QNCT,TRIPCT
INTEGER FLAGS(12)
INTEGER POST,DAYLG,TRIPLG,STDPLG,SPEDLG,TEMPLG,ONOFLG
INTEGER QFFCT
LOGICAL*! HOT
DIMENSION FORGET(60)
COMMON /IO/ POST,DAYLG,TRIPLG,STOPLG,SPEDLG,TEMPLG,ONOFLG
COMMON /STATUS/ FLAGS
COMMON /OFFMIN/ OFFCT
COMMON /ONTYFE/ HOT
C
IF (FLAGS(J) .GT. OLDST) GO TO 5O
IF (FLAGS(J) .LT. OLDST)
>CALL CARON(DAY,TIME,FLAGS(J+l),ONCT,TRIPCT,OLDST)
C
RETURN
C
C COMPUTE LAST CARON STATS
C
50 IF(FLAGS(Jvl) . EQ. 0) GO TO GO
C
JJ=FLAGS(J+1)
READ(POST,70)(FORGET(I),1-1,JJ)
70 FORMAT(F6.1,19F5.1>
C
30 CALL STATQNt;OLDST)
C
c "RESET ON AND OFF COUNTERS
c
ONCT=0
OFFCT-0
nar-. TRUE.
c
CALL CARCFF .' DAY , T I ME! ;
RETURN
END
-------
__....,.;...,. ...... . A 73
SUBROUTINE URBRUR(DAY,TIME,OLDST,K,ONCT,TRIPCT)
INTEGER EWW^TIME, OLDST, ONCT, TRIPCT
INTEGER POWVDAYLG,TRIPLG,STOPLG,SPEDLG,TEMPLG,ONOFLG
INTEGER FLA6SU2>
LOGICALtl COMBIN
COMMON /IO/ POST, DAYLG, TRIPLG, STOPLG, SPEDLG, -TEMPLG, ONOFLG
COMMON /STATUS/ FLAGS
COMMON /COMBO/ COMBIN
C
COMBIN=.TRUE.
C
IF (FLAGS(K) .GT. OLDST) GO TO 50
WRITE
60 FORMAT(' ','URBAN TO RURAL CHANGE')
C
70 IF (FLAGS(K) .EQ. 1 .OR. FLAGS(K) .EO. 3)
<- CALL CARON
-------
-
BLOCK DATA
COMMON /Ilijl|jBT, DAYLG, TRIPLG, STOPLG , SPEDLG , TEMPLG , QNOFLG
COMMON /SWJBBrt FLAGS
COMMOM /Iliprr SAVDAY,DAYTRP,COMPL,TYPECT, STRICT
COMMON /RDAVT/ DAYDIS
COMMON /LMIDNT/ MI DIM IT
INTEGER POST, DAYLG, TRIPLG, STOPLG, SPEDLG, TEMPLG, ONOFLG
INTEGER FLAGS < 12)
INTEGER SAYDAY, DAYTRP, COMPL, TYPECT (3) , STRTCT (2)
REAL DAYDIS
LOGICAL*! MIDNIT
DATA POST /2/, DAYLG /3/, TRIPLG /4/, STOPLG /7/
DATA SPEDLG /8/, TEMPLG ,'9.', ONOFLG /10/
DATA FLAGS ,'12*O/
DATA SAVDAY /O/, DAYTRP /O/, COMPL /O/,
TYPECT /3*6/, STRTCT /2*0/
DATA DAYDIS /O.O/
DATA MIDNIT /.FALSE./
END
-------
Appendix B
Data Reduction Programs
-------
B 2
OCS-STATS.FOR
-------
Listing of OCS_STAT.FOR at 1.3:12:38 on JUN 9, 1986 for CCid=SHVX
Page
1
2
3
4
5
6
7
a
9
10
1 1
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
4 1
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
OCS.S-STATS IS THE 2 PROCESSOR FOR OCSOATA AFTER IT HAS OEEN
THROUGH THE TRANSCRIPTION PROGRAM. THE TRANSCRIPTION
PROGRAM OUTPUT USED BV THIS PROGRAM IS ESSENTIALLY Till-. SAME
AS THE PAGEPR INTER OUTPUT SAVED AS FINALIZED; HOWEVER . I'MEHU IS
AN ADDITIONAL FIELD APPENDED TO THE MINUIE 1 DENT 1 F 1 CA 1 I ON
LINE THE FLAGS FIELD. ALSO, THE SPEEDS ARE IN BLOCKS OF 3 BV 20.
IF THERE ARE TWO SEPARATE CARON PERIODS DURING A MINUIE. THE SPEEDS
BLOCKS BEGIN AGAIN IN POSITION 1, NEXT LINE.
STRATEGY OF FLAGS:
FLAGS( 1 )-FLAGS( 1 2) CONTAIN INFORMATION TO READ SPEED DATA
(IF PRESENT) OR GO DIRECTLY TO NEXT MINUTE IF NO SPEEDS.
FLAGS( 1 ) , (3) . (5) , (7) , (9) . ( 1 1 ) CONTAIN INFORMATION ON DRIVING STATUS
I.E. CAR ON/OFF; URBAN/RURAL. FLAGS ( 2 ) , ( 4 ) , ( fi ) . ( H 1 ) . ( 1 0 ) , ( 1 2 ) CONTAIN
THE NUMBER OF SPEEDS TO BE READ (IF THE CAR IS ON).
SBM NOTE: This program could have been improved it 1 he "1 IHI.I:. "
used a 2X6 matrix rather than a 1 X 12 matrix
with odd and even values. This would have improved
program efficiency because iteration could have been
implemented easier. This is one feature that makes
this program such a tacky one to fol low. This would
also moke it easier for all programmers and others
that may look at this code. The purpose of 'this
message is for remembering this when the next OCS
project is undertaken using higher-tech equipment
and hopeful ly a more efficient program as we 1 ! .
I/O UNIT ASSIGNMENTS:
FILE
UNIT * FILE ASSIGNMENT PURPOSE NAME
2 < INPUT FILE > DATA FILE WITH FLAGS FLAGS
3 < OUTPUT FILE > DAY STATISTICS -DAY
4 < OUTPUT FILE > TRIP STATISTICS -TRIP
6 < OUTPUT FILE > SPEED/ACCEL BANDS -CMP
7 < OUTPUT FILE > STOP STATISTICS -STOP
8 < OUTPUT FILE > SPEED/ACCEL BANDS -BAND
9 < OUTPUT FILE > TEMPERATURES FOR PLOTTING -TEMP
10 < OUTPUT FILE > ERROR CHECKING FILE -DIAG
SPECIFICALLY:
NUMERIC MEANING
1 CAR ON--URBAN
2 CAR OFF--URBAN
3 CAR ON--RURAL
4 CAR OFF RURAL
SOME TYPICAL EXAMPLES:
1 60 0000000000
1 28 20 117000000
200000000000
W
c_o
-------
Listing of OCS STAT.FOR at 13:12:38 on JUN 9. 19U6 for CCid=SHVX
Page
59
GO
6)
62
63
64
65
66
67
GO
69
70
7 1
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Q f 1
y u
99
100
101
102
103
104
105
106
107
108
109
10
1 1
1 2
13
14
15
16
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
151 2 1 00000000
312 1 40 0. 0000000
SBM NOTE: The above set of numbers is a set of sample
input lines, each containing 12 flans. The
even ones \e\ 1 how many speeds to read in
as input on the next lines. It Is important
to know how many speeds will be read in so the
data will be mad correctly In a 1 oopod road
statement. The odd numbered flays tell Ihu
car status as defined above. Each tne reprnsen t s
one mlnutii. If the status does not cluin within I ho
minute, the unused flays are set to 0. II the status
does change within the minute, the next pair ot' flays
tell t lie status. If the vehicle Is off. no speeds
will be read in. The OFFTIME is then determined by
setting the total number of points in the line to 60
and subtracting the number of speeds read. This is
fine when no niore than 1 'off engine' status. 2 fir 4,
is read on a given line. If there is greater than 1
off status on a given line, the first is set to 1 since
it had to use up at least one second and the second one
is given what's remaining of the 60 seconds on the
line. Also, note in the above samp 1 e flag lines, on
line 4, there is a number other than 0 associated with
the even numbered flag when the motor is off. This
number has ,no real meaning and occurred as a result of
a hardware glitch in the testing. Perhaps as the speed
was about to be read, the status simultaneously
changed. These are rare occurrences. Such speed data
were kept in the input file, but are not used in the
ca 1 cu 1 a t i ons .
NOTE: IF CAR IS TURNED OFF ANYTIME DURING A MINUTE,
THE SPEEDS WILL NOT TOTAL 60.
TABLE OF POSSIBLE STATUS CHANGES (- MEANS IMPOSSIBLE COMBINATION)
1234
URBAN ON
1 X ON=>OFF URB=>RUR
URB OFF
2 OFF=>ON X - URB=>RUR
ON RUN
3 RUR = >UH8 - X ON = >OR-
OFF RUR
4 - RUR=>URB OFF=>ON X
THE WAV THAT THE FLAGS ARE SET UP MAKES DETERMINATION OF THE TYPE
OF STATUS CHANGE EASY. IF THE DIFFERENCE BETWEEN THE CURRENT
STATUS AND THE NEW ONE IS ONE (1). THE STATUS CHANGE IS AN ON-
-------
LlsUrxj of OCS_STAT.FOR at 1.3:12:313 on JUN 9, 19Bt> for CC I cl = SHVX Page 3
117 C OFF TYPE. CONVERSELY, if THII DIFFERENCE IS TWO ( '1) . 11II: STATUS
MO C CHANGE IS AN URBAN-RURAL TYPE.
1 19 C
120 C MAIN PROGRAM LOGIC:
121 C READ'FIRST MINUTE'S ID RECORD
122 C DETERMINE STATUS
123 C CALL CARON/CAROFF ACCORDINGLY
124 C
125 C READ SECOND MINUTE'S ID RECORD
126 C LOOP1:
127 C IF STATUS CHANGE BETWEEN MINUTE
128 C THEN CALL ONOFF/URBRUR ACCORDINGLY
129 C ELSE CALL CARON/CAROFF
130 C
131 C IF STATUS CHANGE INSIDE MINUTE
132 C THEN CALL ONOFF/URBRUR ACCORDINGLY
133 C READ NEXT MINUTE'S ID RECORD
134 C END LOOF-M
135 C
136 C
137 C REVISIGNS FOLlOw:
1311 C
139 C 11-29-H3: MARY KAY MEL1CK. MODIFIED SUBROUTINE CARON TO FIX
140 C BUG WHEN CAR IS TURNED ON DURING A MINUTE AND NO SPEEDS
141 C FOLLOW UNTIL THE NEXT MINUTE--ALI AS N = 0. DISCOVERED WITH
142 C OHIO DATA #206.
143 C
144 C 01-04-04: MARY KAY MELICK. ' t#
145 C BUG FOUND: IF CAR IS OFF FOR AN ENTIRE DAY, NO LINE FOR
146 C THAT DAY APPEARED IN DAYLOG. DISCOVERED WITH
147 C OHIO DATA #220.
148 C REASON: . NO WRITE STATEMENTS IN SUBROUTINE CAROFF AT
149 C , THE CHECK FOR MIDNIGHT.
150 C SOLUTION: PUT WRITE STATEMENTS INTO SUBROUTINE CAROFF.
151 C ALSO ADDED TWO NEW COMMON AREAS TO HANDLE
152 C GETTING ALL NEEDED VARIABLES AROUND.
153 C /IDAYT/ INTEGER DAY TOTALS
154 C /RDAVT/ REAL DAY TOTALS
155 C
156 C 01-09-84: MARY KAY MELICK.
157 C PROBLEM WITH VARIABLE STPERM (STOPS PER MILE). WHEN
150 C DISTANCE IS VERY CLOSE TO ZERO. STOPS/MILE IS
159 C RIDICULOUSLY LARGE (OBVIOUSLY). NEW VARIABLE AVEDBS
160 C (AVERAGE DISTANCEC BETWEEN STOPS) REPLACED STPERM AND
161 C IS DEFINED AS FOLLOWS:
162 C IF STOPCT > 1 THEN AVEDBS=DISTNC/(STOPCT-1)
163 C IF STOPCT = 1 THEN AVEDBS=DISTNC/STOPCT
164 C DISCOVERED WITH OHIO DATA #220.
165 C
166 C 03-07-84: MARY KAY MELICK.
167 C BUG FOUND: IF TRIP BEGINS BEFORE MIDNIGHT AND ENDS AFTER
168 C MIDNIGHT, ALL DAY TOTALS ARE ZERO FOR FIRST
169 C DAY AND EVERYTHING ADDED ONTO THE NEXT DAY.
170 C DISCOVERED WITH OHIO DATA #312.
171 C REASON: . PROGRAM COULD ONLY DEAL PROPERLY WITH MID-
172 C NIGHT IF CAR IS TURNED OFF.
173 C SOLUTION: ADDED LOGICAL VARIABLE MIDNIT IN COMMON AREA
174 C /LMIDNT/ TO SUBROUTINES CARON AND CAROFF.
-------
Listing of DCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCid=SHYX
Page
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
21 1
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
C
C
C
C
.C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c-
c
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C -
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
WHEN MIDNIGHT OCCURS DURING A TRIP, THE
VARIABLE MIDNIT IS SET TO .TRUE. IN SUBROUTINE
CARON. THE NEXT TIME THE CAR IS TURNED OFF
(END OF THIS TRIP) THE DAY TOTALS ARE WRITTEN
OUT AND ALL VARIABLES ARE REINITIALIZED FOR
THE NEXT (NOW CURRENT) DAY.
11-01-84: STEVEN B. MICHLIN
BUG FOUND: SUBROUTINE SPDACC LOGIC IS OBSCURE AND
LIMITED TO SMALL BANDS. THE ENTIRE SPUACC
SUBROUTINE WILL UE COMPLETELY REWRITTEN ANYWAY
TO PUT SPEED HANDS IN ONE MI'll INTERVALS RATHER
THAN TEN. ALSO, THE ACCELERATION BANDS WILL
BE INCREMENTED BY .25 RATHER THAN .5. AS IT
TURNS OUT, EVEN THOUGH THE LOGIC OF THE FIRST
VERSION OF SPDACC APPEARS NONETHELESS CORRECT,
THERE WERE SOME POINTS THAT DUE TO ROUNDING
ERROR TEND TO BE OFI: BY ONE IN THE
ACCELERATION BANDS. THIS WAS DUE TO ROUNDING
ERROR. WHEN REAL NUMBER WERE ADDED TO RESULT
IN AN INTEGER, ROUNDING ERROR OCCURRED.
THIS OCCURRANCE WAS A SURPRISE. BUT WAS TESTED
AND IT WAS FOUND THAT ADDING .01 TO THE 51 IN
THE EQUATION SOLVED THE PROBLEM. EVEN THOUGH
THE NEW SPDACC ROUTINE DOESN'T USE THAT
OBSCURE, MORE EXPENSIVE METHOD.
REASON: TO GIVE GLEN ANOTHER PERSPECTIVE FOR HIS
REPORT.
SOLUTION: REWRITE SPOACC SUBROUTINE WITH NEW ALGORITHM
AND CHANGE SPEED BAND INCREMENTS TO 1 SEC AND
ACCELERATION BAND INCREMENTS TO .25 M/H-S.
STATUS: DONE. 11-06-84
11-01-84: STEVEN B. MICHLIN
BUG FOUND: IF THE CAR IS TURNED OFF AND BACK ON WITHIN
A GIVEN MINUTES TIME. SOME TIME MAY BE
ATTRIBUTED TO THE PREVIOUS MINUTE AND SOME
TO THE NEXT MINUTE. WHAT TO DO SUCH WITH DATA
MUST BE DEALT WITH, IN ANY CASE. IS IT A
STALL, A STOP, DATA ERROR, OR WHAT.
REASON: THE CAROFF-ON IS HANDLED ON A CLOCK-MINUTE
BY MINUTE BASIS. IF THE STOP IS LESS THAN A
MINUTE, THIS DATA IS CONSIDERED AS PART OF
THE SAME TRIP. ALSO. IF THIS OCCURRED AT
STARTUP, THE REAL STARTUP WOULD HAVE BEEN
CONSIDERED AS A HOT START.
SOLUTION: CHECK FOR STALLS WHEN THE CAR IS TURNED OFF
AND THEN ON WITHIN A MINUTE. WRITE THEM IN
DAVLOG AND CONSIDER THE DISTANCE. ETC AS
PART OF THE SAME TRIP. THIS DIFFERENTIATES
IT FROM A STOP. THIS REQUIRES KNOWING WHAT
IS HAPPENING ON THE NEXT DATA LINE. THIS
THEREFORE REQUIRED THE MAJOR WORK OF
READING 2 LINES AT A TIME TO ALWAYS HAVE THE
VALUES ON THE NEXT LINE AVAILABLE TO CHECK FOR
STALL. IF A LINE ENDS IN 15 SECONDS OF ENGINE
OFF, YOU DON'T YET KNOW IF IT IS STALL OR STOP
a-
-------
Listing of OCS STAT.FOR at 1.3:12:38 on JUN 9. 1986 for CCid=SHYX
Page
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
UNTIL THE FIRST 45 SECONDS OF THE hJEXT LINE
HAS BEEN LOOKED AT. IF THE NEXT 45 SECONDS
ARE ENGINE OFF, THIS IS A STOP BV OUR
DEFINITION, OTHERWISE IT IS STALL.
STATUS:
-DEFINITIONS OF VARIABLES.
DAY 1*4. ..Julian Day number (1-99).
FLAGS ( 12) 1*4. . .Odd. . . 1 , 3 , 5 , 7 . 9 , 1 1 ; dr i v i ncj status
information; on/off; urban/rural.
Even..2,4,6,8,10,12;number of speeds to
read if the car is on.
HOT L* 1 ... True when hot start, otherwise false.
initial 1y true.
I 1*4. ..Counter.
ID I *4 . . . Vehic 1 e ID number.
NTEMPS 1*4...
OFFCT 1*4...Time (miri) car was off before trip.
OLDST 1*4...After 20 minutes off, counts once each
20 minutes (counter).
ONCT 1*4...Length of trip (sec) =TOTSS+GOSC (counter)
2 .1*4. ..Unit 2; Input file; Data file with flags.
SAVDAY I*4. . .Specific day. See variation with DAYLOG
vaIue.
SIXTSW L* 1 . . .
TEMP(6) 1*4...The six measured temperature data.
9 1*4. ..Unit 9; Output file; Temperatures for plot
TIME.! 1*4...24 hour clock time at end of stop.
TRIPCT I *4 . . . Sequent i a 1 trip number.
W
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
FTNCMD(
FTNCMD(
FTNCMD(
CMDNOE(
FTNCMD(
FTNCMO(
FTNCMD(
FTNCMD(
FTNCMD(
FTNCMD(
EMPTYFf
EMPTYF(
EMPTYF(
EMPTYF(
EMPTYF(
EMPTYF(
ASSIGN 2=SHVX:454.FLAGS;')
ASSIGN 2=454.FLAGS;')
'ASSIGN 3=-454.DAY;')
'$SET TIME=10', 12)
ASSIGN 4=-454.TRIP;')
'ASSIGN 6=-454.CMP;')
'ASSIGN 7=-454.STOP;')
'ASSIGN 8=-454.SPEED;')
ASSIGN 9=-454.TEMP;
)
'ASSIGN 10=-454.01AG;
'3
'4
'6
'8
9
' 10
CALL CMDNOE('$EMPTY -454? OK
INTEGER ITIME(6)
CALL RUNTME( ITIME)
16)
CALL GUINFO
WRITE(3, 19)
WRITE(4, 19)
WRITE(6, 19)
WRITE(7 . 19)
WRITE(8 .19)
( SIGNO^
ICCID, (
ICCID. (
ICCID. (
ICCID, (
ICCID, (
410' . ICCIC
TIME( I ) ,
TIME( I ) ,
TIME(I ) .
T1ME( I ) ,
fIME( I) ,
6)
6)
6)
6)
6)
-------
Listing of OCS STAT.FOR a't 13:12:38 on JUN 9. 1986 for CCtd = SHYX
Page
291
292
293
294
29f>
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
31 1
312
313
311
315
316
317
3 18
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
WRITE(9,19) ICC ID, (ITIME(I). I = 1, 6)
WRITE(10,19) ICCID, (ITIME(I), I = 1, 6)
19 FORMATUOX. A4 , 2X, 6A4 // )
WRITE (3,140)
WRITE (4,160)
WRITE (7.180)
WRITE (9.200)
WRITE (6.220)
LOGICAL*! SIXTSW, STALFL. GO. HOT
INTEGER XX, DAY, DAYNXT. TIME, TIMENX, FLAGS. FLAGNX. OLDST, ONCT,
1 TRIPCT, OFFCT, SAVDAY, DAYTRP, COMPL, TVPECT(3).
2 STRTCT(2), SPBAND, PRBAND, ACBAND
COMMON /CHCK/ DAYNXT, FLAGNX(12). IDNEXT, NDIFF. NFLGNX, NOFF,
1 NOFFCN. NOFFSC, MSEC, NSECNX, NSTCNT. NSTCNX, NS1FLG(6),
2 NSTFNX(6). NSTRIP, SPD(6,60). SPDNXT(6.60 ) , TEMPNX(6),
3 TIMENX. 1NIT. SPBAND(81). PRBAND(43). ACBAND(43,b1),
4 1SBSAV. SPDSAV, GODI, STOPSC, STOPDI, NSTAT(2,6),
5 NSTNX(2,6), NSTOT, NSTSEC, IFSTAL
COMMON /STATUS/ FLAGSU2)
COMMON /STUFF/ DAY. ID. NFLAG, TEMP(G), INCSPD
COMMON /LOGICL/ SIXTSW, STALFL, GO
COMMON /OFFMIN/ OFFCT
COMMON /IDAYT/ COMPL, DAYTRP, SAVDAY, STRTCT.. TYPECT
COMMON /ONTYPE/ HOT
SIXTSW = .TRUE.
DATA ONCT /O/, TRIPCT /O/
ASSUME FIRST TRIP IS A HOT START. THIS IS LOGICAL, SINCE
TECHNICIANS USUALLY HAVE PREPARED THE CAR FOR A NEW RUN
--FOR EXAMPLE, DYNO RUNS USED FOR QUALITY CONTROL.
ALSO INITIALIZE OFFCT (MINS).
IFSTAL = 0
NSTRIP = 0
NSTCNT = 0
NSTOT = 0
NSTSEC = 0
STALFL = .FALSE.
HOT = .TRUE.
OFFCT = 0
00
.WRITE TEMPERATURES TO TEMPLOG, AND INITIALIZE SAVDAY
.DO FIRST READ.
READ (2,240) NTEMPS
IF (NTEMPS .EQ. 5) SIXTSW = .FALSE.
INIT = 1
CALL CHECK(TIME,OLDST)
CALL CHECK(TIME,OLOST)
IF (SIXTSW) READ (2,160) DAY. TIME, ID. TEMP, FLAGS
-------
Listing of OCS_STAT.FOR at 1.3:12:38 on JUN 9, 1986 for CCid=SHYX Pago
349 C IF ( .NOT. SIXTSW) READ (2,180) DAY, TIME, ID, (TEMI'(1).I=1,5).
350 C 1 XX. FLAGS
351 IF (SIXTSW) WRITE (9.300) DAY. TIME, 10, TliMI'
352 SAVDAY = DAY
353 C
354 C ....DETERMINE STATUS OF FIRST RECORD
355 C
356 C THE LINE BELOW IS DONE TO INITIALIZE OLDST AND TO CAUSE
357 C ADDRESS 20 TO CAUSE A GO TOO 40. A GO TO 40 WOULD HAVE
358 C BEEN SUFFICIENT.
359 C
360 OLDST = FLAGSC1)
361 C
362 C ....CHECK FOR STATUS CHANGE BETWEEN MINUTES
363 C
364 20 IF (IABS(FLAGS(1) - OLDST) .EQ. 0) GO TO 40
365 C
366 IF (IABS(FLAGS(1) - OLDST) .EQ. 1) CALL ONOFF(TIME. OLDST, 1.
367 1 ONCT. TRIPCT)
368 C
369 IF (IABS(FLAGS(1) - OLDST) .EQ. 2) CALL URBRUR(TIME, OLDST. 1.
370 1 ONCT, TRIPCT)
371 C
372 GO TO 60
373 C
374 C DO CARON OR CAROFF CALCULATIONS
375 C
376 40 IF (FLAGS(l) .EQ. 1 .OR. FLAGS(l) .EQ. 3) CALL CARON(TIME,
377 1 FLAGSC2). ONCT, TRIPCT, OLDST, 1)
378 C
379 IF (FLAGS(l) .EQ. 2 .OR. FLAGS(l) .EQ. 4) CALL CAROFF(TIME)
380 C
381 C CHECK FOR STATUS CHANGES INSIDE MINUTE
382 C
383 60 I I = 3
384 80 IF (FLAGS(U) . EQ. 0) GO TO 120
385 IF(NSTAT(1,INCSPD-1).NE. 2.AND.II .LE. NFLAG) OLDST = FLAGS(II-2)
386 C .
387 IF (IABS(FLAGS(I I) - OLDST) .EQ. 1) CALL ONOFF(TIME, OLDST. II,
308 1 ONCT, TRIPCT)
389 C
390 IF (IABS(FLAGS(II) - OLDST) .EQ. 2) CALL URBRUR(TIME. OLDST, II,
391 1 ONCT, TRIPCT)
392 IF ( .NOT. (IABS(FLAGS(II) - OLDST) .EQ. 0)) GO TO 100
393 C
394 C The status has not changed, indicating
395 C
396 C
397 C
398 C OLDST = IFSTAL
399 100 IF(NSTAT(1.INCSPD-1).NE. 2.AND.II .LE. NFLAG) OLDST = FLAGS(II)
400 C 100 IF(ONCT .NE. 0 .AND.(FLAGS(I I) .EQ.2.OR.FLAGS(I I) .EQ. 4))
401 C 1 OLDST = FLAGS(II)
402 IFSTAL = 0
403 II = II + 2
404 C IF (II .GT. NFLAG) GO TO 20
405 C
406 IF (II .LE. 11) GO TO 80
-------
Listing of OCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCicl=SHVX
Page
107
408
409
410
41 1
412
413
4 14
415
416
4 17
4 18
419
420
421
422
423
424
425
426
4^7
4 7. !.i
429
430
431
432
433
434
435
436
437
438
439
440
44 1
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
c
c
c
120 IF(NSTAT( 1 , 1NCSPD - 1) .NE. 2) OLDST = FLAGSUI-2)
IF(IFSTAL .NE. 0) OLDST = IFSTAL
120 OLDST = FLAGS(II-2)
120 CONTINUE
READ NEXT RECORD
CALL CHECK(TIME. OLDST)
IF (SIXTSW) READ ( 2 , 1 60 . END= 1 20 ) DAV , TIME, ID, TEMP, FLAGS
ERROR IN OLD PROGRAM FOR < 6 SPEEDS.. SHOULDN'T
USE "I" WHICH IS FLAG COUNTER
*ERROR
IF ( .NOT. SIXTSW) READ ( 2 . 1 80 , END= 1 20 ) DAY, TIME, ID,
1 (TEMPU ) . 1 = 1 ,5) , XX, FLAGS
*ERROR
IF (S1XTSW) WRITE (9,300) DAY. TIME, ID, TEMP
GO TO ?(.)
120 CALL FINISH
STOP
140 FORMAT (' COMPL DAYTRP TYPECT(2) STRTCT(l) DAYDIS '/
1 ' SAVDAY TYPECT(l) TYPECT(3) STRTCT(2)',
2 ' LOAN*' )
160 FORMAT (' SAVDAY DAYTRP OLDST '. ' OFFCT . DISTN
1C AVEDBS TOTSS NSTRIP LOAN* ' /
2 ' TRIPCT SAVTIM START ',
3 ' AVESPD STOPCT ONCT GOSC ' .
4 ' NSTCNT '/)
180 FORMAT (' SAVDAY DAYTRP STOPCT '.
1 ' STOPDI LOAN*'/
2 ' TRIPCT TIME STOPSC ',
3 ' GOD I '/)
200 FORMAT ('DAY ID TEMP(2) TEMP(4) TEMP(6)'/
1 ' TIME TEMPO) TEMP(3) TEMP(5) '/)
220 FORMAT (' SAVOAY DAYTRP ONCT '/' TRIPCT SAVTIM ',
1 ' LOAN* ' )
240 FORMAT (12)
260 FORMAT (13, 15. 16, 6F4.0, 1214)
280 FORMAT (13, 15, 16, 5F4.0, A4 , 1214)
300 FORMAT (12. 15, 16, 6F4.0)
END
SUBROUTINE CARON(TIME, N, ONCT. TRIPCT. OLDST. Ill)
SBM . ...CARON STANDS FOR CAR ON.
11-29-83: MARY KAY MELICK. MODIFIED SUBROUTINE CARON TO FIX
BUG WHEN. CAR IS TURNED ON DURING A MINUTE AND HO SPEEDS
FOLLOW UNTIL THE NEXT MINUTE ALIAS N = 0. DI SCOVERF.D WI TH
OHIO DATA #206.
03-07-84: MARY KAY MELICK. MODIFIED SUBROUTINE CARON TO FIX
BUG WHEN TRIPS CONTINUE DURING MIDNIGHT. DISCOVERED
WITH OHIO DATA #312.
-------
Listing of OCS_STAT.FOR at 13:12:38 on JUN 9. 1986 for CCid=SHYX Page
465 C
466 C SUBROUTINE CARON LOGIC:
467 C READ N SPEEDS
468 C IF NEW TRIP
469 C THEN INITIALIZE COUNTERS
470 C
471 C DO 1 = 1 ,N
472 C IF STOP
473 C THEN INCREMENT STOP COUNTERS: TOTAL STOPS
474 C SECONDS AT THIS STOP
475 C ELSE INCREMENT GO COUNTERS: TOTAL GO SECONDS
476 C
477 C CALL SPDACC TO DO SPEED AND ACCEL BAND FREQUENCIES
478 C
479 C INCREMENT COUNTERS: TOTAL SECONDS
480 C DISTANCE TRAVELED
481 C END
482 C
483 C COMPUTE STATS:
484 C AVERAGE SPEED(MPH)=DISTANCE(METERS)/TOTAL SECONDS
485 C . *2.237(MILE-SEC/METER-HOUR)
486 C DISTANCE(MILES)=DISTANCE(METERS)/1609.34(METERS/MILE)
487 C AVEDBS=DISTANCE/(TOTAL STOPS - 1)
468 C WRITE TO OUTPUT FILE TRIPLOG AND SPEEDLOG
489 C END
490 C
491 C
492 C THE STOP IS DEFINED AS FOLLOWS: "
493 C ANYTIME THE SPEED DROPS FROM GREATER THAN 10 MPH TO LESS THAN
494 C 4 MPH AND THEN RETURNS TO GREATER THAN 10 MPH. HOWEVER. WHEN
495 C THE CAR IS PARKED, THE FIRST ACCELERATION AND THE LAST
496 C DECELERATION WILL BE CONSIDERED "STOPS." THE TIME SPENT AT A'
497 C STOP INCLUDES ONLY THOSE SECONDS WHEN THE SPEED IS BELOW 4 MPH.
498 C
499 C THE DISTANCE BETWEEN STOPS IS DEFINED AS FOLLOWS:
500 C THE DISTANCE TRAVELED WHEN THE CAR IS GOING 4 MPH AND GREATER.
501 C KEEP TWO COUNTERS:
502 C STOPDISTANCE (SPEED < 4)
503 C GODISTANCE (SPEED >= 4)
504 C THESE COUNTERS ARE RESET TO 0 AT THE END OF EACH STOP.
505 C
506 C STOP SECTION LOGIC (MAIN LOOP):
507 C DO 1 = 1 ,N
508 C IF GO=TRUE
509 C THEN IF SPEED < 10
510 C THEN IF SPEED < 4
511 C THEN GO=FALSE
512 C STOPSEC=STOPSEC+1
513 C STOPOISTANCE=STOPDISTANCE+METEKSPEEO
514 C ELSE GOSEC=GOSEC+1
515 C GODISTANCE=GODISTANCE+METERSPEED
516 C ELSE GOSEC=GOSEC+1
517 C GODISTANCE=GODISTANCE+METERSPEED
518 C
519 C ELSE (GO=FALSE) .
520 C IF SPEED < 4
521 C THEN STOPSEC=STOPSEC+1
522 C STOPDISTANCE=STOPDISTANCE+METeRSPEED
-------
Listing of OCS STAT.FOR at 13:'12:38 on JUN 9, 1906 for CCIci=SHYX
Page 10
523
f>21
525
r>2<>
527
!>2H
529
530
531
532
533
531
535
536
537
538
539
510
54!
512
513
514
515
516
517
518
519
550
551
552
553
551
555
556
557
558
559
560
561
562
563
561
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
ELSE IF SPEED >10
END
THEN STOPCT=STOPCT+1
GO=TRUE
TOTAL S TOPSFC=TOTAI STOPSFC* STOPSFC
WRITF. OUTPUT TO FILE STOPLOG
cioscc-oosi-ic* i
GODI STANCli = GODISI ANCE + MIVI ITUSPtkl)
STOPSEOO
ELSE GOSEC=GOSEC-H
GODI STANCE = GODI STANCF.+METERSPCED
OUTPUT FILES CONTENTS
DAYLOG:
COMPL:
SAVUAY
DAVTRP
URBCT:
COMBCT
RURCT:
HOTCT:
COLDCT
OAVD1S
TRIPLOG:
SAVDAY
TRIPCT
DAYTRP
SAVTIM
TYPE:
START:
OFFCT:
AVESPD:
DISTNC:
STOPCT:
AVEDBS:
ONCT:
TOTSS:
GOSC:
STOPLOG:
SAVDAY:
TRIPCT:
DAYTRP:
TIME:
STOPCT:
STOPSC:
STOPDI :
GODI :
SPEEDLOG:
SAVDAY:
0=PARTIAL DAY (*F AND *L DAYS)
1=COMPLETE DAY
DAY
TOTAL NUMBER OF TRIPS PER DAY # SAVDAY
NUMOER OF URBAN TRIPS
NUMBER OF COMBINATION TRIPS
NUMBER OF RURAL .TRIPS
NUMBER OF HOT STARTS
NUMBER OF COLD STARTS
TOTAL DISTANCE (MILES) TRAVELED DURING DAY It SAVDAV
DAY AT BEGINNING OF TRIP
SEQUENTIAL NUMBER OF TRIP
SEQUENTIAL NUMBER OF TRIP DURING DAY It SAVDAY
CLOCK (21-HOUR) TIME AT BEGINNING OF TRIP
1=URBAN
2=COMBINAT10N
3=RURAL
1=HOT START
2=COLD START
TIME(MINS) CAR WAS OFF BEFORE TRIP
AVERAGE SPEED DURING TRIP
DISTANCE TRAVELED DURING TRIP
TOTAL NUMBER OF STOPS PER TRIP
AVERAGE DISTANCE BETWEEN STOPS DURING TRIP
LENGTH (SEC) OF TRIP = TOTSS+GOSC
TOTAL STOP SECONDS OF TRIP
TOTAL GO SECONDS OF TRIP
DAY AT BEGINNING OF TRIP tt TRIPCT
SEQUENTIAL TRIP NUMBER ASSOCIATED WITH STOP
SEQUENTIAL NUMBER OF TRIP DURING DAY ป SAVDAY
TIME AT END OF STOP
SEQUENTIAL NUMBER OF STOP DURING TRIP # TRIPCT ,
LENGTH (SEC) OF STOP
DISTANCE TRAVELED DURING "STOP"
DISTANCE TRAVELED WHEN "GOING-
DAY AT BEGINNING OF TRIP ป TRIPCT
w
-------
Listing of OCS_STAT.FOR at 1.3:12:30 on JUN 9. 1906 for CCid=SHYX Page 11
581 C TRIPCT: SEQUENTIAL TRIP NUMBER
582 C DAYTRP: SEQUENTIAL NUMBER OF TRIP DURING DAY ป SAVDAY
583 C SAVTIM: TIME AT BEGINNING Of- TRIP
584 C ONCT: LENGTH (SEC) OF TRIP
505 C SPBAND.: 1X81 MATRIX OF TIME SPENT IN EACH SPEED BAND
586 C PRBAND: 1X43 MATRIX OF TIME SPENT IN EACH ACC tl.liH AT 1 ON HAND
507 C ACBAND: 81X43 MATRIX THAT COMBINES SPBAND AND PRBAND
588 C
589 C DEFINITIONS OF VARIABLES
590 C
591 C ACBAND(43.81)...1*4...Acceleration band: see table in subroutine
592 C SPDACC.
593 C AVEDBS R*4...Average distance between stops during trip.
594 C AVEDBS = DISTANCE / (total stops - 1)
595 C AVESPD R*4 ... Average speed during trip (MPH).
596 C COMBIN L* 1 . . .
597 C COMPL I*4. . .COMPL = 0 Partial day; COMPL=1 complete day.
598 C DAY 1*4... Julian day number (1-99).
599 C DAYDIS R*4. . .
600 C 3 Unit 3; Output file; Day statistics.
601 C DAYTRP 1*4...Trip number or- trip number total. Varies
602 C with DAYLOG.
603 C DISTNC R*4 .. .Distance travelled during trip (miles).
604 C GODI R*4. . .Distance travel led when going.
605 C GOSC 1*4...Total go seconds of trip.
606 C I L* I . . . I terat ion counter.
607 C M1DNIT L*l...Set to TRUE when trip occurs during
608 C mi dni te. ^
609 C MILSPD(60) R*4...Speed (MPH). See subroutine SPDACC.
610 C GO L*l...True when motor is on; False when off. j""|
611 C MTRSPD(60) R*4...Speed (Meters/sec). "METERSPEED"
612 C N 1*4. ..The number of seconds to be processed
613 C in the particular loop.
614 C OLDST 1*4. ..Old flag status. Used to compare with new.
615 C ONCT 1*4. . .Length of trip (sec) = TOTSS + GOSC.
616 C 10 Unit 10; Output file; Error checking file.
617 C 2 Unit 2; Input file; Data file with flags.
618 C PRBAND(43) 1*4...Matrix of time spent in each acceleration
619 C band.
620 C SAVDAY I*4. . .Specific day. See variation with DAYLOG
621 ' C vaIue.
622 C SAVTIM 1*4...24 hour clock time at beginning of trip.
623 C SPBAND(8I) 1*4...Speed band. See subroutine SPDACC.
624 C 8 Unit 8; Output file; Speed/Accel Bands.
625 C START I*4...1=hot start. 2 = cold start.
626 C STOPCT 1*4...See DAVLOG variation table. The number of
627 C stops.
628 C STOPDI R*4 ... Di stance travelled during stop.
629 C NOTE:THE UNITS OF THIS VARIABLE ARE
630 C CHANGED DURING PROGRAM EXECUTION.
631 C 7 Unit 7; Output file; Stop statistics.
632 C STOPSC 1*4...Length of stop (sec).
633 C STRTCT(2) 1*4. .. '
634 C TIME 1*4. ..24 hour clock time at end of stop.
635 C TOTSS 1*4... Total stop seconds of trip.
636 C TRIPCT I *4 . . . Sequent i a I trip number.
637 C 4 Unit 4; Output file; Trip statistics.
638 C TWO I *4 .. .Contains the Integer "2" ;Hard I y used.
-------
l.istimj of OCS_STAT.FOR at 13:12:38 on JUN 9, 1986 for CCid=SHYX
Page
12
63<)
640
641
612
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
C
C
C
C
C
C
C
C
C
CC
C
C
C
C
C
C.
C
C
C
C
C
C
C
C
C
C
C
Will change to "2" where required
and deIete 1 ater.
TYPECTC3) 1*4...
INTEGER STOPCT, SSTEMP, STOPSC. TOTSS. GOSC. SAVTIM. TWO. START
REAL MILSPD(60). MTRSPD(60)
LOGICAL*! SIXTSW. STALFL. GO. HOT, COM01N. M1DNIT
INTEGER XX. DAV. DAYNXT, TIME. TIMlfNX, FLAGS, FLAGNX, OLDST. ONCT
I TRIPCT, OFFCT, SAVDAY , OAVTRP, COMf'L , T YI'EC f ( 3) ,
2 STRTCT(2). SPI3AND, PRBAND, ACDAND
COMMON /CHCK/ DAYNXT, FLAGNX(12), 1DNEXT. NDIFF, NFLGNX. NOFF.
1 NOFFCN. NOFFSC, NSEC. NSECNX. NSTCNT. NSTCNX, NSTFLGC6),
2 NSTFNX(6). NSTRIP, SPD(6.60), SPDNXT (6,60) . TEMPNX(6),
3 TIMENX, INIT. SPQAND(81), PRBAND(43), ACBAND(43,81),
4 ISBSAV. SPDSAV, GODI , STOPSC, STOPDI , NSTAT(2,6),
5 NSTNX(2.6). NSTOT, NSTSEC. IFSTAL
COMMON /STATUS/ FLAGS(12)
COMMON /STUFF/ DAY. ID. NFLAG, TEMP(6). INCSPD
COMMON /LOGICL/ SIXTSW. STALFL, GO
COMMON /OFFMIN/ OFFCT
COMMON /IDAYT/ COMPL, DAYTRP, SAVDAV.' STRTCT, TYPECT
COMMON /ONTYPE/ HOT
COMMON /RDAYT/ DAYDIS
COMMON /COMBO/ COMBIN
COMMON /LMIDNT/ MIDNIT
DATA TWO 121
STALFL = .FALSE.
WRITE (10,340) DAY, TIME, ID
SET THE MIDNIGHT FLAG IF MIDNIGHT OCCURS DURING A TRIP
ONLY IF 'DURING' TRIP, NOT IF TRIP 'BEGINS' AT MIDNIGHT!
IF (TIME .EQ. 0 .AND. ONCT .NE. 0) MIDNIT = .TRUE.
READ SPEEDS
IF. (N .EQ. 0) GO TO 220
READ (2.380) (MILSPD(I).I=1,N)
W
.RETRIEVE NEXT SPEEDSET FROM 'SPD' ARRAY.
IF (FLAGS(INCSPD*2 - 1) .EQ. 2 .OR. FLAGS(INCSPD*2 - 1) .EQ. 4)
1INCSPD = INCSPD + 1
WATCH THIS (ABOVE) FOR POTENTIAL BUG
DO 20 I = 1. N
20 MILSPD(I) = SPD(INCSPD.I)
INCSPD = INCSPD + 1
-------
Listincj of OCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCiU = SMVX
Page
13
697
698
699
700
701
702
703
704
705
706
707
700
709
710
71 1
7 1 2
713
714
715
7 16
7 17
7 HI
7 1U
720
721
722
723
724
725
726
727
72fl
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
CHECK IF THIS IS A NEW TRIP
IF (ONCT .NE. 0) GO TO 80
INITIALIZE COUNTERS FOR EACH CARON PERIOD
NSTSEC
NSTOT
NSTCNT
NSTRIP
GOSC
STOPSC
STOPCT
AVEDBS
TOTSS
GO
COMOIN
NSTSEC
NSTOT
0
0
0
0
0
0
0
.FALSE.
.FALSE.
NSTCNT
NSTRIP
C
C THE FOLLOWING (JUNK) COMMENTED OUT DURING THE MIDNIGHT FIX:
C
C'MKM IF (TIME .NE. 0) GO 10 31
C'MKM
C*MKM
C*MKM
C*M25
C*MKM
C'MKM
C*MKM
C*MKM
C*M26
C*MKM
C*MKM
C*M27
C*MKM
C*MKM
C'MKM
C'MKM
C'M31
C'MKM
C
DAYD IS=DAYDIS/1609.34
WRITE(3.25)COMPL.SAVDAY,DAVTRP.TYPECT.STRTCT,OAYDIS
FORMAT(8I6,F10.3)
DAYTRP=0
DO 26 1=1,3
TYPECT(I)=0
CONTINUE
DO 27 1=1,2
STRTCT(I)=0
CONTINUE
DAVDIS=0.0
COMPL=1
TRIPCT=TRIPCT+1
DAYTRP=DAVTRP+1
Ui
CONTINUE WITH INITIALIZING FOR A CARON PERIOD
AVESPD
NSTOT
NSTSEC
NSTRIP
NSTCNT
DISTNC
GODI =
STOPDI
SAVDAY
SAVTIM
TRIPCT
DAYTRP
0.0
0
0
0
0.0
0.0
.0
0.0
DAY
TIME
TRIPCT
DAYTRP
.Zero all "band" arrays.
-------
Listiny of OCS_STAT.FOR at 13:12:38 on JUN 9. 1986 for CCid=SHYX Page 14
755
756
757
758
759
760
761
762
763
761
765
766
767
768
769
770
77 1
772
773
774
775
776
777
7711
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
BOO
B01
802
803
804
805
806
807
808
809
810
8 1 1
8 12
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
c
DO 60 I = 1 . 81 .
SPBAND(I) = 0
DO 40 J = 1 , 43
PRBAND(J) = 0
40 ACBAND(J.I) = 0
60 CONTINUE
TAKE CARE OF ODD SITUATIONS THAT OCCUR IMMEDIATELY AFTER THE
CALIBRATION MODE.
IF (MILSPD(l) .LE. 10.) GO TO 80
GO = .TRUE.
MAIN CARON SECTION
CONVERT SPEED FROM MILES/HOUR TO METERS/ SECOND TO AID IN
COMPUTING DISTANCE--(*0.447) . LATER, CONVERT DISTANCE
BACK TO MI LES--( / 1609. 34 ) .
80 DO 200 I = 1 , N
STOP SECTION
MTRSPD(I) = MILSPO(I) * 0.447
IF ( .NOT. GO) GO TO 120
IF (MILSPD(I) .GE. 10. .OR. MILSPD(I) . GE . 4.) GO TO 100
.... MILSPD( I ) IS < 4
GO = .FALSE.
STOPSC = STOPSC + 1
.... Temporary write for error checking- used unit 3 for
conveni ence .
WRITE(3. 1000) I, STOPSC, TIME, INCSPD. MI LSPOl I ) , SPD( I NCSPD" 1 , I )
C1000 FORMAT( ' I = ',12,' S TOPSC= ' , 1 4 , ' TIME=',I3,J I NCSPt)= ' , I 2 .
C
C
C
C
C
C
c
c
c
c
c
1 ' MILSPDU )=' ,F5. 1 , ' SPD=',F5.1)
THE BELOW IS TRUE SINCE WE ARE USING THE SPEED (MET/SEC)
TO DISTANCE (METER) OVER A 1 SECOND INTERVAL
STOPDI = STOPDI + MTRSPD(I)
GO TO 180
MILSPDC I ) > 4
100 GOSC = GOSC + 1
GODI = GODI + MTRSPD(l)
GO TO 180
. .STOP CONDITIONS
-------
Listing of OCS_STAT.FOR at 13:12:38 on JUN 9. 1906 for CCid=SHVX
Page
15
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
B38
839
840
84 1
842
843
844
845
846
847
848
849
850
851
852
853 >
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
120 IF (MILSPD(I) .GE.-10.) GO TO 140
STOPSC = STOPSC + 1
STOPDI = STOPDI + MTRSPD(I)
C
C
C
C
C
C
CC140
CC
C
CC
C
140
CC160
.....Temporary write for error checking;used unit 3 for
conven i ence.
WRI'TEO. iooo) i. STOPSC. TIME. INCSPD, MILSPD(I) ,SPD(INCSPD-I , i)
GO TO 180
GOSC = GOSC + 1
GODI = GODI + MTRSPD(I)
GO TO 160
STOPCT = STOPCT + 1
STOPCT = STOPCT + 1
TOTSS = TOTSS ซ STOPSC
STOPDI = STOPDI / 1609.34
GODI = GOOI / 1609.34
WRITE "STOPLOG" OUTPUT ON UNIT 7
WRITE (7,380) SAVDAV, TRIPCT, DAVTRP, TIME, STOPCT, STOPSC,
1 STOPDI, GODI, ID
GO = .TRUE.
STOPSC = 0
STOPDI = 0.0
GODI = MTRSPD(I) / 1609.34
GOSC = GOSC * 1
. SPEED BAND SECTION
180 CALL SPDACC(ONCT. MILSPD(I), SPBAND, PRBAND, ACBAND, ISBSAV,
1 SPDSAV)
C INCREMENT TRIP COUNTERS SECTION
ONCT = ONCT + 1
DISTNC = DISTNC + MTRSPD(I)
DAYDIS = DAVDIS + MTRSPD(I)
200 CONTINUE
C
220 RETURN
C
C
C COMPUTE STATS FOR A CARON PERIOD
C
C THE STOP SECTION DOES NOT CATCH STOPS AT ENDS OF TRIPS SINCE
C SPEED NEVER GOES ABOVE 10 MPH. FIND THOSE STOPS HERE AND WRITE
C RESULTS TO STOPLOG AND CORRECT TOTALSTOPSEC FOR TIMPLOG.
C
C CALLED FROM ONOFF
C
ENTRY STATON(OLDST)
IF (ONCT .GT. 0) AVESPD = DISTNC * 2.237 / ONCT
DISTNC = DISTNC /, 1609.34
IF (STOPSC .EQ. 0) GO TO 240
STOPCT = STOPCT + 1
TOTSS = TOTSS + STOPSC
-------
Listimj of OCS_STAT.FOR at 13:12:38 on JUN 9, 1906 for CCid=SHYX
Page
16
1171
8/2
073
074
875
876
877
878
1)79
080
881
882
883
804
805
806
887
888
889
890
891
892
093
894
895
896
897
898
899
900
901
902 .
903
904
905
906
907
908
909
910
91 1
912
913
914
9 15
916
917
9 18
919
920
92 1
922
923
924
925
926
927
928
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
c
c
STOPDI = STOPDI / 1609.34
GODI = GOD I / 1609.31
NSTOT - NSTOT + NS1HIP
NSTSEC = NSTSEC + NSTCNT
.WRITE "STOPLOG11 OUTPUT ON UNIT 7.
WRITE (7,380) SAVDAV. TRIPCT, DAVTRP. TIME, STOPCT, SPOPSC,
1STOPDI, GODI, ID
STOPSC =0
STOPDI =0.0
GODI =0.0
NSTRIP = 0
NSTCNT = 0
240 IF (STOPCT .GT. 1) AVEDBS = DISTNC / (STOPCT - 1)
IF (STOPCT .EQ. 1) AVEDBS = DISTNC
IF (HOT) GO TO 260
START = 2
STRTCT(START) = STRTCT(START) + 1
GO TO 280
260 START = 1
STRTCT(START) = STRTCT(START) + 1
280 IF (COMBIN) GO TO 300
TYPECT(OLDST) = TYPECT(OLDST) + 1
.WRITE "TRIPLOG" OUTPUT ON UNIT 4.
GO
WRITE (4,400) SAVDAY, TRIPCT, DAYTRP, SAVTIM, OLDST, START, OFFCT,
1AVESPD. DISTNC, STOPCT, AVEDBS, ONCT, TOTSS, GOSC, NSTOT, NSTSEC,
2ID
GO TO 320
300 WRITE (4,400) SAVDAY, TRIPCT, DAVTRP, SAVTIM, TWO, START, OFFCT.
1AVESPD, DISTNC, STOPCT, AVEDBS, ONCT, TOTSS. GOSC, NSTOT, NSTSEC,
2ID
TYPECT(TWO) = TYPECT(TWO) + 1
320 CONTINUE
.WRITE "SPEEDLOG" OUTPUT ON UNIT 6 (COMPRESSED)
WRITE (6,420) SAVDAY, TRIPCT, DAYTRP, SAVTIM, ONCT, ID
CALL CMPRES(SPBAND, PRBAND, ACBAND)
.WRITE "SPEEDLOG" OUTPUT ON UNIT 8.
WRITE (8,420) SAVDAY, TRIPCT, DAYTRP, SAVTIM, ONCT, ID
WRITE (8.440) (SPBAND(I),I=1,81)
WRITE (8.460) (PRBAND(I).I=1,43)
WRITE (8,480) ((AC8ANDU , J) . 1 = 1 ,43) , J=1 .81 )
-------
Listing of OCS STAT.FOR at 13:12:38 on JUN 9. 1986 for CCid=SHVX
Page 17
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
94H
919
950
95 1
952
953
954
955
956
957
908
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
98G
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
RETURN
WRITE LAST (INCOMPLETE) DAY'S STATISTICS TO DAYLOG
ENTRY FINISH
COMPL = 0
DAYDIS = DAVDIS / 1609.34
.WRITE "DAYLOG" OUTPUT ON UNIT 3.
WRITE (3.500) COMPL, SAVDAY. DAYTRP. TVPECT. STRTCT, DAYDIS, ID
RETURN
340 FORMAT (' '. 'CAR ON ',3(16,5X) )
360 FORMAT (F6. 1 , 19F5. 1 )
380 FORMAT (616. 2F10.3, 16)
400 FORMAT (416, 212. 16, 2F10.3. 16. F10.3. 616)
420 FORMAT (616)
440 FORMAT.(' '. 'SPEED ', 8116)
460 FORMAT (' '. 'ACCEL '. 4315)
480 FORMAT (' '. 'COMB1N ', 4315)
500 FORMAT (816. F10.3, 16)
END
SUBROUTINE CAROFF(TIME)
SBM....CAROFF STANDS FOR CAR OFF.
03-07-84: MARY KAY MELICK. MODIFIED SUBROUTINE CAROFF TO FIX
BUG WHEN TRIPS CONTINUE DURING MIDNIGHT. DISCOVERED
WITH OHIO DATA #312. NOTE: THIS ROUTINE WAS ENTIRELY
RESTRUCTURED.
For the first 8 hours of "caroff", data is recorded once per
minute. Then after 20 minutes, data is recorded every 20 minutes.
SINCE THE RECORDING DEVICE ONLY RECORDS EVERY 20 MINUTES AFTER
THE CAR HAS BEEN OFF FOR 8 HOURS, OFFCT(MINS) MUST BE CALCULATED
INSTEAD OF SIMPLY INCREMENTED.
ALSO, MUST CHECK FOR "ON THE HOUR" AND MIDNIGHT DISCONTINUITIES.
.DEFINITIONS OF VARIABLES.
COMPL 1*4. . .COMPL = 0 Partial clay; COMPL=1 Complete day.
DAY 1*4... Julian day number (1-99).
DAYDIS R*4. . .
3 Unit 3; Output file; Day statistics.
DAYTRP 1*4...Trip number or trip number total. Varies
with DAYLOG.
DIFF 1*4. ..TIME - OLDTIM. If > 20, DIFF = OlFF - 40
MIDNIT L*l...Set to TRUE when trip occurs during
midnight. i
OFFCT 1*4...The amount of time the car is off.
OLDTIM... 1*4. ..The old time. This is to be compared with
the new.
10 Unit 10; Output file; Error checking file.
SAVDAY I*4. . .Specific day. See variationwith DAYLOG
vaIue.
-------
Listing of OCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCid=SHYX
Page
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
IOD8
1 009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
103B
1039
1040
1041
1042
1043
1044
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
STRTCT(2) .......1*4...
TIME 1*4. ..24 hour clock time at end of stop.
TYPECT(3) 1*4. ,.
INTEGER DIFF, OLDTIM
LOGICAL*! SIXTSW. STAI.FL. GO, HOT. MIONIT
INTEGER XX, DAY, DAVNXT, TIME, TIMENX. FLAGS. FLAGNX. Ol.DST. ONCT,
1 TRIPCT, OFFCT. SAVDAY . DAYTRP. COMf'L . TYI'l-CT (3) .
2 STRTCT(2), SPBAND, PRBANO, ACBANO
COMMON /CHCK/ DAYNXT, FLAGNX(12), IDNEXT, NDIFF. NFLGNX, NOFF ,
1 NOFFCN. NOFFSC, NSEG, NSECNX. NSTCNT, NSTCNX. NSTFLG(6).
2 NSTFNX(6), NSTRIP. SPD(G.liO). SPDNXT(6.60), TEMPNX(6).
3 TIMF.NX. INIT, SPBANO(U'I). PRBAND(43). ACBAND ( 43 , H 1 ) ,
4 ISBSAV, SPOSAV. GOD I, STOPSC , STOPUI, NSTAT(2,6).
5 NSTNX(2,6), NSTOT, NSTSEC, IFSTAL
COMMON /STATUS/ FLAGS(12)
COMMON /STUFF/ DAY, ID. NFLAG, TGMP(6). INC.SPI)
COMMON /LOGICL/ SIXTSW, STALFL, GO
COMMON /OFFMIN/ OFFCT
COMMON /IDAYT/ COMPL, DAYTRP. SAVDAY, STRTCT, TYPECT
COMMON /ONTYPE/ HOT
COMMON /RDAYT/ DAYDIS
COMMON /LMIONT/ MIDNIT
STALFL = .FALSE.
IF ( .NOT. STALFL) WRITE (10,140) DAY, TIME, ID
SPECIAL HANDLING FOR MIDNIGHT DURING A CAROFF PERIOD .OR.
THE FIRST CAROFF MINUTE AFTER MIDNIGHT OCCURRED DURING
THE LAST TRIP.
20 IF (TIME .NE. 0 .AND. ( .NOT. MIDNIT)) GO TO 80
WRITE OUT DAY TOTALS AT MIDNIGHT
DAYDIS = DAYOIS / 1609.34
WRITE (3.160) COMPL, SAVDAV, DAYTRP, TYPECT. STRTCT. DAYDIS, ID
MIDNIT = .FALSE.
ZERO OUT DAY TOTALS
DAYTRP = 0
DO 40 I = 1 , 3
40 TVPECT(I) = 0
to
o
-------
Listing of OCS STAT.FOR at 1.3:12:38 on JUN 9, 1986 for CCid=SHVX
Page
19
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
10(56
1067
1068
1069
1070
107 1
1072
1073
1074
10V5
1076
1077
1078
1079
1080
1081
1082
1083
1084
1005
10B6
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1 100
1101
1 102
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
DO 60 I = 1 , 2
60 STRTCT(I) = 0
DAYDIS = 0.0
COMPL = 1
SAVDAY = DAY
CHECK THAT THIS IS NOT THE FIRST MINUTE OF A CAROFF PERIOD
IF (OFFCT .EQ. 0) GO TO 120
OFFCT = OFFCT + 2360 - OLDTIM
GO TO 100
TIME NOT MIDNIGHT. CHECK FOR HOUR CHANGEOVER AND 20 MINUTE
PROBLEMS BEFORE INCREMENTING OFFCT.
BUT FIRST, CHECK THAT THIS IS NOT THE FIRST MINUTE OF A CAROFF PERIOD
80 IF (OFFCT .EQ. 0) GO TO 120
DIFF = TIME - OLDTIM
IF (DIFF .GT. 20) DIFF = DIFF - 40
OFFCT = OFFCT + DIFF
100 IF (OFFCT .GE. 480) HOT = .FALSE.
OLOT1M = TIME
INCSPD = INCSPD + 1
RETURN .
SPECIAL HANDLING FOR FIRST MINUTE DURING CAROFF PERIOD
120 OFFCT = OFFCT + 1.
OLDTIM = TIME
INCSPD = INCSPD + 1
RETURN
140 FORMAT (' '. 'CAR OFF '. 16, 2(5X, 16) )
160 FORMAT (816, F10.3, 16)
END
SUBROUTINE ONOFF(T1ME, OLOST, J. ONCT. TRIPCT)
N3
SBM ONOFF STANDS FOR 'ON OFF'.
DEFINITIONS OF VARIABLES.
DAY 1*4. ..Julian day number (1-99).
FLAGS(12) 1*4.. .Odd. ..l,3,5.7,9,ll;driving status
information; on/off; urban/rural.
Even..2,4,6,8,10,12;number of speeds to
read if the car is on.
FORGET(GO) R*4... Dummy variable read in. Number of fields
varies.
HOT L* 1 . . .
JJ 1*4. ..Used as FLAGS(J+1) substitution once.
Could be chanyed.
OFFCT 1*4...
OLOST 1*4...Old onoff status to be compared with new.
-------
Listing of OCS STAT.FOR at 13:12:38 on JUN 9, 19U6 for CCid=SHYX
Page
20
1 103
1 101
1 105
1 106
1 107
1 1 00
1 109
1 10
1 1 1
1 12
1 13
1 14
1 15
1 16
1 17
1 18
119
1 120
1121
1 122
1 23
1 24
1 25
1 26
1 27
1 20
1 29
1 130
1131
1 132
1 133
1 134
1 135
1 136
1 137
1 138
1 139
1 140
1141
1 142
1 143
1 144
1 145
1 146
1 147
1 148
1 149
1 150
1151
1152
1 153
1 154
1 155
1 156
1 157
1 158
1 159
1 160
C
C
C
C
C
C
C
C
C
C
C
C
C
C
ONCT 1*4 ..Length of trip (sec) = TOTSS + GOSC
2 Unit 2- Input file' Data file- with flags
TIME .1*4. ..24 hour clock t i nu1 at be cj ining of trip.
TRIPCT..; I *4 . . . Sequent i a 1 trip number
DIMENSION FORGET(60) '
LOGICAL*! SIXTSW. STALFL, GO, HOT
INTEGER XX. DAV, OAYNXT . TIME, TIMENX, FLAGS, FLAGNX, OLDST , ONCT
1 TRIPCT. OFFCT, SAVDAY . OAYTRP . COMPL , TYPECT(3).
2 STRTCT(2), SPUAND. PRBAND, ACQAND. STOPSC
COMMON /CHCK/ DAVNXT . FLAGNX(12), IDNEXT, NDIFF. NFLGNX, NOFF .
1 NOFFCN, NOFFSC, NSEC . NSECNX , NSTCNT. NSTCNX . NSTFLG(6).
2 NSTFNX(6), NSTRIP. SPD(6,60), SPDNXT ( 6 , 60) , TEMPNX(6).
3 TIMENX, IN1T. SPI3ANO(81). PRBANDM3). ACBANO ( 43 . 8 1 ) ,
4 ISDSAV, SPDSAV, GODI, STOPSC, STOPDI. NSTAT(2.6),
5 NSTNX(2,6). NSTOT, NSTSEC, IFSTAL
COMMON /STATUS/ FLAGSfl?)
COMMON /STUFF/ DAV, ID. NFLAG. TEMP(6). 1NCSPD
COMMON /LOGICL/ SIXTSW. STALFL. GO
COMMON /OFFMIN/ OFFCT
COMMON /IDAVT/ COMPL, DAYTRP, SAVDAY, STRTCT, TYPECT
COMMON /ONTYPE/ HOT
IF (FLAGS(J) .GT. OLDST) GO TO 20
IF (FLAGS(J) .LT. OLDST) CALL CARON(TIME, FLAGSCJ ซ 1), ONCT,
i TRIPCT. OLDST, j)
RETURN
C COMPUTE LAST CARON STATS
C
20
C
C
C
C
C
C2300
C
C
C
C
STALFL = .FALSE.
IF (NSTAT( 1 . INCSPfO . EQ . 2) STALFL = .TRUE.
IF ( .NOT. STALFL) GO TO 40
WRITE "DI AGNOST1CSLOG" OUTPUT ON UNIT 10
WRITE( 10, 2300) I NCSPD . TIME , NFLAG , FLAGS (NFLAG) , F LAGS ( NFLAG- 1 ) .
1 NSTAT( 1 . I NCSPD) ,NSTAT(2. I NCSPD)
FORMAT(' INCSPD=' . I 12, ' TIME='.I5,' NFLAG=',I3,' FLAGS ( NFLAG) = '.
1 I3,/' FLAGS(NFLAG~1 ) = ' , 13. ' NSTAT ( 1 . INCSPD= ' , I 1 0 ,
2 ' NSTAT(2. INCSPD^' , I10/)
WRITE (10,80) TIME, NSTAT ( 2 . I NCSPD)
IF(STOPSC .LT. 0) STOPSC = 0
STOPSC = STOPSC + NSTAT(2, INCSPD)
GO = .FALSE.
ONCT = ONCT + NSTATf 2 , INCSPD)
IF(NFLAG .NE.'J+1) OLDST = FLAGS(J)
IFSTAL = OLDST
NSTRIP = NSTRIP + 1
w
-------
Listing of DCS STAT. FOR at 1.3 :M 2 : 38 on JUN 9. 1986 for CCId = SHVX
Page 21
1161
1 162
1 163
1 164
1 1 65
1 166
1 167
1 168
1 169
1 170
1171
1 172
1 173
1 174
1 175
1 176
1 177
1 178
1 179
1 180
1181
1 182
1 183
1 184
1 185
1 186
1 187
1 188
1 189
1 190
1191
1 192
1 193
1 194
1 195
1 196
1 197
1 198
1 199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
NSTCNT = NSTCNT ซ NSTAT(2.INCSPD)
1NCSPD = INCSPD + 1
GO = . FALS.E.
RETURN
40 IF (FLAGS(J + 1) . EQ . 0) GO TO 60
JJ = FLAGSCJ + 1)
READ (2.60) (FORGETd ) , 1 = 1 , JJ)
60 CALL STATON(OLOST)
IF( NSTAT(1,J/2) .EQ. 2) GO TO 50
RESET ON AND OFF COUNTERS
ONCT = 0
OFFCT = 0
HOT = .TRUE.
CALL CAROFF(TIME)
50 CALL CAROFFf TIME)
RETURN
80 FORMAT (' CAR STALL AT',
16, ' FOR '. 14, ' SECONDS')
100 FORMAT (F6. 1 , 19F5. 1 )
END
SUBROUTINE URBRUR(TIME, OLDST, K, ONCT, TRIPCT)
bd
l-o
SBM UR8RUR STANDS FOR URBAN/RURAL MODES.
DEFINITIONS OF VARIABLES
COMBIN L* 1 . . .
DAV 1*4... Julian day number (1-99).
FLAGS( 12) 1*4.. .Odd. . . 1 , 3 . 5 . 7 , 9 , 1 1 ; dr i v i ruj status
information; on/off; urban/rural.
Even . .2,4,6,B,10,12;number of speeds to
read if the car is on.
OLDST 1*4...Old on/off status to be compared to new.
ONCT I*4...Lenyth of trip (sec) = TOTSS + GOSC
10 Unit 10; Output file; Error checking file.
TIME 1*4. ..24 hour clock t i me at end of stop.
TR I PCT 1*4... Sequent i a I trip number .
LOGICAL*! SIXTSW. STALFL. GO. HOT, COMBIN
INTEGER XX. DAY. DAYNXT, TIME. TIMENX. FLAGS, FLAGNX, 0L.OST . ONCT,
1 TRIPCT. OFFCT. SAVDAY, DAYTRP. COMPL, TYPECT(3),
2 STRTCT(2). SPDAND, PRBAND, ACBAND
COMMON /CHCK/ DAYNXT, FLAGNX(12), 1DNEXT, ND1FF. NFLGNX, NOFF,
1 NOFFCN, NOFFSC. NSEC , NSF.CNX. NSTCNT. NSTCNX. NSIFL(i(6),
2 NSTFNX(6), NSTRIP, SPD(6.60), SPDNXT(6,60), TtMPNX(6),
-------
I. istiny of OCS STAT. FOR at 13:12:38 on JUN 9, I98ti for CCicl=SHYX
Page
22
219
220
221
222
223
224
225
226
227
228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1 230
1 2 4 fl
1 24 1
1 242
1243
1 244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
264
265
266
267
268
269
270
271
272
1273
1274
1275
1276
C
C
C
C
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
3
4
5
COMMON
COMMON
COMMON
COMMON
COMMON
COMMON
COMMON
COMB IN
TIMENX, INIT, SPBAND(Bl). PRBAND(43). ACHANO ( 43 . H 1 ) .
ISBSAV, SPDSAV, GODI. STOPSC. STOPD1 . NSTAT(2.f>).
NSTNX(2.6), NSTOT, NSTSEC, IFSTAL
/STATUS/ FLAGS(12)
/STUFF/ DAY. ID, NFLAG. TEMP(G), INCSPD
/LOGICL/ SIXTSW, STALFL, GO
/OFFMIN/ OFFCT
/IDAYT/ COMPL, DAYTRP, SAVDAV . STRTCT , TYPECT
/ONTYPE/ HOT
/COMBO/ COMB1N
= .TRUE.
IF (FLAGS(K) .GT. OLOST) GO TO 20
C
C
C
C
C
^ WRITE
GO TO
20 WRITE
WRITE "01 AGNOSTI CSLOG" OUTPUT ON. UNIT 10
( 10. GO)
40
(10.00)
40 IF (FLAGS(K) . EO . 1 -OR. FLAGS(K) .EQ. 3) CALL CARON(TIME,
1 FLAGS(K + 1), ONCT. TRIPCT, OLDST . K)
IF (FLAGS(K) .EQ. 2 .OR. FLAGS(K) .EQ. 4) CALL CAROFF(TIME)
C
C
C
C
C
c
OLDST
RETURN
60 FORMAT
80 FORMAT
END
BLOCK
COMMON
I
2
3
4
5
COMMON
COMMON
COMMON
COMMON
COMMON
COMMON
COMMON
COMMON
= FLAGS(K)
(' '. 'RURAL TO URBAN CHANGE')
(' '. 'URBAN TO RURAL CHANGE')
DATA
/CHCK/ DAYNXT, FLAGNX(12), IDNEXT. NDIFF. NFLGNX, NOFF.
NOFFCN. NOFFSC. NSEC , NSECNX, NSTCNT, NSTCNX. NSTFLG(6).
NSTFNX(6), NSTRIP, SPD(6,60). SPDNXT ( 6 , 60 ) . TEMPNX(6).
TIMENX. INIT, SPBAND(Bl), PRBAND(43), ACBAND ( 43 , 8 1 ) ,
ISBSAV. SPDSAV, GODI, STOPSC, STOPD1, NSTAT(2.6),
NSTNX(2,6). NSTOT. NSTSEC. IFSTAL
/STATUS/ FLAGSO2)
/STUFF/ DAY, ID, NFLAG. TEMP(6), INCSPD
/LOGICL/ SIXTSW. STALFL. GO
/OFFMIN/ OFFCT
/IDAVT/ COMPL, DAYTRP, SAVDAY , STRTCT, TYPECT
/ONTYPE/ HOT
/RDAYT/ DAYDIS
/LMIDNT/ M1DNIT
LOGICAL*) SIXTSW, STALFL, GO, HOT, MIDNIT
INTEGER XX, DAY, DAYNXT, TIME, TIMENX. FLAGS, FI.AdNX. OLDST, ONCT,
1 TRIPCT. OFFCT, SAVDAY, DAYTRP. COMPL. TYPECT(3),
-------
Listimj of DCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCUI=SHYX
Pacje 23
1277
1278
1?79
1 280
1281
1282
1283
1284
1285
1286
1286. 3
1 206. 4
1286.5
1286.6
1 28V
1288
1289
1 290
1291
1292
1293
1 294
1295
1 296
1297
1298
1 299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
C
c
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
2 STRTCT(2). SPUANO, PRBAND, ACHAND
DATA FLAGS /12*0/, SAVOAV /O/, DAY1UP /()/, COMPL /(>/. 1VPECI /3*0/
1 ' , STRICT /2*0/, DAY01S /O.O/, MIONIT / .FALSE.'/
END
SUBROUTINE SPDACC(ONCT, RSPEED, SPBAND, PRBAND, ACBAND. ISBSAV.
1 SPDSAV)
THIS SUBROUTINE WAS TOTALLY REWRITTEN BY STEVEN D. M1CHL1N
USING A CHEAPER, MORE EFFICIENT AND MORE ACCURATE ALGORITHM
THAN THAT PREVIOUSLY USED.
SBM. ...... SPDACC STANDS FOR ' SPEED-ACCEI ERAT10N ' .
THE SPEED BANDS ARE SET UP AS FOLLOWS:
SPEED(RSPEED) SPEED 13AND( SPBAND)
0.0-1.0 1
1.01-2.0 2
2.01-3.0 3
79.01 - 80.0 80
SPEED BANDS ARE DETERMINED BY ROUNDING UP THE SPEED.
THE ACCELERATION BANDS ARE SET 'UP AS FOLLOWS:
ACCEL(M/H-S) ACCEL BAND(PRBAND)
- -5.01 1
-5.00 - -4.76 2
-4.75 - -4.51 3
-4.50 - -4.26 4
-4. 25 - -4.01 5
-4.00 - -3.76 6
-1 .00 - -0.76 18
-0.75 - -0.51 19
-0.50 - -0.26 20
-0.25 - -0.01 21
-0.0099 - 0.0099 22
0.01 - 0.25 23
0.26 - 0.50 24
0.51 - 0.75 25
0.76 1 .00 26
4.01 - 4.25 39
4.26 - 4.50 40
Ul
-------
Listing of OCS_STAT.FOR at 13:12:38 oil JUN 9, 1906 for CCid=SHYX
Page 24
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
134 1
1342
1343
1344
1345
1346
1347
1340
1349
1350
135 1
1352
1353
1354
1355
1356
1357
135U
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
13H5
1386
1387
13QU
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c:
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
4.51 - 4.75
4.76 - 5.00
5.10
ACBAND SUBSCRIPT MAP
41
42
43
( BELOW)
PICK SPEED BASER ON SPEED 1.
SPEED BASED ON PREVIOUS SPEED
SPEED BANDป 1 2
BAND
n
4
ACCEL BAND
1
2
3
4
(1.1)
(2.1)
(3. 1)
(4. 1)
UEF INI TIONS
(1 .
(2,
(3.
(4.
2)
2)
2)
2)
' ( 1
(2
(3
(4
.3)
.3)
.3)
,3)
( 1
(2
(3
(4
.4)
.4)
.4)
.4)
OK VAR1 AULHS
ACBAND( 43 . 8 1 ) . . I *4 . . . Acce 1 era t i on-Speecl banil: this array
contains the number of uccurrances of
a specific acceleration at a specific
speed. See subscript map above.
ACCEL R*4. . . Accelerat ion (M/H-S). RSPEED - SPDSAV
IACBND I *4... Numerical value of acceleration band
nurnbe r .
ISPEED '. I *4 .. .Numerical value of speed band.
ISBSAV 1*4. .. Previous value of ISPEED.
RSPEED R*4. . .The actual speed.
SPDSAV R*4...The previous speed value.
ONCT 1*4...Length of trip (sec) = TOTSS + GOSC
PRBAND(43) 1*4...Matrix of time spent in each acceleration
band .
SPBAND(81) 1*4. ..Speed band: This vector counts the number
of times in a specific speed band.
INTEGER ONCT, SPQAND(81), PRBAND(43), ACBAND(43,81)
SPEED BAND SECTION
IF (RSPEED .LE. 80.0) GO TO 20
.....THERE ARE 81 SPEED BANDS. YOU HAVE EXCEEDED THE 80th.
I SPEED = 81
GO TO 40
ROUND UP THE VALUE OF THE SPEED TO GET THE SPEEDiOAND.
20 ISPEED = RSPEED + .9999
THE BELOW STEP IS ESSENTIAL TO COVER THE CASE WHEN RSPEED=0
OTHERWISE ISPEEO=0 WHICH IMPOSSIBLE.
NO
0\
-------
Listing of OCS STAT. FOR at 13:'12:38 on JUN 9, 1986 for CCici = SHYX
Page
25
1309
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400 .
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
IF (RSPEED .LE. 1.0) ISPEED = 1
INCREMENT THE NUMBER OF OCCURRANCES AT THAT SPEED BAND.
40 SPBANDCISPEED) = SPDAND( I SPEED) ป 1
ACCELERATION BAND SECTION
IF (ONCT .NE. 0) GO TO 60
SAVE THE PREVIOUS VALUE OF THE SPEED, SPEED BAND....
SPDSAV = RSPEED
ISBSAV = ISPEED
RETURN
.THE BELOW STATEMENT IS VALID BECAUSE 1 SEC INCREMENT.
60 ACCEL = RSPEED - SPDSAV
IF (ACCEL .GE. - 5. .AND. ACCEL .LE. 5.) GO TO 100
IF (ACCEI . LT . - 5. ) IACflNO = 1
IF (ACCEL .LT. - 5.) GO TO 00
IF (ACCEL .GT. 5.) -IACDND = 43
IF (ACCEL .GT. 5.) GO TO 00
THE EQUATION BELOW FINDS THE IACBND. ALTHOUGH IT IS
UNOBVIOUS, IT WORKS. AND IS QUITE EFFICIENT COMPARED TO
THE PREVIOUS WAY THIS WAS CALCULATED.
IACBNO = ACCEL * 4. + 22.00
IF (ACCEL .GE. .01) IACBND = ACCEL * A. + 22.9
IF (ABS(ACCEL) .LT. .01) IACBND = 22
80 ACBAND(IACBND.ISBSAV) = ACBAND(IACBND,1SBSAV) + 1
PRBAND(IACBND) = PRBAND(IACBND) + 1
SAVE THE PREVIOUS VALUE OF THE SPEED. SPEED BAND....
W
SPDSAV = RSPEED
ISBSAV = ISPEED
RETURN
END
SUBROUTINE CMPRES(SPBAND. PHBAND," ACBAND)
SBM
IN THIS SUBROUTINE, CMPRES, THE BANDS ARE COMPRESSED FROM
43 X 81 TO 23 X 8. THE ACTUAL CALCULATIONS. WHICH FIND
SPEED BANDS IN THE INCREMENTS SEEN IN SUBROUTINE SPDACC,
ARE DONE THAT WAV TO MAKE IT EASY TO MANIPULATE THE
MATRIX TO GET OTHER BAND SIZES FOR THE FUTURE WITHOUT
HAVING TO RERUN THIS PROGRAM IN MODIFIED FORM. THE
PROGRAMMER CAN SIMPLY READ THE TAPES AND HAVE A, SHORT
PROGRAM THAT READS THE BIG MATRIX AND COMPRESSES IT TO
A SMALL ONE. IN OUR CASE. WE'LL USE AN OUTPUT MATRIX
OF THE SIZE DEPICTED BELOW.
THE SPEED BANDS ARE SET UP AS FOLLOWS:
-------
Listing of OCS_STAT.FOR at 13:12:30 on JUN 9. 190G for CC1d=SHVX
Page
26
1447
1<14H
1449
1450
145 1
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
147 1
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1464
1485
1486 .
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
C
C
C
C
C
C
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
SPCED(MILSPD)
o.o -
10.
20.
30. -
40. -
50.
60. -
70. 1 -
10.0
20.0
30.0
40.0
50.0
60.0
70.0
THE ACCELERATION
ACCEL(MXH-S)
-
-5.0 -
-4.5-
-4.0 -
-3.5 -
-3.0 -
-2.5 -
-2.0 -
-1.5-
-1.0-
-0.5 -
0.0 -
0.1 -
0.6 -
1.1 -
1.6-
2.1 -
2.6 -
3.1 -
3.6 -
4.1 -
4.6 -
5.1 -
-5. 1
-4.6
-4. 1
-3.6
-3 . 1
-2.6
-2. 1
-1.6
- 1 . 1
-0.6
-0. 1
0.0
0.5
1.0
1 .5
2 .0
2.5
3.0
3.5
4.0
4.5
5.0
ARRAY
o -
10 -
20 -
30 -
40' -
50 -
601 -
701 -
BANDS ARE
ARRAY '
-
-50 -
-45 -
-40 -
-35 -
-30 -
-25 -
-20 -
-15 -
-10 -
-5 -
0 -
1 -
6 -
1 1 -
16 -
21 -
26 -
31 -
36 -
41 -
46 -
51 -
' ISPD'
100
200
300
400
500
600
700
SET UP AS
1ACCEL'
-51
-46
-41
-36
-31
-26
-21
-16
-1 1
-6
- 1
0
5
10
15
20
25
30
35
40
45
50
SPEED DAND(SPDAND)
1
2
3
4
5
6
7
8
FOLLOWS:
ACCEL BAND(ACBAND)
1
2
3
4
5
6
7
0
9
10
1 1
12
13
14
15
16
17
18
19
20
21
22
23
ro
oo
INTEGER SPBAND(81). PRBAND(43), ACBAND(43,81), SPBTWOC8).
1 PRBTWO(23). ACBTWO(23.8)
DO 40 I = 1 , 8
SPBTWO(I) = 0
DO 20 J = 1, 23
PRBTWO(J) = 0
20 ACBTWO(J.I) = 0
40 CONTINUE
DO 80 I = 1, 81
II = I / 10. -i- .999
NOW CHECK FOR POINTS ABOVE 70 MPH
IF (II .LE. 7) SPBTWO(II) = SPBTWO(II) + SPBANO(I)
IF (II .GT. 7) SPBTWO(8) = SPBTWO(8) + SPBAND(I)
-------
Listing of OCS_STAT.FOR at 13:12:30 on JUN 9, 1906 for CCi(J=SHVX
Page 27
1505
1506
1507
1500
1509
1510
1511
1512
1513
1514
1515
1516
1517.
1510
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
153 1
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1540
1549
1550
1551
1552
1553
1554
1555
1556
1557
155B
1559
1560
1561
1562
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
IF (II . LE. 7) ACBTWCH 1 2, I I ) = ACBTWO ( 1 2 . I I ) + ACI3ANU ( 22 , I )
IF (II .GT. 7) ACBTWOU2.0) = ACU'I WO( 1 2 . 0 ) AU)AND( 22 , I )
DO 60 K = 1 , 22
K 1 = K / 2 + 1
KK = K > 2 1
RK = KK
KK1 = RK / 2 + 1 .6
NOW CHECK FOR POINTS ABOVE 70 MPH
IF (II .GT. 7 .AND. K .NE. 22) ACBTWO(KI.O) = ACDTWO(KI.B) +
1 ACBAND(K.I)
IF (II .LE. 7 .AND. K . NE . 22) ACBTWO( K 1 , I I ) = ACBTWO ( K 1 . I I ) +
1 -ACBAND(K,I)
IF(K .EQ. 22) GO TO 100
II CAN NOT EXCEED THE VALUE 7
IF (II .LE. 7 .AND. K .NE. 1) ACBTWO ( KK 1 . I I ) = ACBTWCH KK 1 , 1 O
1 + ACBANOt KK', I )
IF (II .GT. 7 .AND. K . NE . 1) ACBTWO ( KK 1 , 8 ) = ACBTWO ( KK 1 . 0 ) +
1 ACBANO(KK , 1 )
60 CONTINUE
.... NOW ADD POINTS FROM -.1 TO +.1 MPH/S ACCELERATION
80 CONTINUE
DO 100 K = 1 , 22
Kl = K / 2 ซ 1
KK = K + 21
RK = KK
KK1 = RK / 2 '. + 1.6
IF(K .EQ. 22) GO TO 300
IF (K .NE. 1.) PRBTWO(KKI) = PRBTWO(KKl) + PRBAND(KK)
100 IF (K .NE. 22) PRBTWO(KI) = PRBTWO(Kl) + PRBAND(K)
PRBTWO(12) = PRBAND(22)
NOW WRITE BANDS IN OUTPUT FILE ON UNIT 6... .
. ...WRITE "SPEEDLOG" OUTPUT ON UNIT 6 (COMPRESSED)....
WRITE (6, 120) SPBTWO
WRITE (6,140) PROTWO
WRITE (6.160) ( (ACBTWO( I , J) , J= 1 .0) . 1= 1 , 23)
RETURN
120 FORMAT (' ', 'SPEED '. 816)
140 FORMAT (' ', 'ACCEL '. 2314)
160 FORMAT (' ', 'COMBIN ', 016)
END
SUBROUTINE CHECK ( T I ME , OLDST )
N3
-------
Listing of OCS_STAT.FOR at 13:12:38 on JUN 9, 1986 for CCid=SHVX
Page 28
1563
1564
1565
1566
1567
1568
1569
1570
157 1
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
15115
158(3
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1 603
1604
1605
1606
1607
1 608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
c
c
c
c
c .
c . .
c . .
c . .
c . .
c .
c . .
c .
c . .
c . .
c
c
c
c
c
c
c . .
c
c
c. . .
c
c
c
c
c. . .
c
c
c
c . . .
c . ,
c
c. . .
c
c
c
c. . .
WRITTEN BY STEVEN B MICHIIN
THIS SUBROUTINE IS USED TO CHECK FOR STALI S ON
11-14-84, THIS SUBROUTINE WAS ADDED BECAUSE DATA
WAS READ ONE LlNE AT A TIME. IN ADDING A COUNTER
TO COUNT STALL TIME. WHICH IS 60 OR LESS
CONSECUTIVE SECONDS OF ENGINE OFF TIME, IT WAS
REALIZED THAT TO ACCURATELY DETERMINE STALL TIME.
TWO SIXTY SECOND LINES WITH FLAGS MUST BE CHECKED
SINCE A 60 SECOND STALL COULD OCCUR WITHIN TWO LINES.
. ...THIS SUBROUTINE READS TWO CONSECUTIVE LINFS CHECKS
FOR THE STALL CONDITION, AND APPROPRIATELY CHANGES THE
FLAG VALUES TO BE ABLE TO USE THE PREVIOUS VERSION OF
THE PROGRAM WITH AS LITTLE CHANGE AS POSSIBLE. IT IS
THEREFORE. *ASSUMED* THAT THE PREVIOUS PROGRAM WORKED
FINE.
NAME MODE TAG
DAY . 1*4 . The 'current' DAY value
. . . 3
...DAYNXT 1*4 The 'next' DAY value.
. . . FLAGNX( 1 2) . .R*4 . . . . The 'next' FLAGS value.
. . FLAGS(12).. 1*4... The 'current' FLAGS value
I . . .. 1*4... Iteration counter
ID... .. 1*4... Vehicle ID number
IDNEXT 1*4 . Next vehicle ID number
J ... .. 1*4 .. Iteration counter
.NDIFF 1*4... .The difference between the numbe r of speed
values from FLAGS and 60. This difference
is the number of seconds of engine off or
stal 1 in that minute time interval .
NDUMMY 1*4 Dummy variable used in conversion from
Fortran-77 to Fortran-4. Arrays in Fortran-4
can't be used as maximum Do-Loop limit.
.NFLAG 1*4 The current number of FLAGS t ha t have
nonzero values.
NFLGNX 1*4 . The next value of NFLAG
, . . NN 1*4 The total number of consecutive seconds of
stop time. If NN <= 60, it is the total
number of consecutive seconds of stall
time by definition in this program.
NOFFSC 1*4... The off t imp in a given trip (seconds ).
..NSEC 1*4 The total number of speeds read in after a
line with FLAGS values. If NSEC < 60
then there is some stop or stall time.
NSECNX .. 1*4... .The next value of NSEC.
.. NSTCNT 1*4 The number of stalls in a given trip.
NSTFLG(6) . . . I *4 Current stall flag value NSTFLG(I)t 0 = nostall;
l=stal 1 .
,. NSTFNX(6) . . . I *4 Next stall flag value NSTFLG( I ) ; 0 = nostall;
l=stal 1 .
NSTOP 1*4 Number of stop seconds .
NSTR1P 1*4 The stall-time in a trip (seconds)
NTRIP 1*4 The number of trips on the current line.
U5
o
-------
Listing of OCS STAT. FOR at 1.3:12:38 on JUN 9, 1906 far CCici = SHVX
Page
29
1 G2 1
1 ( > 2 2
1623
Hi 21
1G25
1 626
1627
1628
1629
1630
163 1
1632
1633
1634
1635
1636
1637
1630
1639
1640
1641
1642
1643
1644
1645
1646
1647
164B
1649
1650
1651
1652
1653
1654
1655
1 656
1657
1658
1659
1660
1661
1062
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
c
c
C
C
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
NTRPNX 1*4 . Thซ-ป number of trips on th(* mปxt 1 ine
10
.... 2 Un it for read .
. ...SIXTSW L*l Used to specify whether or not 5 or Ci
temperatures are to be input.
SPD(6 60) R*4 Array of speed values associated with each
even numbered flag.
. SPDNXT(6,60)R*4 . ..The next SPD value.
8
.... 7
TEMP(6) R*4 Temperature array to be read in
... .9
. . . .TEMPNX(6) . . .R*4 The next temperature array to be read in.
.. .TIME 1*4. ...Time on 24 hour clock.
TIMENX . 1*4 ..The next value of time on 24 hour clock read
in.
... .4
....XX 1*4 Dummy variable to read in where the 6th TEMP
value would have been if the data was
f lawless.
LOGICAL*! SIXTSW. STALFL. GO
INTEGER XX. DAY, DAYNXT , TIME. TIMENX, FLAGS, FLAGNX. SPBAND,
1 PRBAND, ACBAND, OLDST
COMMON /CHCK/ DAYNXT, FLAGNX(12), IDNEXT, NDIFF, NFLGNX, NOFF.
1 NOFFCN, NOFFSC, NSEC , NSECNX, NSTCNT , NSTCNX, NSTFLG(6),
2 NSTFNX(6). NSTRIP. SPD(6,60)", SPDNXT(6 , 60 ) , TEMPNX(6),
3 TIMENX. INIT, SPBAND(81). PRBAND(43), ACBAND ( 43 , 8 1 ) .
4 ISBSAV, SPDSAV. GODI . STOPSC, STOPDI , NSTAT(2.6),
5 NSTNX(2,6), NSTOT . NSTSEC. IFSTAL
COMMON /STATUS/ FLAGS(12)
COMMON /STUFF/ DAY. ID. NFLAG, TEMP(6), 1NCSPD
COMMON /LOGICL/ SIXTSW, STALFL. GO
THE 'CURRENT' VALUE NOW EQUALS THE 'NEXT' VALUE OF
THE READ-IN VARIABLES AFTER WHICH A NEW VALUE WILL BE
READ IN.
NOFFSC = NOFFCN
NOFF = 0
NFLAG = NFLGNX
TIME = TIMENX
IFUDNEXT .NE. 0) ID = IDNEXT
DAY = DAYNXT
NSEC = NSECNX
NSECNX = 0
DO 60 I = 1 , 6
NSTFLG( I ) = NSTFNX( I )
FLAGS(I) = FLAGNX(I)
FLAGS(I + 6) = FLAGNXfl + 6)
TEMP(I) = TEMPNX(I)
NSTFNX(I) = 0 .
DO 20 J = 1 , 2
20 NSTAT(J.I) = NSTNX(J.I)
u>
-------
Listing of DCS STAT.FOR at 13:12:38 on JUN 9, 1986 for CCid=SHVX
Page 30
1679
1680
1681
1682
1GU3
1684
1 685
1686
1687
1688
1689
1 690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1 702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
17 15
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
731
732
733
734
735
736
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
c
C
c
c
c
c
c
c
c
The below puts a 5 to check for no value y 1 o w stop is thtji'u to ciutoniiit icul 1 y pad ซJ 1 1
stops and stalls with 1's for the caso of the unknown
where there are more than 1 stall or stop on the
same 60 second input line. They total 60 - MSEC. .
These are also Included in NSEC.*****
NSTNX(2,I) = 0
NDUMMV = FLAGNX(I*2)
DO 40 J = 1 , NDUMMV
40 SPD(I.J) = SPONXTU.J)
60 CONTINUE
.USED IN TEMPERATURE AND FLAG READS....
IF (SIXTSW) READ ( 2 . 460 . END=420 ) DAVNXT , TIMENX. IDNEXT. TEMPNX ,
1FLAGNX
IF ( .NOT. SIXTSW) READ ( 2 , 480 , END = 4 20 ) DAVNXT, TIMENX, IDNEXT,
1 (TEMPNXd ) . 1 = 1 .5) , XX, FLAGNX
NFLGNX = 0
NSECNX = 0
DO 100 I = 1 , 6
IF (FLAGNX(1ป2 - 1) . NE . 0) NFLGNX =2*1
. . READ SPEEDS . . .
NN = FLAGNX(2*I)
IF (FLAGNX(I*2) .NE. 0) READ (2,500) ( SPDNXT( I , J ) , J= 1 , NN)
IF (FLAGNX(I*2 - 1) . EQ . 0) GO TO 100
IF ( .NOT. (FLAGNX(1*2 - 1) . EQ . 1 .OR. FLAGNX(I*2 - 1) .EQ. 3))
1 GO TO 80
NSECNX = NSECNX + FLAGNX(I*2)
NSTNXC I.I) = 1
NSTNX(2,I) = FLAGNX(1*2)
GO TO 100
80 IF ( .NOT. (FLAGNXU*2 .- 1) . EQ . 2 .OR. FLAGNX(1*2 - 1) .EQ. 4))
1 GO TO 100
IF (NFLGNX .EQ. 2 .AND. I . NE . 1) GO TO 100
IT'S PROBA8LV A STALL
NSTNX(l.I) = 2
Dd
U>
rO
-------
Listiny of DCS STAT. FOR at 1.3:12:30 on JUN 9, 1906 for CCicl = SHYX
Page 31
737
73fl
739
740
741
742
743
744
745
746
747
1746
1749
1750
1751
1752
1753
1 754
1755
756
757
758
759
760
761
762
763.
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1 700
1701
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
NSTNX(2.I)
PAD "1 's"
***REMOVE THIS SECTION LATER***
IF ( .NOT. (NFLGNX .GT. 4 .AND. (FLAGNX(l) .EQ. 2 .OR, FLAGNX(I)
.EQ. 4) .OR. (NFLGNX .GT. 6 ' .AND. (FLAGNX(2) .EO. 2 .OR.
FLAGNX(2) .EQ. 4)))) GO TO 90
NSECNX = NSECNX + 1
NSTNX(I.I) = 2
ONE SECOND FOR THE PADDED MULTIPLE 'ENGINE OFF' ON SAME LINE
NSTNX(2,I) = 1
.SPEED VALUES WERE INSERTED IN INPUT FILES IN AN UNUSUAL
WAV TO SAVE FILE SPACE. THIS WAS *NOT* DONE DV ME..SBM
FOR NEXT DCS PROGRAM. USE INTEGERS TO SAVE SPACE. FOR
EXAMPLE, SPEED MULTIP1LED BY 100.
XX.O=======>XX.OO
XX.3=======>XX.25
XX.5=======>XX.50
XX.8=======>XX.75
XX.O=======>XX.OO
.THE BELOW DO-LOOP CORRECTS FOR THE ABOVE SPECIAL CASE...
90 DO 50 J = 1. NN
ISPEED = SPDNXT(I.J)
DEL = SPDNXT(I.J)
IF(ABS(DEL - .3) .LT.
50 IF(ABS(DEL - .8) .LT.
LO
LO
- ISPEED
.01) SPDNXT(I.J)
.01) SPDNXTCI,J)
ISPEED + .25
ISPEED + .75
100 CONTINUE
NPAD = 0
NPDNUM = 0
IF ( .NOT. (NFLGNX .EQ. 2 .AND. (FLAGNX(l) . EQ'.
1 .EQ. 4))) GO TO 120
IT'S DEFINITELY A 60 SECOND 'ENGINE OFF'
NSECNX =60
NSTNX(1,1) = 0
60 SECONDS FOR AN 'ENGINE OFF'
NSTNX(2. 1) = 60
120 IF ( .NOT. (NFLGNX .GT. 4 .AND. (FLAGNX(l) .EQ.
1 .EQ. 4))) GO TO 140
NSTNX(1,1) = 0
NSTNX(2.1) = 60 - FLAGNX(2)
NSTNX(1.2) = 1
2 .OR. FLAGNX(l)
2 .OR. FLAGNX(1)
-------
l.istiny ot OCS STAT.FOR at 13:12:311 on JUN 0, 190G for- CCIil = SMVX
Page
32
1795
1796
1797
1790
1799
1000
1001
1002
1H03
1004
1005
100(>
.1007
1800
1009
1810
IB 1 1
1012
1013
1014
1H IS
1 U 1 6
HJ 1 7
1 11 1 B
1019
1020
1022
1822 . 2
1022.5
1022.6
1822.7
1023
1824
1825
1826
1027
1828
1829
1030
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1043
1844
1845
1846
1047
1048
1849
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
NSTNX(2,2) = FLAGNX(4)
NSTNX(2,2) = FLAGNX(2)
610 IF(.NOT.( (FLAGNX(1).EQ.2.OR.FLAGNX(1).EQ.4)))
140 IF ( .NOT. (NFLGNX .GE. 4 .AND. (FLAGNX(l) .ECJ. 2 .OR. FLAGNX(l)
1 .EQ. 4))) GO TO 180
NPAD =
NPDNUM =
1
NPONUM
.EVERY OTHER ONI: WILL STALL OUT UNTIL LAST SO PUT 2 IN
THE NSTNX( 1 . 1 *2- I ) FOR ONES THAT FLAGNX(l)=-2 OK 4...
PAD "1's" IN FOR THE STALLS
NDUM = 0
NDUMMY = FLOAT(NFLGNX) / 4.5 + 1.
DO 160 I = 1. NDUMMY
IF(I-LAGNX( I *4-3) . NE . 2 .AND. FLAGNX ( 1 * 4-3 )
NSTNX(2,1*2-1) = I
NS1NX( 1 . I*2- 1 ) = 2
NDUM = NDUM + NSTNX(2, I * 2-I )
IP ( FLAGNX( I *4-I ) .NE. 1 .AND. I-'LAGNX ( I *4 - 1 )
NSTNX(2,I*2 ) = FLAGNX(I*4)
NSTNX(1,1*2 ) = 1
NDUM = NDUM + NSTNX(2,I*2 )
160 CONTINUE
GO TO 171
170 NDUMMY = NDUMMY - 1
171 CONTINUE
150
.NE. 4) GO TO 170
.NE. 3) GO TO HiO
Cd
.UNPAD THE LAST VALUE.
161
IF(FLAGNX(NDUMMY*4-3) .NE.2 .AND.FLAGNX(NDUMMV*4~3).NE. 4)GOTO 161
NSTNX(2.NDUMMY*2-1) = 61 NDUM
NS.TNX( 1 ,NDUMMY*2-1 ) = 2
NSECNX = 60
CONTINUE
IF( NFLAG .EQ. 2 .OR. FLAGS(NFLAG-1) .EQ.
1 FLAGSCNFLAG-1).EQ. 3 ) GO TO 180
NDIFF = 60 - NSEC
NN = NDIFF * 1
IF( NN .LT. 60 ) GO TO 320
GO TO 400
1 .OR.
.EVERY OTHER ONE WILL STALL OUT UNTIL LAST SO PUT 2 IN
THE NSTNX(1,I*2) FOR ONES THAT FLAGNX(1)=1 OR 3
180 IF ( -.NOT. (NFLGNX . GT. 2 .AND. (FLAGNX(l) .EQ. 1 .OR. FLAGNX(l)
1 .EQ. 3))) GO TO 200
NSTNXf1,1) = 1
NSTNX(2.1) = FLAGNX(2)
NSTNX( 1.2) = 0
NSTNX(2,2) = 60 - FLAGNX(2)
-------
Lislimj of OCS STAT.FOR at 13:12:31.1 on JUN 9. 1.90(1 for C.C I )
IF( .NOT. ( (FLAGNX( 1 ) . EQ . 1 . OK . FLAGNX ( 1 ) . EQ.3) ) )
IF '( .NOT. (NFLGNX . GE . 6 .AND. (FLAGNX(I) . EQ . 1 .OR. FLAGNX(I)
1 . EQ. 3) ) ) GO TO 240
. ...PAD "1's" IN FOR THE STALLS
NPAD = 1
NDUM = 0
NDUMMV = NFLGNX / 4. * 1 .
DO 220 1=1. NDUMMY
IF(FLAGNX( 1*4-3) . NE . 1 .AND. FLAGNX ( 1 *4-3 ) .NE. 3) GO TO 210
NSTNX(2. I ป2- 1 ) = FLAGNXt 1 ป4-2)
NST'NX( 1,1*2-1) = 1
NDUM = NDUM * NSTNX(2.I*2 - 1)
IF(FLAGNX( I ป4- 1 ) . NF. . 2 .AND. FL AGNX ( I *4 - 1 ) .NT.. 4) GO TO 225
NSTNX(2.I*2 ) = 1
NSTNX(1.I*2 ) = 2
NDUM = NDUM + NSTNX(2,I*2 )
CONTINUE
GO TO 226
NDUMMV = NDUMMY - 1
CONTINUE
UNPAD THE LAST VA1 UE .
IF(FLAGNX(NDUMMY*4-1 ) . NE . 2 . AND . FLAGNX ( NDUMMY*4- 1 ). NE . 4)GOTO 221
NSTNX(2,NDUMMY*2 ) = 61 NDUM
NSTNX( 1 ,NDUMMY*2 ) = 2
NSECNX = 60
CONTINUE
IF( NFLAG .EQ. 2 .OR. FLAGS ( NFLAG- 1 ) . EQ . 1 .OR.
1 FLAGSCNFLAG-1 ) . EQ . 3 ) GO TO 240
NDIFF = 60 - NSEC
NN = NOIFF + 1
IF( NN .LT. 60 ) GO TO 320
GO TO 400
*
CONTINUE
INIT = 1
IF ( .NOT. (NFLGNX . EQ . 2 .AND. (FLAGNX(l) . EQ . 2 .OR. FLAGNX(l)
1 .EQ. 4))) GO TO 280 ,
NSTNX( 1,1)= 0
NSTNX(2, 1 ) = 60 .
IF (FLAGS(NFLAG - 1) -EQ. 2 .OR. FI.AGS(NFLAG - 1) . EQ . 4)
1 GO TO 260
NSTAT( 1 .NFLAG/2) = 0
00
w
u-.
-------
Listing of DCS STAT.FOR at 13:12:38 un JUN 9, 1906 for CC1d=SHYX
Page 34
1905
1906
1907
190fl
1909
1910
19 11
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1920
1929
1930
193 1
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
cc
cc
cc
cc
C
C
C
C
C
C
C
C
C
C
C
C
C
C
NSTAT(2,NFLAG/2) = 60 - NSEC
260 GO TO 400
280 IF (INIT .EQ. 1) GO TO 400
IF (NFLAG .EQ. 2 .AND. NSEC .LT. GO) GO TO 400
....DUE TO A DATA COLLECTION EQUIPMENT BUG, 1HERE WERE SOME
ENGINE OFF PERIODS WHEN A SPEED WAS REACI, HUT NO MORE THAN
ONE SPEED PER RUN. ALL SUCH CASES WILL BE DEALT WITH AS IF
ZERO SPEEDS WERE READ. SINCE THE SPEED READ WAS CAUSED BY A
DATA COLLECTION EQUIPMENT BUG AND SHOULD NOT HAVE BEEN
THERE.
....NOW CHECK IF ANY ENGINE OFF PERIODS OF LESS THAN 60 SECONDS
OCCUR. SUCH 'STALLS' COULD OCCUR FROM EITHER ONE OR TWO
LINES OF FLAG DATA. SO TWO LINES WERE READ IN.
IF(NFLAG .EQ.
1
2 .AND. (FLAGS(l) .EQ. 2 .OR. FLAGS(I)
NSTAT(2,1)
. I-Q .
4) )
60
IF (NSF.C .NE. 60 .AND. NSTAT(2,1)
GO TO 400
300 IF (NSEC .GT. 60) PRINT 440
IF (NSEC .GT. 60) STOP
IF((NFLAG .EQ. 4) .AND. (FLAGS(l)
1
.NE. 60) GO TO 300
.EQ. 2 .OR. FLAGS(l) .EQ.4))
GO TO 160
IF((NFLGNX .GT. 2) .AND. (FLAGNX(l) .EQ. 2 .OR. FLAGNX(l) .EQ.4))
1 GO TO 160
LO
CALCULATE THE NUMBER OF MOTOR OFF SECONDS, NDIFF, ON CURRENT
LINE IN DATA FILE.
NDIFF = 60 - NSEC
IF (NFLAG .EQ. 2 .AND. (FLAGNX(l) .EQ. 1 .OR. FLAGNX(l) .EQ. 3))
1 GO TO 400
IF (NFLAG .EQ. 2) NDIFF = 60
IF ((FLAGNX(I) .EQ. 1) .OR. (FLAGNX(l) .EQ. 3)) NSTFLG(NFLAG/2) =
1 1
IF ((FLAGNX(l) .EQ. 1) .OR. (FLAGNX(I) .EQ. 3)) GO TO 400
IF ((FLAGNX(2) + NDIFF) .GT. 60) GO TO 400
IF ((FLAGS(NFLAG - 1) .EQ. 1) .OR. (FLAGS(NFLAG - 1) .EQ. 3))
1 GO TO 400
IF( ( NDIFF + 60 - NSECNX) .GT. 60) GO TO 160
NSEC = 60
FOR NDIFF LESS THAN 60
SUM UP THE NUMBER OF PROSPECTIVE STOP SECONDS ANQ THE NUMBER
OF SECONDS OF THE FLAG(2) 'NEXT'. IF <= 60, THIS IS A
STALL. OTHERWISE IT IS A STOP.
NN = NDIFF + 1
IF (FLAGNX(l) .EQ. 2 .OR. FLAGNX(l) .EQ. 4) NN = NDIFF + 60 -
1NSECNX
-------
Listing of OCS_STAT.FOR at 13:12:38 on JUN 9. 1986 for CCitl=SHYX
Page 35
IF (((FLAGNX(I) . F.Q.-2 .OR. FLAGNX(l) . EQ. 4)) .AND. NFLGNX . EQ .
1964
lyuti
1966
1967
1968
1969
1970
197 1
1972
1973
1974
1975
1976
1977
1970
1979
1980
1901
1982
1983
1984
1985
1906
1987
1988
1909
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
201 1
2012
2013
2014
2015
2016
2017
2018
2019
2020
C
C
C
C
C
c
C
C
C
c
c
c
c
c
c
c
320
C
C
C
C
C
340
C
C
C
c
c
cc .
c
c
c
C2000
12) NN = NDIFF * 60
1 F NN > 60, IT IS AN OFF NOT A STAIL
IF '(NFLAG .EQ. 2 .AND. (FLAGNX(l) .EQ. 1 .OR. FLAGNX(l) .EC}. 3))
1 GO TO 400
BEWARE OF THE CASE AFTER A STALL AND COMBINING THE
STALL SECONDS, THAT NSEC CAN BE LESS THAN 60.. ..
IF (NN .LE. 60 .AND. NFLAG .NE. 2) GO TO 320
NSTAT( 1 , NFLAG/2) = 0
NSTAT(2 .NFLAG/2) = NDIFF
NSTNX( 1,1) = 0
THE BEl OW IS TRUE ONLY WHEN FLAGNX ( NF LGNX- 1 ) NF 2 OR 4
IF ( FLAGNX(NFLGNX - 1) . NE . 2 .AND. FLAGNX ( NF LGNX - 1) . NE . 4)
1NSTNX(2.I) - 60 - NSECNX
GO TO 400
COMBINE THE STALL Sf-'CONDS WHICH CONTINUES FROM THE PREVIOUS
LINE. ...
IF (NFLGNX .EQ. 2 .AND. FLAGNX(2) .EQ. 0) GO TO 400
ITS A STALL SO NSTAT(1 1) = 2- 1 =ON 0 = OFF- 5= I N I T I AL I ZED
FIX LATER
NSTAT( 1 , NFLAG/2) .= 2
NDUMMV = FLAGNX(2)
DO 340 1=1, NDUMMY
SPD(NFLAG/2.FLAGS(NFLAG) + I ) = SPDNXT(I.I)
FLAGS(NFLAG) = FLAGS(NFLAG) + FLAGNX(2)
NSTAT( 1 .NFLAG/2) = 2
NSTAT(2. NFLAG/2) = NN
NFLGNX = NFLGNX - 2
NDUM = NFLGNX / 2
DO 380 1=1, NDUM
IF ( I .GT. 6) GO TO 380
IF (I .LT. 7) NSTNX(l.I) = NS1NX(1.I + 1)
IF (I .LT. 7) NSTNX(2,I) = NSTNX(2,I + 1)
NDUMMY = FLAGNX( I *2+2)
IF (NDUMMY .EQ. 0) GO 1 0 370
00' 360 J = 1 . NDUMMY
TEMPP = SPDNXT( I + 1 , J)
PRINT 2000, TIME, I. J, TEMPP
FORMAT(' TIME='.I4, ' I='.I3. ' J=',I3, ' TEMPP= ' , F5.1)
-------
Listing of OCS STAT.FOR at 13:12:38 on JlIN 9, 1986 for CCid=SHYX
Page 36
2021
2U22
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
204B
2049
360
C
370
380
C
C
C
C
C
400
420
440
460
480
500
SPDNXT( I . J) = TEMPP
FLAGNX(2*I) = FLAGNXU'*I-t :.')
FLAGNX( 2*1- 1 ) =: FLAGNX(2*I + 1)
FLAGNX(NFLGNX ซ 1) = '0
FLAGNX(NFLGNX * 2) = 0
NSTNX( 1 .NFLGNX/2 + 1 ) = 5
NSTNX( 1 .NFLGNX/2+2) = 5
NSTNX(2.NFLGNX/2 + 1) = 0
NSTNX(2.NFLGNX/2+2) = 0
INIT = 0
INCSPD = 1
RETURN
IF (OLDST .NE. 2 .AND. OLDST .NE. 4)
CALL FINISH
STOP
FORMAT ( ' MORE THAN 60 SPEEDS
FORMAT (13. 15. 16. 6F4.0, 1214
FORMAT (13. 15. 16. 5F4.0, A4 ,
FORMAT (F6. 1 . 19F5. 1 )
END
SUBROUTINE RUNTME ( I T IME )
DIMENSION ITIMEC6)
CALL TIME(22,0, ITIME)
RETURN
END
IN A
)
1214)
CALL STATON(OLDST)
MINUTE-IMPOSSIBLE! ! ! ' )
LO
00
-------
B 39
OCS-CMP.FOR
-------
LEVEL 1.3.1 (FEB 1984)
VS FORTRAN
DATE: MAR 16, 1987
TIME: 11:23:07
PAGE:
REQUESTED OPTIONS (EXECUTE): TE'ST
OPTIONS IN EFFECT: NOLIST NOMAP NOXREF NOGOSTMT NODECK SOURCE TERM OBJECT FIXED NOTEST TRMFLG SRCFLG SVM
OPT(O) LANGLVL(77) NOFIPS FLAG(l) NAME(MAIN ) LINECOUNT(60) CHARLEN(500) SDUMP
I SN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
6
7
8
9
10
1 1
12
13
14
15
c
c
c
c
c
c
c
c
c
c
c
c
c
c
PROGRAM OCS
CMP. FOR
THIS PROGRAM IS USED TO COMBINE OPERATIONAL CHARACTERISTIC STUDY
DATA (GENERATED BY THE PROGRAM OCS STAT.FOR) INTO TRIPS ACCORDING
TO A USER
PROGRAMMER
3/16/87 -
SPECIFIED BETWEEN TRIP TIME
: STEVE MICHELIN
MODIFIED PROGRAM TO INCLUDE
LIMIT.
OFFCT IN TOTAL
STOP SECONDS FOR COMBINED TRIPS. ALSO PUT
INTEGERป4
1
2
3
4
5
6
7
8
9
*
1
INTEGER*4
FOR HEADERS IN OUTPUT OR NO
PUT IN COMMENTS. JDC .
SVDAY >'( 1 25 ) , TRPCT (125),
TYPE1 ( 125) , START ( 125) ,
STPCTK125), TOTSC (125),
LOAN1(125), ECHO) (125),
DATEK125), ECH03 (125),
SVDAY2U25), TRPCT2(125),
TYPE2M25), START2(125).
STPCT2(125), TOTSC2M25),
LOAN2(125), ECHO12O25).
DATE2M25), ECH032U25),
ERR1(125), ERR2(125).
NEWTRP(125)
ALSO CLEANED
DVTRP1 ( 125) ,
OFFCT1 ( 125) ,
STPSC1 ( 125)
WH01 ( 125) ,
DYTRP2( 125) ,
OFFCT2( 125) ,
STPSC2( 125)
WH02( 125) .
ITIME(6) ,
ERR3( 125) ,
SECONDS AND
IN OPTION
UP CODE AND
SVTIM1 ( 1 25) ,
GOSC1 ( 125) ,
GOOD1 ( 125) ,
SVTIM2( 125) ,
GOSC2(125),
GOOD2( 125) ,
ERR4( 125) ,
OFFSEC/0/, TOTSEC/0/, TOTSTP/0/
AVSPD2(125), AVDBS2(125),
REAL*8 AVSPD1O25), AVDBS1U25),
1 DSTNCK125), DSTNC2(125)
CHARACTER DATFLE*30, OUFLE*7, CONSOL*10
CHARACTER HEADER, YES/'Y'/, NO/'N'/
DEFINE INPUT FILE AS SHVY:OCS.D-TRI PS. THIS SHOULD BE DATA
GENERATED FROM THE PROGRAM OCS_STAT.FOR.
DEFINE OUTPUT FILE AS -TRIP, CONSOLE AS *MSOURCE*.
DATFLE = 'SHYY:OCS.D-TRIPS'
OUFLE = '-TRIP'
CONSOL = '*MSOURCE*'
OPEN (0, FILE=CONSOL )
OPEN (5. FILE=DATFLE )
OPEN (6, FILE=OUFLE )
CALL FTNCMD('SET ATTENTION=ON;')
GET USER SPECIFIED BETWEEN TRIP TIME LIMIT.
WRITE(0,*) 'ENTER A BETWEEN TRIP TIME LIMIT:
READ (0,*) ITOLER
WRITE(0,*) 'TOLERANCE IS ', ITOLER
-------
LEVEL 1.3.1 (FEB 1984)
VS FORTRAN
. .2 3.
DATE: MAR 16, 1987 TIME: 11:23:07
.' i 4 5 6 7.*...
NAME: MAIN
PAGE:
ISN
1SN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
,'6
17
18
19
20
21
22
23
25
26
27
28
CHECK IF USER WANTS HEADERS IN OUTPUT FILE -TRIP.
WRITE(0.ป) 'DO VOU WANT HEADERS IN OUTPUT FILE -TRIP? (V/N):
READ (0,505) HEADER
505 FORMAT(AI)
READ IN ORIGINAL OCS TRIP DATA.
10
NPAGE =
NBACK =
NEND =
CONTINUE
IF(NBACK
NBACK
DO 200 I
READ(5,100
1
0
0
.EQ.
1)
1
BACKSPACE 5
1000
END=250)
SVDAY1 ( I ) ,
START! (I ) ,
AVDBS1 (I ) ,
ECH01 1(1),
TRPCT1 ( I ) ,
OFFCT1 ( I ) ,
TOTSC1 (I ) ,
WH01 (I),
DVTRP1 ( I ) ,
AVSPD1 ( I ) ,
STPSC1 (I)
ECH031 ( I ) ,
SVTIM1
DSTNC1
, GOSC1
DATE1 (
(I
(I
(I
I)
) , TVPE1
) , STPCT
) , LOAN1
, GOODK
(I) ,
1(1)
(I),
I)
1
2
3
4
100 FORMAT(4I6, 212, 16, 2F10.3, 16, F10.3, 316, 15, 312, 17, 12)
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
29
30
31
32
33
34
35
36
37
38
39
40
41
_
42
43
44
45
46
47
48
49
50
51
DVTRP2U) =
TRPCT2U) =
I COUNT = I
IF( 1 .EQ. 1
IF( LOAN1(I)
200 CONTINUE
C
250 CONTINUE
NENO = 1
300 CONTINUE
C
C-ซ- 1 -*-
+ ^ 1
C
C COMBINE TRIPS IF
C
TRPCT2O) =
J = 0
DO 500 I =
IF(OFFCTl (I )
C
C TRIP NOT WITHIN
C
J
ERR1 ( J) =
ERR2(J) =
ERR3(J) =
ERR4(J) =
NEWTRP( J)
SVDAV2( J)
IF( I .EQ. 1
TRPCT2( J)
ELSE
0
0
1
) GO TO 200
.NE. LOANl(I-l) ) GO TO 300
2.oj..iACr^.c _ j. _ ~J _
- f ^ t ^ ป. fcj 1 ฃ 1 /
THE OFFCT FALLS WITHIN THE USER SPECIFIED LIMIT.
0
1 . I COUNT
.GT. ITOLER .OR. I . EQ . 1) THEN
LIMIT.
J + 1
0
0
0
0
0
= SVOAYl(I)
) THEN
= 1
td
-------
LEVEL 1.3.1 (FEB 1984)
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN '
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
98
99
VS FORTRAN
. .2 3.
DATE: MAR 16. 1987
. .'4 5
TIME: 11:23:07
.6 7.*. . .
NAME: MAIN
PAGE:
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
92
94
96
TRPCT2CJ) = TRPCT2(J-1)
ENDIF
IF(SVTIM1(I) .LT. SVTIMI(I-I)
1 OFFCT1 (I) .GE. 1440)
DVTRP2(J) = 1
ELSE
DYTRP2(J) = DYTRP2(J-1)
ENDIF
C
SVTIM2(J) = SVTIMK )
TYPE2 (J) = TYPE1 ( )
START2(J) = STARTI( )
OFFCT2(J) = OFFCTK )
AVSP02CJ) = AVSPD1 ( )
DSTNC2(J) = DSTNCH )
STPCT2CJ) = STPCTH )
AVDBS2(J) = AVDBSH )
TOTSC2 (J) = TOTSC1 (I)
STPSC2(J) = STPSCU )
GOSC2 (J) - GOSC1 ( )
LOAN2 (J) = LOAN! ( )
ECH012( J) = ECH01 1 ( )
WHO2 (J) = WH01 ( )
ECH032(J) = ECH03K )
DATE2 (J) = DATE1 ( )
GOOD2 (J) = GOOD1 ( )
C
C TRIP WITHIN LIMIT.
C
ELSE
OFFSEC = OFFCT1 ( I ) * 60
TOTSEC = TOTSCKI) + OFFSEC
TOTSTP = STPSCI(I) + OFFSEC
C
NEWTRP(J) = NEWTRP(J) + 1
IF(TYPE2(J) .NE. TYPEl(I) )
C
DSTNC2(J) = DSTNC2(J) +
STPCT2(J) = STPCT2U) +
TOTSC2 (J) = TOTSC2(J) +
C
AVDBS2U) = DSTNC2(J) /
+ 1
.OR. I .EQ. 1
THEN
+ 1
TYPE2( J)
DSTNC1 (I )
STPCT1 (I )
TOTSEC
(STPCT2U) )
AVSPD2U) = (DSTNC2U) * 3600) / TOTSC2U)
C
STPSC2(J) = STPSC2(J) +
GOSC2 (J) = GOSC2(J) +
C
1F(ECH012(J) .NE. ECHOll(I)
IF(WH02 (J) .NE. WH01 (I)
IF(ECH032(J) .NE. ECH03KI)
IF(GOOD2 (J) .NE. GOOD) (I)
TOTSTP
GOSC1 (I)
) ERR1(J) =
) ERR2(J) =
) ERR3CJ)
) ERR4(J) =
.OR.
= 2
ENDIF
500 CONTINUE
-------
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
ISN
STATISTICS*
STATISTICS*
. 1
(FEB 1984) VS FORTRAN DATE: MAR 16
* * 1 2 3 ,A 5
C
C
C + 1 < 2 ' 3 ' 4 * 5
C
, 1987 TIME: 11:23:07
6 . . . 7 .'*
-4. fi~ + "7
C WRITE COMBINED TRIP DATA TO TEMPORARY FILE' -TRIP.
100
101
102
103
104
105
106
107
108
109
1 10
C
DO 700 I = 1 . J
IF(HEADER.NE.VES)GO TO 580
TESTI = FLOAT(I) / 50.
IF( I .EQ. 1 .OR. TESTI . Ed . 1.0 .OR. TESTI
CALL GUINFO( 'SIGNONID'.
CALL CUINFO( ' $=ON
CALL TIME( 22, 0,
C
WRITE(6,510) (ICCID, ( ITIME(K), K = 1,
1 ITOLER. J. LOAN2U), NPAGE)
510 FORMAT('l', 10X, A4, 2X , 6A4, 1 OX . 'OFFCOUNT
1 13. 2X. 'TOTAL TRIPS LOAN#= ' . 14, 1 OX ,
WRITE(6,550)
550 FORMAT (/,
1 ' SAVDAY DAYTRP OLDST ' . '
2'TNC. AVEDBS STPSC LOAN*
.EQ. 2.0) THEN
ICCID)
1 )
ITIME)
6),
LIMIT=' , 13, 9X,
'PAGE ', 13)
OFFCT DIS' .
DATE ' .
3' ERRORS'./. ' TRIPCT SAVTIM START '.
1 1 1
1 1 2
1 13
1 14
1 15
1 16
'117
1 18
1 19
4 ' AVESPD STOPCT
5 ' FLAGS TRPFLG #COMB ',/)
C
NPAGE = NPAGE + 1
ENDIF
C
580 CONTINUE
WRITE(6,600)
2 SVDAY2U). TRPCT2U). DYTRP2U),
2 START2U), OFFCT2U). AVSPD2U),
3 AVDBS2U), TOTSC2U), STPSC2U)
4 ECH012CI). WH02 (I), ECH032U).
5 ERRI(l). ERR2U), ERR3U),
600 FORMAT(4I6, 212, 16. 2F10.3, 16, F10.3, 316.
C
700 CONTINUE
IF(NEND .EQ. 0) GO TO 10
C
C TERMINATE.
C
STOP
END
TOTSC GOSC-
SVTIM2(I), TYPE2U).
DSTNC2U). STPCT2(1).
, GOSC2U) . LOAN2U) ,
DATE2(I), GOOD2(I),
ERR4(I), NEWTRP(I)
15, 312, 17, 612)
NAME: MAIN
PAGE:
W
.ฃ-
OJ
SOURCE STATEMENTS = 113, PROGRAM SIZE = 35232 BYTES, PROGRAM NAME = MAIN
NO DIAGNOSTICS GENERATED.
PAGE :
**MAINป* END OF COMPILATION 1 ******
-------
LEVEL 1.3.1 (FEB 1984) VS FORTRAN DATE: MAR 16, 1987 TIME: 11:23:22 PAGE:
SUMMARY OF MESSAGES AND STATISTICS FOR ALL COMPILATIONS
STATISTICS* SOURCE STATEMENTS = 113, PROGRAM SIZE = 35232 BYTES, PROGRAM NAME = MAIN PAGE:
*STATISTICS* NO DIAGNOSTICS GENERATED.
**MAINป* END OF COMPILATION 1 ******
******* SUMMARY STATISTICS ******* Q DIAGNOSTICS GENERATED. HIGHEST SEVERITY CODE IS 0.
to
-------
Appendix C
Histograms: Urban Only Trips
Trips Separated By An Engine Off
Period Exceeding 10 Minutes
Histogram Key:
LEFT-END = Lower limit of interval
TOT % . = Percent of total trips
found in interval
COUNT = Number of trips in interval
-------
AVERAGE TRIP SPEED (0-64 mph)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
2.0000
4.0000
6.0000
8 .0000
10.000
1 2 .000
14 .000
16.000
IB .000
20.000
22.000
24.000
26.000
28 .000
30 . 000
32.000
34 . 000
36.000
38.000
40.000
42.000
44 .000
46.000
48 . 000
50.000
52.000
54 .000
56.000
58 .000
60.000
62.000
4
2
3
4
5
6
9
10
9
7
10
7
5
3
2
1
1
1
0
0
0
0
.4
. 2
.7
. 2
.4
.0
.3
. 4
. 7
.9
.3
. 7
.6
.5
.5
.9
.5
. 4
.5
.3
.3
.3
.3
. 2
. 1
. 2
. 1
. 1
44
22
37
42
54
60
93
104
97
79
103
77
56
35
25
19
15
14
5
3
3
3
3
2
1
2
0
0
0
0
1
1
t-XXXXXXXXXXXXXXXXXXXXXX
^xxxxxxxxxxx
t-XXXXXXXXXXXXXXXXXXX
*-xxxxxxxxxxxxxxxxxxxxx
fXXXXXXXXXXXXXXXXXXXXXXXXXXX
ปXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
^xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ซ-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'xxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ปxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
i-XXXXXXXXXXXXXXXXXXXXXXXXXXXX
*xxxxxxxxxxxxxxxxxx
i-XXXXXXXXXXXXX
tXXXXXXXXXX
*xxxxxxxx
^xxxxxxx
t-XXX
tXX
*xx
n
"-X
TOTAL
100.0 1000 (INTERVAL WIDTH= 2.0000)
-------
NUMBER OF STOPS DURING TRIP (0-35)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
1 .0000
2.0000
3.0000
4 .0000
5.0000
6.0000
7 .0000
b .0000
9.0000
10.000
1 1 .000
1 2 . 000
1 3 . 000
14.000
15.000
16.000
1 7 .000
18.000
19.000
20.000
21 .000
22 . 000
23.000
24 . 000
25.000
26.000
27 .000
28 . 000
29.000
30.000
3 1 . 000
32.000
33.000
34.000
TOTAL
0
3
5
7
9
9
10
9
8
6
5
4
3
3
2
2
0
0
0
0
100
5
1
1
5
0
4
1
3
1
1
2
0
6
1
3
8
6
7
2
1
5
9
3
3
6
2
4
2
1
3
4
0
0
35
51
71
95
90
104
91
83
61
51
42
30
36
21
23
18
16
17
1 2
1 1
5
9'
3
3
6
2
4
2
0
0
0
1
0
3
4
1000
+xxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXX
tXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXX
+xxxxxxxxxxxxxxxxxx
+XXXXXXXXXXX
-t-XXXXXXXXXXXX
+XXXXXXXXX
+XXXXXXXX
+XXXXXXXXX
+XXXXXX
+XXXXXX
+ XXX
+xxxxx
+ XX
+ XX
+ XXX
+ XX
o
to
^x
4 > 35.000
(INTERVAL WIDTH= 1.0000)
-------
TRIP DISTANCE (0-25 miles)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21 .000
21 .500
22.000
22.500
23.000
23.500
24.000
24.500
10
a
a
7
5
5
6
4
6
4
2
4
3
2
2
1
1
1
1
0
0
0
0
0
0
0
.5
.5
. 1
.6
.2
.3
.0
.0
.5
.2
.a
.5
.6
.3
.0
.5
. 1
.5
.3
. 1
.9
.9
.3
.3
.2
.9
.8
.3
.3
.4
.5
.2
.3
.2
.2
.2
.2
.4
. 1
. 1
. 1
. 1
. 1
.
105
85
81
76
52
53
60
40
65
42
28
45
36
23
20
15
1 1
15
13
1 1
19
9
13
13
12
9
a
3
3
4
5
2
3
2
2
2
0
2
4
1
1
1
1
0
1
0
0
0
0
0
+ XX
+XX
-XX
+XX
+ XX
+ XX
+ XX
+ XX
+ XX
+XX
+ XX
+XX
xx
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+x
+ XX
+x
+x
+x
-f
+x
+ XX
+x
+x
+x
+x
+
+x
+
+
f
+
-1-
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxx
0
TOTAL
.4
100.0
4 > 25.000
1000 (INTERVAL WIDTH= .50000)
-------
TRIP DISTANCE (0-2 miles)
each X = 1 trip
LEFT-END
TOT% COUNT
Q.
. 10000
.20000
.30000
.40000
.50000
.60000
.70000
.80000
.90000
.0000
. 1000
.2000
.3000
.4000
.5000
.6000
.7000
.8000
.9000
4.6
1 .4
1 .9
2. 1
.5
1 .4
2.2
1 .7
1 .4
1 .8
1.8
1 .5
1 .2
1 .8
1 .8
1 .7
1 .2
2.0
1 .0
1 .8
46
14
19
21
5
14
22
17
14
18
18
15
12
18
18
17
12
20
10
18
TOTAL
65.2
100.0
46 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXX
19 +XXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxx
xxxxx
14 +XXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
14 +XXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXX
12 +XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
18 +XXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx
12 +XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
652 > 2.0000
1000 (INTERVAL WIDTH= .10000)
o
Ln
-------
AVERAGE DISTANCE BETWEEN STOPS (0-5 miles) each X
trips
LEFT-END
TOT% COUNT
0.
. 10000
. 20000
. 30000
.40000
.50000
.60000
. 70000
.80000
.90000
.0000
. 1 000
. 2000
. 3000
. 4000
. f> 000
. 6000
. "/OOO
.HOOO
.9000
2.0000
2 . 1000
2. 2000
2.3000
2.4000
2.5000
2 . 6000
2. 7000
2 .8000
2 .9000
3 . 0000
3. 1000
3 . 2000
3 . 3000
3 .4000
3.5000
3 . 6000
3 . 7000
3. 8000
3.9000
4 .0000
4 . 1000
4: 2000
4 . 3000
4 . 4000
4 . GOOO
4 . 6000
4 . 7000
4.8000
4.9000
TOTAL
7
9
1 1
12
1 1
10
8
5
5
3
2
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
100
0
3
9
9
7
5
2
3
3
7
0
6
4
7
7
3
4
5
2
2
7
5
2
2
2
1
2
2
1
2
1
1
3
1
1
9
0
70
93
1 19
129
1 17
105
82
53
53
37
20
16
14
7
17
13
4
5
2
2
7
5
2
2
2
1
2
0
2
1
2
1
0
0
0
0
0
0
1
0
3
0
1
0
0
0
0
0
1
0
9
1000
+ XXXX
+ XXXX
+ XXXX
-ป-XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
tXXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XXXX
+ XX
+ XXX
+x
*x
+ XXXX
+ XXX
+x
+x
*x
+ x
f X
*
+ X
>x
+ x
+ x
1-
+
t-
+
t
-*
+ x
+
+ XX
+
+x
*
+
+
-t-
t-
+ x
*
> 5.0
(INT
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)'
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxx
n
(INTERVAL WIDTH= .10000)
-------
TIME SINCE LAST TRIP (0-24 hours)
each X = 3 trips
LEFT-END
TOT% COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
B.5000
9 . 0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21 .000
21 .500
22.000
22.500
23.000
23.500
TOTAL
25.0
15.7
8.6
7.2
3.6
3.4
3. 1
2.2
2. 1
2.7
1 . 1
1 .0
.5
.5
.2
.4
1 .6
2. 1
. 1
.6
.7
. 1
. 1
.3
.9
.9
.6
.8
1 .3
.4
.2
.2
.4
.3
.2
.5
. 1
. 1
.4
.4
. 1
. 1
. 1
.4
. 1
.3
.4
. 1
1 .8
100.0
250 +XXXXXXXXXXXXXXXXX
1 57 +XXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXX
86 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
72 +XXXXXXXXXXXXXXXXXXXXXXXX
36 +XXXXXXXXXXXX
34 +XXXXXXXXXXXX
31 +XXXXXXXXXXX
22 +XXXXXXXX
21 +XXXXXXX
27 +XXXXXXXXX
1 1 +XXXX
10 +XXXX
5 +XX
5 +XX
2 +X
4 +XX
16 +XXXXXX
21 +XXXXXXX
1 1 +XXXX
16 +XXXXXX
17 +XXXXXX
1 1 +XXXX
1 1 +XXXX
13 +XXXXX
9 +XXX
9 +XXX
6 +XX
8 +XXX
13 +XXXXX
4 +XX
2 +X
2 +X
4 +XX
3 +X
2 +X
5 +XX
1 +X
1 +X
4 +XX
4 +XX
1 +X
1 +X
1 +X
4 +XX
1 +X
3 +X
4 +XX
1 +X
18 > 24.000
1000 (INTERVAL WIDTH=
.50000)
o
-------
TIME SINCE LAST TRIP (10-60 minutes) each X = 1 trip
LEFT-END TOT% COUNT
10.000 0. 0 +
11.000 2.1 21 +XXXXXXXXXXXXXXXXXXXXX
12.000 2.0 20 +XXXXXXXXXXXXXXXXXXXX
13.000 2.1 21 +XXXXXXXXXXXXXXXXXXXXX
14.000 1.9 19 +XXXXXXXXXXXXXXXXXXX
15.000 1.8 18 +XXXXXXXXXXXXXXXXXX
16.000 1.6 16 +XXXXXXXXXXXXXXXX
17.000 .6 6 +XXXXXX
18.000 2.2 22 +XXXXXXXXXXXXXXXXXXXXXX
19.000 1.5 15 +XXXXXXXXXXXXXXX
20.000 1.0 10 +XXXXXXXXXX
21.000 1.3 13 +XXXXXXXXXXXXX
22.000 .9 9 +XXXXXXXXX
23.000 .5 5 +XXXXX
24.000 .9 9 +XXXXXXXXX
25.000 .6 6 +XXXXXX
26.000 1.5 15 +XXXXXXXXXXXXXXX
27.000 1.0 10 +XXXXXXXXXX
28.000 1.2 12 +XXXXXXXXXXXX
29.000 .3 3 +XXX
30.000 .7 7 +XXXXXXX
31.000 1.0 10 +XXXXXXXXXX
32.000 1.3 13 +XXXXXXXXXXXXX
33.000 .8 8 +XXXXXXXX
34.000 .7 7 +XXXXXXX
35.000 .6 6 +XXXXXX
36.000 .6 6 +XXXXXX
37.000 1.0 10 +XXXXXXXXXX
38.000 .7 7 +XXXXXXX
39.000 .8 8 +XXXXXXXX
40.000 1.0 10 +XXXXXXXXXX
41.000 .4 4 +XXXX
42.000 .5 5 +XXXXX
43.000 .3 3 *XXX
44.000 .3 3 +XXX
45.000 .4 4 +XXXX
46.000 .4 4 +XXXX
47.000 .3 3 +XXX
48.000 .4 4 +XXXX
49.000 .4 4 +XXXX
50.000 0. 0 +
51.000 .2 2 +XX
52.000 .3 3 +XXX
53.000 .5 5 +XXXXX
54.000 .4 4 +XXXX
55.000 .4 4 +XXXX
56.000 .6 6 +XXXXXX
57.000 .1 1 +X
58.000 .2 2 +XX
59.000 .7 7 +XXXXXXX
59.0 590 > 60.000
TOTAL 100.0 1000 (INTERVAL WIDTH= 1.0000)
-------
TOTAL TRIP TIME (0-90. minutes)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
2.0000
4.0000
6.0000
8 .0000
10.000
12.000
14 . 000
16.000
18.000
20 . 000
22 .000
24 .000
26.000
28 .000
30.000
32.000
34 .000
36.000
38.000
40.000
42 . 000
44.000
46.000
48 . 000
50.000
52 .000
54 . 000
56.000
58 .000
60.000
62.000
64 . 000
bb.OOO.
b8.000
70.000
72 . 000
74 .000
76.000
78 .000
HO . 000
82.000
84 .000
86.000
88.000
TO! AL
6.
6.
1 1 .
9.
8.
7.
8.
7.
5.
5.
3.
2 .
2.
2.
1 .
2.
1 .
1 .
1 .
1 .
0.
0.
0.
0.
0.
0.
0 .
0.
0 .
0.
100.
,5
7
0
. 1
. 1
. 1
4
5
7
9
.9
4
7
.3
.6
.0
. 1
6
2
, 2
7
0
7
5
4
2
3
2
1
2
1
1
. 1
1
. 1
. 2
.0
65
67
1 10
91
81
71
84
75
57
59
39
24
27
23
16
20
1 1
6
12
1 2
7
10
7
5
4
0
2
3
2
1
2
0
1
1
0
1
0
1
1
0
0
0
0
0
0
2
1000
+XXXXXX
+ XXXXXX,
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+XXXXXX
+ XXX
+XXXXXX
+XXXXXX
+ XXXX
+XXXXX
+ XXXX
+ XXX
+ XX
+
+x
+ XX
+x
+ x
+x
+
+x
+x
+
+ x
t
+x
+x
+
-t-
+
f
+
*
> 90.00
( INTER
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(INTERVAL WIDTH= 2.0000)
-------
TOTAL TIKE MOVING (0-25 minutes)
each X = 1 trip
LEFT-END
TOT* COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21 .000
21 .500
22.000
22.500
23.000
23.500
24.000
24.500
4.5
1 .5
2.9
2.2
3.4
3.9
2.9
4.3
3.6
3.7
2.8
2.4
2.5
3.3
2.8
2.8
2.7
3.2
2.8
3.4
1 .7
2.2
2.5
2.7
2.4
2. 1
.8
.5
.0
.8
.0
. 1
.8
.7
.7
1 .4
.3
.5
.6
.7
.8
.9
.4
.8
1 .2
.5
1.0
.6
.3
.5
45
15
29
22
34
39
29
43
36
37
28
24
25
33
28
28
27
32
28
34
17
22
25
27
24
21
18
15
10
18
10
1 1
8
7
7
14
3
5
6
7
a
9
4
a
12
5
10
6
3
5
TOTAL
3.9
100.0
i-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXX
29 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
22 +XXXXXXXXXXXXXXXXXXXXXX
34 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
39 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
29 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
43 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
37 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-l-XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXX
25 +XXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
28 -t-XXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
32 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
28 +XXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
17 +XXXXXXXXXXXXXXXXX
22 +XXXXXXXXXXXXXXXXXXXXXX
25 +XXXXXXXXXXXXXXXXXXXXXXXXX
27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
24 +XXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXX
18 +XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXXX
+XXXXXXX
+XXXXXXX
14 +XXXXXXXXXXXXXX
+ XXX
+XXXXX
6 +XXXXXX
+XXXXXXX
a +xxxxxxxx
9 +XXXXXXXXX
+ XXXX
+XXXXXXXX
+XXXXXXXXXXXX
+XXXXX
10 +XXXXXXXXXX
+XXXXXX
+ XXX
+XXXXX
39 > 25.000
1000 (INTERVAL WIDTH= .50000)
n
I1
o
-------
TOTAL TIME STOPPED (0-20 minutes)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4 . 0000
4 . 5000
5 .0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
12.500
13.000
13.500
14.000
14 .500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
5
10
1 1
8
9
6
\5
4
3
3
1
2
2
1
1
1
1
1
1
1
1
.7
. 1
.9
.4
.8
.3
.0
. 1
.4
.6
. 7
.0
.3
.7
. 7
.5
.7
.9
.5
. 1
. 2
.7
.4
.6
.5
.9
. 1
.3
.8
.7
.5
. 2
.5
.3
.4
.3
.5
.5
.4
.6
57
101
1 19
84
98
63
50
41
34
36
17
20
23
17
17
15
7
9
15
1 1
12
7
4
16
5
9
1 1
3
8
7
5
2
5
3
4
3
5
5
4
6
TOTAL
4.2
100.0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
101 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
84 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
63 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
50 +XXXXXXXXXXXXXXXXXXXXXXXXX
41 +XXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx
36 +XXXXXXXXXXXXXXXXXX
17 +XXXXXXXXX
xxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxx
xxxxxxxxx
xxxxxxxx
xxxx
xxxxx
15 +XXXXXXXX
xxxxxx
12 +XXXXXX
7 +XXXX
XX
16 +XXXXXXXX
XXX
xxxxx
xxxxxx
XX
xxxx
xxxx
XXX
X
XXX
XX
XX
XX
XXX
XXX
XX
6 +XXX
42 > 20.000
1000 (INTERVAL WIDTH= .50000)
o
-------
NUMBER OF TRIPS MADE PER DAY (0-17)
each x = 1 day
URBAN DAYS
MIDPOINT
HIST* COUNT
0
1
2
3
4
5
6
7
8
9
10
1 1
12
13
14
15
16
17
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
9
6
1 1
14
10
14
8
8
8
4
2
1
0
0
0
0
1
0
.0
.4
.2
.4
. 1
.4
.0
.0
.0
.3
.7
. 1
.0
.5
.0
.5
. 1
.5
17
12
21
27
19
27
15
15
15
a
5
2
0
1
0
1
2
1
+xx:
+xx:
+xx:
+xx:
+xx:
+xx:
+xx;
+xx:
+xx:
+xx:
+xx;
+ XX
+
+x
+
+x
+ XX
+x
xxxxxxxxxxxxxxxxx
XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXX
27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
o
TOTAL
188 (INTERVAL WIDTH= 1.0000)
-------
Appendix D
Histograms: Urban And/Or Rural Trips
Trips Separated By An Engine Off
Period Exceeding 10 Minutes
Histogram Key:
LEFT-END
TOT %
COUNT
Lower limit of interval
Percent of total trips
found in interval
Number of trips in interval
-------
AVERAGE TRIP SPEED (0-64 mph)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
2.0000
4 . 0000
fa. 0000
8 .0000
10 . 000
1 2 .000
14 .000
1 6 . 000
18.000
20.000
22.000
V4 .000
26.000
28.000
30.000
32.000
34 .000
36.000
38 . 000
40 . UOO
42 . 000
44 .000
46.000
48 . 000
50.000
52 .000
54.000
56.000
58.000
60.000
62.000
4
2
3
4
5
5
8
9
9
7
9
7.
5
3
2.
2
1
1
1
0
. 1
. 1
. 7
. 1
. 0
.9
. 4
.8
. 2
.3
.6
. 1
. 7
.6
.9
. 1
.9
.8
.8
.0
.9
. 7
. V
.3
.3
.5
. 1
. 1
. 2
.2
. 1
52
26
46
51
63
74
106
123
1 15
91
121
89
72
45
36
26
24
23
10
12
1 1
9
9
4
4
6
1
1
2
0
2
1
*xxxxxxxxxxxxxxxxxxxxxxxxxx
<-xxxxxxxxxxxxx
ซ-xxxxxxxxxxxxxxxxxxxxxxx
<-xxxxxxxxxxxxxxxxxxxxxxxxxx
ปxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
^xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
tXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
t-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
t-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
t-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
t-XXXXXXXXXXXXXXXXXXXXXXX
t-XXXXXXXXXXXXXXXXXX
-XXXXXXXXXXXXX
xxxxxxxxxxxx
^xxxxxxxxxxxx
ป-xxxxx
*XXXXXX'
ซ-xxxxxx
fXXXXX
xxxxx
fXXX
+x
N>
TOTAL
100.0 1255 (INTERVAL W1DTH= 2.0000)
-------
NUMBER OF STOPS DURING TRIP (0-35)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
1 .0000
2.0000
3.0000
4 .0000
5.0000
6.0000
7 . 0000
8.0000
9.0000
10. 000
1 1 . 000
12.000
13.000
14.000
15.000
Ib .000
17 .000
18.000
19.000
20.000
21 .000
22.000
23.000
24.000
25.000
26.000
27.000
28.000
29.000
30.000
31 .000
32.000
33.000
34. 000
TOTAL
0
3
5
7
10
B
10
8
8
6
5
4
3
3
2
2
1
1
1
1
1
1
0
0
100
.5
.2
.5
.3
. 7
.3
.3
. 1
. 1
.3
1
. 1
. 3
. 2
.2
.8
.5
.5
.4
.2
.6
.0
.3
.4
.5
.2
.4
.2
. 1
. 1
. 2
. 2
.5
.0
0
44
65
94
129
109
1 29
104
102
77
66
52
39
42
27
27
22
19
19
17
15
8
12
4
5
6
2
5
2
1
1
0
2
0
3
6
1255
xxxxxxxxxxxxxxxxxxxxxx
65 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
109 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
129 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxx
19 +XXXXXXXXXX
17 +XXXXXXXXX
15 +XXXXXXXX
8 +XXXX
12 +XXXXXX
4 +XX
5 +XXX
XXX
X
5 +XXX
X
X
X
X
3 +XX
6 > 35.000
(INTERVAL WIDTH= 1.0000)
-------
TRIP DISTANCE (0-25 miles)
each X - 2 trips
LEFT-END
0.
.50000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
11.000
11.500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21.000
.500
.000
22.500
23.000
23.500
24.000
24.500
TOTAL
21
22.
TOTX COUNT
10.1 127 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8.3 104 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8.0 101 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
6.8 85 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4.9 62 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5.0 63 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5.4 68 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.8 48 +XXXXXXXXXXXXXXXXXXXXXXXX
6.2 78 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4.0 50 +XXXXXXXXXXXXXXXXXXXXXXXXX
2.6 33 +XXXXXXXXXXXXXXXXX
3.8 48 +XXXXXXXXXXXXXXXXXXXXXXXX
3.3 42 +XXXXXXXXXXXXXXXXXXXXX
2.2 28 +XXXXXXXXXXXXXX
1.9 24 +XXXXXXXXXXXX
.5 19 +XXXXXXXXXX
.4 17 +XXXXXXXXX
.5 19 +XXXXXXXXXX
.7 21 +XXXXXXXXXXX
.0 13 +XXXXXXX
.7 21 +XXXXXXXXXXX
.8 10 +XXXXX
.3 16 +XXXXXXXX
.1 14 +XXXXXXX
.0 12 +XXXXXX
.8 10 +XXXXX
.7 9 +XXXXX
.4 5 +XXX
.3 4 +XX
.5 6 +XXX
.5 6 +XXX
.4 5 +XXX
.4 5 +XXX
.2 3 +XX
.3 4 +XX
.4 5 +XXX
.2 2 +X
.2 3 +XX
.6 7 +XXXX
.3 4 +XX
.1 1 +X
.2 3 +XX
.1 1 +X
0. 0 +
.2 2 +X
.1 1 +X
.3 4 +XX
.2 2 +X
.1 1 +X
.1 1 +X
3.0 38 > 25.000
100.0 1255 (INTERVAL WIDTH= .50000)
-------
TRIP DISTANCE (0-2 miles)
each X = 1 trip
LEFT-END
0.
.10000
.20000
.30000
.40000
.50000
.60000
.70000
.60000
.90000
t.0000
1 .1000
1.2000
1 .3000
1.4000
1.5000
1.6000
1.7000
1.8000
1.9000
TOTAL
TOT%
4.6
;
;
.4
.8
.8
.6
.5
. 1.
.4
.4
.0
.9
.6
.4
.5
.6
.5
. 1
.6
.0
.6
66.7
100.0
COUN
58
17
23
22
7
19
26
17
17
25
24
20
.18
19
20
19
14
20
13
20
837
1255
58 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
17 +XXXXXXXXXXXXXXXXX
23 +XXXXXXXXXXXXXXXXXXXXXXX
22 +XXXXXXXXXXXXXXXXXXXXXX
+XXXXXXX
19 -t-XXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
17 +XXXXXXXXXXXXXXXXX
25 +XXXXXXXXXXXXXXXXXXXXXXXXX
24 +XXXXXXXXXXXXXXXXXXXXXXXX
20 +XXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxx
19 +XXXXXXXXXXXXXXXXXXX
20 +XXXXXXXXXXXXXXXXXXXX
19 +XXXXXXXXXXXXXXXXXXX
14 +XXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
20 +XXXXXXXXXXXXXXXXXXXX
2.0000
(INTERVAL WIDTH= .10000)
o
Ul
-------
AVERAGE DISTANCE BETWEEN STOPS (0-5 miles) each X = 2 trips
LEFT-END
TOT* COUNT
0.
. 10000
. 20000
.30000
.40000
.50000
.60000
.70000
.80000
.90000
1 .0000
1 . 1000
1 . 2000
1 . 3000
1 .4000
1 . 5000
1 . 6000
1 . 7000
1 .8000
1 .9000
2 .0000
2 . 1 000
2. 2000
2 . 3000
2.4000
2.5000
2.6000
2. 7000
2.8000
2.9000
3.0000
3. 1000
3.2000
3.3000
3.4000
3.5000
3. 6000
3. 7000
3.8000
3.9000
4.0000
4 . 1000
4. 2000
4.3000
4.4000
4.5000
4 .6000
4. 7000
4.8000
4 .9000
TOTAL
6.
8.
1 1 .
1 1 .
1 1 .
9.
7.
4.
4.
3.
2.
1 .
1 .
1 .
1 .
1 .
0.
0.
0.
0.
0.
0.
0.
2.
100.
9
a
5
7
0
7
6
6
7
7
2
8
3
0
8
1
6
4
5
4
7
6
3
3
2
4
4
4
3
7
2
1
2
2
1
1
2
3
1
1
1
2
2
5
0
86
1 10
144
147
138
122
96
58
59
46
28
22
16
13
22
14
8
5
6
5
9
7
4
4
2
5
5
5
4
9
2
1
3
3
0
0
1
0
1
2
4
0
1
1
0
0
1
0
2
2
32
1255
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXXX
+XXXXXXX
+XXXXXXXXXXX
+XXXXXXX
+ XXXX
+ XXX
+ XXX
i-XXX .
+XXXXX
+ XXXX
+ XX
+ XX
+x
+ XXX
+ XXX
+ XXX
+ XX
+XXXXX
+ x
+x
+ XX
+ XX
+
+
+x
fr
+x
+ x
+ XX
ป
+x
+x
-f
+
+ x
+
+ x
+ x
> 5.0000
(INTERVAL WIDTH=
.10000)
-------
TIME SINCE LAST TRIP (0-24 hours)
each X = 4 trips
LEFT-END TOTX COUNT
0. 24.7 310
.50000 15.9 199 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1.0000 9.0 113 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1.5000 6.9 86 +XXXXXXXXXXXXXXXXXXXXXX
2.0000 3.7 47 +XXXXXXXXXXXX
2.5000 3.7 46 +XXXXXXXXXXXX
3.0000 2.9 37 +XXXXXXXXXX
3.5000 2.5 31 +XXXXXXXX
4.0000 2.5 31 +XXXXXXXX
4.5000 2.4 30 +XXXXXXXX
5.0000 1.0 13 +XXXX
5.5000 .9 11 +XXX
6.0000 .5 6 +XX
6.5000 .4 5 +XX
7.0000 .2 3 +X
7.5000 .4 5 +XX
8.0000 1.6 20 +XXXXX
8.5000 2.3 29 +XXXXXXXX
9.0000 1.0 12 +XXX
9.5000 1.5 19 +XXXXX
10.000 1.4 18 +XXXXX
10.500 1.0 12 +XXX
11.000 1.4 18 +XXXXX
11.500 1.2 15 +XXXX
12.000 .9 11 +XXX
12.500 .8 10 +XXX
13.000 .7 9 +XXX
13.500 .6 8 +XX
14.000 1.4 17 +XXXXX
14.500 .4 5 +XX
15.000 .5 6 +XX
15.500 .4 5 +XX
16.000 .4 5 +XX
16.500 .3 4 +X
17.000 .3 4 +X
17.500 .5 6 +XX
18.000 .1 1 +X
18.500 .1 1 +X
19.000 .4 5 +XX
19.500 .3 4 +X
20.000 .2 2 +X
20.500 .2 2 +X
21.000 .1 1 +X
21.500 .3 4 +X
22.000 .2 2 +X
22.500 .2 3 +X
23.000 .3 4 +X
23.500 .2 2 +X
1.4 18 > 24.000
TOTAL 100.0 1255 (INTERVAL WIDTH= .50000)
-------
TIME SINCE LAST TRIP (10-60 minutes)
each X = 1 trip
LEFT-END
TOT* COUNT
10
1 1
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.000 0. 0 +
.000 2.4 30
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.000
.8 23
.9 24
.8 23
.9 24
.5 19
.0 12
.8 23
.4 18
.0 12
.4 17
.9 1 1
.6 7
.2 15
.6 ^
.4 17
.0 13
.0 12
.2 3
.6 8
.8 10
.2 15
.0 12
.6 8
.6 7
.6 7
.0 13
.9 1 1
.8 10
.0 13
.4 5
.5 6
.5 6
.2 3
.4 5
.5 6
.2 3
.6 7
.3 4
.2 3
.2 2
.2 3
.4 5
.6 7
.3 4
.6 7
.2 2
.2 2
.9 1 1
59.0 740
TOTAL 100.0 1255
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXXXXXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXX
+XXXXXXXXXXXXXXX
+XXXXXXX
+XXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXX
+XXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXXXXXX
+XXXXXXXXXXXX
+XXXXXXXX
+XXXXXXX
+XXXXXXX
+XXXXXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXXXXX
+XXXXXXXXXXXXX
+XXXXX
+XXXXXX
+XXXXXX
+ XXX
+XXXXX
+XXXXXX .
+XXX
+XXXXXXX
+XXXX
+ XXX
+XX
+ XXX
+XXXXX
+XXXXXXX
i-XXXX
+XXXXXXX
+XX
+ XX j
+XXXXXXXXXXX
> 60.000
(INTERVAL WIOTH= 1 .
0000)
o
oo
-------
TOTAL TRIP TIME (0-90- minutes)
each X = 2 trips
LEFT-END
TOT% COUNT
0.
2.000O
4.0000
6.0000
8.0000
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
000
000
000
000
000
000
000
uoo
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
000
6
6
10
8
7
6
7
6
5
5
4
2
2
2
1
1
0
0
0
0
.5
.9
.4
.3
.8
.9
.5
.8
.6
. 7
.0
.3
.9
. 2
. 7
.8
. 2
.0
.5
.4
.8
. 2
.0
.5
.4
.2
. 3
.4
. 2
.2
.3
. 1
. 2
. 1
. 2
.2
. 1
. 1
. 1
. 1
. 1
82
87
131
104
98
86
94
85
70
7 1
50
29
37
27
21
23
15
13
19
17
10
15
13
6
5
3
4
5
2
2
4
1
2
1
2
3
0
1
1
1
0
0
1
0
1
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
-fXX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
+ XX
*xx
+ XX
+ XX
+x
*x
+ XX
t-X
+x
+x
+x
+ XX
+
<-x
+x
+x
+
+
+x
-*-
+x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+XXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxx
XXXXXXXXXXXX
xxxxxxxx
xxxxxxx
XXXXXXXXXX
xxxxxxxxx
TOTAL
1 .0
100.0
13 > 90.000
1255 (INTERVAL W1DTH= 2.0000)
-------
TOTAL TIME MOVING (0-25 minutes)
each X ป 1 trip
LEFT-END
TOT% COUNT
0.
.50000
1 .0000
1.5000
2.0000
2.5000
3.0000
3.5000
4 . 0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
11 .500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21 .000
21 .500
22.000
22.500
23.000
23.500
24.000
24.500
TOTAL
4.5
1 .5
2.7
2.2
3.2
4.0
3. 1
3.7
3.5
3.7
2.6
2.2
2.2
3.0
2.9
2.5
2.5
3.3
2.4
3. 1
1 .5
2.3
2.3
2.5
2. 1
.7
.5
.5
.0
.8
.4
.0
1 .0
.9
.6
1 .4
.4
.6
.6
.6
.8
.9
.5
.7
1 . 1
.4
1.0
.6
.4
.5
7.9
100.0
56
19
34
28
40
50
39
46
44
46
33
27
27
38
36
32
32
41
30
39
19
29
29
31
26
21
19
19
12
22
17
12
13
1 1
7
IB
5
8
8
7
10
1 1
6
9
14
5
13
7
5
6
99
1255
56 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19 +XXXXXXXXXXXXXXXXXXX
34 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
28 +XXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
50 -i-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
46 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
46 -t-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
33 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxx
27 +XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
32 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
32 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19 +XXXXXXXXXXXXXXXXXXX
29 -t-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
29 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
26 +XXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXX
19 +XXXXXXXXXXXXXXXXXXX
12 +XXXXXXXXXXXX
22 *XXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXX
12 +XXXXXXXXXXXX
+XXXXXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXX
+XXXXXXXXXXXXXXXXXX
+XXXXX
+XXXXXXXX
+XXXXXXXX
+XXXXXXX
10 +XXXXXXXXXX
xxxxxxxxxxx
6 +XXXXXX
xxxxxxxxx
14 +XXXXXXXXXXXXXX
+XXXXX
13 +XXXXXXXXXXXXX
+XXXXXXX
+XXXXX
+XXXXXX
o
M
o
> 25.000
(INTERVAL WIDTH=
.50000)
-------
TOTAL TIME STOPPED (0-20 minutes)
each X = 2 trips
LEFT-END
TOT* COUNT
0.
.50000
1 .0000
1 .5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
B.OOOO
8.5000
9.0000
9.5000
10.000
10.500
1 1 .000
1 1 .500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
6
10
1 1
8
9
6
5
3
3
3
1
2
2
1
1
1
1
.3
.3
.3
.0
.3
.3
.2
.8
.7
.5
.8
. 1
. 2
.7
.5
.5
.0
.9
.5
.0
.2
.0
.6
.4
.6
.0
.0
.2
.9
.6
.5
.4
.5
.2
.5
.3
.5
.5
.4
.5
79
129
142
101
1 17
79
65
48
46
44
22
26
27
21
19
19
13
1 1
19
13
15
12
8
18
7
12
13
3
1 1
7
6
5
6
3
6
4
6
6
5
6
79 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
79 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
46 +XXXXXXXXXXXXXXXXXXXXXXX
44 +XXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxx
26 +XXXXXXXXXXXXX
xxxxxxxxxxxxxx
xxxxxxxxxxx
19 +XXXXXXXXXX
xxxxxxxxxx
13 +XXXXXXX
+XXXXXX
+XXXXXXXXXX
+XXXXXXX
+XXXXXXXX
12 +XXXXXX
xxxx
xxxxxxxxx
xxxx
xxxxxx
13 +XXXXXXX
+ XX
+XXXXXX
+ XXXX
+ XXX
+ XXX
+ XXX
+ XX
+ XXX
+ XX
+ XXX
+ XXX
+ XXX
+ XXX
TOTAL
4.5
100.0
56
1255
> 20.000
(INTERVAL WIDTH= .50000)
-------
NUMBER OF TRIPS MADE PER DAY (0-17)
each x = 1 day
MIDPOINT HISTX COUNT
0.0
1 .0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
1 1 .0
12.0
13.0
14.0
15.0
16.0
17.0
6.8
4.8
10.4
12.4
11.2
13.9
11 .6
10.0
8.4
4.4
2.8
0.8
0.4
0.8
0.0
0.4
0.8
0.4
17
12
26
31
28
35
29
25
21
1 1
7
2
1
2
0
1
2
1
17 +XXXXXXXXXXXXXXXXX
12 +XXXXXXXXXXXX
26 +XXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
28 +XXXXXXXXXXXXXXXXXXXXXXXXXXXX
35 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
29 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
25 +XXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXX
+XXXXXXX
+XX
+x
+XX
XX
TOTAL
251 (INTERVAL WIDTH= 1.0000)
-------
Appendix E
Graphs
Trip Parameter vs. Trip Starting Time
Urban Only Trips
Trips Separated By An Engine Off
Period Exceeding 10 Minutes
-------
I;;
LL
a:
h-
L.
o
01
u
CD
2
D
7
NUMBER OF TRIPS vs TIME OF DAY
(Urban Only)
1 1 U
100 -
90 -
80 -
_,
' Li
60 -
50 -
40 -
30 -
20 -
10 -
P.
15-
/**
X
/
/
u I
90
79
68
^
_y_
.--" _,
/'
,'*
/''
...-'"
/'
/ /
/
/
45
28
/
./
x
/'
/
f
/
./"".
./'
/
/
/
.'
/ /
'I
.-'
,-"
...'
/\
/
/
.-''
..!.1
..-'
X
,-'
/
.''
/
60
/
/
/
/
/
./,.
/
/
/
/
f /
' /
/ _,
/'
'/'
_.-'
X
..-'
/
,/
/
60
f1'
/ ;
/
' /'
/
/
/' f
ff'
S
/
s
" '/
''' /
/
_/'
x
jf
,"
/
x
' /'
X
..'
,' y
./'
/X
-
/
" /
/
'' /
f'f
/
"/"
'' S
/
f'
'' /
/
/
/
x
r /
f
70
70
''' r/
x
/'
x
y**
y
/
' /
s
y
/'
/
/
__ y.
/'
' ,
.- ' ,/
"'
/"'
./
*" /
X
,-'
/'
,
./
66
58
' /
s'
s'
/
'' /
/"
x
/
tf ,
/
/
/
/,
/"
'''/
f'
/
f
f /
/
/
;/
/'
/,
/ ,
/
52
x
/
X
x
'' /x'
x
/'
' /
/
/
'
29
/ 24
''
/ ,.-'
/ / x / 1 3
/
/ /' /' " n
^ ^ '' / -^ . *~ 1
/ V X /' n-i ^-
i i i i i I i I i I i I i i i I . i . I i
6.0 8.0 10.0 12.0 14.0 16.0 18.0 20.0 22.0 ' 24.0 2.0
TRIP STARTING TIME,(HOUR)
ho
-------
u
o
o
Ld
>
10
9
fc -
4- -
AVERAGE DISTANCE TRAVELLED
(Urban Only)
These points incorporate
fewer than 10 trips
\
w
1 -
0
11 13 15 17 19
TRIP STARTING TIME (HOUR)
21
-------
1 irt
0>
1
^
I/ /
CL
O
h-
I..O-
J--IL
u
u
jฃ
Ld
LG
U
^!
h-
Q
LJ
O
u:
LJ
<
D STANCE BETWEEN STOPS
(Urban Only)
3.0 -
2.8 -
2.6 -
2.4 -
0 O _
^-. i.
2.0 -
1.8 -
1.6 -
1.4 -
1 . ฃ..
1.0 -
0.8 -
0.6 -
0.4 -
0.2 -
0.0 -
* These points incorporate
fewer than 10 trips
r
i \
,' \
i i.
n ff / \
^-V f \ 1 \
\ iiiซ
\ ' \ '
\ '. / \ / ^*
' \ A / \/
n s \ / iL
/c*--- \ / pj
M. & -B-^g-"-"' ^-sg'- '"'
'"'-. S ''": JQ- ^^
B-"
-t 1 , 1 1 , 1 , 1 , 1 , 1 1 1 , 1 , , , 1
'7 9 11 13 15 17 19 21 23 1 3
M
TRIP STARTING TIME (HOIJR)
-------
'(/>
LJ
\-
D
z
5
* -
o
__.
6
^
Id
P
Ld
O
cc
U
]>
TlvlE MOVING PER TRIP
(Urban Only)
15 -
14 -
13 -
12 -
1 1 -
1 l
10 -
(
9 ~
8 -
-1
-' 6 -
p;
4 -
3 -
n ._
i
0 -
.
K o*
\ tf>
\ / ^^Q*
/ \ r
ฎ GJ a /
/ X--T-TX \ ri n /
\ Q-- ' -^ S' 0''""^ \ I
\ ,,/ '^J-X,_ .ฃ,'' . ^ \ /
0 N-&.--Q-" . \ /
V
Vi
* These points incorporate
fewer than 1 0 trips
i i i i i i 1 i I i 1 i 1 .,.,., i i
7 9 11 13 15 17 19 21 23 1 3
w
TRIP STARTING TIME (HOUR)
-------
I,.V1BER OF STOPS PER TRIP
(Urban Only)
12 -
1 1 -
LL 10 -
IT
I
Qi ~' ^
LJ
fl_
8 ~
a.
o
~ . ,
i /
L_
0 6 -
LJ
to 5 -
Z 4 _
LJ
< -r
a: ^
LJ
i
o -
A A A
\ / \ 0../" \s
fa"' u3 - .W
o._ / \
'" / \
< \^3~~ -C7J 'ป
,' \
d \
. \
^^- {^*~~ฎ *
* These points incorporate
fewer than 1 0 trips
i i i i i i i i i i i i i i i i i i i i i i
7 9 11 13 15 17 19 21 23 1 3
TRIP STARTING TIME (HOUR)
-------
AVERAGE TR P SPEED
40 -
35 -
30 -
'i
LL
^.--
'>r..
u
LJ
LL
L^ 20~
IT
h-
LJ
0 15 -
IT
LJ
* 10 -
5
0 -
(Urban Only)
/ \ /
'. / ''- /
, / t3 *
Q. /
/ X /
\ ' A ,-^ / '
\ ,-Hs .V'"^^''' "^'
+: These points incorporate
fewer than 1 0 trips
1 | 1 | 1 | 1 | 1 f 1 | 1 | ! | I | 1 | 1 |
7 9 11 13 15 17 19 21 23 1 3
w
TRIP STARTING TIME (HOUR)
-------
ft:
D
O
I
*
Q_
(L
h-
U
O
LJ
U
O
LJ
$
15.0
14.0
13.0
12.0
11.0
10.0
9.0
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
TIME SINCE LAST TRIP
(Urban Only)
These points incorporate
fewer than 10 trips
00
9
11
13
15
17
19
23
TRIP STARTING TIME (HOUR)
-------
TRIP DURA.TIOh
. (Urban Only)
/ x
V,
0>
-t-'
3
C
E
v^*
Q_
a:
i-
Li_
o
_,
0
h-
<
a:
D
a
u
o
<
a:
Ld
>
<
JU
28 -
26 -
24 -
22 -
20 -
18 -
16 -
14 -
12 -
10 -
8 -
6 -
4 -
2 -
n -
n
^: 0
Ef"" \ / \
t3~ ฃ-/' ''
-^ ED \ ra _,
a 'v- ^X^^ EI CT P--^^^*
1 0 -a FT ' X*-~-_n V 13 * D *
\ ,-t::r^-a -~cj \ .,-' -^n / L-r^
^ \ ,X A /
V \ /
\ /
u
m
* These points incorporate
fewer than 10 trips
w
9 11 13 15 17 19 21
23
TRIP STARTING TIME (HOUR)
-------
UJ
a.
ir
U-
o
~7_
UJ
O
111
LJ
Q.
FRACTION OF TIME MOV NG
(Urban Only)
1 \JUXo
90% -
.80'% -
70% -
60% ~
50%. -
40% -
30% -
20% -
10% -
r\y
UXo
\
i
\
\
-0
i ' i
7 9
'* These points incorporate
fewer than 10 trips
11 13. 15 17 19
TRIP STARTING TIME (hour)
21
23
w
s
-------
Tllv'E STOPPED PER TRIP
10 -
9 -
.~~>
to
-*-'
i 7-
JE
Q 6 -
Ld
Q_
Q_
0 c
h- ->
I/1)
Ld
1 4 -J
1-
Ld
O
< 3 -
LY
Ld
?
1
0 -
(Urban Only)
a A "
N
/ ^ ,' i
/ V \
/ \ fi
I \ l\-s* \ ^
s/ V \ / X
\ / ' \
\ f ^
* These points incorporate
fewer than 1 0 trips
i i i i i i i i i i i i i i i ,. i .,. i
7 9 11 13 15 17 19 21 23 1 3
TRIP STARTING TIME (HOUR)
-------
FRACTION OF TIME STOPPED
(Urban Only)
Ul
2?
ฃ
h-
U-
O
i
r
bJ
o
ll'
LJ
LL
IUU/b
90% -
80% -
70% -
60% -
50% -
40% -
30% -
20% -
10% -
0% -
* These points incorporate
fewer than 1 0 trips
a ft
r-y1^ 'X' "''"' ''
[7i ""'^ ' \
/ 'H \ .A ^
&.._ / 'x ^ \
' \ .s"' *^f>l
I ^X
^0 *
Q-*--0'*
1 ' 1 ' 1 ' 1 ' 1 ' 1 ' 1 ' 1 ' 1 ' 1 ' 1
7 y 11 13 15 17 19 21 23 1 3
M
TRIP STARTING TIME (hour)
-------
URBRN TRIPS ONLY - RVERRGE VRLOES
Minimum of 10 minutes engine off time between trips
TRIP STflRTING TIME
VEHICLES
RVE SPEED
DISTRNCE (miles)
* OF STOPS
RME DISTRNCE btwn
STOPS (miles)
ENGINE OFF (hours)
TRIP TIME (min)
SrOP TIME (min)
MOVING (min)
TRIP STRRTING TIME
VEHICLES
RVE SPEED (cnph)
DISTRNCE (miles)
* OF STOPS
RVE DISTRNCE btwn
SrOPS (miles)
ENGINE OFF (hours)
TRIP TIME (min)
STOP TIME (min)
MOVING (min)
6.0
15
25.0
6.06
6.7
1.4
9.4
15.4
4.6
10.8
17.0
70
18.1
5.07
9.7
0.66
3.1
16.0
5.4
10.5
7.0
55
20.1
6.54
8.6
0.91
12.5
17.2
4.2
13.0
18.0
72
16.1
4.54
8.8
0.57
2.8
15.7
5.9
9.8
8.0
28
17.9
5.05
10.3
0.67
8.4
18.9
8.2
10.6
19.0
58
17.7
5.80
8.1
0.75
3.5
15.6
5.2
10.4
9.0
45
13.6
4.05
8.5
0.46
10.7
16.5
7.8
8.6
20.0
66
17.6
4.00
7.5
0.67
2.2
12.4
3.4
8.9
10.0
47
15.9
4.42
8.9
0.61
4.5
16.2
6.7
9.5
21.0
52
19. 1
4.88
7.4
0.86
2.4
13.6
4.0
9.6
11.0
61
13.9
4.10
10.0
0.42
6.2
18.5
9.2
9.3
22.0
29
17.2
4.52
8.4
0.66
2.3
14.9
5.1
9.8
12.0
60
15.6
3.68
8.2
0.49
4.3
13.2
4.8
8.5
23.0
24
21.9
5.43
6.8
1.4
2.8
14.4
4.5
9.8
13.0
68
16.6
3.80
8.7
0.53
4.9
12.8
4.2
8.6
24.0
13
20.1
3.26
5.9
0.72
3.4
9.4
2.6
6.8
14.0
60
15.9
3.91
8.8
0.58
3.4
14.8
5.9
8.9
1.0
5
28.6
7.61
5.6
1.9
3.8
15.6
2.9
12.7
15.0
79
17.6
4.78
8.3
0.61
2.6
14.6
4.9
9.7
2.0
2
23.5
7.28
6.0
1.2
5.0
14.7
2.7
12.0
16.0
90
17.2
4.70
8.8
0.58
4.2
14.7
5.0
9.8
3.0
1
27.3
6.73
6.0
1.1
2.9
14.8
3.3
11.5
u>
-------
Appendix F
Graphs
Trip Parameter vs. Trip Starting Time
Urban And/Or Rural Trips
Trips Separated By An Engine Off
Period Exceeding 10 Minutes
-------
NUMBER OF TRIPS vs TIME OF DAY
(Urban and Rural)
130
LL
o:
i-
u_
o
in
Ld
CD .
"^
5
D
1 10
100
90
80
70
60
50
40
30
20
10
0
15
/ s
i
6.0
71
,
/
/ ,
../
/*
/
.ซ
/
/ ,
39
/
X
y /
'
i
8.0
R -
^b
/
/ f
/
/
r _/
/
c^-7
/
'' /
/
'
'
O.i
,
/ 6
y7
/
.'
/
f'
/
f~
/
/
79
ป
'' /'
.
./
/
' /
.'
//
" /
I
2.L
)
84
/'
/
/
/
/
/,
/
s
/
*" f
""/
/
81
/ ,
/
' /
s
X /
/
/
/'
s /
t ."
i
4.C
)
102
;/
/
./
/'
/ /
/ j
f
.-'
/'
//
'" /
1
112
/,
/,,
''
/
/
' /
'' /
/
s'
/
ff
'/:
//
/
\
6.C
)
PP
/
x
^/
/
/
S
f'
/
tf
'//
//
1
90
./
/
.,'*
x-'
/ (i/
/
/
/
/,
/
.X
/'
v
i
s.c
78
"/-""
/
./
/
x
../'
ji
f
'_../"
r/
//
' /
t-
"7.r1
/'
y'
,-'''
'
,<"
.-^
x
//
x
i
>o.c
1
64
/
/'
/
/,
,-'
,.'
S
'
'
*
19 ...
-- 3U
^
." ,'
f S
/ 1/f '
/
/; x i3
X ."' ' /' ' / (-7-1 rJ-
1 1 ' 1
22.0 24.0 2.0
TRIP STARTING TIME, (HOUR)
-------
AVERAGE DSTANCE TRAVELLED
(U r b a n a n d Rural)
. s
Q>
1
''~''
UJ
o
~7
H
0)
Q
LJ
O
<
Ct
bJ
>
*C
i. \.i
19 -
18 -
17 -
16 -
15 -
14 -
1 3 -
1 2 -
1 1 -
10 -
9 -
8 -
/ ~
6 -
5 -
4 -
-i
G] +
\
\
* These points incorporate i i
fewei thari 1 0 trips I 1
1 \
| 1
i i
fl
/ \ \
/ \ . | \
'' / ^ (7l' > 'Q *
/ ', i \ f \ 1
^ (ti - -Q. / \ ^.'-Qv, ฃ}---__ฃ-, .' \ f
--~- ^&%~~ * ^ 1 \3r^ ~x / ~^^"^^TT(' i r
\ I
I
i i i i i i i i i i i i i i i i i i i i i i
oo
7.0 9,0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0
TRIP STARTING TIME (HOUR)
3.0
-------
MBER Of STO-'S PER "R P
(Urban and RuraO
1 2 ~
14 -
13 -
1 "'
I t-
i/> 1 1 -
LL
O
i- 10
o 9 ~
u ti -
CD
5 7 -
Ld & -
< c
111 - ~
Ld
< 4 -
1
/
.'
a'''
r~ "^ ~r
7.0
9.0
- ei
These points incorporate
fewer than 10 trips
_j_
11.0 13.0 15.0 17.0 19.0
TRIP STARTING TIME (HOUR)
21.0 23.0
1.0
3.0
-------
DISTANCE BETWEEN STOPS
(Urban and Rural)
,.-,
il'l
t\>
1
10
Q_
r>
I-
10
-?
Ld
Ld
"!>
i
Ld
to
Ld
;
~^.
Q
Ld
IT
Ld
ซ
J . U
2.8 -
. 2.6 -
2.4 --
2 2! ~~
2.0 -
1.8 -
1.6-
1.4 -
1 ? -
1 . ฃ
1.0 -
0.8 -
0.6 -
0.4 -
0.2 -
0.0 -
T
\
\
i
i
^ i
"" \ i i
F \ \
/ i i
/ ' \
/ \ \
R ' / '
/ \ / 1
E) / \ / tk*
L-i^ ' 1 | L_ K
\ r-i / I ) ^^pj *
H / \ x^3"0 \/
\ ^ &_/ X, Q _-/ i
i ' .. .^J TU tj ^^*--' tj Pj
w'
f; These points incorporate
fewer than 1 0 trips
T ' I "' I ' I ' l ' I ' I ' I ' I ' i ' i
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0 3.0
Ul
TRIP STARTING TIME (HOUR)
-------
. -1
if!
4--'
3
r"
i
O
b
LJ
LJ
LJ
<
T vIE MOV NG PER "RIP
30 -
2S --
26 -
24 -
20 -
18 -
16 -
14 -
12 -
10 -
8 -
6 ~
4 -
o -
(.Urban and Rural)
i\
\
\
' >'
/ \ Q. | .1
' / '""- ' \
V ''' "fl n '
' - 'i / --.-""tJ I rvi 4:
Q Q^^ ,...J3 Q-.^ / "'Q'"' '^.--e B. ,x' \ I
"-e-- -ฃj tJ --^-' \ i
\l
f: These po-ints in co-rp orate
fewer than 1C1 trips
-j - j | 1 . j. i ( I | I 1 1 1 | 1 | ' 1 | 1 J
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0 3.0
TRIP STARTING TIME (HOUR)
-------
40
AVERAGE TRIP SPEED
(Urban and Rural)
_c
a
Q
LJ
LJ
LL
ft:
I-
LJ
q
if
LJ
35 -
30 -
0
10 -
_.
"
R
rn_ __ pn
^^
\
c;
* These points incorporate
fewer than 10 trips
0
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0
TRIP STARTING TIME (HOUR)
1.0
3.0
-------
TIME SINCE LAST TRIP
(Urban and Rural)
? '
o
-C
Q_
1-
U'
_J
LJ
O
z
LJ
5
h-
u
<
it:
LJ
>
<
i .j-
14 -
13 -
12 -
1 1 -
10 -
9 ~
Q _
~~i
ฃ
G
5 -
4 -
~
2 -
1 -
n
W * These points incorporate
/ \ fewer than 1 0 trips
/ \ GP
/ \ if
: \ 'i
ta \ /\
\ /
a i
\
\
i
\.
\/\ ^ ^*
\ R / \
\ . ^. / **
d / ^ u\ \
'X / \_ [-, .s^ \
^^Ej ^^^^O^^'^^- rjr^' Q *
\ _a-^^" ^^
^
00
7.0
9.0
11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0
3.0
TRIP STARTING TIME (HOUR)
-------
0>
c
E
v-x
a.
LL
h-
L!_
o
~~~7
o
\-
Cฃ
D
C,
LJ
O
a:
LJ
TR P DURATION
(Urban and Rural)
30 -,
28 -
26 -
24 -
22 -
20 -
1 8 -
1 I/
16.-
14 -
12 -
10 -
O !
6 -
4 -
2 -
0 -
m*
K S
A
/ A
/ \ a \
/ \ '- \
P fa R \ I I
bi, / \ / ^ /I
V \ / \ /\ ^
R / W" \ / \ / \
ri \ ' s EI ''' \ I \
Vi x / \ I ra-*-Q *
"B-^ \
\ /
\
i!
* These points incorporate
fewer than 10 trips
1 i ' i ' i ' i ' i i i i ' i ' i ' i
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0 3.0
vd
TRIP STARTING TIME (HOUR)
-------
UJ
2
h-
0.
o:
u.
o
i-
z
LJ
o
a:
LJ
a.
100%
90% -
30% -
70% -
60% -
50% -
40% -
30% -
20%
10% -
ฃ3"
FRACTION OF TRIP TIME MOVING
(Urban and Rural)
\
* These points incorporate
fewer than 10 trips
0%
I 1 1 1 1 1 1 , 1 . 1 1 1
11.0 13.0 15.0 17.0 19.0 21.0 23.0
TRIP STARTING TIME (HOUR)
7.0 9.0
1.0 3.0
-------
TllvE STOPPED PER TR P
10 -
9 -
8 -
(A
LJ
I
_> -i
G 6 -
LJ
Q_
Q_
O R _
K
LJ
^ 4 -
h-
LJ
< 3 -
ir
LJ
< 9 _
i
0 -
. (Urban and Rural)
ft
\ ^
V /\
/ \/ \
I ' ^ \ P
I ' '''' 'Xv-
/ k / \/fi X
-4 '" \/^
ป" \ ja- a-
V ' vi'
t: These points incorporate
fewer than 10 trips
i i ' i i ' i i i ' i ' i
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0 3.0
TRIP STARTING TIME (HOUR)
-------
FRACTION OF TRIP TIME STOPPED
(Urban and Rural)
LJ
3
F
LL
o:
h-
U-
o
i
i
LJ
t. ^
ii
LJ
0.
IVJL//0
90% -
80% -
70% -
60% -
50% -
40% -
30% -
20% -
10% -
r\cy>
U/b
-
* These points incorporate
fewer than 1 0 trips
,
^ /A
s \
px \
/ ^In -^O'^ ^x
a / ' B B B H B x^
v. / "s^ rr^"^"^"^ tr~ ~-*-^]
''"** ''' "^ ftr"^~^ ^\
V '"B"' . \
\ R*
\ /
1 I ' I ' I ' 1 ' I ' I ' I ' I ' I ' I ' I
7.0 9.0 11.0 13.0 15.0 17.0 19.0 21.0 23.0 1.0 3.0
TRIP STARTING TIME (HOUR)
-------
URBflN RND RURRL TRIPS - RVERflGE VRLUES
Minimum of 10 minutes engine off time between trips
TRIP STRRT TIME
VEHICLES
HUE SPEED (mph)
DISTRNCE (miles)
* OF STOPS
WE DISTRNCE btwn
STOPS (miles)
ENGINE OFF (hours)
TRIP TIME (min)
STOP TIME (min)
MOVING TIME (min)
TRIP STRRT TIME
VEHICLES
RVE SPEED (mph)
DISTRNCE (miles.)
9 OF STOPS
WE DISTRNCE btwn
STOPS (miles)
ENGINE OFF (hours)
TRIP TIME (min)
STOP TIME (mm)
MOVING TIME (min)
6.0
15
25.0
6.06
6.7
1.4
9.4
15.4
4.6
10.8
17.0
86
18.8
6.05
9.9
0.75
3.0
17.6
5.7
11.8
7.0
71
20.5
8.30
8.5
1.2 '
12.1
18.9
4.4
14.5
18.0
90
18.0
5.13
8.4
0.73
2.7
15.6
5.3
10.3
8.0
39
18.6
10.24
10.6
0.93
7.9
25.4
8.9
16.5
19.0
78
19.2
5.99
7.7
0.87
3.0
15.4
4.6
10.8
9.0
56
15.4
5.77
8.8
0.67
10.3
18.3
7.5
10.8
20.0
78
19.0
5.71
7.5
1.0
2.1
14. 1
3.4
10.7
10.0
57
17.0
5.11
8.4
0.82
4.4
16.6
6.4
10.2
21.0
64
19.5
5.24
7.0
1.0
2.3
13.5
3.7
9.8
11.0
76
15.9
5.62^
9.6
0.58
5.6
19. 1
8.2
10.8
22.0
32
19.6
6.73
8. 1
1.7
2.6
16.7
4.8
11.8
12.0
79
17.;:
6.01
8.3
0.76
4.4
16.2
5.2
11.0
23.0
30
23.0
7.84
7.0
1.8
2.6
17.3
4.9
12.4
13.0
84
17.9
5.20
8.4
0.73
4.6
14.7
4.7
10.0
24.0
13
20.1
3.26
5.9
0.72
3.4
9.4
2.6
6.8
14.0
81
18.1
8.31
10.0
1.1
3.5
20.4
6.4
14.0
1.0
6
30.9
16.31
6.8
2.4
5.4
27. 1
3.3
23.8
15.0
102
18.5
6.91
8.8
0.90
2.8
18.4
5.9
12.6
2.0
2
23.5
7.28
6.0
1.2
5.1
14.7
2.7
12.0
16.0
112
17.6
5.52
9.0
0.73
4.1
15.8
5.1
10.8
3.0
1
27.3
6.73
6.0
1. 1
2.9
14.8
3.3
11.5
u>
-------
Appendix G
Participant Survey
Sample Questionnaire
Summary of Answers
-------
G 2
Attachment C
DAY:
HOUR:
PCS Driver/Vehicle Questionnaire
At Time of PCS Installation/Initialization of Data Tape
OCS Test Car: Make GftlzS/r' Model c^^'/v^y- Year
OCS Instrument Package Number: 1 2 /3/ (circle one)
Date: 1 ~ ฃ ' / ?>
Fuel tank level
(to nearest 1/8):
Odometer
Reading:
Tape initialized by :
Installed by:
7x
/o
Time:
Amount of fuel
required to fill:
/ 9>
/> /
/'
Speed sensor calibrated and quality control procedure run
-^:_ on 7- ฃ-7.?
Quality control procedure was (check one):
XT the dynamometer procedure.
_ an EPA approved alternate.
At the Time of Participant Intreview
Questions for the participant. Should be filled in before
he drives the test car.
1. Vehicle model and year (participant's car): ~7?
2.
Manufacturer's Vehicle Identification Number (VIN):
Date purchased ^ ? r
Month
Year
-------
G 3
-2-
3. How many miles/year is your car driven?
A. 0 - 5,000
B. ^< 5,000 - 10,000
C. 10,000 - 15,000
D. 15,000 - 20,000
E. 20,000 - 30,000
F. Over 30,000
4. Where is this driving done?
A. City expressways:
1. 75% (almost all)
2._ฃ-r51 - 75% (most)
3. 21 - 50% (some)
4. 0 - 20% (little or none)
B. Major city streets:
1. 75% (almost all)
2 . ^-- 51 - 75% (most)
3. 21 - 50% (some)
4. 0 - 20% (little or none)
C. City side streets:
1. 75% (almost all)
2. 51 -. 75% (most)
3. 21 - 50% (some)
4. ซ^^6 - 20% (little or none)
D. Rural expressways:
1. 75% (almost all)
2. 51 - 75% (most)
3 . 21 - 50% (some)
4._^U - 20% (little or none)
E. Other rural roads:
1. 75% (almost all)
2. 51 - 75% (most)
3. 2.1 - 50% (some)
'i - 20% (little or none)
5. How is this driving done?
A. To and from work:
1. 75% (almost all)
2. 51 - 75% (most)
3. 21 - 50% (some)
4. 0 - 20% (little or none)
-------
G 4
-3-
B. Shopping and errands:
1. _ 75% (almost all)
2. ^XSl - 75% (most)
3. 21 - 50% (some)
4. _ 0 - 20% (little or none)
C. Business (not to and from work)
1. 75% (almost all)
2. 51 - 75% (most)
3. _ 21 - 50% (some)
4. <^0 - 20% (little or none)
D. Other (social, vacations, etc.)/ please state:
1. _ 75% (almost all)
2. _ 51 - 75% (most)-
3. _ 21 - 50% (some)
4. ^0 - 20% (little or none)
How did you get here today?
ty streets
B.
C. _ Rural roads
D. _ Combination of above
7. Approximately how many miles did you travel to get
here?
8. How is your car used?
A. Driver only:
l._*X75% (almost all)
2. _ 51 - 75% (most)
3. _ 21 - 50% ;(some)
4. _ 0 - 20% (little or none)
B. Driver and one passenger:
1. _ 75% (almost all)
2. S 51 - 75% (most)
3. _ 21 - 50% (some)
4. _ 0 - 20% (little or none)
C. Driver and 2 or more passengers:
1. _ 75% (almost all)
2. _ 51. -75% (most)
3. _ ^ 21 - 50% (some)
4. K-' 0 - 20% (little or none)
-------
G 5
-4-
D. Driver only with heavy cargo;
1. 75% (almost all)
2. 51 - 75% (most)
3. 21 - 50% (some)
4. /XO - 20% (little or none)
E. Driver, passengers, and cargo:
1. 75% (almost all)
2. 51 - 75% (most)
3. 21 - 50% (some)
4, ^^D - 20% (little or.none)
9. During a typical week how many different people drive your
car?
A. K Usually only one
B. Usually only two
C. Three or more people may drive the car during ;a
typical week.
10. On a typical day, how1 many trips are made with your ca.t?
(One trip is defined as starting the engine, driving some
distance, and stopping the engine. ) ^/
11. Is your car operated regularly on unpaved roads, in
competition, or hauling loads heavier than for which it was
designed?
A. _ Yes
B. ^ NO
C. _ Don1 t know
12. If you drive your car to and from work, approximately how
many miles is that trip, one way? "7 _ (Enter N/A if not
applicable. If you enter N/A here also enter N/A on the next
four questions. )
13. Would you, in your judgement, consider that
A. >Xan urban trip
B. _ a rural trip
C. _ a combination of both urban and rural driving
D. _ N/A
14. At approximately what time to do you leave for work?
15. What would you say is your average speed during this trip?
mph
-------
G 6
-5-
16. Approximately how long does this' trip take you, on the
average? hours f <2 minutes
17. Do you keep record of the fuel economy of your car?
A. Yes
B.
We are interested in the fuel economy people actually get
with their cars. If the answer above was yes, answer questions
18 - 20, otherwise enter N/A.
18. How many miles per gallon do you get with your car?
A. _ mpg in the city
B. _ mpg on the highway
C. mpg combined city and highway
D. V_ N/A
19. Are you concerned with the fuel economy of your car?
A. Yes
20. What type of tires do you use on your car?
A. _ Bias-ply
B. _ Bias-belt
C. ^ Radial
l._X- Steel-belted
2. _ Fiberglass-belted
3 . _ Other
(If participant does not know this, contractor should look
at the tires and find out.)
The test car was turned over to participant for the
beginning of the test period on:
Date Time
At Time of PCS Data Tape Removal
Date: 1-1?, -'- =s _ . Time: _ - ' _ AM/(ฃM)
Fuel tank level Amount of fuel
(to nearest 1/8): _ required to fill:
Instruments rmvd by:
Tape removed by:
-------
G 7
Summary From Participant Questionnaire*
1. How many miles/year is your car driven?
Ranges Responses
0- 5,000
5,000-10,000
10,000-15,000
15,000-20,000
20,000-30,000
Over 30,000
Total Response
2
7
23
9
3
2
46
Where is this driving done?**
Fraction
of
Time
76-100% (almost all)
51-75% (most)
21-50% (some)
0-20% (little)
Total Responses
City
Express-
ways
Major
City
Streets
City
Side
Streets
Rural
Express-
ways
7
9
19
11
46
3
17
17
9
46
2
6
12
25
45
1
5
18
22
46
Other
Rural
Roads
0
1
7
38
46
3. How is this driving done?**
Fraction
of
time
76-100% (almost
51-75% (most)
21-50% (some)
0-20% (little)
Total Responses
all)
To and
from
Work
11
12
12
11
Shopping
&
Errands
4
8
22
12
Business
1
2
14
29
46
46
46
Other
(Vacations,
etc.)
0
3
15
- 27
45
* Forty-six of the forty-seven participants used in this analysis
responded.
** The combined fractions of time indicated by some participants
exceeded 100%.
-------
G 8
4. How is your car used?*
Driver Driver Driver Driver,
Fraction Driver & & & Heavy Psgrs,
of Time Only l Psqr. 2+ Psgr Cargo Cargo
76-100% (almost all) 22 32 00
51-75% (most) 873 00
21-50% (some) 7 15 6 44
0-20% (little) 9 20 35 42 42
Total Responses 46 45 46 46 46
5. During a typical week, how many different people drive the car?
Options Responses
Usually only one 31
Usually only two 14
Three or more 1
Total Response = 46
6. On a typical day, how many trips are made with your car? (One
trip is defined as starting the engine, driving some distance,
and stopping the engine.)
Answers varied from 1 to 15.
7. Is your car operated regularly on unpaved roads, in
competition, or hauling loads heavier than for which it was
designed?
Yes 1
No 4_5
Total Response = 46
8. If you drive your car to and from work, approximately how many
miles is that trip, one way?
Answers varied from 1/4 to 30 miles.
Fifteen participants answered with "N/A".
Forty-six participants responded.
The combined fractions of time indicated by some participants
exceeded 100%.
-------
G 9
9. Would you, in your judgement, consider that:
Options Responses
An urban trip 26
A rural trip 1
A combination 4
N/A 15
Total Response = 46
10. At approximately what time do you leave for work?
Answers varied from 6 a.m. to 9 p.m.
Nineteen of the participants indicated a time.
Sixteen of these left for work between 6 a.m. and 9 a.m.,
as follows:
6:00 - 6:59 5
7:00 - 7:59 8
8:00-9:00 3
11. What would you say is your average speed during this trip?
Answers varied from 20 to 65 mph.
12. Approximately how long does this take you?
Answers varied from 2 minutes to 1-1/2 hours.
13. Do you keep a record of the fuel economy of your car?
Yes 13
No 33
Total Responses = 46
14. How many miles per gallon do you actually get with your car?
City 13-27 mpg
Highway 16-35 mpg
Combined 14-39* mpg
The participant responding with 39 mpg did not answer the city
and highway parts of the question.
-------
G 10
15. Are you concerned with the fuel economy of your car?
Yes 28
No 16
Total Responses = 44
16. What type of tires do you use on your car?
Bias-ply l
Bias-belt 0
Radial 39
Total Responses = 40
If radial, what type?
Steel-belted 32
Fiberglass-belted 2
Other l
Total Responses = 35
-------
Appendix H
Temperature Analysis
-------
H 2
This appendix contains an expanded discussion of the
temperature analysis described in the main text. Some parts
were included in the Summary of Temperature Analysis (Section
IX of main text), but are repeated here for continuity. The
discussion is divided into four sections: typical trip
temperatures versus time, average soak period, individual
temperature profiles, and soak periods.
A. Typical Trip Temperatures vs. Time
The temperatures obtained for the typical trip are shown
in Figure H-l. At the start of the trip all of the
temperatures are clustered at 12ฐC. As the trip progresses,
the water pump exhibits a fairly steep increase in temperature,
reaching a level more than 30ฐC above "ambient" or pre-trip
levels within fifteen minutes, and remaining fairly steady for
the remainder of the trip. The oil pan temperature also rises
about 30ฐC, but does so more gradually, taking over twenty
minutes to do so before leveling off. The remaining
temperatures: the fuel tank, air cleaner, and underhood, show
gradual increase of 4ฐC, 6ฐC and 15ฐC, respectively, beginning
around four minutes after the trip begins, and never appearing
to level off.
B. Average Soak Period
Significant changes occur in the temperature profiles when
the vehicle completes its trip. The first portion of the soak
is characterized by the vehicle's response to having its
cooling system shut off, and having to dissipate the engine
heat in another manner. The second portion is characterized by
the vehicle components cooling down to near ambient levels.
Figure H-2 shows the temperature profiles for the first
forty-five minutes after engine shutoff, plotted at one minute
intervals. The water pump temperature jumps 20ฐC to a peak
level of nearly 70ฐC in the first ten minutes of the soak
before beginning to cool off toward the ambient temperature.
The oil pan temperature rises slightly, approximately 5ฐC
to a peak level of 50ฐC, before beginning to fall off after
only five minutes of soak. The fuel tank temperature begins
dropping as soon as engine shutoff occurs to around 12ฐC after
ten minutes, after which it exhibits a profile that appears to
track the ambient temperatures. (As noted earlier, this
temperature is measured on the underside of the fuel tank, and
-------
v.<*
o
12
U
a
70
60 -
50 -
40-
20 -
DCS TEMPERATURE PLOTS
DURING TRIP
X
-a
-fr-%;'
"Q--
"?] '''
-i=
i i i i i i i i i ii i
0 4 8 12 16 20 24
28
MINUTE
Q Water Pump -I-oil Pan O Fuel Tank a Air Cleaner X Under Hood
T
-------
UJ
u
K
111
UJ
Q
OCS TEMPERATURE PLOTS
70
BEGINNING OF SOAK
60 -I
.
0
.0
SO -
f
*/'
*-A-A
40 H
30 -I
20 -I
10H
'i** X X >r*~*-><--i*-*--*-*-
,A^"
V^-ป-^> W ป "ป ft ปHป-fr
-X-
-^'-^--Mf-K-l--
^>H><->< -^^^-^-X-^-iKSiy-x-
I I I
10
Water Pump +oil Pan
I I
20
MINUTE
O Fuel Tank
30
40
A Air Cleaner X Under Hood
-------
H 5
does not appear to represent the temperature of the fuel in the
tank.) The temperature at the air cleaner rises markedly,
almost 30ฐC, in this portion of the soak. After ten minutes,
it eclipses the oil pan temperature, reaching a peak of just
under 50ฐC after fifteen minutes before it begins to cool off.
The underhood temperatures rises .slightly, about 5ฐC, to a peak
level of just over 30ฐC before beginning to fall off.
The complete soak, with the temperatures plotted every
minute for the first forty-five minutes and every twelve
minutes thereafter, is shown in Figure H-3. The water pump,
oil pan, air cleaner, and underhood temperatures all exhibit
decay down to a presumed ambient temperature. The fuel tank
temperature rises through the soak period, apparently tracking
a rise in the ambient temperature. This rise should be
expected, as all but one of these ten trips occurred in the
morning with the soak occurring during the midday hours.
After around five and one-half to six hours soak, the measured
temperatures have converged to the same level. After this
point, the temperatures move along together, tracking the
ambient level.
Beginning at twenty minutes after the soak begins,
exponential decay curves were fit to the water pump, oil pan,
air cleaner, and underhood temperatures. These were first
adjusted by subtracting the fuel tank temperature in order to
model decay to ambient temperature. These models fit the data
extremely well, with R2 values over .99 in each case. The
resulting decay constants, when time is measured in minutes,
are .007, .011, .008, and .007 (I/minutes) for the water pump,
oil pan, air cleaner, and underhood temperatures,
respectively. To put these values in perspective, Table H-l
shows the time required for the difference between the peak
soak temperatures and ambient temperatures to be reduced to 50
percent, 20 percent, 10 percent, 5 percent, and 1 percent of
their original values for the decay constants of .007 and .011
(I/minutes). These may be useful in determining when a vehicle
is experiencing a "hot start" versus a "cold-start".
C. Individual Temperature Profiles
Time-temperature profiles for individual trips were also
developed in order to make comparisons between trips, and to
see how well the "average trip" reflects individual trips.
Three trips were chosen for this portion of the analysis: a
trip representing a summer day (loan #234), a trip representing
a winter night (loan #468, first trip), and a trip representing
a winter day (loan #468, second trip). Since the last two of
these involve the same vehicle some consideration may also be
given to the differences between trips for an individual
vehicle.
-------
c>
o
70
60 -
30
20
10
0 -
0
OCS TEMPERATURE PLOTS
COMPLETE SOAK
"B~a~B-a--e-a_
+*--*?w-
a Water Pump -ป-oil Pan
HOURS
O Fuel Tank
4 6
A Air Cleaner X Under Hood
u>
-------
H 7
Table H-l
Decay Constant
(I/minutes)
.007
.011
Hot Soak Times
Time Required to Reduce Temperature
Difference to Indicated Percentage of
Original
(hrs :min)
50%
1:39
1:03
20%
3:50
2:26
10%
5:29
3:29
5%
7:08
4:32
1%
10:58
6:59
-------
H 8
Figures H-4 through H-6 show the temperature profiles
developed from these three trips. The rise in water pump
temperature is significantly steeper and higher for the summer
trip, although in all three trips the pattern closely reflects
that of the average trip. The rise in oil pan temperature is
similar for all three trips. The summer day and winter night
trips, however, are not long enough for this temperature to
rise up to the level of the water pump as it does in the
average trip. The fuel tank and air cleaner temperature
profiles are similar for all these trips. The underhood
temperature profile differs somewhat from trip to trip. For
the two day trips this temperature appears closely linked to
the oil pan temperature. The winter day trip, which lasts
longer, shows the underhood temperature leveling off after
eighteen minutes, whereas the oil pan temperature continues to
rise. This is not seen in the summer day trip due to its
shorter length. The underhood temperature profile in the
winter night trip is more reflective of the average trip,
exhibiting a rise above the fuel tank and air cleaner
temperatures, but well below the oil pan and water pump
temperatures.
D. Soak Periods
Figures H-7 through H-9 show the time-temperature profiles
for the first forty-five minutes of the soak periods. The
different trips exhibit profiles quite similar to the average
trip in: 1) the slight rise in the oil pan temperature, 2) the
steep rise in the air cleaner temperature, and 3) the relative
inactivity of the fuel tank temperature. There is a striking
difference in the behavior of the water pump temperatures. The
two winter trip profiles show water pump temperature rises of
over 30ฐC to peak levels above 60ฐC. Meanwhile the summer trip
profile shows only a slight increase of around 5ฐC to a peak
level of 75ฐC. This may reflect some maximum attainable
temperature. The rises associated with the underhood
temperature also differ from trip to trip. This may be a
carryover effect due to the length of the trips, however" as the
two short trips show more of a rise in the underhood
temperature than do either the longer winter day trip or the
average trip.
Figures H-10 through H-12 show the time-temperature
profiles for the complete soak periods. The pattern of decay
to ambient seen in the average trip is seen again here for all
three trips. Note that for the winter night .trip, the fuel
tank is cooling off during the soak overnight.
-------
DCS TEMPERATURE PLOTS
, DURING TRiP - SUMMER DAY(8X18)
f kJ -\
60 -
"
._ ,_. ,_. ,-^--a
J3 3'"
jZf
tj'J i cj
5 40 -
u
hi
u
3ri
12 " }
UJ
ft:
UJ 20 -
Q
! 0 -
0 -
-I s~\
/ -'".-' '
?-'. -. '. - . ..^ c^ A.
/u /' >-"^~~l" ^' _,-
L ^^^ ^^^ " ^ *^
... , -^Hr -^-^^ -
!
i
1 J n * ! i i i i i i i i i i
0 4 8 12 16 20 24
MINUTE
D Water Pump + oil Pan O Fuel Tank A Air Cleaner X Under Hood
ffi
-------
"n
/ u
60 -i
50 -
^
5 40 -
_J
UJ!
LJi
ft:
ui 20 -
o
Or,
T
<
1 n
i U
C
OCS TEMPERATURE PLOTS
DURING TRIP - WINTER NIGHT(1 2X26}
. .
_,..d' a' +
_.-Q B'" _j?
fj' ...-/
; i pj_ -irq ^_^ , | , -*t~ ^_. . .. .. .. .. ^--* ^
v +. ,,* ^K jj^ *Ui*'' V '"ijli iu_ i ijjl' 'tf~ ipr^ *f~~ :' ^L ~~if~~ jjS*-$}
(
I i I i I I I I I I I I
) 4,8 12 16 20 24
MINUTE
Water Pump + oil Pan O Fuel Tank A Air Cleaner X Under Hood
-------
Ld
O
12
UJ
(XL
LJ
O
OCS TEMPERATURE PLOTS
DURING TRiP - WINTER DAY(12X28)
60 -
S'J H
40 -
30
20 H
Q
10
4.--
-" *
Q ET
_,
~
[&
-SBaS -JB ft ft" A ft" 4-'^*"' A 4* tt ** A tt * tt 4* ik it"' ft
i 1 1 r~
0 4 8
O Water Pump -t-oil Pan
1 1 1 T
12
16
20
24
MINUTE
O Fuel Tank A Air Cleaner x Under Hood
en
-------
U
O
LJ
ft:
u
a
80
DCS TEMPERATURE PLOTS
BEGINNING SOAK - SUMMER DAY(8/"1 8)
v-B-s-^-a a a a D a-fa-
^-BB^ee-^^-g^ L-JUUULJ-oqDDDDD.
70 -i
60 -
5U -H
40 -
'30 -
20 -
10 -
-3
reen
a DDO^
hBDDDDa
0
-10
r -.ii Ti. ii~jti C ฃt"~
& Q a
iril'M ^ fc.i*ii.il ป> li.il ii.il '> U iyh> liy ti.il ti> ' V '*> *ปJ> >> "-^M M *1^ M >XM M V.* *.<
0.00 0.20
a Water Pump -hoil Pan
0.40
0.60
0.80
HOURS
O Fuel Tank A Air Cleaner X Under Hood
-------
OCS TEMPERATURE PLOTS
BEGINNING SOAK - WINTER NIGHT(1 2X26}
ou
70 n
60 -
"""*
u 40 -
0
13 ,n
Ul oU -
tt! |
o
20 -
'10 -
0_
~
I U |
n r-r-B t*-n n n r~i rr
trU
LJ LJ U U L-*-ฃj Q^
Lla-fi n i i r~i ..,, I
?"
i
-* J-..i ' j ..-i i. i . ; ,-i,._i,.
..-HI 111 II I ! r-_.
-w*'"^" '"-j ^^k ??"-it -k .-'ป j'i i'ij .'
.-1 f V | f ^-* i ' i4L jT|| _ 1 1^ t| IT.
i1. Y. rrr" "-J J^ ~I~ 1 '-ji i. % 'r '} / /I /. /. J,
/. -t( " " ' ' ' ' " '- -" ' ' ' ' "- ' ' ' "- -' '- ' - -' '- ' - - - -' -' '- -' "1*- 1 1 i i 1 \t *-f * j'~ i"i i'' >'ป i'' '; i'i
;/' *i -
v" ".- _ _ V -/ / "." *v .* v v * V \^ V \'~ V V "*.' V ~v" V" V v V V -S 'f V V *.- V ^.-
1 1 1 1 11 1 !
0.00 0.20
Water Pump + oil Pan
0.40
HOURS
O Fuel Tank
0.60
Air Cleaner X Under Hood
0.80
I
-------
Ii!
U
Ld
&:
o
LJ
Ck
80
OCS TEMPERATURE PLOTS
BEGINNING SOAK - WINTER DAY(1 2X28)
70-,
6
50 H
40 -
*
0
ii*
0 -J
0
-1
ca
0.00 0 = 20
D Water Pump + oil Pan
.
&sa-
ODD
r-B-B-J
'Mill l--ปi
/, i, 1 I I I " r-mj-
A A A- A ฃ--ฃrt:'-il.-., A /. ,._ ; A A A A 7
0.40
HOURS
O Fuel Tank
1 1 1
0.60 D.80
Air Cleaner X Under Hood
0)
-------
o
LJ
O
13
Ui
tii
Q
80
70 Hb
C3
60 -,
40 -ฃ
20 -
,10 -
0
-1
0
OCS TEMPERATURE PLOTS
COMPLETE SOAK - SUMMER DAY(8/"18>
"e
-D D U-.
W feป W rt wl M trtV
D Water Pump + oil Pan
HOURS
O Fuel Tank
1"TMh;t^"T!j~-f7i rr~i t~v m m
-S H g s H B y i-B
tr
4 6
A Air Cleaner X Under Hood
-------
LJ
U
B
U
Ld
Q
80
ro -i
60 H
50 -la
40 -]i
30
20
10
0
-10
OCS TEMPERATURE PLOTS
COMPLETE SOAK - WINTER NIGHTi'12/26)
QDDDPDDD-
I
3
i i
.->
i i
4
i
6
n>
f
D Water Pump -foil Pan
HOURS
O Fuel Tank A Air Cleaner X Under Hood
-------
_J
LJ
0)
u
u
a:
e>
u
Q
DCS TEMPERATURE PLOTS
COMPLETE SOAK - WINTER OA v( I 2/28)
n:
5
a Water Pump +oil Pan
HOURS
O Fuel Tank A Air Cleaner X Under Hood
-------
LJ
O
(/>
u
hJ
Ql'
O
Ld
Q
40
30
10
0
-10
0
DCS TEMPERATURE PLOTS
COMPLETE SOAK - WINTER DAY( 12/28)
V,-'
O Water Pump -ป-oil Pan
HOURS
O Fuel Tank
f
M
to
Air Cleaner X Under Hood
------- |