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— j—i 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 LOW•HIGH 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  id—THE 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',  '
-------
 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
                                                                                                          I—1
                                                                                                          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-

         -^—'-^--M—f-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
                                              _,

                                                ~
        [&
          -SB—aS -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 iy—h> liy ti.il ti> ' V '*> *ปJ> >> "-^—M M *1^ M >X—M 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	trt—V
          D Water Pump + oil Pan
                               HOURS
                            O Fuel Tank
                                               1"T—M—h;t^"T!j~-f7i rr~i t~v m m
                                              -•S H g s H B y i-B
                                                         t—r
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

-------