Download View/Open
Transcript
DUDLEY EITOX LIBBABY NAVAL POSTGEADUATS SCHOOL MOUTEESY, OALIFOn,KIA 95943-6002 NAVAL POSTGRADUATE SCHOOL Monterey, California THESIS AN EXPERT SYSTEM TO PROVIDE GUIDANCE ON THE OPERATION OF INSTALLED DAMAGE CONTROL SYSTEMS ABOARD NAVAL SHIPS IN EMERGENCY SITUATIONS by Bernard G. Gogel December 1986 Thesis Advisor Neil C. Rowe Approved for public release; distribution is unlimited T230533 Unclassified SfCU«irv CLASSIFICATION Of Thi? PAof REPORT DOCUMENTATION PAGE la REPORT SECURITY CLASSif ICATION RESTRICTIVE lb MARKINGS Unclassified 2a SECURITY CLASSIFICATION AUTHORITY 2b DECLASSIFICATION Approved for public release; distribution is unlimited /DOWNGRADING SCHEDULE PERFORMING ORGANIZATION REPORT NUMBER(S) 4 6a NAME OF PERFORMING ORGANIZATION ADDRESS 6b OFFICE (If 8a NAME OF FUNDING /SPONSORING ORGANIZATION 8c ADDRESS Sfafe, 7a NAME OF MONITORING ORGANIZATION Naval Postgraduate School Code 52 ADDRESS 7b Monterey, California (C/fy, SYMBOL ippli<abl«) tnd 2lPCodt) (Cry. Sfaf*, MONITORING ORGANIZATION REPORT NUV8ER(S) 5 Naval Postgraduate School 6< OISTRIBUTION/AVAILABILITY OF REPORT 3 Stttt. (C/fy, ind ZIP Code) Monterey, California 939^3-5000 8b OFFICE SYMBOL (If ipphciblt) PROCUREMENT INSTRUMENT IDENTIFICATION NUM9ER 9 and Z/PCcx^) 939^3-5000 SOURCE OF FUNDING NUMBERS 10 PROGRAM PROJECT TAS< WORK ELEMENT NO NO NO ACCESSION NO UNIT GUIDANCE ON THE OPERATION OF INSTALLED DAMAGE CONTROL SYSTEMS ABOARD NAVAL SHIPS IN EMERGENCY SITUATIONS ''AN^'M'pMV^SY'5fEM''T0°" PROVIDE PERSONAL AUTHOR(S) i Gogel, Bernard G fYPE OF REPORT 3a 13b COVERED TIME DATE OF REPORT 14 FROM Master's Thesis (Yttr Month Day) IS PAGLLO^^NT 1986 December TO SL.PPLEMENTARY NOTATION 6 COSATi COOES F GROUP ElD ABSTRACT (Continue on •9 18 SUBGROUP reverie if neceiiary and identify by block number) Damage Control, Expert Systems neiemr^ and if SUBJECT TERMS (Continue on revertt identify by bicxk number) We discuss the design and Implementation of Emergency, a prototype expert It provides recommendations on emergency damage-control-guidance system. action procedures, and information on the location and use of the installec damage control systems aboard the ship to Damage Control Central personnel, who can transmit the information to the On-scene leader at the site of the emergency. This prototype system handles emergencies involving personnel A type of decision lattice control injuries, fire, flooding, or fumes. The program takes advantage of the structure was used for the program. similarities that occur during all emergencies with general procedures at the top of the lattice. At the bottom of the lattice, procedures handle the detailed requirements for the identified hazard and source. This structure allows for future additions to or revisions of the methods of combating emergencies. The program Emergency has laid some valuable S'R'3UTlON/ AVAILABILITY OF ABSTRACT :0 EK-'NCLASSlFlED^NLiMlT£D I2a NAME OF Q 21 SAME AS RPT Q OTiC RESPONSIBLE INDIVIDUAL Unclassified 22b TELEPHONE f/nf/ud* AreaCode) Neil C. Rowe DDFORM 1473. 84 MAR ABSTRACT SECURITY CLASSIFICATION USERS l| 83 APR edition All may be used until 08-6 4 6- 24 6 2 exhausted other editions are obsolete 22c OFFICE SYMBOL 52Rp SECURITY CLASSIFICATION OF thiS PAGE unclassified Unclassified SECURITY CLASSIFICATION OF THIS PAGE (Whtn Dmtm Bnffd) (continued) groundwork for a prototype aboard a Naval ship #19 Abstract S N 0102- LF- 014- 6601 ynr.l a<?<aifiQd SECURITY CLASSIFICATION OF THIS PAGE(Trh»n Dmtm Bnfrmd) Approved for public release; distribution is unlimited. An Expert System to Provide Guidance on the Operation of Installed Damage Control Systems Aboard Naval Ships In Emergency Situations by Bernard G. Gogel Lieutenant Commander, United States Naval Reserve B.S., Purdue University, 1972 Submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN COMPUTER SCIENCE from the NAVAL POSTGRADUATE SCHOOL December 1986 1 G' L- ABSTRACT We discuss the design and implementation of Emergency, damage-control-guidance system. It a prototype expert provides recommendations on emergency action procedures, and information on the location and use of the installed systems aboard the ship to Damage Control information to the On-scene leader at the Central personnel, control lattice advantage of the structure similarities that at the top of the lattice. At the who can transmit the of the emergency. This prototype system site handles emergencies involving personnel injuries, decision damage control was used occur during for all bottom of the fire, the flooding, or fumes. program. A type of The program takes emergencies with general procedures lattice, procedures handle the detailed requirements for the identified hazard and source. This structure allows for future additions to or revisions of the Emergency has laid methods of combating emergencies. The program some valuable groundwork for a prototype aboard a Naval ship. THESIS DISCLAIMER The reader is cautioned that the computer program developed in this research only a prototype and may not have been exercised for potential aspects of the the operation of installed addressed by this program. available, to ensure that the be considered verification is validated. While every program Any is free effort cases of interest. damage control systems of Many are not has been made, within the time of computional and logic errors, application at the risk of the user. all is this program without it cannot additional TABLE OF CONTENTS I. INTRODUCTION II. BACKGROUND B. ENVIRONMENT METHODS TO AUGMENT THE KNOWLEDGE OF THE ON-SCENE LEADER C. IV. 12 14 14 EMERGENCY: A DAMAGE CONTROL GUIDANCE SYSTEM A. PROGR.'XM DESIGN CONSIDERATIONS EMERGENCY SYSTEM: DESCRIPTION OF B. OPERATION C. DATA STRUCTURES 23 USING THE EMERGENCY SYSTEM ON US NAVY SHIPS 28 16 16 18 MEMORY REQUIREMENTS A. 28 PROGRAM LANGUAGE REQUIREMENT HOW TO INSTALL EMERGENCY B. C. V. 12 SHIPBOARD DAMAGE CONTROL ORGANIZATION SHIPBOARD DAMAGE CONTROL TRAINING A. III. 9 28 29 CONCLUSIONS DISCUSSION OF THE RESEARCH EMERGENCY SYSTEM LIMITATIONS A. B. D. APPENDIX APPENDIX 32 32 FUTURE PROGRAM IMPROVEMENTS BENEFITS OF RESEARCH C. APPENDIX 32 A: B: C: 34 34 DEMONSTRATION OF EMERGENCY PROGRAM HANDLING A MEDICAL EMERGENCY 36 DEMONSTRATION OF HANDLING A FIRE BERTHING COMPARTMENT 39 DEMONSTRATION OF A FIRE MACHINERY ROOM IN IN A A MAIN 43 APPENDIX LIST D: LISTING OF PROGRAM EMERGENCY OF REFERENCES 51 84 BIBLIOGRAPHY 85 INITIAL DISTRIBUTION LIST 86 1 OF FIGURES LIST evaluation of a report of an emergency 17 3.1 Initial 3.2 Procedure to handle a personnel injury 3.3 Sequence of actions 3.4 Example of a case 3.5 List of possible 3.6 Menu for the user to select the type of 3.7 Menu to select type of Injur\' or Illness 3.8 Notice of Boundaries to be 3.9 Example of a Safety Precaution 3.10 Fitting locations for a 23 3.1 Operating 23 3.12 Codes for Piping 3.13 Codes for 3.14 Codes for Installed in the event 18 of damage to the ship structure 18 19 Compartments for Emergency emergency set HALON System Instructions for a HALON System Systems Compartment Use Damage Control Systems 20 21 21 22 22 25 25 26 I. INTRODUCTION With the every increasing tendency toward the use of advanced and sophisticated equipment aboard ships in the US Navy many it is practical opportunities for installed systems damage most aboard commercial ships and effective manner is The abiUty equipment is damage 1: p. verv' Naval ships S. The have also gotten more in large buildings essential to limit the to protect the personnel present. can be ships large [Ref to use to occur to the ship and/or personnel. complex and are understood by very few personnel. in the and economical The operating environment of most U. extensive and complicated. provides equipment damage control systems aboard modern, Installed 175]. has become a problem maintaining expertise Naval ships are provided with the most modern and aboard the ships to operate them. effective types of fire fighting it to combat casualities to a ship or a building and Proper use of the available installed damage control usually the most effective method to combat an emergency on a ship or in a building. almost impossible for an individual to become an expert in It is damage control systems, he is By the time the person systems. is ship on ready for transfer or has reached the end of his obligated service. The when they should Training personnel available. training that is be done training of shipboard personnel in situations by the most is an but difficult damage control essential, competent Unfortunately the best people often are assigned other duties which greatly constrains able to Adequate are detailed for sea duty. methods of handling emergency requirement. damage control systems vary Personnel are not routinely assigned to the same class of different ships. the proper the various one or two major proficient in locations of the controls and the valves of the installed greatly all more their ability to take time to train others. difficult to teach is Another element of famiUarity with the ship's layout and being fmd and operate the various systems on board [Ref 2: p. vi]. Instead of attempting to teach personnel to become experts in the location and operation of the installed systems, it is proposed to develop an expert system to provide this information to the user. An expert system uses some method of reasoning determine the best course of action to acheive a goal. to eliminate bad choices and to Expert systems use information in an perform some task that to normally associated with is human There are many possible emergencies aboard a ship and there are many ways experts. to way "intelligent" Human combat them. Some method ships are difficult to find or train. for the given set damage control systems aboard Naval experts in installed of emergency conditions to determine the best course of action An needed. is expert system would be applicable for this use. Numerous and are in use many expert systems for DENDRAL today. throughout the United States that extensively by and scientists have been developed an expert system used by research chemists molecular structures from mass identifies candidate and nuclear magnetic data spectral is different applications [Ref. engineers MACSYMA 51]. 3: p. provide to is solutions a system used variety a for mathematical problems, such as algebraic simplification and integration [Ref MYCIN 52]. 3: p. provides guidance in diagnosis and therapy in certain classes of infectious blood diseases [Ref attempts to make PROSPECTOR is a CADUCEUS 53]. 3: p. diagnosis in the is a domain of medical consultation system that medicine [Ref internal 3: p. 54]. PROSPECTOR'S performance is that of expert geologists. All of these systems enhance man's ability to after evaluating the many possible alternatives. the problems already solved with an expert system. assist equipment on a ship or It is soil comparable to make The problem of providing personnel in the operation of installed damage control systems system to 40]. 3: p. an expert system that provides probabilistic interpretation of and geological data [Ref expert of decisions assistance to similiar to some of should be possible to develop an personnel in the identification and operation of installed in a building. This study will consider installed damage control systems on Naval ships. This study discusses the design issues and the implementation of an expert system to provide guidance on the use of installed damage control equipment. This expert system, a prototype expert damage-control-guidance system, will be called Emergency in this study. The purpose of this thesis is to demonstrate that a computer program, designed as a type of expert system, to guide personnel in the operation of installed damage control systems Emergency provides is possible. emergency In the event of a medical emergency, the program first aid transportation precautions. In the event of a listing instructions fire, and flooding, or fumes, of berthing compartments to be evacuated and also a location to be closed to set the primary boundaries. 10 personnel It will list of it casualty provides a fittings and their provide procedures to determine the source of the hazard and provide safety precautions for the identified hazard. It the identification lists number and location of control devices to operate appropriate installed damage control equipment. and provides instructions on the proper operation of the installed equipment to combat and eliminate the given safe The program hazard. It also provides the proper procedures and tests to recover from the emergency. Chapter aboard U. teams, S. how Chapter II provides background on the typical Naval ships. personnel are assigned to emergency personnel are trained, and the limitations of the current organization. III discusses the similarities how This includes damage control organizations There are some design and implementation of Emergency. between the methods used in handling the various kinds of emergencies, but each emergency also has the possibility of having some unique requirements depending on the location of the emergency must be able to make branching handling the emergency. in the ship. The control structure for the decisions to accomplish the detailed procedures for Because of the need for branching from general detailed procedures, a design structure very similiar to a decision lattice type of design structure allowed the program to same general manner before implementing the identified using, hazard and source. initially treat was more to used. This each emergency in the detailed procedures associated with the Chapter IV provides a discussion of the methods of and expanding Emergency refining, program for use aboard Naval ships. Chapter V contains the conclusions of the research effort involved in developing the prototype program. This section also discusses the limitations and and weaknesses of Emergency as well as the Emergency handles demonstrating is benefits. Appendix medical how Emergency A emergencies. handles a a user session listing demonstrating fire. Appendix D is a listing a is user session Appendix fire in is a demonstrating user session a berthing compartment. how Emergency of program Emergency. 11 B listing how listing Appendix C handles a main machinery' room II. BACKGROUND SHIPBOARD DAMAGE CONTROL ORGANIZATION A. A Naval ship contains many potential hazards and can be under certain conditions. Emergencies such as fire, almost any time underway or inport. The most common For An this a dangerous place flooding, or fumes can occur at shipboard emergency reason ships organize their primary emergency response team as a emergency response team is a group of personnel is fire. fire party. from the ship that can perform a wide variety of tasks. The team would be made up of people with different talents that could be combined to combat emergencies. men and A and design an organization materials equipment to combat fires must determine the ship for and other emergencies. the employment of men and form called a "Fire Bill" Standard ships' Fire This information and made available Bills, to certain individuals, put into a comprehensive and intelligible to all personnel addressed in the document. is established by each Type Commander and set forth in General Organization Books, are used as a guide by ships concerned [Ref. The purpose of the Fire Bill is to establish a fire fighting organization certain responsibilities for individuals related emergencies are effectively When the ship is and departments to ensure that etc., Type 4: p. 75]. and specify fires and other and quickly handled. underway, a special team and other emergencies. The name of the Flying Squad, and Specific responsibilities, duties, employment of equipment must be prepared and assigned divisions, or departments. availability of unit, might vary from ship to is normally assigned to combat fires such as Fire Department, R-Division ship, but the purpose is to provide a coordinated team of personnel well trained in firefighting and damage control that can respond quickly in an emergency. Most of the personnel assigned to normally from the engineering ratings. this team are Personnel in the engineering ratings work with the equipment that powers the ship. These personnel could be electricians, machinists, welders, pipefitters, boiler technicians, technical area. and others that work with their hands These personnel tend to have a good knowledge of general damage control procedures, but they are not particularity familiar with the location of installed maintain damage the in a control systems outside the engineering spaces where they propulsion plant and ship's 12 service equipment such as all work the to electrical The engineering spaces generators. Underway the available in are ^Damage Control Assistant and Damage Control charts and manuals. Damage Control Central contain A the compartments. in a building. The show charts that damage all the information about compartment, or space, on a ship is distinct is of a ship. control personnel will be The damage control has definable boundaries and It senior Central to provide what information damage control all on the lower decks usually available is from the and manuals charts the ship's systems all room like a in and or a corridor from the surrounding spaces. the compartments and installed systems are difficult to read because of the small print and the large volume of material on a single chart. Because of the small spacing, Finding the watertight and/or fiametight difficult to trace. of a Central. single or flooding fire The connecting the systems between compartments can be lines fitting are Damage Control also the responsibility of the personnel in is needed to set a complete firetight or watertight boundary frame from one side of the ship to the other, both forward and emergency. These Some of fittings can be doors, hatches, scuttles, or ventilation when looking the appropriate fittings can be easily missed hundreds of fittings. manuals and charts. This information can take Once the required information some time is event fittings to close in the fittings. at a chart with determine from the to obtained, of the aft duct at a it is passed to the On- scene leader via the sound powered phone talker. Fires or emergencies that occur during combat or while the ship is at general quarters should be handled as battle casualties by the Repair party organization in that section of the ship. The area covered normally the second deck, down usually extends from the to the keel, or damage control bottom of the ship. deck, Repair party personnel should be familiar with their area. In large ships, such as aircraft carriers, the area can become quite large. There is also a tendency for a large turnover of personnel assigned to repair parties. Therefore repair party personnel in familiar with the location of area. This information is all installed many damage control equipment usually obtained from the damage control cases are not in their assigned charts and manuals in the repair locker. "The In-Port Fire Party shall be composed primarily of personnel in the regular damage control repair parties, each duty section having an effective fire fighting force" [Ref A thirty 4: p. 75]. men. typical Inport Fire Party If the ship has the normal aboard an aircraft carrier will consist six section inport watch result in 180 people in the Inport Fire Party organization at 13 rotation, this of would any given time. These 180 number of people, plus a alternates in the event of leave, schools, etc., have to be and trained in their specific job individual in both general up eight to [Ref 5: p. to work damage control and months depending on for a specific job on the individual's motivation a fire train an team can take and learning ability" almost impossible to train a significant number of personnel on the It is 15]. "The time to as a fire fighting team. Inport Fire Parties on the location and operation of all the installed damage control systems. SHIPBOARD DAMAGE CONTROL TRAINING ENVIRONMENT B. The rapid increase control training task skills complex systems aboard Naval ships has made the damage in more difficult. members have Since crew to be proficient in the of their rating, damage control training will usually not have a high priority in the allotment of training time. The exercises that are held on board most ships only keep the members of procedures. the repair party organization familiar with general By the time an individual crew member damage control systems on board the ship, he end of his member obligated service. acquires and assignments since there and or ver>' similar for it is difficult to installed systems a great difference all ship classes. memorize and is for his not among as future readily a crew assignments. The that applied to future ship classes as to the location of for a given damage control system is the The procedures however can be very complex retain a working knowledge of all of them. METHODS TO AUGMENT THE KNOWLEDGE OF THE ON-SCENE C. LEADER The key individual at the scene of an emergency effectively coordinate the efforts of his fire party. an installed ready for rotation or has reached the valuable be will The operating procedures the control devices. same is familiar with the is The general damage control knowledge retains knowledge acquired about is damage control Intelligent Team (ICAI) leaders is Computer Aided [Ref a possible 5: p. way 21]. The use of He must Intelligent program to help train Fire Computer Aided Instruction improve the quality of training to handle damage control and emergency situations [Ref LCDR the on-scene leader. LT. Stephen G. Weingart developed Instructional computer to greatly training personnel in general is damage 5: p. 21]. ICAI can be of great benefit in control and emergency procedures. The author, Gogel, prepared a study that focused on the development of an expert system that provides guidance to the on-scene leader in the proper utilization of the ship's 14 damage control equipment. The system would be extremely installed on-scene leader of the inport underway fire fire beneficial to the but would also be very valuable to the party, fighting organization. In the event of a battle casualty to the on-scene leader, the expert system could greatly the task of combating an emergency. assist an inexperienced on-scene leader take over This program is scene leader like LT. Weingart's program, but rather that can be used by the on-scene leader might learn not a training system for the on- it is a tool to provide information leader. After several uses of the program the on-scene the detailed procedures for that situation. However, training all not the primary reason for this program. The primary purpose of the program is is to provide an expert source of information on the operation of installed damage control systems. Microcomputer systems that can proposed for use in the removal, free surface to the and retrieve large and rapid manner are becoming commonplace. accurate gravity, store damage control organization effect, and trim" [Ref 2: p. amounts of data "Computers to solve such have in an been problems as list counterflooding, relocation of centers of buoyancy and 131]. A microcomputer with a database of information as proper number and the location of installed damage control systems would be an extremely valuable tool to augment the knowledge of the on-scene would only have to enter information about the emergency in progress. leader. The user The knowledge of the ship's systems and the proper procedures to operate them would be in the program or data base. 15 EMERGENCY: A DAMAGE CONTROL GUIDANCE SYSTEM III. PROGRAM DESIGN CONSIDERATIONS A. The problem of damage control equipment was evaluated for the types of emergencies that could be anticipated. aboard assisting the on-scene leader in the proper operation of installed The author of this study has been involved aircraft carriers. damage control That experience and the guidance of the appropriate Naval Sea Systems Technical Manuals were used combat an emergency. in all aspects of It in evaluating the needs of the on-scene leader to was determined that most emergencies the beginning at require similar courses of action. Emergencies can be divided into the major areas of injury to personnel or using the ship's damage to the ship. Emergencies are reported compartment numbers. Figure emergency should be initially fumes, fire, many shows how the report of an 3.1 evaluated. If the emergency should be handled as shown in Figure 3.2 If the . was a personnel emergency was a injury, fire, it flooding, or similar actions should take place. Boundaries should be set to contain the flooding, or fumes to one area of the ship. determined. The source or cause of the fire, The source of the emergency should be flooding, or fumes should be eliminated. Procedures to recover from the emergency should be initiated. sequence of actions that need to be taken in the case of a details at a given location fire, Figure 3.3 shows the flooding, or fumes. The of the actions would vary depending on the type of emergency. Even though many of the basic procedures for handling emergencies are the same, there are a large number of possible combinations of hazard types and sources. The methods of handling emergencies and what installed systems are available. would not be covered. will An practical due to the large vary depending on the location in the ship A library of procedures for different cases number of possible cases that would have to be expert system that, for specific hazards, can determine the applicable segments of general procedures was needed. A compiled program was desired for microcomputer on various ships at sea. but slow-to-execute form and convert elTicient operation of the program on a "Compilers take a program in an easy-to-read it to a more efficient "Compilation techniques can also make many more essential that the efficient" [Ref 6: p. 95]. It was 16 kinds of one" [Ref artificial intelligence program be 6: p. 95]. programs as general as Emergency discovered at a given'location Is ^f ^^° Determine the nature the emergency,?^ , ^ nature of known Damage emergency to Ship Fire ^ Flooding Fumes personnel (Medical ) Injur\' to Figure possible and use 3.1 common Initial evaluation of a report of an emergency. procedures where applicable. desired also for ease of maintaining lattice was considered efficient Good programming design was and improving the program. The use of a decision as a possibility. A decision lattice would permit a restricted but form of forward chaining. The prototype program was designed using top-down stepwise refinement a methodology. The overall design was a type of decision lattice structure with global variables to pass the type and the source of the hazard. The program was designed to obtain the data about the installed systems aboard the ship from disk Information on the type and location of the emergency keyboard. Case structures, as shown in Figure next recommended course of action resolve a question by inference information that it needs. 3.4, are is it used to make decisions as to the already knows, This information 17 is files. to be entered at the terminal to present to the user. from what some When it the program cannot asks the user to provide used with information about the Injury to Personnel Medical ( ) 1 Determine Provide Type of Provide best route to sickbay emergency First Aid Injur>' -n Transportation Precautions Procedure to handle a personnel Figure 3.2 Damage injury. to Ship Fire Flag Flooding Set Fumes Set Boundaries Identify Eliminate to contain the Source' or contain the hazard emergency Sequence of actions Figure 3.3 compartment where the emergency is Recover from the emergency in the event of damage to the ship. located to determine the best recommendations to pass to the user. B. EMERGENCY SYSTEM: DESCRIPTION OF OPERATION Emergency is a program terms standing a watch, in On-Scene Leader in which the typical user Damage Control at the scene Central is a sailor who must on duty, or in Naval pass information to the of an emergency. Even on larger ships, some of these 18 case [email protected] of 6 : begin if = hazsource then 1 writeln('Use fire station to combat ' if class "A" possible = 4 then writeln('Use C02 if appropriate to ', 'extineuisn the class "D" getco2hr(needrec); if 7 : hazsource (* encf, fire', .'); fire.'); 6-) begin writelnC Use the HALON system if the fire is out', of control or writelnC hazards to personnel are involved in'. ' ' tr>'ing to great'); combat the fire .'); gethalpn(needrec); 10 : if hazsource < 3 then getafffhr(needrec); 11 : begin writeln('The compartment contains various ', 'firefighting systems.'); if = 4 then writelnC ^se TAPES to extinguish class "D" hazsource ' if hazsource < > 3 if fire', appropriate.'); then gettafes(needrec); if hazsource < 3 then eetafTThr(needrec); gethalbn(needrec); (* II -) {* case instalsystem of *) encf; end; Figure 3.4 Example of a case structure. watchstanders lack the experience to obtain the proper information in a timely manner to pass on to the On-Scene Leader. The program Emergency provides that assistance and guidance. Emergency location on the actual ship. is designed to start with the report of an emergency at a given ship. This is The author used how an emergency his years response would start on board an of experience in damage control aboard including aircraft carriers, to design the order of actions that need to occur to given emergency. The procedures to follow in combat a combating the emergencies were obtained from experience and from guidance from Naval Sea Systems 19 ships, Command M L Technical Manual, Chapter 079 [Ref. and Naval Sea Systems 1], Manual, Chapter 9930, Firefighting Ship the user list provided a is listing For this prototype implementation, of valid compartment numbers as shown in Figure 3.5 to Compt. number 01-50-3-L 02-50-3-L 04-40-0-L 2-30-2-Q 2-30--4-Q 2-30- 1-Q 2-30-5-Q 2-30-6-L 2-36-2-Q 2-37-1-Q -40-0- -48-2-Q 2-50- 1-Q 2-60-02-60- 2-Q 2-60-3-Q 2-60-6-Q 3-30-3-L 3-60-7-L 3-70-2-L 3-70-4-L 3-73- 1-Q 3-80-0- 3-90-3-E 4-30-1-A 4-30-2-M 4-80-0-C 4-80-6-Q 4-80-4-A 5- 30-4- 5-30-1-A 5-40-0-E 5-60-0-E 6-30-1 -A 6-30-2-E 6-30-3-A 6-80-0-E Figure 3.5 is 4]. compartment number known. If will work Berthing Compartment None None None Dr\' Standpipe C02 Hose Reel None None None None None Dr>' Standpipe Exhaust Fan None Exhaust Fan Passagewav Berthmg Compartment Cominuter Space Storeroom Magazine Control Space Passageway Storefoom Magazine Storeroom None None AMMO AMMO Main Machiner>' Room Main Machinerv Room Flammable Storeroom #1 Storeroom Pump Room #2 is Active Sprmkler ^ys None None Exhaust Fan Active Sprinkler Svs Dn.' Standpipe Spk HALOX HR HR AFFF HR and C02 HR Drv Standpipe Spk AFFF HR and C02 HR TAU, C02 HaloiL tAU, C'02 C02 Floodine queried for if Emergency. the nature of the emergency unknown, the program provides some guidance as to nature of the emergency. Once the nature of the emergency 20 Eductor Installed Dry Standpipe Spk Compartments entered, the user Spk None None None None None None Head Space List of possible Spk None Compartment Pump Room After Installed Systems Passaeewav Control Space Workcenler Passasewav Workcenter Admin Space Head Space Repair Locker Passasewav Galley Space Gallev Space Workcenter Wardroom/galley Passagewav Admin Space Medical Space Head Space Head Space Berthing program. test the as input for the program: Compt. Use is Technical of the ship's compartments. This option gives the user a The Following Compartments the [Ref. Command is how known to determine the the user selects 1 one of the four types of emergencies from a menu shown will A in Figure 3.6 The emergency . be either a personnel injury or some damage or danger to the ship and personnel. global variable, haztype, on the number is selected. This global variable execute the details of the fumes, or personinj depending set to either fire, flooding, common is used to determine how program the will procedures to accomplish the required actions for the specified hazard. What is the nature of the emergency or problem Enter the appropriate number below ? : = = = = Fire Flooding Fumes Injur>' to Figure 3.6 If the injury from injury, the emergency a list Menu is personnel 1 2 3 4 for the user to select the type of a personnel injury, the user is emergency. asked to enter the type of of possible injuries shown in Figure 3.7 Using the inputted type of program will provide the user with recommendations for emergency What tvpe of medical emergency has occurred Enter the appropriate number below ? : Head Injury Back or neck Injury External Bleeding Internal Injury Broken Leg Broken Arm Severed Limb Serious Burns Inhalation of Fumes Electrical Shock Drowning Unknown Figure 3.7 Menu Illness to select type of Injury or Illness. 21 = = = = = = = = = = = = I 2 3 4 5 6 7 8 9 10 1 12 first aid and precautions If the for the safe transportation of the casualty to the ship's sick bay. emergency berthing compartments, flooding, or fumes the user fire, is if applicable, to by checking the use code all compartments zone or adjacent zone to the compartment that has the emergency. for a berthing space the number of compartment ventilation to the space. is listed. The user and the ventilation the electrical panel The user is list of be cleared. The compartments are determined compartment records of in the presented with a is is If the use same code is then given the location and controller to secure the then presented with a in the list power and of water-tight and fume- Set the following Boundaries to contain the Hazard: Fitting No. FittinlNo. Fitting No. WTD WTH WTS Notice of Boundaries to be Figure 3.8 fittings, as tight shown ship. If the source some and in Figure 3.8, to close to isolate of the emergency possible sources in the area, tests to located at 4-37-1-Q located at 4-37-1-Q located at 4-37-1-Q 4-37-1 4-37-3 4-39-1 conduct. The user is is the hazard to one area of the not known, the user compartments set. is given suggestions as to to check, piping systems to consider, presented with safety precautions for the identified highly toxic. All personnel who in the course of finding and eliminating the source of the fumes should use breathing devices. Hydrogen Sulfide is might be exposed Figure 3.9 Example of a Safety Precaution. hazard. Figure 3.9 shows an example of a typical safety precaution. If no appropriate installed damage control systems exist, the user is given recommendations on what portable equipment to use. If installed systems are appropriate for the emergency, the user is presented with a HALON system is list of the control devices and their location. shown as Figure 3.10 22 . Operating An example for a and safety instructions The compartment's Actuator Actuator HALON act# 4-40-2 rmact# 2-40-1 Figure 3.10 Actuators are as follows: located 4-40-0-C FR 42 P located 2-40- 1-Q FR 40 P Fitting locations for a HALON An precautions for the installed equipment are then presented. HALON system extinguished, is shown in Figure 3.11 recommended atmosphere . System. example In the event of fumes or tests are presented. In the Before operating the installed HALON system . all for an installed when event of a a fire fire, is when supply and exhaust vent dampers should be closed if possible, and all fans serving the space secured. All personnel should be out of the space or in the process of leaving the space. To activate the system use the given local or remote pneumatic actuators HALON Figure 3.11 the fire is user. If Operating Instructions for a overhauled additional tests HALON System. and recovery procedures are then presented needed and appropriate, control devices and to the their location are given for the operation of installed ventilation and dewatering equipment. If there are no installed ventilation or dewatering systems in the compartment, the program will provide suggestions on what portable equipment to use. C. DATA STRUCTURES The problem of how to access the large compartments on the ship was be spending a question. lot studied. For efiicient possible data concerning the operation the program should not of time obtaining data on the compartment or emergency The required information needs to reside in allows quick access to any required record. numbered on board amount of memory in a data structure that The method by which compartments ship does not lend itself to the sequential use of 23 m are compartment numbers to find particular data. contained The use of one possible data about that all many compartments and very few, if compartment that large record per A compartment was considered. any, contain all large ship has of the various damage control equipment. In fact most compartments do not contain any installed damage control equipment. Some of controlling the the same for a for a control compartment such the data required for a power and the electrical in the area. For each record location for each type of installed equipment Since most of the ships compartments do not have any installed it was decided that this would be inefficient. still A was required ship and store to retrieve would be 7: p. 330]. damage control Some compartments do contain more than one type of installed damage control equipment. several difTerent data structures were needed. is to contain a field wasteful and inefficient. The use of record variants was considered [Ref equipment, panel ventilation controller controlling the supply ventilation number of compartments number and as It was decided that record for each compartment on the certain critical information to isolate and contain the emergency. The location of electrical power panels to secure electrical power, vent controllers to secure supply ventilation, and the location as identified. appropriate are needed as Some of the extensive and is the for a their soon as the location of the emergency data required, such as fittings to close to same numbers and fitting set boundaries, number of compartments. Boundaries is is quite are located at frames in the ship where a watertight or fiametight bulkhead extends across the entire width of the ship from port to starboard. To design the program, the same deck or the same zone. The boundaries for all level, that are compartments that cover between two of boundaries are considered to be in sets to prevent the spread of the hazard was decided in the zone. It more than one compartment. Figure compartments, on all to use a code 3.12 would be the same number shows the codes for all systems for the piping systems that could be present in a compartment. There are addition possibilities for piping systems aboard a ship, but for the purposes of this prototype program only these combinations were considered. Codes were also developed for the types of compartment on the ship as damage control systems are shown shown in Figure 3.13 in Figure 3.14 In order to find such data as in the vicinity Codes etc., for the considered installed . what berthing areas check to determine source of hazard, compartments . an ability to clear, to of the emergency was necessary. to limit the search of the records of the find 24 information about To be compartments was needed. compartments to efficient a method By organizing the Piping Code # Type of Piping System or systems o"" NONE 1 Fire 2 Freshwater 3 Fire main and Freshwater Chilled Water 4 main Drain Plumbing Vent Hish Pressure Air 5 Soil 6 7 Fuel Oil 8 9 11 Fuel Oil and Soil Line Hvdrauhc Oil 12 iVfultiple 10 Codes Figure 3.12 Use Code # 1 : 2 : 3 : 4 : 5 6 7 8 9 : : : : : Systems for Piping Systems. Use of Compartment Admin space Berthing Compartment Passageway Head space Workcenter Main Machinery Boiler Room Room Pump room Emereencv Generator 10: Comnlinuter space 11 Gallev space : 12: 13: 14: 15: 16: 17: 18: 19: 20: 21 : 22: 23: Storeroom Flammable storeroom Fuel tank Water tank Void Access Trunk Control space Fan Room Repair Locker Hazardous materials A VI Magazine MO Medical Spaces Figure 3.13 Codes for 25 Compartment Use. Code# System or Systems Installed NONE Installed eductor Installed exhaust fan Active sprinkler svstem Dr\- standpipe sprinkler 1 2 3 4 5 6 7 C02 Flooding svstem C02 Hose Reel 8 TAPES AFFF Sprinkler AFFF Hose Reel HALON. TAU. and C02 Hose AFFF HR and C02 Hose Reel ' HALON Twin Aeent Unit or 9 10 11 12 Codes Figure 3.14 for Installed records of compartment data in a linked were kept together. All the records single linked list. The linked lists for the structure for the starting at the as possible, compartment main Damage Control Systems. of records, compartments in the same zone compartments on a deck or a level are in a compartment number had a great impact on the design of the data records. Decks on or highest complete deck above the main deck are labeled 01, 02, to handle the make desire to as close to the actual a ship are numbered deck or etc. level 1, 2, etc. 3, on the ship and going down thru the lowest deck at the keel. For this prototype program the 6th deck program needs The are in an array by deck or level. the users entry format for the ship's compartment number list Reel up is at the keel. Levels on the to the highest level number as an integer ship. The in order to find the required information on a given compartment and to determine what compartments, any in the area might need to be evacuated. Since an 01 interpreted as the integer if the compartment is 1, a boolean field in the above the main deck. A and a 1 compartment record separate array of linked would both be is set lists to indicate of records used for the compartments above the main deck and another array of linked records is program if lists is of used for the compartments on the main deck and below. This allows the to access the right The records for the compartment, codes compartment. compartments contain to secure the power and fields for the detailed location ventilation, code for what zone it of the is in, code for the use of the space, a code for the piping systems that pass through the 26 space, and a code appropriate for the installed systems, if any, in the space. fields in the record of the compartment where the emergency program can determine what systems event the program has the emergency. are present compartment has more than one program recommends It By checking the and what the space installed most appropriate system ability to identify all other can determine if 27 used for. In the the the given emergency. The for compartments in the area. located, the damage control system, there are certain types of dangerous with the given emergency is is the in the same zone as the compartments that could be USING THE EMERGENCY SYSTEM ON US NAVY SHIPS IV. MEMORY REQUIREMENTS A. To use the Emergency system on a microcomputer aboard memory requirements for the system's developed on a COMPAQ internal hard disk drive. files must not be 82K bytes of Deskpro computer with 640K of memory and a The program Emergency and the prototype data program the data data disk space and compiled takes on Emergency uncompiled bytes. For the prototype It estimated that the data is for files an aircraft would consume 200- 300K bytes of memory. The compiled program Emergency and the data to its files for large size be required for an most Naval ships would fit on one standard 360K floppy and many complex systems, a separate disk for the data aircraft carrier. The exact volume of data required for files disk. might any given ship not known. is PROGRAM LANGUAGE REQUIREMENT B. The Emergency system was developed on TURBO PASCAL as described in Borland Reference manual [Ref transferred to a on files all fit only include 48 compartments and a large aircraft carrier might contain files carrier type 47K MB 10 consume approximately 8K bytes of memor>'. The prototype files approximately 1200 compartments. Due Ships, the Emergency was excessive. a standard 5.25 inch, one-sided, double density floppy disk. takes US Naval UNIX [Ref 9]. VAX 8|. The system 11/780 UNIX files file a COMPAQ International Deskpro computer Turbo Pascal Version and the prototype data in 3.0 were then files system and Emergency was modified to run with Berkeley Pascal as described in the Berkeley Pascal User's Manual The Turbo Pascal version worked better than the Berkeley Pascal version because Turbo Pascal was designed for use with microcomputers. Turbo Pascal has a built in ability to read string variables strings. and no special procedures are needed to handle With Berkeley Pascal additional procedures or functions have to be created to read in string variables. ADA ADA is will be the Department of Defense computer language [Ref a Pascal like language ADA. Emergency and anything written could be converted to ADA 28 to in Pascal run aboard 10: p. 269], could be converted to US Naval ships. HOW TO C. INSTALL EMERGENCY Emergency a prototype is Emergency was designed program that needs special to be easily installed in all number of decks, compartment number of sickbay, ship's is part or from the the identification a few for the regular of the Emergency system for each ship the difficult and time is the is data base. consuming part of extremely important that the data base be accurate because this file There ship. where damage control manuals. where the program obtains the information about the the 'Compdata' and the constants, such Compartment numbers ship. part of the some of the the value of that provide specific information Preparing and installing the data base It The only ship. program. The information for the constants can be obtained damage control drawings The unique installation. is one particular be in the data base. The program constants are conveniently located will at the beginning of the from the for ships. electrical panels, etc. compartments are located on the compartments Naval to be tailored for the individual ship constants that give the as the program and was not designed which contains are also all thirteen the coded information for each data (13) containing files numbers and locations of such items controllers, water-tight ship's systems. and flame-tight fittings, For the actual implementation on board Naval and as all ships, but the data in on the panels, ventilation damage control systems. ships, certain data fields in certain files might have to be expanded to contain the required information. These standard format for file is compartment on information electrical installed The major is each file files would be unique can be in a for the ship. Ships in the same class could have similar data that could be shared with each other. Ships in a class could have data passed would down from the lead ship of the class. This greatly simplify the preparation of the data bases. Many of the installed damage control systems on the newer classes of ships are virtually identical between ships in the same class. The layout and use of the compartments are also very close. elements of data could be inherited from the class design concept by class. It might be possible to have Type Commanders, charge of under all who all These the ships in the are administratively in the ship's of a given type, prepare the data base for these classes of ships their control. In the event the ship's force has to enter the data base, the important compartments and systems should be entered function in a partial information. For mode new but it first. Emergency can then would not cover the complete ship or construction contracts, a provision could be give complete made builder prepare the data base for the ship under construction since they 29 most that the ship would have all and the plans specifications. The ship would then be covered by the system upon completion of construction. Emergency is designed to be used on a microcomputer aboard Naval ships. The Emergency system should be Damage primarv' location for the installation of the Control Central. This is the duty Engineering Officer in-port will to pass information via a scene of the emergency. its As maximum work with sound powered phone Damage Control state of readiness to Assistant underway or Damage Control watchstander the talker to the microcomputer a backup, another could be installed in secondary ship goes to Damage Control the location where the Central. combat On-Scene leader to use with General Quarters the enemy or at the Emergency is when combat the inflicted damage. Groups of trained personnel are organized as repair parties to combat battle any damage or emergencies. The repair party meets damage control equipment. This compartment portable large ships a is compartment that contains called a repair locker. microcomputer with the Emergency system would be valuable major repair lockers new on-scene assist at a to use during leaders to On at all the General Quarters. This would provide a means to combat damage to the ship in the event of battle casuahies to personnel in the repair party. Training of damage control central personnel to operate Emergency would be easier than trying to train them and to read and numerous interpret the complicated damage control drawings. The program would present them only with the information wrong system being traced out from that they need a and eliminate the possibility of the damage control drawing. With an set up with a batch file to call installed hard microcomputer could be disc, the Emergency whenever the computer turned on. The is operator would then have to enter the compartment number of the location of the emergency in the format showTi on the screen. All other entries would be of a yes/no nature or a selection from a menu. Training of personnel to update the data base or maintain the program would take more time. Since the data base only changes when alterations to the ship's design are made, very few people would be needed. With the rapid increase in computer literacy, every ship would probably have several people who could perform this function. To to list test the all determine emergency system, there of the its use, ship s is compartments. and determine what an option An installed at the operator can damage select control systems operator can then enter the compartment number and see 30 beginning of the program if a it compartment, contains. The the expected boundaries, system controls and locations, and procedures for the selected hazard type are presented. 31 CONCLUSIONS V. A. DISCUSSION OF THE RESEARCH This study tried to address the problem of lack of expertise in the operation of installed damage systems aboard Naval ships. Evaluation of the problem control resulted in the decision to use an expert system. The work involved in developing the prototype expert system Emergency was a success in that Emergency was capable of some performing examples nontrivial of providing on information emergency procedures and the operation of installed damage control systems. Appendixs A, B, and C of this study are sample user session hstings that demonstrate the operation of the program. The use of a decision lattice structure with some global variables to pass the type and source of the hazard proved to be an efficient method of designing the program. Common upper-level procedures could be used for but the emergencies, all the different kinds of unique requirements for the different emergencies could be handled within the procedures by testing the value of the global variables and located. The use of the Pascal language to write an expert system for the operation of installed damage control determining the type of compartment where the emergency equipment was shown that implementing to is be feasible by the prototype program. Chapter IV- showed Emergency aboard Naval ships was possible. It is proposed that expert systems for use aboard naval ships can be designed with a type of decision lattice structure using the B. Pascal or ADA language. EMERGENCY SYSTEM LIMITATIONS Emergency is a prototype program that was designed to demonstrate the concept that an expert system could provide valuable assistance in the employment of installed damage control equipment. The prototype program only handles emergencies compartment at a time. The program would be of in one greater value, if several emergencies located in different compartments could be handled at the same time. This is a possible future upgrade to the program. Due to time limitations are not developed fully. most of the procedures that provide guidance As an example, that handle personnel causalities. On the to the user the procedure perinjury contains procedures menu 32 displayed to the user, see figure 3.7, only twelve possible injuries are procedures for emergency listed. aid first Of the are twelve choices given to the user, only two partially The developed. medical other procedures are merely stubs and need to be developed further. The procedures Tranport and bestroute which provide transportation precautions and the best route would be more useful if they were developed further. An expert in to sickbay Emergency first aid should be consulted in expanding and improving the procedures involving personnel causalities. damage control systems were addressed All of the current, major installed some extent limited in Emergency. Some of the Technical Data on system operations to very is due to the unavailability of some of the Technical Manuals. The safety- precaution procedure and the procedure improved to include provide to more information from the system guidance need to be Command Naval Sea Systems Technical Manuals. The fume-test procedure needs to include tests for more types of and additional information on when fumes an unknown hazard needs compartments to check These procedures Emergency will and tests to conduct what developed to provide tests. the The procedure user with a for list of conduct to determine the nature of the emergency. have to be improved and expanded prior to actual use of in the fleet. This did not have time to pursue. are 75 be to to is a time consuming task which the author of The author estimates that the this study most important procedures 80 percent complete on the information they present to the user. The to procedures that present safety precautions and system operating guidance are estimated to be only 40 to 50 percent complete. All procedures are complete enough to show how they interact with the user and the other procedures. The author estimates that would take three manmonths Naval to complete the program as a useful prototype for a ship. The Emergency program was developed using rather than data for an entire ship. to demonstrate the feasibility With this a limited number of compartments number of compartments it was possible of the concepts without handling the large amount of data a real ship would have entailed. The drawback of the small data base ability been of the program to handle large amounts of data read in from a disk fully large is that the file has not demonstrated. The input from the user at the keyboard will remain very limited regardless of the in the it program and data number of compartments the ship contains. There is nothing structure design that should preclude the proper handling of amounts of coded data from disk files. 33 The allowed a I problem a some limiting in any way. The structure arranging the procedures. The program was written in lot "of flexibility in Pascal which did place was not was not decision lattice control structure constraints since the procedures would recommend the use of Pascal on how the procedures were arranged, but worked together this better in a structured format. for other expert systems that use a decision lattice structure. FUTURE PROGRAM IMPROVEMENTS C. Emergency was written compartment number the the entr\' of a character { is to be easily used by nontechnical personnel. The entry of the only input the user Y;N) must make that requires more than or an integer choice from a menu. In spite of this there could be some advantages in installing a graphics interface for the program. interface that displayed a drawing of the ship's compartments by deck or give the user a prospective of the relationship of one compartment A graphics level to another. would By the use of a mouse the user could select the compartment of interest where the emergency Pop up or drop is located. A helpful addition to the location of identification all the down menus could program would be installed damage be used to select the type of emergency. a graphic display that control showed the relative systems control operators and their numbers. The graphic display would have to be well designed to avoid confusing inexperienced users with too much data as the present damage control charts tend to do. The installation of a graphical interface would greatly increased the installation time to developed the data base and would require increased data storage area. BENEFITS OF RESEARCH D. This study demonstrated the feasibility and benefits of using an expert system to assist the damage control organization aboard naval damage control systems. The advantage of ships in the proper use of installed the decision lattice control structure in conjunction with the use of some global variables was demonstrated. The use of Pascal as a practical language for expert systems that ADA is also was shown. The use of Pascal demonstrates a possible language for expert systems. This research can also benefit other areas where an expert system might be beneficial. 1. An expert svstem might be beneficial in determining the source of a boiler water chemistry problem. 34 Engineering plant casualty control could be assisted with an expert svstem. In a sense a manual version of an expert system already exists with the" check lists for given casualties in the Engineering casualty control manuals. This system could be automated. The developed prototype expert system could be converted into an Intelligent Computer Aided Instruction (ICAT) system to train personnel in the operation of the installed damage control systems. 35 APPENDIX A DEMONSTRATION OF EMERGENCY PROGRAM HANDLING A MEDICAL EMERGENCY The following is a demonstration of the program Emergency handling a medical emergency. The compartments covered by Emergency were printed out with the user is first. The program's interaction shown. EMERGENCY * * Expert system to provide guidance on the operation of * installed damage control equipment aboard the ship. * Answer the given questions and make the appropriate * choices from the presented menus. * * An Do you want The to have the ship's compartments printed out 01- 50- 3-L Y/N Passageway Control space 2- 30- 2-Q 4-Q 2-Q 2- 30- 1-Q 2- 30- 6-L 2- 30- NONE NONE NONE Berthing Compartment 04- 40- 0-C 2- 30- Installed systems Use 02- 50- 1-Q Workcenter Passageway Workcenter Workcenter Head space 2- 30- Admin 2- 5-Q 30- 3-Q 36- 2-Q 37- 1-Q Passageway 2- 40- 1-Q Admin 2- 40- 2-Q Galley space 2- ? following compartments will work as input for the program. Compt number 2- * space Repair Locker Passageway space : : : : : : : NONE NONE Dry standpipe sprinkler C02 Hose NONE NONE NONE NONE NONE NONE NONE 36 Reel _ 2- 40- 0-L Galley space 2- 48- Galley space 2- 60- 2-Q 1-Q 6-Q 3-Q 2-Q 1-Q 2- 60- 0-L 2- 68- 2-L 2- 70- 1-Q 2- 502- 60- 2- 602- 60- Q 2-76-1 3- 30- 3-L 3- 30- 2-L 3- 60- 7-L 3- 70- 4-L 3- 70- 2-L NONE : Dry standpipe sprinkler : NONE NONE Admin space NONE Passageway NONE Passageway NONE Galley space NONE Head space NONE Admin space NONE Passageway NONE Head space NONE Berthing Compartment NONE Workcenter Medical Spaces : : : : : : : : : : Head space Installed exhaust fan Head space Installed exhaust fan Berthing Compartment NONE : : : NONE NONE 3- 73- 1-Q Passageway 3- 80- 0-L Berthing Compartment 3- 90- 3-E : : 4- 80- Cominuter space Workcenter Storeroom Magazine Passageway 4- 80- Control space 4- Passageway Storeroom Installed exhaust fan Storeroom Dry standpipe sprinkler Active sprinkler sys Magazine Main Machinery Room HALON, TAU, and Main Machinery Room HALON, TAU. and 3- 90- 3-Q 4- 30- 1-A 4- 30- 2-M 45- 1-Q 0-C 80- 6-Q 80- 4-A 30- 1-A 5- 30- 4-M 5- 405- 60- 0-E 0-E 6- 30- 1-A 6- 30- 2-E Active sprinkler sys : NONE NONE NONE : : : : : AMMO : C02 C02 : : Flammable storeroom C02 Flooding Pump room AFFF HR and C02 : : Storeroom 6- Pump room 6- Installed exhaust fan Dry standpipe sprinkler : AMMO 6- 30- 3-A 80- 0-E 90- 0-A Installed eductor : : : Hazardous materials hosereel Dry standpipe sprinkler AFFF HR and C02 hosereel : C02 Flooding Give the compartment number of the location of the emergency Enter the compartment number in format Example 5 60 0-E NOTE: The spaces are important. If the exact location is unknown give the closest location known. The format must be accurate. For example "1-Q " vice "1-q" : : . 4 30 2-M The compartment submitted is 4- 30- 2-M 37 hosereel hosereel Is the nature of^the emergency known ? Y/N y What is the nature of the emergency or problem Enter the appropriate number below ? : = Fire 1 — = Flooding Fumes Injury to personnel 2 3 — 4 4 What type of medical emergency has occurred Enter the appropriate number below ? : Head Back = Injury or neck Injury External Bleeding 1 = 2 3 = 4 = 5 Broken Leg = 6 Broken Arm = 7 Severed Limb = 8 Serious Burns = 9 Inhalation of Fumes = 10 Electrical Shock = 11 Drowning = 12 Unknown Illness Internal Injury 8 Try and keep the burned area as clean as Have the Hospital corpman apply temporary dressings. to limit contact possible. Use wet towels in the stretcher if needed. Transport or escort patient to sickbay 2-6G-6-Q by the closest safe route. Use Ammo elevators if possible to move injured personnel. Are there any more medical emergencies ? Y/N n Are there any more emergencies or casualities ? 38 Y/N APPENDIX B 'DEMONSTRATION OF HANDLING A FIRE COMPARTMENT' This is installed fire in damage Emergency compartment that has no a Berthing control equipment. EMERGENCY * An A BERTHING a Demonstration Listing of the program handling a * IN * * Expert system to provide guidance on the operation of damage * installed * Answer the given questions and make the appropriate control equipment aboard the ship. * * * * choices from the presented menus. ************************************************************** Do you want to have the ship's compartments printed out ? Y/N Give the compartment number of the location of the emergency Enter the compartment number in format -_ Example 5 60 0-E NOTE: The spaces are important. If the exact location is unknown give the closest location known. The format must be accurate. For example "1-Q " vice "1-q" : ; . 3 30 2-L The compartment submitted Is is the nature of the emergency 3- 30- known 2-L ? Y/N 39 What the nature of the emergency or problem ? is Enter the appropriate number below = Fire 1 = = Flooding Fumes : 2 3 = Injury to personnel 4 1 The 3 - following Berthing Compartments should be cleared : 30 -2-L Set the following Fitting No. Fitting No. Fitting No. boundaries to contain the hazard WTH WTH WTH Are you ready 2-38-1 located 2-37-1-Q 3-38-1 located 3-37-1-Q 3-38-2 located 3-30-4-L to continue with the program ? : Y/N y To secure electrical power to Secure power at panel To .No. What type of fire is pan 2-53-2 CONT 2-87-2 3 - 30-2-L located in 2-40-0-L compartment secure ventilation to Use controller No. compartment 3 - FR 30-2-L 2-80-4-Q located in FR 87 P this ? Enter the appropriate number below: = Class A (paper, wood, materials Class B C D (hydrocarbon or flammable liquids) Class Class Type (electrical fire ( Chemical of fire etc.) = ) fire = 2 3 = ) 1 4 = unknown 1 Is the source of the fire known? Y/N n Is the compartment number for the location of the correct as originally reported ? Y/N y 40 emergency 53 P Ensure fire boundaries are maintained. Ensure that firefighters are properly equiped. No appropriate Is the fire out installed systems, use nearest fire station. ? Y/N n Continue to combat the Is the fire out ? fire until it is extinguished. Y/N y Conduct the following tests: Test for explosive gases . Test for oxygen. Test for carbon monoxide. Test for carbon dioxide. What type of fumes are present in the space ? Enter the appropriate number. Compartment Tested, Adequate Oxygen, = and no fumes Detected = = Explosive gases Hydrogen Sulfide = Benzine Chlorine 1 2 3 4 = Carbon Monoxide Carbon Dioxide Unknow^n Fumes = 5 6 = 7 Put out the smoking lamp throughout the ship. Set the reflcish watch in OBAs and overhaul the Recommend use of portable pneumatic blowers No installed exhaust ventilation systems. fire. to remove explosive vapors. Use a portable pneumatic blower or a safety checked Red Devil blower. Is the fire overhauled ? Y/N .41 fire Conduct second when the overhaul is completed. Conduct the following tests: Continue to overhaul the . test Test for explosive gases . Test for oxygen. Test for carbon monoxide. Test for carbon dioxide. What type of fumes are present in the space ? Enter the appropriate number. Compartment Tested, Adequate Oxygen, = and no fumes Detected = Explosive gases Hydrogen = Sulfide = = Benzine Chlorine 1 2 3 4 Carbon Monoxide Carbon Dioxide = 5 =6 Unknown Fumes = 7 Compartment 3- 30- 2-L is safe to enter No ventilation is needed except for Smoke removal Does the compartment need to be desmoked ? Y/N . No installed exhaust ventilation systems. Use a portable pneumatic blower or a safety checked Red Devil blower. 3- 30- 2-L have a significant amount Does Compartment water, over two inches, that needs to be removed . n Recommend Use the the use of mops and closest deck drains to pails to clean up. remove the water. Are there any more emergencies or casualities ? 42 Y/N of ' APPENDIX C 'DEMONSTRATION OF A FIRE The IN A MAIN MACHINERY ROOM' Emergency handling a complex fire casualty in a Main Machinery Room. A listing of the available compartments was made. This demonstration shows the interaction between the program and the user. following is EMERGENCY * * a listing of the program An Expert system damage * control equipment aboard the ship. * installed * Answer the given questions and make the appropriate * The to have the ship's compartments printed out Y/N NONE NONE NONE Berthing Compartment 02- 50- 1-Q Passageway 04- 40- 0-C Control space 2-Q 4-Q 30- 2-Q 30- 1-Q 2- 302- 30- 2- 30- 6-L Workcenter Passageway Workcenter Workcenter Head space 2- 30- Admin 2- 30- Passageway 2- Repair Locker 2- ? Installed systems Use 01- 50- 3-L 2- * following compartments will work as input for the program. Compt number 2- * * choices from the presented menus. Do you want * to provide guidance on the operation of 5-Q 3-Q 36- 2-Q 37- 1-Q space Passageway : : : NONE NONE Dry standpipe sprinkler Hose Reel C02 NONE NONE NONE NONE NONE ^3 2- 40- 1-Q 2-Q Galley space 2- 40- 0-L Galley space NONE NONE NONE 2- 48- Galley space Dry standpipe sprinkler 2-60- 2-Q 1-Q 6-Q 3-Q 2-Q 1-Q 2- 60- 0-L 2- 40- 2- 50- 2- 602- 602- 60- Admin space : NONE NONE space Admin NONE Passageway NONE Passageway NONE Galley spare NONE Head space NONE Admin space NONE Passageway NONE Head space NONE Berthing Compartment NONE Workcenter Medical Spaces : : 2- 68- 2-L 2- 70- 1-Q 2- 76- 1_Q 3- 30- 3-L 3- 30- 2-L 3- 60- 7-L 3- 70- 4-L Head space Head space 3- 70- 2-L Berthing Compartment 3- 73- 1-Q Passageway 3- 80- 0-L Berthing 3- 90- 3-E 3- 90- 3-Q 4- 30- 1-A 4- 30- 2-M 4- 804- 80- 1-Q 0-C Cominuter space Workcenter Storeroom AMMO Magazine Passageway 4- 80- 6-Q 4- 80- 45- 30- 1-A 5- 30- 4-M 0-E 0-E 30- 1-A 5- 405- 60- 6- 6- 30- 2-E 6- 30- 3- 6- 80- 0-E 6- 90- 0-A : : : Installed exhaust fan : Installed exhaust fan : NONE NONE Compartment NONE : : : Installed eductor : Installed exhaust fan Dry standpipe sprinkler : Active sprinkler sys NONE NONE NONE Control space Passageway Storeroom Installed exhaust fan Storeroom Dry standpipe sprinkler Magazine Active sprinkler sys HALON. TAU. and C02 hosereel Main Machinery Room Main Machinery Room HALON, TAU. and C02 hosereel Flammable storeroom C02 Flooding Pump room AFFF HR and C02 hosereel Storeroom Dry standpipe sprinkler Pump room AFFF HR and C02 hosereel Hazardous materials C02 Flooding AMMO : : : : : : Give the compartment number of the location of the emergency Enter the compartment number in format -_ Example 5 60 0-E NOTE: The spaces are important. If the exact location is unknown give the closest location known. The format must be accurate. For example "1-Q " vice "1-q" 5 40 0-E : ; . The compartment submitted is 5- 40- 0-E 44 Is the nature of the emergency What known ? Y /N the nature of the emergency or problem ? is Enter the appropriate number below = Fire 1 = = Flooding Fumes : 2 3 = Injury to personnel 4 Set the following boundaries to contain the hazard WTH WTH 3-41-1 located 3-40-1-T Fitting No. 3-59-2 located 3-58-2-Q Fitting No. WTS 3-59-1 located 3-58- 1-T Fitting No. WTH WTH 2-41-1 located 2-40-1-Q 2-59-2 located 2-58-2-Q Fitting No. Fitting No. Are you ready to continue with the program Y/N ? y To secure electrical power to Secure power at panel No. To What type of CONT 5 - 40-0-E located in 2-20-1-Q compartment secure ventilation to Use controller No. compartment pan 2-23-1 5 2-59-2 located FR 40-0-E - *2-40-0-L in FR 59 fire is this ? Enter the appropriate number below: Class A Class B (hydrocarbon Class Class Type Is C D of (paper, wood, materials (electrical fire ( Chemical fire = ) the source of the fire 2 3 = = unknown 1 = liquids) ) fire = etc.) flammable or 4 known? Y/N n Flammable liquids in some piping systems. Is the compartment number for the location correct as originally reported ? 23 of the Y/N 45 emergency C P Ensure fire boundaries are maintained. Ensure that firefighters are properly equiped. Oil spray fires can get out of control quickly. Secure fuel source and localize fire as soon as possible without endangering personnel. Secure the exhaust ventilation to the space. The compartment has an installed exhaust system. Controller number cont 2-54-1 located 2-40-0-L FR 54 To S operate the installed exhaust fan. open any closed exhaust vent dampers and then activate the exhaust fan at the given controller. In the event of a , secure fire, the fan at the given controller and then close the exhaust vent dampers. Are you ready to continue with the program ? Y/N y The compartment contains various firefighting systems. Use the most appropriate system. The compartment contains a Twin Valve number cont 5-45-1 located Valve number cont 4-53-2 located Valve number cont 4-57-1 located To 5-40-0-E LL STBD 5-40-0-E UL PORT UL STBD 5-40-0-E operate the Twin Agent Fire Extinguishing System the given control valve To Agent Extinguishing System. secure the NAVSEA TAFES . Tech Manual Chapter 9930, Firefighting-Ship. ? Y/N y The compartment contains a AFFF sprinkler system. Valve number val 4-42-2 located 4-40-0-C FR 42 P Valve number val 2-54-2 located 2-40-0-L FR 54 P To open system follow the procedures given Are you ready to continue with the program operate the given , AFFF sprinkler system, operate fitting. ^ in Are you ready to continue with the program ? Y/N y The compartment contains a AFFF Hose Reel system. To operate the AFFF Hose Reel System the given control valve most cases a stream In , open . of foam should be deflected from a bulkhead to avoid agitation of burning liquids. is only effective when it Foam covers the top of the surface of burning combustibles. To secure the Hose Reel follow the procedures given NAVSEA Are you ready to continue with the program The compartment's HALON Actuator Before operating the installed ? Y/N actuators are as follows act# 4-40-2 located 4-40-0-C act# 2-40-1 located 2-40-1-Q Actuator in Tech Manual Chapter 9930, Firefighting-Ship. HALON FR FR : 40 P 40 P system . all supply and exhaust vent dampers should be closed if possible, and all fans serving the space secured. All personnel should be out of the space or in the process of leaving To activate the HALON system use the given remote pneumatic actuators. the space. local or Are you ready to continue with the program ? Y/N y Activate AFFF Bilge sprinkler system. The compartment contains a AFFF sprinkler system. Valve number val 4-42-2 located 4-40-0-C FR 42 P Valve number val 2-54-2 located 2-40-0-L FR 54 P To operate the given AFFF sprinkler system, operate fitting. Are you ready to continue with the program ? Y/N y Is the fire out ? Y/N 4f7 Conduct the following tests: Test for explosive gases Test for . oxygen. Test for carbon monoxide. Test for carbon dioxide. What type of fumes are present in the space ? Enter the appropriate number. Compartment Tested, Adequate Oxygen, = = 1 = 2 and no fumes Detected Explosive gases Hydrogen Sulfide = = Benzine Chlorine Carbon Monoxide Carbon Dioxide Unknown Fumes 3 4 = 5 =6 = 7 Carbon Monoxide can be deadly. All personnel who might be exposed in the course of finding and elimating the source of the fumes should use breathing devices. Set the reflash watch in OBAs and overhaul the fire. The compartment has an installed exhaust system. number cont 2-54-1 located 2-40-0-L FR 54 Controller To operate the installed exhaust fan, open any closed exhaust vent dampers and then activate the exhaust fan at the given controller. In the event of a secure fire, the fan at the given controller and then close the exhaust vent dampers. Are you ready to continue with the program ? y Is S the fire overhauled ? Y/N ^ Y/N , Conduct the following tests: Test for explosive gases . Test for oxygen. Test for carbon monoxide. Test for carbon dioxide. What type of fumes are present in the space ? Enter the appropriate number. Compartment Tested, Adequate Oxygen, and no fumes Detected Explosive gases Hydrogen Sulfide = = 1 =2 Benzine = 3 Chlorine = 4 Carbon Monoxide Carbon Dioxide Unknown Fumes = 5 -6 ^T Compartment 5- 40- 0-E is safe to enter No ventilation is needed except for Smoke removal Does the compartment need to be desmoked ? Y/N . The compartment has an installed exhaust system. Controller number cont 2-54-1 located 2-40-0-L FR 54 S To operate the installed exhaust fan, open any closed exhaust vent dampers and then activate the exhaust fan at the given controller. In the event of a secure fire, the fan at the given controller and then close the exhaust vent dampers. Are you ready to continue with the program ? y ^9 Y/N , The main circ pump can be used to dewater a Main Machinery space. The compartment can be dewatered using the main drainage system. Valve number OVBd 5-43-1 located 5-40-0-E FR 43 S Valve number ActW 5-44-1 located 5-40-0-E FR 45 S Valve number Suet 5-42-1 located 5-40-0-E FR 42 S Valve number OVBd 5-54-2 located 5-40-0-E FR 54 P Valve number ActW 5-55-4 located 5-40-0-E FR 55 P Valve number Suet 5-58-2 located 5-40-0-E FR 58 P To and To (OVBD) (ACTW), operate the installed eductor system, open the overboard valve finally first, open the then the activating water bilge or main drain (SUCT) valve. secure the eductor use the reverse order of lineup. Are you ready to continue with the program ? Y/N ? Y/N n Answer yes when you are ready to continue. Are you ready to continue with the program y Are there any more emergencies or casualities ? Y/N n Execution terminated. 25179 statements executed in 0004.700 seconds cpu time. ST APPENDIX D PROGRAM EMERGENCY LISTING OF program emergency(input, output); TITLE EMERGENCY LCDR Bernard G : AUTHOR * Gogel : Date Written 21 Sept : 86-16 Nov 85 J; * Version System Used ^ I/O Sources : Description .-:: .1-. * .-i: .1: .1: .-:: *** .1: .1: Turbo Pascal on : * • One : /* : COMPAQ Deskpro PC Data input from disk files and user input from the terminal Keyboard. This program is an expert system to provide m guidance the operation of mstalled damage control systems aboard Naval ships. * ** * * * * * * * * * * * * * * ****** * * * * * *** ** ** -t- .*;!: -i: -i: -i: .-i". --I: -t- -i: ."I: •* ^- •* .1: -i: GLOBAL CONSTANTS (* *) const numdecks = 6 Number (* ; of decks on the ship *) ('' Number of leyels on the ship *) = 4 numcompt = 100 (" Number of compartments on the ship *) numfittings = 50 (* Number of fittings on the ship *) (* Number of electrical panels *) numelpanel = 28 numventcon = 30 (* Number of ventilation controllers *) (^' Number of HALON svstems actuators on numhalon = 4 numlevel ; ; ; ; ; ; numcofld ship*) = 6 C02 flooding systems (* Number of C02 hose reels on the ship *) (* Number of AFFF sprinkler systems controllers *) (* Number of AFFF hose reels controls on the Number (* ; of controllers *) numcohr = 7; numafilsp = 4 numafnfhr = 4 ; ; ship *) (* Number of Twin Agent Units on the ship (* Number of installed eductor system valves 18 13 (* Number of installed exhausr fans on the ship *) numactsp = 8 (* Number of active sprinkler systems on the ship *) numdysp = 12 (* Number of ar>' standpipe sprinklers on the ship *) sickbaydk = 2 (* Sickbay on the second deck *) *) (* Sickbay at frame 60 sickbayfr = 60 sickbay = '2-60-6-Q' (* compartment number *) numtau = 8 numeduct = numexhfn = ; ; ; ; ; ; ; ; type emertypes filname filvar = = ( fire, = flooding string[16] text recordptr usearray fncarray locarray , fumes, personinj ; ; = = = = the @compartmentrec packea array packed array packed array ; (.1..4J of char (.1..13'^.) (.1..21.) ; of char of char 51 ; ; ) ; compartmentrec = record dklevel _ integer inteser : frame : compabmndk ; : 'boolean; : usearray; (* location to centerline of ship (* Port, Stbd, or Centerline *) char zone integer (* zone for setting boundaries *) panelcode integer (_* code number for electric panel ventcode integer (' code number for ventilation controller *) (* code number for pipme in the space *) pipingcode inte'ger useco"cie integer (•' code number for use or space *) instalsvstems integer ' linkit recordptr loctocl shipside : : ; : ; '''") : ; : ; : ; : ; : ; • : end {" ; fittines compartmentrec = record zlDneloc integer : (* zone where fitting is located *) (* fitting number *) {* location of fitting *) ; fitting fncarray fitlocat locarraV (* fittings *) : ; : end *) ; ; = elecpanel record panlcode integer (* code for electrical panel {* electrical panel number * fncarrav panlocat locarrav'; {'- electrical panel location * (* elecpanel ") end : ; panelnum : ; : ; = record ventcontrl vntcode (* code for ventilation controller *) inteeer (* number of ventilation controller *) fncarray (* location of ventilation controller *) contlocat locarray ' (* ventcontrl *) end : contnum ; : ; : ; ; = record dkorlev integer instlsvs deck or level of compartment *) frame of compartment *) (* third part of compartment number *) thirdpt usearray (" valve or svstem control number *) valvenum fncarray (* location of controls *) location locarray : fr integer : (* ; (* ; : ; : ; : end ; ; {* instlsys *) upprcomp = array (.l..numlevel.) of compartmentrec lowrcomp = arrav (.L.numdecks.) of compartmentrec = arrav (.l..numfittings.) of fittings panels = array"(.l..numelpanel.) of elecpanel ventcntls = array (.L.numventcon.) of ventcontrl halonsvs = array (.l..numhalon.) of instlsvs co2flo6d = array (. l.-numcoHd.) of instlsvs co2hoser = array M.-numcohr.) of instlsys atlTsprk = arrav7.1..numatlTsp.) of instlsys aflllisrl = arrav (.l..numaffl"hr.) of instlsvs closures ; ; : ; ; ; ; ; ; ; tausvstm = arrav (.l..numtau.) of instlsvs insteduc = array (.L.numeduct.) of instfsvs exhstfans = arrav (.L.numexhfn.) ofinstFsvs ; ; actsprsv drysiand = array'(.l..numactsp.) of instlsys array (.l..numdysp.) of instlsys = (* : uplev Kvrdk : : closure panel vent halon co2fld co2hr : : : : compartmentrec upprcomp lowrcomp closures panels ventcntls : ; ; co2nodd : ; ; ; halonsvs co2hoser ; GLOBAL VARIABLES var compt ; ; ; ; ; ; 52 *) 1 aflTspr afilhr aflTsprk : tausys eductor : : actspr : ^ * J* ; ; ; (* used to determine when the emergencv is over*) {* Used to determine if comp above or below emertvpes; (* used to determine the tvpe of hazard *) nextrec,' tastrec, needrec recordptr C' Pointer Variables *) : boolean boolean ; : haztype newrecord, .i! char : ahmndeck *** ; dr>'stand : answer emerover rj! ; insteduc exhstfans actsprsy ; dr\'sid ** tausystm : exhian ' ; .-afiThsrl; mn ; dk *) : : ****** ;!: ; ******************************************************** .i: *\ *) Procedure Continue This procedure is used to provide a pause for the user to read the *) information on the terminal screen Before displaying the next menu *) *) or informational listing. The user enter a "Y" to continue. procedure continue ; var ans char; contprog boolean : : begin contprog : = false ; used to control loop (* *) ; writeln; repeat writeln('Are vou ready to continue with the readln{ans); if (ans = T') or ( ans = 'y') then contprog = true program ? Y/N '); : else writelnC Answer yes when you are ready to continue.'); until contprog (* continue *) •. end ; *) Procedure Printout This procedure prints out information on the compartment pointed to bv *) the passed parameter. This procedure is called bv procedure printcomp. '*) * * * * :ir* * * * * ;',^,: * * * * * * * * * * * * * S * * * * * * * * * * * * * * * * :irii: liT* * * * * * * * :ir* * * * * * * :ir* * * * * * * * * * * * * \ procedure printout{ temprec recordptr) : ; begin if temprec(a).compabmndk then write(t)'); write( [email protected] , '-', temprec®. frame:3^'- /,[email protected]:4, /' case [email protected] of 1 : 2 : 3 : 4 : 5 : 6 7 : : 8 9 10 1 12 13 14 15 : : : : : : : : wnte( writef writeC '); dmin space Berthing Compartment " : '); : Passageway wntef Head space writef Workcenter writef Main Machinery Room write( write( write( Boiler write write write write write write Cominutei^ space Galley space Room Pump room ) : Emergency Generator ') ; : ') : ; ; : : ') ; ') Storeroom j Flammable storeroom Fuel tank Water tank '); ; : : : : '); : ') ; ') ; 53 ; 16 17 18 19 20 21 22 23 end : write( Void : wnte< Access Trunk Control space write uTite write write wTite : : : : : : ') Room Fan ; ; ) : Repair Locker • ') : Hazardous materials Magazine A VI j; : MO write( Medical Spaces (* case ") : ') : : : '); '); case temprec(a;,.instalsvstems of writelnf NONE"); : 1 : 2 : 3 : 4 : 5 6 7 : : writeln(' writeln(' writeln(' writeln(' Installed eductor'); Installed exhaust fan '); Active sprinkler svs')' Dr\- standpipe sprinkler writelnC writelnC writeln C02 Flooding C02 Hose Reel ' : '); ')] HALON ); '); Twin Aeent Unit '); writelnC AFFF S'prinkler '}; 10 writelnC AFFF hose Reel ); writelnC HALON^TAU, and C02 hosereel 11 12 writelnC AFFF and C02 hosereel '); end ; (* case *) {' printout *) end 8 9 : writelnf' : : : '); Hk : ; r > *********.*** rj: :|: *************************************************** * *) Procedure (printcomp) Print Compartments This procedure prints out a listing of all tne ship's compartments *) that are in the data base. The procedure calls procedure printout *) * to print information on a given compartment. *) * * * * * * * ^^^* * * * * * * * * * * * * * * * * * * * *****************% **** * * * * .* .* * * * * * * * * * .* * .* :!>?: !i:^! procedure printcomp ; var i : integer ; begin writeln; writeln(' writeln; for i = : Compt number I to Use Installed systems'); numlevel do begin nextrec := uplev(.i.).linkit while nextrec < > nil do begin ; printout( nextrec); nextrec = nextrec end (* while *) : .linkit ; .linkit ; ; end (* for *) ; writeln; for i = 1 : to numdecks do begin nextrec := lwrdk(. i.). linkit while nextrec < > nil do begin ; printout(nextrec); nextrec = nextrec end (* while *) : ; end writeln end ; (* (* for *) ; ; procedure printcomp *) 54 \ r * * * * * * * ******** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >fr '* *) Procedure Insertrec This procedure is called bv procedure loadfiles to insert a record *) * in an array of linked list oT records. *) '* This procedure contains procedure midinsert to insert a record in *) '* *) the middle of the linked ust of records. .* .* .* * * * * * * ****.****** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *****************\ '* * !!; updw procedure insertrec( (** char; dk, : fr integer : ) ; **) Procedure Midinsert procedure midinsert ; var recinsert : boolean ; used to determine (* if was the record inserted *) begin nextrec:= [email protected] if ; nextrec = nil then begin [email protected] := newrecord lastrec ; ; (-If*) end else = newrecord : (* outer else *) begin recinsert = : false while (nextrec < begin if ; > nil) and (not nextrec@. frame > = do recinsert) fr then begin newrecord (^. linkit := lastrec lastrec(^.linkit := newrecord; recinsert end = : .linkit true; (* If*) else begin = nextrec nextrec := nextrec®. linkit lastrec if : ; ; end; (* else *) (nextrec = nil) and (not recinsert ) then besin las"!rec@. linkit := newrecord recmsert = true : end ; end ;(* if*) end; (* while *) end; (* outer else *) (* midinsert *) (* Start begin if ; ; updw = of insertrec *) then 'T' begin if uplev(.dk.). linkit = nil uplev(. dk.). linkit := then newrecord else begin lastrec := uplev(.dk.). linkit if lastrec@. frame begin > fr ; then newTecord®. linkit := lastrec; uplev(.dk.)Jinkit := newrecord; nextrec = lastrec = newrecord : lastrec : ; end (*if*) else midinsert end • ; (* else *) end; (*ift ^) 55 ; ; if iipdw =-'F' then oegin if = lwrdk(.dk.).lmkit nil then := newrecord lwrak(.ak.).linkit else begin lastrec:= lwrdk(.dk.Uinkit if lastrec@. frame > fr then ; begin newrecord®. linkit := lastrec; hvrdk(.dk.)Trinkit := newrecord nexirec end : = lastrec := (* if*) lastrec ; ; newrecord ; else midinsert end end ; ; (* else *) end; (* iff" *) (* procedure insertrec *) • '******* * * * * * * * * * ******************************************************** \ *) Procedure Loadfiles I* * *) This procedure reads in the coded information on all the ship's ^* compartments from a disk file into a linked Ust of records. There *) is one record per compartment on the ship. Loadfiles calls procedure *) I* ") [* Insertrec to insert the records in the proper position in an array * of linked list of records. *) : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * ** * * * * * *\ procedure loadfiles ; var (* used as an index *) gdk, gfr. gzone, gpanc. gvenc. (* used to read in data from file *) spipnsc, ucode. eetint integer abmnSk, side, discard char (" used to read in data from file *) (* used to read in data from file *) usearray rloc i . : ; : : infile ; ; : filvar f begin for i : = 1 (* Initialize pointers to Nil *) to numlevel do begin with uplev(.i.) do begin linkit : = nil; dklevel = end (* with *) : i ; ; end for i : = ; (* lor to numdecks -) do 1 begin with lwrdk{.i.) do begin linkit : = dklevel end end ; (* (* for *) assien{infile, ; : nil; = i ; with *) (* Prepare for input *) 'compdata.txt ') ; reset(infile); (* Read in information from while not eof (infile) do begin uith compt do begin new(newrecord); read(infile, abmndk); 56 file *) • readln( infile, gdk, gfr, discard, rloc, discard, side, ,gzone, gpanc, gvenc, gpipngc, ucode, getint [email protected] := gdk; newrecord:^. frame := gfr; ne\vrecord:^.loctocl : = ) ; rloc; newrecord:^.shipside := side; newrecord'^.zone := gzone newrecord;a$.panelcode := epanc ne\[email protected] := gvenc newrecord'ci/.pipingcode := gpipngc newrecord a5,.usecode := ucdue nevvrecord;a).instalsvslems := getint if abnmdk = 'F' then newrecord;^. compabmndk := false; if abnmdk = i then newrecord .compabmndk = true newrecord;^. linkit := nil ; ; ; ; ; ; : ; : insertrec{ end ('"'' ; with aomndk, gdk, gfr); ") {' while *) end close (infile ) ; ; end ; loadfiles *) (* ****** * * * * * * * * * * * ****** * * * * * * * * * * * * * * * * * * \ ") Procedure Loaddata This procedure reads in the data concerning the ship's installed *) '* damage control systems from a disk file and ""stores the information *) '* *) in an arrav of records for each svstem. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *************** \ procedure loaddata ' .1: **** .-;; 1. 1- :!: ********** > •!: ******** .-fc !(-. ; var i integer : discard infile : char filvar : ; (* ; (* used as an index *) used to read in and discard seperators *) ; (* Prepare for input *) assign( infile, 'electpan.txt'); begin reset(infile); i := 1 ; {* (* initialize to while not eof beein Vith (infile) panel(.i.) Read 1 in data from file *) ") do do beein l-eadln( infile, panlcode, discard, discard, discard, panlocat); i end' := i + panelnum, discard, • 1 end; (* with *) (* while *) do se( infile); (* Prepare for Input *) assien( infile, 'ventcont.txt'); reset(infile); i := 1 ; (* (* initialize to Read 1 in data from file *) *) while not eof (infile) do begin with vent(.i.) do begin readln( infile, vntcode, discard, discard, discard, discard, contlocat); i end; := i + 1 end; (* with *) (* while *) close(infile); 57 contnum, discard, Prepare for Input (* *) assi2n( infile, 'zonciose.txt'); reseT(inrile); i := 1 ; (* {* initialize to Read 1 in data while not eof (infile) do begin with closure(.i.) do besin >eadln( infile, zoneloc, := i end; (* 1 + from file *) *) fitting, fitlocat ); 1 ") with (* while *) close(infile); end: (* Prepare for Input *) assien( infile, 'actspk.txt'); reseT( infile); i := 1 ; (* (* initialize to while not eof begin (infile) Read 1 in data from file *) *) do \vith actspr(.i.) do begin dkorlev, "'readln( infile, fr, discard, thirdpt. discard, valvenum, discard, discard, location); i end: := i 4- • 1 end; (* with ") (* while *) close( infile); (* Prepare for Input *) assien( infile, 'affFhr.txt'); rese1[( infile); i := 1 ; (* (* initialize to while not eof begin (infile) Read 1 in data from file *) *) do with a{lThr(.i.) do begin readln( infile, dkorlev, fr, discard, thirdpt, discard, valvenum, discard, discard, location); i end: := i + 1 end; (* with *) (* while *) close(infile); (* Prepare for Input *) assien( infile, 'afiTspk.txt'); reset( infile); i := 1 ; (* (* initialize to while not eof begin (infile) Read 1 in data from file *) *) do with afTrspr(.i.) do begin readln( infile, dkorlev, i end* : = i + fr, discard, thirdpt, discard, valvenum, discard, discard, location); • 1 end; (* with *) (* while *) close( infile); (* Prepare for Input *) assign( infile, 'co2flod.txt'); reset( infile); i := 1 ; (* (* initialize to Read 1 in data from *) while not eof (infile) do 58 file *) • begin with co2fld(.i.) do begin readln(inrile, dkorlev, := 1 end: i + fr, discard, thirdpt, discard, valvenum, discard, discard, location); 1 end; (* with *) (* while *) close(infile); Prepare for Input (* *) assi2n( infile, 'co2hrn.txt'); reset(infile); i := 1 ; (* (* initialize to Read in data from file *) ") I while not eof (infile) do begin with co2hr(.i.) do begin dkorlev, 'l:eadln( infile, fr, discard, thirdpt, discard, valvenum, discard, discard, location); := i end: i 4- • 1 end; (* with *) (* while *) close(infile); [.PA} Prepare for Input *) (* assien( infile, 'dr>'std.txt'); reset{infile); i := 1 ; (* {* initialize to while not eof begin Read 1 in data from file *) *) do (infile) with dr>'std(.i.) do begin readln(infile, dkorlev, i end: := i + fr, discard, thirdpt, discard, valvenum, discard, discard, location); • I end; (* with *) (* while *) close( infile); Prepare for Input *) (* assien( infile, 'exhfan.txt'); rese'!( infile); i := 1 ; (* (* initialize to Read 1 in data from file *) *) while not eof (infile) do begin with exhfan(.i.) do begin readln(infile, dkorlev, i : = i + fr, discard, thirdpt, discard, valvenum, discard, discard, location); • 1 end; (* with *) end: (* while *) close( infile); (* Prepare for Input *) assisnC infile, 'halonnl.txt'); reseT( infile); i := 1 ; (* (* initialize to Read I in data from file *) *) while not eof (infile) do begin with halon(.i.) do begin readln(infile, dkorlev, fr, discard, thirdpt, discard, valvenum, discard, discard, location); 59 := i + i • 1 end; (* with *) end: (* while *) close(infile); (* Prepare for Input *) assien( infile, 'ineduct.txt'); reset(infile); i:= 1 (* (* initialize to ; Read 1 in data from file *) *) while not eof (infile) do begin with eductor(.i.) do beein "readln(infile, dkorlev, discard, thirdpt. discard, fr, valvenum, discard, discard, location); := i end: + i 1 end;' (* with *) *) (* while while*) close(infile); (* Prepare for Input *) assien( infile, 'tafesfil.txt'); reset( infile); i := 1 (* {* initialize to ; Read 1 in data from file *) *) while not eof (infile) do begin with tausvs(.i.) do besin ^ ""readln( infile, ' dkorlev, fr, discard, thirdpt, discard, valvenum, discard, discard, location); 1 end: := + i 1 end; (* with *) (* while *) close( infile); (* loaddata *) end; * ************ * * * * ************ * * * * * * * * * * * * * * * * * * * * * * * *1=*) * •') Procedure getcompnum * This procedure requests and reads in the compartment number of the space where the emereencv has occurred. The record of the subniitted *] * compartment is found' and pointed to bv the pointer variable needrec.*) * * ^,f^ * * * * ***** * * * * * * * * * * *i!: ******* \ *** *** ******* ****5********* procedure getcompnum( var needrec recordptr ); ****« * .-;: ,-:: .-;: :!: ** .-f .-!: ***** .-!: .!: 1 :;f^; ::: ;.: :.: =:< r-.: .•:: .-;: : var getchl, getch2, getch3 (* rdklevel, rdframe cfound : : readloc : begin cfound : integer ; boolean ; usearray ; = char used to read in reported deck level *) (* used to read in Trame number *) (* used to determine if comp found *) (* used to read in use of comp *) : ; false; repeat; writeln: \\Titeln{' Give the compartment number of the location of the emergency compartment number in format -_ ); 5 61) 0-E NOTE: The spaces are important. '); writelnf' Enter the writeln(' Example .'); ' : ; writeln(Tf the exact location is unknown give the closest location kno^^Tl.'); writeln(' The format must be accurate. For example "l-Q " vice "l-q" .'); readln( getchl, getch2, rdframe, getch3, readloc) ; writeln; if getchl oeein = '0' then libmndeck = true : ; 60 case getch2 of r : '2' : '3' : '4' : '5' : '6' : '7' : '8' : '9' : rdklevel:= rdklevel = rdklevel := rdklevel = rdklevel = rdklevel = rdklevel = rdklevel := rdklevel = (" case *) : : : : : : 1 2 3 4 5 6 7 8 9 ; end end (-if-) ; else begin "abmndeck = false : case eetchl of rdklevel '2' rdklevel '3' rdklevel '4' rdklevel T : -> : : : '5' : '6' : '7' : '8' : '9' : end end; if ; {"' ; = 1 = = 3 = 4 = 5 = 6 = 7 = 8 = 9; rdklevel rdklevel rdklevel rdklevel rdklevel (* case *) , else *) abmndeck then writeln(The compartment number submitted is 0', rdklevel,'-', i rdframe, '-',readloc) else writeln('The compartment number submitted rdframe, '- ',readloc); if is ', rdklevel,'-', abmndeck then begin nextrec := uplev{. rdklevel. ).linkit while (nextrec < > nil ) and (not cfound ) do begin if( nextrec(^. frame = rdframe) and (nextrec(g.loctocl begin needrec = nextrec ; = readloc) then : cfound = true end (-if*) ; : ; else nextrec := nextrec®. linkit ; (* while *) end if not cfound then • writelnC Compartment number is not in Ship^s data file. Check ', 'compartment number.'); end (*if*) else begin nextrec := lwrdk(. rdklevel. ).linkit while (nextrec < > nil ) and (not cfound ) do begin if ( nextrec(^. frame = rdframe) and (nextrec(^.loctocl begin needrec = nextrec ; : cfound = true end (*if*) : = readloc) then ; ; else begin nextrec := nextrec(^.linkit end; (* while *) end if not cfound then writelnC Compartment number is not in Ship°s data ; • 61 file. Check ', 'compartment number.'); end; (* else *) until cfourrd ; end [* /''• * '* ; (* procedure getcompnum *) *) Procedure (unkwnature) Unknown Nature This procedure is called when the nature of the emergency is not '"} known The procedure provides guidance to the usef on the methods *) *) that can be used to determine the'nature of the emergencv. . procedure unkwnature(needrec : recordptr) ; besin writeln('Send investigators to the area to investigate. ') if needrec@,.usecode~"= 21 then writeln( Hazardous materials in space. Possible source of ; fire', or fumes.'); if if [email protected] = 13 then writelnr Flammable Storeroom. High Fire Danger. '); (needrec,'a);.pipinecode > 5) and ([email protected] writelnl^Possibfe toxic gases from plumbmg system. '); < 7) then writelnC This procedure will be developed futherln the future.'); writeln; (* procedure unkwnature *) * * * * * * * * * * * * * * * * * * * * * * * * * ******** * * * * * * * * * * * * * * * * * * ******************** *\ '* *) Procedure (natknown) Nature Known '* This procedure is called when the nature of the emergencv is known. *) The procedure calls perinjurv in the event of an injury' to 'personnel *) and calls procedures boimda'ries, idensource, elimhazard, recover, in *) *) the event of fire, flooding, or fumes end; : . *) This procedure contains procedures fumetest, safeprec. perinjurv', *) boundaries, idensource^ svsguide. elimhazard, recover, and ten ' *) [* similiar Get Svstem inforrnation Procedures. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *********************.**% [* '* *: > .-;! procedure natknown{needrec : recordptr) ; var hazcode integer hazsource integer : (* ; : used to identify the type of hazard *) ; * * * * * * * * * * * * * * * * * * ******************************************************* \ *) Procedure Fume Test ( fumetest) This procedure provides guidance on the proper tests to conduct after *) -J _ i-_/' a •; aiscoverea in a compartment. comparimeni. *) Are is extinguished or when ^nen lurries lumes are discovered '* ") *) Fumetest is called bv procedures Dcedures idensource and recover. .* * * * * « * * * * * * .* * * * * * * * * * * * * * * * * * * * * « * * * * * * * * * * * * * * * * * * * ****** * * * *********> * m 1. :'.: ; ; ' • .-SH; procedure fumetest( needrec: recordptr • haztvpe var fumtvpe : : emertypes; integer ); var fumefnd : begin fumefnd if : haztvpe begin boolean (* ; used to determine nature of fumes found *) = false; = fire then writelnC Conduct the following writeln; writelnf' writelnf' writeln(' writeln(' writ elm end; (" if if Test Test Test Test tests: for explosive gases for oxvgen. j; for carbon monoxide.'); for carbon dioxide.'); haztype .'); ' fire *) 62 ' ); if = fumes haztvpe begin then writelnC Conduct the following tests: ' ); writeln; wTiteln(' Test for explosive gases .'); writeln(' Test for oxvgen. ); writeln(' Test for carbon monoxide.'); writelnC Test for carbon dioxide.'); if [email protected] = 10 then writeln^ Test for hydrogen sulfide. '); if ([email protected] '< 9) and (needrec .usecode writelnClest for chlorine '); if needrec@. usecode = 21 then writelnC Test for all hazrdous gases. '); end; (* if haztype fumes *) ' repeat writelnC What tvpe of fumes are present in the space writelnC Enter the appropriate number. '); > 5) then ? '); writeln; writelnC Compartment Tested, Adequate Oxygen, = writelnC and no fumes Detected ); writelm' Explosive gases writelm' Hvdrogen Sulfide writelm' Be'nzine writelm' Chlorine I i; = 5'); writelm' Carbon Monoxide = 6'); writelm' Carbon Dioxide '); ' • = 7); Unknown Fumes writeln(' writeln; readln(fumtvpe); if (fumtype '> writelnC 7 ) or (fumtvpe < ) then a valid mput, please tr>' again. Need ') else fumefnd = true : end : .1: .-i! until fumefnd {* fumetest *) ; ; ; .i: * t. * ••!: .1: .i: .i: * -i: ****** :!; ******* .1; ***** .-!-, * ."i: .-i; .-fc .1; .-i: **** .!; .-ft |:*******\ * * * **.•!:* * * * * * * * * * ****** **** *) Procedure (safeprec) Safety Precautions * This procedure provides safety precautions to the user for the type *) * of hazard and it s source that'are passed to the procedure. *) "*) * Safeprec is called bv procedures iaensource and elimhazard. * * * * * .+ * * * * * * * * * * * * :iJS: * * * * * * * * * * * * * * * .* * * * * * * * * * * * * * * * * * * * * * * * * **********( .;: .-f procedure safeprec( haztype : emertypes; hazsource : integer ); begin writeln; if haztype begin = fire then case hazsource of *} (* Class 1 begin writelnC Ensure fire boundaries are maintained.'); writeln(' Ensure that firefighters are properly equiped.'); end; (* 1 *) A : 2 : (* Class B *) writeln Ensure fire boundaries are maintained.'); writeln Ensure that firefighters are properly equiped.'); writeln Oil sprav fires can get out of control quickly.'); writeln Secure fiiel source and localize fire as soon as ); writeln possible without endangering personnel.'); end; (* 2 *) begin begin . (* Class C *) writelnC Erasure electrical power is secured.'); writelm' Ensure fire boundaries are maintained.'); writeln(' Ensure that firefighters are properly equiped.'); 63 end; (* 3 *) 4 begin : (* Class writeln writeln writeln writeln writeln writeln writeln writeln writeln D * Ensure fire boundaries are maintained.'); Ensure that firefighters are properlv equiped to ')• handle all types oT fires. It is extreriielv inportantj; to determine the nature and localize the chemical); involved. Some materials react violently with water.'); Some metal fires are extremelv difiicult to extinguish.'); Metals such as magnesium, sodium, titanium.zinc, '); zirconium, and potassium are class "D combustibles.'); Refer to NAVSEA Tech Manual Chapter 9930 .); writeln, FIREFIGHTING-SHIP for further information. '); end; (* 4 *) end (* case *) end; {* ifhaztype fire " ; *) ifhaztvpe = flooding then beein 1;ase hazsource of 1,2,3 : writeln( 'Ensure electrical 4 : power to the space is secured.'); begin 's^TitelnCPut out the smoking lamp throughout the ship.'); writeln( 'Ensure electrical power to the space is secured.'); writeln( 'Secure the source of fuel as soon as possible.')' writeln('Use non-sparkmg tools when working on the fuel svstem.'); end; end; (* case ") end; (* ifhaztype flooding if haztvpe begin *) = fumes then case hazsource of 1 writeln('Put out the smoking : 2 : end : Sulfide is highly toxic. All personnel who'); begin end : Hvdroeen might be exposed in th"e course of finding and elimatim the" source of the fumes should use breatmng devices.' j ; writeln( writeln( writeln( 4 ship.'); begin writelnf writeln( writeln( 3 lamp throughout the Benzine can be harmlul to people. All personnel who'); might be exposed in the course of findma and elimating'); the source of the fumes should use breatTiing devices.' J; ; begin can be deadly. All personnel who'); writelm' might be exposed in the course of finding and ehmating'); writeln(' the source of the fumes should use breathing devices.' J; writeln(' Chlorine gas end begin writeln( writeln( writeln( end 6 : Carbon Monoxide can be deadly. All personnel who'); might be exposed in the course of finding and elimatinj the source of the fumes should use breatning devices.' ] '); ; begin writeln(' Carbon Dioxide in large doses is toxic. All personnel who'); writeln(' might be exposed in the course of finding and elimating'); writeln{' the source of the fumes should use breatning devices.' J; end end; end; end ( * if ; (* case *) haztype fumes ) (* safeprec *) 64 ******************************** ***************************:k**** ****** **) *) Procedure ( perinjurv ) Personnel Iniurv " *) [* This procedure deterrnihes the the nature of the personnel injury' and f ' ' * * calls the first aid - • - appropriate procedure dui to provide guidance for emergence lency ^ ^ -^ <=---, ^ ^ and1 casualty transportation precautions * * * ****** .:: * * * * * f. * * procedure perinjury(needrec : .-;: *** recordptr . *) *) * * ***** * * * * * * * * ****** ^/* * * * * * * * * * * * * * * N »5: ); var anschar char : ; ans, tranprec integer : medemcpt : (* ; boolean ; code for transportation precautions *) {* used to determine when medical emer over *) VARIOUS IXJURrPROCEDURES •= * Procedures headinj. spinalinj, extbleed, intbleed, brokearm,brokeleg, *) * severlimb. burns, inhalefumes, electshock, drowning, and unknownill *) * are used to provide guidance emergencv first aid'to the emergency *) * response team. *) "of these procedures will be called by procedure " * periniurv in the event of a personnel iniurv. *) One m procedure headinj{var tranprec: integer) begin tranprec end {" ; : = 2 ; • headinj *) : procedure spinalinj(var tranprec: integer begin tranprec end ; : = 2 ); • (" spinalinj *) procedure extbleed( var tranprec :integer begin tranprec end ; : = 5 ; {* extbleed *) procedure intbleed{var tranprec begin tranprec := end ; 1 : = 4 : (* brokeleg *) begin tranprec ; integer); ; procedure brokearm(var tranprec end ); (* intbleed *) begin tranprec ; integer : ; procedure brokeleg(var tranprec end ); (* : = 4 : integer ; brokearm *) procedure severlimb(var tranprec: integer begin tranprec 5 (* severlimb : end = ; ); ); ; *) 65 procedure bums( var tranprec :integer ); begin writeln{' Try to limit contact and keep the burned area as clean as'); writelnf' possible. Have the Hospital corpman apply temporar>' dressings.'); writelnC use wet towels in the stretcher if needed. '); tranprec end : burns ("•'• ; = 1 ; *) procedure inhalefumes(var tranprec begin tranprec end : = 3 integer : ); ; inhalefumes *) {''' ; procedure electshock( var tranprec linteger begin tranprec = 3 end {" electshock : ); ; *) ; procedure drowning(var tranprec : integer ); begin writelnf' If the victum is unconsious and not breathing have personnel'); writeln(' on the scence beein mouth-to-mouth breathing immediatelv.'); writeln(' Call sickbav andTiave them deliver oxvgen to The victum. '); writeln(' If there is ho heartbeat give externaFcardiac massage.'); tranprec end = , 3 ; drowning (* ; : *) procedure unknownill(var tranprec begin tranprec end : = 1 ; unknownill {* ; : integer); *) *) Procedure Transport Precautions (tranport) This procedure provides guidance for the safe handling of injured *) *) personnel that are to be transported. * *** .* **.* **************** ************************* .* [* /* ,* .-t .-S^ .1! -i: -i: .1: procedure tranport( tranprec -i: : integer) ; begin writeln; case tranprec of 1 : 2 : writeln; begin Immobilize the patient in the stokes stretcher.'); writelnC Be careful not to jar or shake the patient. '); end; writeln(' 3 : 4 writelnC Maintain CPR during transport if required .'); begin : writelnC ^^'^he patient is to be transported on a stretcher, '); UTiteln(' ensure that the temporary cast is properly supported.'); end; 5 : end end ; WTitelnC Maintain pressure on the (* case *) ; (* tranport *) 66 wound during transportation.'); \ ****************************** * * * * * * * * * * * * * * * ************************ * * * *) Procedure Best Route * This procedure provides the best route to transport injured *) * personnel to sickbav. This procedure could be developed futher. *) ** rjT* * * * * * ****** * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * K- * * * * * * * * * * * ** * * * * * * * * * \ ** .-i: procedure bestroute(needrec :recordptr ); begin writeln(' Transport or escort patient to sickbay ', sickbav,' by the '); writeln(' closest safe route. '); if ([email protected] = 22) and (needrec;a).dklevel sickbaydk) then writelnT' Use elevators if possible to move injured personnel.'); <> Ammo (needrec^. frame < sickbavfr) and (needrec(a/.shipside = S ) then writelrif Cross over to the port passageway on the messdecks.'); (* procedure bestroute *) if end ; (** Start of main procedure personnel injury **) begin medemcpt := false ; repeat writeln( writeln( writeln; writeln writeln writeln writeln writeln writeln writeln WTiteln writeln writeln writeln writeln What tvpe of medical emergency has occurred Enter the appropriate numBer below '); ?') : Head Injury Back or neck Injury External Bleeding Internal Injur>' Broken Leg Broken Arm ' Severed Limb Serious Burns Inhalation of Fumes Electrical Shock Drowning Unknown =='i> 3 '); = 4 '); = 5 ]; = 6 = 7 = = ^l): 10 11 = Illness 12 '); writeln; readln(ans) ; case ans of 1 headinj(tranprec) 2 spinalini(tranprec) 3 extbleeditranprec) intbleed(tranprec) 4 5 brokelee(tranprec) 6 brokearm{tranprec) 7 severlimb(tranprec) 8 burns(tranprec) 9 inhalefumes(tranprec) electshock(tranprec) 10 : ; : ; : ; : ; : ; : ; : ; : ; : : 11 : ; ; drowning(tranprec) • unknownill(tranprec) 12 end; (* case *) : ; tranport(tranprec) bestroute(needrec) writelnC Are there any more medical emergencies readln(anschar); if (anschar = "iN') or (anschar = 'n') then ; ; medemcpt = medemcpt : until end ; (* true ; ; procedure personnel injury *) 67 ? Y/N '); ; n ******:(; *****************•!!********** * * * * * * * ****** * * * * * * * * * * * * ****** * * * * * * * * * * This procedure provides * * personnel. The procedure contains procedure berthcomp to determine berthing compartn^^^ "^W Procedure Boundaries - *) flooding, or fume boundaries to contain *) the hazard to one zone or area of the ship. [p. The procedure also lists *) * the berthing compartments in the area of *) I the ship to be cleared of fire, if *) _ procedure boundaries(needrec : recordptr ; haztype : emertypes) ; var (* i, tempi. temp2 integer bertnarea Doolean : : (** ; ; used as a counter *) (* used to manipulate integer data *) ('^ set if berthing comp is in the zone *) **) Procedure Berthcomp procedure berthcomp( tempi :integer begin while nextrec < > begin if ; var bertharea :boolean do nil = 2 ) then begin If not bertharea then writelnC The following Berthing Compartments should be cleared writeln([email protected], - ,nextrec@. frame,' - ', ([email protected] = tempi) and ([email protected] nextrec^Oi-loctocr); bertharea = true nextrec := nextrec®. linkit : end (•• ; if*) else nextrec := [email protected]; end (* while *) (* berthcomp *) ; end ; (* start of boundaries *) begin bertharea := false tempi := [email protected] if not [email protected]. then begin "nextrec := lwrdk([email protected].)-linkit berthcomp(templ, bertharea) if needrecx^.dklevel < numdecks then begin temp2 := [email protected] + 1 nextrec := lwrdk{.temp2.).linkit tempi := [email protected] -I- 10 bertncomp(templ, oertharea) • ; ; ; ; ; ; ; end if ; (* if*) [email protected] > 1 then begin temp2 := [email protected] - I nextrec := lwrdk(.temp2.).linkit tempi := [email protected] - iO bertncomp(temp I, bertharea) ; ; ; ; end: {* if*) end ); (* if not above main deck *) else begin nextrec := uplev([email protected].).linkit berthcomp( tempi, bertharea) if needrect^.dkfevel < numlevel then begin temp2 := [email protected] + i nextrec := uplev(.temp2.).linkit ; ; ; 68 ; :'); tempi := [email protected] - 10 bertncomp(templ,^ertharea) end (* if*) ; ; ; if [email protected] > 1 then begin temp2 := [email protected] - 1 nextrec := uplev(.temp2.).linkit tempi := [email protected] + 10 bertncomp(templ, Dertharea) ; ; ; ; end; (* if*) end; {* else above main deck *) writeln; writeln('Set the following boundaries to contain the hazard writeln; to numfittings do for i = :'); : begin "with closure(.i.) do begin Ifzoneloc = needrec@. zone then writeln( 'Fitting No. '.fitting,' located end (* with *) '.fitlocat ) ; ; end; (* for *) continue; haztype < > fumes then begin Tor i = to numelpanel do begin with panel(.i.) do if : begm ifpanlcode begin = [email protected] then writeln; writeln('To secure electrical power to compartment ', [email protected],' -',needrec@. frame, -,[email protected] writeln{ Secure power at panel No. ',panelnum,' located in ', panlocat ) ); ; end;(*if*) end end; end; (* (* with *) (* for *) if^=) haztvpe < begin if for i : ; = > flooding then to numventcon do begin with vent(.i.) do begin ifvntcode = [email protected] then begin wTiteln; writeln('To secure ventilation to cornpartment ', [email protected],' -',needrec@. frame, '-',[email protected] writeln('Use controller No. ',contnum,' located in ', contlocat ) ; end;(*if*) end ; (* with *) end: {* for ^) end; (=^11*) end ; (* procedure boundaries *) 69 ); ' * t- * ******* ^f! *****+.*******!!!**-!:******* * * ********************************* * * * N '* *) Procedure (idensource) Identifv Source '* This procedure provides guidance on methods to determine the source *) * of the identified hazard. *) * * * * ************ * * * * ******** * * * * * * * * * * * * * * * * * * * * *********************** * * ' procedure idensource(needrec: recordptr ;haztype:emertvpes var hazsource" :integer var ans valentry char boolean : ; : begin valentrv write In;" ; )' : = false if haztype = fire used to determine (* ; if a valid entr>' was made *) ; then beein "repeat writeln('What tvpe of fire is this ? '); writeln( Enter the appropriate number below: '); writein: = 1 ') writeln( 'Class (paper, wood, materials etc.) writelm 'Class B (nvdrocarbon or flammable liquids) = 2 = 3 '); writelnf 'Class C (electrical fire ) = 4 '); writelnf 'Class ( Chemical fire ) = writeln(' Type of fire unknown ); writeinreadln( hazsource)* if (hazsource > 4) or (hazsource < ) then writelnC Invalid input, please tr^' again. ') A '); D else valentrv if hazsource begin = = true : - ; then writeln('Send out investigators to determine type of valentrv = false end (* if*) : fire.'); ; : until valentrv- ; Is the source of the fire known? readln(ans); if (ans = a') or (ans = 'n') then writelnC Y/N ' ); begin case hazsource of begin 1 : [email protected] = 1 then writelnrAdmin space, probable paper fire. '); if ([email protected] < 10) and ([email protected] > writelnfPotential of a class B fire ); if if needrec'^.usecode = 3 then writelnC Berthing compartment.', Possible bedding fire. Hazardous fumes possible. ' end; (* 2 : 1 ([email protected] < 13) and (needfec(^.pipinecode > writeln( if Flammable liqiiids needrec®.usecode = 13 7) then in piping. ') 4 : ; writelnC begin ; then writelnC Flammable storeroom end : '); *) begin if 3 4) then '); (* 2 *) Check electrical equipment in the space.'); [email protected] = 21 then writelnCContact '[email protected],' -'.needrec®. frame, -', needreCv^.loctocT, custodian for detail if ' ' 70 ', 'inventon' of materials. end ; '); (* 4 *) end; (* case hazsource *) end; (* if ans = "'") N end;(* if haztype begin = if *) fire flooding then repeat What is flooding the space ? '); writelnC Enter the appropriate number. writeln(' writeln; writeln(' Saltwater Fresh water writeln(' Chilled water \vriteln(' writelnf' writeln(' writeln: Fuel oil Unknown '); = 1 )• = 2 ); = 3 j; = 4'); = 0'); ' readln{hazsource)* if (hazsource > 4} or (hazsource < ) then writelnC Invalid input, please tr>- again. else valentrv if hazsource begin = = true : ') ; then writeln('Send out investigators to determine type of, ' valentrv' : = false flooding.'); ; end;(*if-'0 until valentry ; Is the source of the flooding readln(ans); if (ans = 'N') or (ans = 'n') then writelnC known? Y/N '); begin (hazsource = I ) and ([email protected] = 3) then writelnC Check firemain in space ') if ([email protected] > 3) and ( not [email protected] then writelnC Check for a leak in the hull or any nearby', if ' end ; floodable voids. '); end;.(*if*) (* flooding *) haztvpe = fumes then begin if fumetest(needrec, fumes, hazsource); safeprec( fumes, hazsource); writeln; if (hazsource = 2) and ([email protected] = 6) then writelnC Possible break in plumbing vent. ') ; repeat wTitelnC Have additional fumes been discovered readln(ansl; y') or (ans = 'y') then if (ans = begin Tumetest(needrec, personinj, hazsource); safeprec( fumes, hazsource); end; until (ans = 'N') or (ans = 'n') ? Y/N'); end; (* fumes *) writelnC writeln(' ^^ ^^^ compartment number for the location of the emergency'); correct as originally reported ? Y/N ); readln(ans); if (ans = "N') or (ans ' = end ; (* then 'n') getcompnum(needrec) procedure idensource ; "'•) 71 ) ' .); * * * * * * ***,(:**** * * * * * * * * * * * ********** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ ** Procedure (sysguide) System Guidance *) * This procednre provides guidance on the proper operation of the *) * installed damage control system that is inputed by the parameter *) * svstmnum *) * * >:;************** * * ******** * ****************************************** \ procedure sysguide(systmnum : integer) ; begin writeln; case 1 : systmnum of begm To operate the installed eductor system, open the (OVBD)'); first, then the activating water (ACTW). j; writeln(' and finallv open the bilge or main drain (SUCT) valve, j; writelnC To secure' the eductor use the reverse order of lineup.'); end; (* 1 *) \vriteln(' \vriteln{' overboard valve beein writelni writelni writelni writelni writelni end; (- 1 3 : ' ' ' ' ' To operate the installed exhaust fan, open anv closed '); exhaust vent dampers and then activate the exhaust fan at the given controller. In the event of a fire, secure'); the fan at the aiven controller and then close the '); exhaust vent dampers. '); ,'); begin writeln(' To operate the active sprinkler system, open the '); '); writelni' given control valve writelnC To secure the sprinker close the control valve or use . the end; {* GOV. '); 3 *) beein writeln( writelm writeln( {* 4 To use the drv standpipe connect a firehose to the '); ^iven fitting. For plain saltwater use a fire station.'); For AFFFlise a portable FP-180 proportioner.'); . end; 5 : be sin writelnC Before operating the installed C02 flooding svstem,', first ensure Ihat'); writelnC all personnel are out of the compartment to be flooded.,'); writelnC All supply and exhaust ventilation should be secured. '); writelm' All opening to the compartment should be closed. '); writelnC ^° operate the C02 flooding system, pull the given control' writelnj' handle firmly enough to break the seals on the C02 cylinders end; (- 5*) ' begin writeln( Before operating the installed C02 hose reel system. '); writeln pull the given control handle or lever firmlv enough to '); writeln break the seals on the C02 cylinders. Use the horn in a); writeln sweeping motion directing the C02 at the base of the fire.'); writelni Use the oail on the horn to control the flow of C02. '}; writelni For futher information look at tech manual', Chapter 9930 Firefighting -Ship .'); end; (* 6 *) NAVSEA ' 7 : begin writelni' writeln(' writelni' writelni' writelni' writeln(' writelni' HALON system all supply); Before operating the installed and exhaust vent dampers should be closed if possible, ); and all fans serving the space secured. All personnel '); should be out of the space or in the process of leaving ); svstem use the given'); the space. To activate the local or remote pneumatic actuators. 'Breathing apparatus ); should be used bv personnel entering a space flooded ', HALON 'with HALON.'); 72 , end; (* 8 7 *) begin : writelnf' To operate the Twin Agent Fire Extinguishing Svstem '); wnteln(' remove the safety clip and pull the give nitrogen 'cylinder ) writeln(' valve lever. This 'activates both the AFFF ana PKP systems'); writeim' through an interlock valve. Once activated, either age'nt); writeln(' discharge may be shut ofTat any time by opening or closmg' writeln(' the pistol grip shut ofT nozzles. "); writeln(' To secure the TAFES system follow the procedures given in ') writelnC NAVSEA Tech Manual Chapter 9930, Firefighting-'Ship. '); end; (" 8 *) , 9 begin : To operate the AFFF sprinkler system, operate '); writelm' given fittings. Ensure that the Fog Foam station is '); writelnC manned by personnel who will keep the tank filled.'); end; (* 9 *) writeln(' 10 begin : writelnC To operate the AFFF Hose Reel System open'); writelnC ^^^ given control valve 'V, writelnC To secure the Hose Reel follow the procedures given in '); writelnC NAVSEA Tech Manual Chapter 9930, Firefighting-Ship. end; (* 10 "'') (* case *) , . end ; '); writeln; end continue; (* sysguide *) ; The following ten procedures are called by, procedures elirnhazard and *) recover to obtain information on the identiTication number and location *) * of the controls that operate the applicable installed damage control *) * systems and equipment. These procedures call procedure sysguide. *) I* /* procedure geteduct{needrec : recordptr) ; var i : integer (* ; used as an index *) begin writelnC The compartment can be dewatered using the main drainage system.'); for i : = 1 to numeduct do begin with eductor(.i.) do begin if ([email protected] = dkorlev ) and (needrec@. frame = (needfec^.loctocl = thirdpt) then writelnC Varve number ',valvenum,' located '.location); end: (* with ^) end;(* for *) sysguide(l) end; (* geteduct *) ; /*******.-K.H**)|i*******************************\ procedure getexhaust(needrec : recordptr) ; var i : integer ; (* used as an index *) begin writelnC The compartment has an installed exhaust system.'); for i : = 1 to numexhfn do begin with exhfan(.i.) do begin 73 fr) and ([email protected] = dkorlev ) and (needrec@. frame = fr) and ([email protected] = thirdpt) then wrilelnr Controller number ',valvenum,' located '.location); end: (* with *) if end ; (* for syseuide(2) C " end; *) ; getexhaust *) procedure getactspr{needrec : recordptr) ; var i integer : (* ; used as an index *) begin writelnC The compartment contains an active sprinkler system.'); for i = : I to numactsp do begin "with actspr(.i.) do begin if ([email protected] = dkorlev ) and (needrec@. frame = = thirdpt) then Valve number ',valvenum,' located fr) and (needrec'a),.loctocl writeln(^' '.location); end; (* with -) end :(* for *) svs2uide(3) end; "(•'"getactspr *) **** **** *** * * * * * * * * ******** * * * * * * * * * N procedure getspspr{needrec: recordptr) / :(: .1: .1: :i: .-!-. ; var i integer : (* ; used as an index *) begin writelnC The compartment contains a dry standpipe sprinkler system.'); for i : = 1 to numdysp do begin with dr\'std(.i.) do begin if (needrec fa). dklevel = dkorlev ) and (needrec@. frame = fr) and fr) and (needrec;a;.loctocl = thirdpt) then writelnC VaPv-e number '.valvenum,' located '.location); end; (* with ^) end ; (* for svs2uide(4) end; *) ; get stand pipe sprinkler ' C' *) * * * * * * ****** * * * * * * * * * * * * * * **************** procedure getco2nd(needrec recordptr) / : ; var i integer : (* ; used as an index *) begin writelnC The compartment contains a for i : = 1 to C02 flooding system.'); numcofld do begin with co2fld(.i.) do begin if (needrec@. dklevel = dkorlev ) and (needrec@. frame = (neearec(g.loctocl = thirdpt) then writelnC Valve number '.valvenum,' located '.location); end: (* with *) end ; (* sysguide(5) end; (* for *) ; getco2nd *) /******************************************* 74 ; procedure getco2hr(needrec recordptr) : ; var i integer : (* ; used as an index *) begin wTiteinC The compartment contains a for i : = 1 to C02 Hose Reel system.'); numcohr do begin with co2hr(.i.) do begin if ([email protected] = dkorlev ) and (needrec@. frame = = thirdpt) then Vafve number ',valvenum,' located fr) and fr) and fr) and (needrec;a;.loctocl writeln(^' end; (* with end;(* for 'location); ••) *) sys2Uide(6)end; / ** .-;: getco2hr *) f- * * M: * * * * .i! :l! :!: ****** .-I: * * * * * * * * * * * * * ^. * * * * * * * * * \ procedure getanrsp(needrec : recordptr) ; var i integer : (* ; used as an index *) begin writelnC The compartment contains a for i : = 1 to AFFF sprinkler system.'); numaflTsp do begin with afTTspr(.i.) do begin = dkorlev ) and (needrec@. frame = ([email protected] = thirdpt) then writeln(^' VaK'e number '.valvenum,' located ', location); end; (* with -) if {needrec;a),.dklevel end (* ; for sysguideC9} end; / *) ; (''''"getanisp *) **** -i! .-i; .t. .-it .1! * .-i: .-!; .i: -i: * * * * * * * * * * * * * * * * * * * * * * .* * * * .* * \ procedure gethalon(needrec : recordptr) ; var i : integer (* ; used as an index begin writelnC The compartment°s for i : = 1 to *) HALON actuators are as follows :'); numnalon do begin with halon(.i.) do begin if {[email protected] = dkorlev ) and (needrec@. frame ([email protected] = thirdpt) then writelnf Actuator ',valvenum,' located '.location); end; (* with *) end (* ; for *) sysguide(71 if [email protected] = 6 then begin wntelnC Activate AFFF Bilge sprinkler system. getafiTsp( needrec); end; end; (* gethalon *) /:;:*** * * * * * :!;*** * ********** **************** procedure gettafes(needrec: recordptr) .-I; .-(; :i! ; var i : integer ; (* used as an index *) 75 '\ '); = begin writelnC The compartment contains a Twin Agent Extinguishing System.'); for i : = to 1 numtau do begin do with tausvs(.i.) ' begin if ([email protected] = dkorlev ) and (needrec@. frame = = thirdpt) then Varve number '.valvenum,' located '.location); fr) and fr) and (needfec;a);.loctocl wriieln(^' end- (" with end (* ; svssuide(8) ' end; / •") ^'•) for : gettafes *) f" ********* .i; ff * * * * * * * * * * * * * * * * * * * * * * * * ******** \ procedure getanThr(needrec : recordptr) ; var i : integer used as an index (* ; *) begin writelnC The compartment contains a AFFF Hose Reel system.'); for i = 1 to numafiThr do begin with aff[hr(.i.) do begin if ([email protected] = dkorlev ) and (needrec@Trame = (needf^ec cD.loctocl = thirdpt) then writelnC VaTv-e number ',valvenum,' located 'location); end:(* with ^) : end (* ; *) for svseuide(lO) end; ' C' getaHThr *) ; * * * * * * * * * * * * * * * ***************************************************** * *) Procedure (elimhazard) Eliminate Hazard * This procedure provides guidance on methods to eliminate the *) * identified hazard and the use of applicable installed damage *) * control equipment. *) * This procedure calls procedure safeprec and one of the ten *) * *) procedures as appropriate. *^* ****** * * * * * ************* ***** * * ***** \ * * * * * * * * * * * f. * * * * * * * * * * * * .•ir*H!: * GET SYSTEM .-ifil: procedure elimliazard(needrec : recordptr; haztype : emertvpes; hazsource var ans : char systmnum : begin if haztype begin ; (* integer = fire ; :' integer used to read in answers from user *) (* used to identify installed systems ); *) of procedure elimhazd *) (* start 10) and ([email protected] > then sareprec{fire, hazsource); if ([email protected] <^ 5) begin writelnC Secure the exhaust ventilation to the space. getexhaust( needrec); if then '); ([email protected] < 3) and (hazsource < 3) then begin writelnCNo appropriate installed systems, use nearest', ' if hazsource = 2 fire station.') then 76 "; begin Use portable FP-180 Foam Proportioner or use writelnC portable PKP extinguishers.'); end; writeln(' '); end; if hazsource = 3 then begin if ([email protected] < 5) or (([email protected] > and ([email protected] <> 11)) then writeln('No appropriate installed svstems, use nearest', portable C02 extinguishers.') end; if ([email protected] < 5) and (hazsource = 4) then writelnf'No appropriate installed systems, use nearest'. appropriate portable equipment.'); ' case [email protected] stems of 3 : if hazsource < 3 then getactspr(needrec); 4 : if hazsource < 3 then getspspr(needrec); 5 6 : getco2fld(needrec); : begin if hazsource = then 1 writeln('Use fire station to combat ' if hazsource begin = "A" class possible station or Portable 'extineuishers to'); fire combat PKP 7 : ', class *B" fire if possible.'); = 4 then writeln('Use C02 if appropriate to ', 'extinguish the class "D" eetco2hr(needrec); end; (* 6^=) if fire', .'); 2 then writeln('Use uTitelnC end; if hazsource begin writelnC Use the HALON system if the fire.'); fire is out', of control or great'); writelnC hazards to personnel are involved in', ' ' tr>'ing to combat the fire .'); gethalpn(needrec); 8 : if hazsource < > 3 then begin if hazsource = 4 then writelnC Use r / TAPES if J to extinguish class appropriate.'); "D" ; gettafes(needrec); end; {^ 8 *) 9 : if hazsource < 3 then getafiTsp( needrec); 10 : if hazsource < 3 then getafnfhr( needrec); 11 : begin writelnCThe compartment contains various ', 'firefighting systems.'); 77 fire', 7) writelnC Use the most appropriate system.'); ifhazsource = 4 then writelnC ^'se TAPES to extinguish class "D" ' ifhazsource < > 3 if fire', appropriate.'); then gettafes(needrec); ifhazsource < begin 3 then 2etafiTsp(needrec}; eetafiThrfneedrec); encT; (•Mf*) gethalon(needrec); encH (Ml ^) 12 : begin = 4 then writelnC Use AFFF to extinguish class "D" ifhazsource fire', 'if appropriate.'); getarnhr(needrec); ifhazsource < > 2 then eetco2hr(needrec) ; end;(n2^'-) end; end if (* case instalsystem ^ (* if fire *) ; of*) haztype = flooding then begin safeprec( flooding hazsource); case hazsource of 1 begin (" saltwater *) ir{needrec;a)..pipingcode = 1) or (needrec:a).pipingcode = 3) then writeln( if the source of flooding is the firemain,'); writelnC isolate the section of fir'emain.'); end; (* saltwater *) , : 2 : begin {* freshwater *) "" = 3) then if (needrecfa).pipinecode lecoae = 2) Z) or (needrec(a^.pipinecode (needrec(a!.pipinecc writefnl If the source of flooding is the Iresn wate /ater '); writeln(' piping isolate the section of piping.'); end; (* freshwater ) ' ' 3 : begin (* chilled water *) ir(needrec'ai.pinin2code = 4) or ([email protected] = 12) then writetn( If the source of flooding is chilled water /, isolate the section oTchilled water piping.'); end; (* chilled water *) ' 4 : begin (* fuel oil *) ir([email protected] > 7) and ([email protected] < 13) then writem( If tne source of flooding is the fuel svstem,', isolate the section of fuel piping.')"; ' end; (* fuel oil *) end; (* case hazsource of*) if <> 1) or {[email protected] stems or (needrec:fl),.instalsy stems 11) or ([email protected] 12) then ([email protected] <> <> 10) <> begin writelnCNo appropriate installed dewatering systems, use portable'); writeln('dewatering equipment.' ); ifhazsource = 4 tnen writelnC Do not use a P-250 pump to pump oil or fuel.'); end else begin case [email protected] of 1 geteduct(needrec); geteduct(needrec); 8 : : 78 10 : geteductfneedrec); geteductfneedrecj; 11 : begin 9 : writeln(The compartment contains various ', aewatering systems.'); writelnC ^'se the most appropriate system.'); geteduct(needrec); writelnC The mam circulation pump for the main', condenser can be used to '); writeln('dewater the bilges of a Main Machinery Room.'); ' end; 12 (* II -') eeteduct(needrec); case instalsystem of *) : p end; end; {* else installed systems *) end if ; (* flooding *) haztvpe = fumes then begm case hazsource of begin (* Explosive gases 1 *) ir([email protected] = begin 8) or ([email protected] = 12) then writelnC ^ possible source of the fumes is the fuel piping.'); writelnC Isolate all fuel and fuel tank vent lines.'); end: writelnC L'se a pneumatic blower to remove explosive gases.'); end; (* explosive gases *) begin {* Hydrogen Sulfide if *) {nee'drec.:a;.pipingcode = 5) or {[email protected] = 6) then begin writelnC Close all COV for all soil lines and plumbing'); writelnC vents leading to the space.'); end; end; (* Hydrogen Sulfide *) begin (* Benzine *) ir([email protected] = 2) or {[email protected] or (needrec(a>.instalsvstems = II) then eetexhaust(needrec); end; 4 : p' Benzine = 12) = 12) ^') begin (* Chlorine *) if ([email protected] = 2) or ([email protected] or ([email protected] = II) then eetexhaust( needrec); end; Chlorine *) P 5 : (* begin Carbon monoxide *) ir([email protected] > 3) and ( not [email protected] ) then writeln( Check for nearby open or damaged voids.'); if (needrec(a),.instals\'stems = 2} or (needrec^.instalsystems = 12) or ([email protected] = 11) then eetexhaust(needrec); end; 6 : p' Carbon Monoxide begin (* Carbon Dioxide *) ir([email protected] = 2) or ([email protected] or ([email protected] = 11) then eetexhaust(needrec); end; p' Carbon Dioxide *) end: {* case hazsource of*) end end: (* ("^ if fumes elimhazard *) ; *) *) 79 = 12) ********************************************************************* * *) Procedure Recover * This procedure provides guidance on the proper methods to recover *) * from the identified emergencv. It provides recommended tests to *) * conduct to determine if the compartment is safe to enter without *j * breathing devices. The procedure contains procedures ventilate and ^) * dewater to provide the control numbers and locations of appropriate "') * ventilation and dewatering systems. ') ** .-;-. * .1; .-:-. .-:-. ** .-:-. *** .-:: ** .-:-. ** •:: * * * --S-- * S; * * * * * * * * * * * * * * * * * * * * .* * * * * * * procedure recover(needrec recordptr : haztype ; .1; **************** emertypes); : var ans : char fumetvpe hazdelim / : : (* ; integer boolean ; ; used to read in answers from the user *) (* used to determine the type of fumes ^') (* used to determine if hazard eliminated *) ***************************«********************\ procedure ventilate(needrec recordptr; fumetyp : : integer); begin writeln; if fumetvp = writelnC if then 1 Recommend use of portable pneumatic blowers to remove explosive vapors.'): {[email protected] begin writeln(' writeln(' end <> and ([email protected] < 2) 5 ) ', then No installed exhaust ventilation systems.'); a portable pneumatic blower 'or a safety 'Red Devil blower.'); Use checked ', (* if *) else getexhaust(needrec); writeln; end; {* ventilate *) / * * * * * .* * * * .* ******** * * * * * * * .* * * * * \ procedure dewater(needrec recordptr : ); begin writeln; if [email protected] = 6 then writeln('The main circ pump can be used to dewater a Main ', 'Machinery' space.'); if ([email protected] = 1) or ([email protected] > 7) then geteduct(needrec) else begin No installed dewatering equipment in the space.'): writelnC ^'se portable equipment utilizing the nearest overboard', writeln(' ' discharge'); writelnC ^^^ ^^ eductor if tne water contains fuel or debris.'); writeln(' An electrical submersible pump can be used if the water'); writelnC is fairly clear of oil and deoris. A P-250 pump can be'); writelnC used if adequate ventilation to remove exhaust fumes is', ' available.' ); end (* else *) (* dewater *) ; end ; (* start begin if haztype begin = fire hazdelim = : of procedure recover then false repeat writeln: writelnC Is the fire out ? Y/N' ); writeln; 80 *) i readln(ans}: if(ans= 'N') or ( ans = 'n') then writeln( Continue to combat the fire until it is extinguished.') else begin nazdelim = true fumetest( needrec, if : fumetvpe = fire, fiimetvpe); then begin writelnC '- ; Compartment ',[email protected].'-',[email protected], neearec(a;.loctocl.' is safe to enter .'); writelnC Set the reflash watch and overhaul the writeln; ', fire.'); end else begin safeprec(fumes, fumetvpe); writeln('Set the refiasH watch in OBAs ventilate( needrec fumetvpe); *) end;);* else writelnC Is the fire overhauled ? Y/N '); writeln; <> and overhaul the fire.'); , readln(ans) if (ans = 'N ) or ( ans = 'n') then begin writelnC Continue to overhaul the fire Conduct second '); writelnC test when the overhaul is completed.') end; fumetest( needrec, fire, fumetype); if fumetvpe = then begin writelnC Compartment '[email protected],'-',needrec@. frame, '- '. [email protected],' is safe to enter .'); writelnC ^'^ ventilation is needed except for Smoke removal'}; writelnC Does the compartment need to be desmoked ? Y/N j; ; . writeln; • readln{ans) x) or ( ans = 'v') then if (ans = ventilate( needrec fumetype); , writeln; end else begin safeprec( fumes, fumetype); ventilate( needrec, fumetvpe); -=) end; (* else < > <> ([email protected] 1) and ([email protected] < 9) then begin writeln( 'Does Compartment '^needrec@ .dklevel,'-'.needrec@ .frame, '- ', [email protected]. have a significant amount or); writelnC water, over two inches, that needs to be removed ); if . writeln; readln(ans) if (ans = 'N ) or ( ans = 'n') then begin writelnC Recommend the use of mops and pails to clean up.'); writeln(' Use the closest deck drains to remove the water.') ; end else end dewater( needrec)" if then begin *) (* else dewater( needrec); end: (* else fire out *) until hazdelim end; (* haztype ifhaztype = ; = fire *) flooding then begm 81 dewater{needrec) : writeln( Ensure all electrical equipment and wiring is checked out'); writeln{' before restoring electrical power to the compartment. '); end; (* haztype = flooding *) if = fumes haztvpe begin then Check compartment to ensure fumes are cleared from space.'); fumetest(needrec. fumes, fumetvpe); if fumetvpe = then begin writeInC Compartment '[email protected]/-'.needrec@. frame, '[email protected]^ is safe to enter .'); writelnC No ventilation is needed '); "writelnC , . writeln; end else begin safeprec( fumes, fumetvpe); ventilate(needrec, fumetvpe); end; (* else end <>()*) haztvpe = flooding procedure 'recover *) end; (*' ; (* *) (**** Start of main procedure natknown ****) begin writeln(' What is the nature of the emereencv or problem ? ') writeln(' Enter the appropriate number Below writeln; = 1 ') writelni' Fire writeln(' Flooding ) = 3 'J writeln(' Fumes = 4 ') writeln(' Injur\' to personnel writeln' : =2 ; ; ; readln(hazcode) ; case hazcode of 1 : 2 3 : : 4 end if : ; haztvpe haztvpe haztvpe haztvpe : : : = fire = flooding = fumes = persomnj ; ; ; : ; {" case *) haztvpe = personinj then periniur\"(needrec) else begin Doundaries(needrec .haztvpe) idensource(needrec. haztvpe. hazsource); elimhazard(needrec, haztype, hazsource); recover(needrec. haztype"); ; end end ; (* ; (* else *) procedure natknown *) 82 ; ' ); V . {***** Start of Main Program *****) begin writelnr*************************** ***********************************' EMERGENCY '* writeln An writelnf'* *'); Expert svstem to provide guidance on the operation of *'); *'); writelm'* installed dariiage control equipment aboard the ship. writelnf'* Answer the given questions and make the appropriate ); *'); writelnC* choices from the presented menus. * " ***** ******** ***************** * * * * * * * * * * * % * * * * * * -* * * * * wri t e n * * * * * ^' ( 1 ""'' -i; ' writeln; emerover = false : loadfiles loaddata writelnC ; ; • Do you want have the ship°s compartments printed out to writeln; readln( answer); if = (answer = y') or (answer printcomp 'y') then ; repeat (* Until all ; getcompnum(needrec) emergencies have been handled *) ; writeln; writeln('Is the nature of the emergency known writeln; readln( answer); if (answer = "N") or (answer = 'n') then begin linkwnature(needrec) natknown(needrec); ? Y/N '); ; end else natknown(needrec) ; writeln; writeln('Are there any more emergencies writeln; readln( answer); if (answer = emerover until end. : a") or (answer true = emerover ("* = 'n') then ; ; Program Emergency **) 83 or casualities ? Y/N' ); ? Y/N '); - \ OF REFERENCES LIST 1. Naval Sea Svstems_Command Report S9086-Cn-STM-20, Naval Ship's Technical Manual, Chdpier 079, Volume 2, Damage Control - Practical Damage Control, December 2. Bissel. Naval 1979. Oertel. E. J., A. M. Institute Press, 1976. , and Livingston, D. J., Shipboard Damage Control, 3. Haves-Roth, F., Waterman, D. A., and Lenat, D. Addison-Wesley Publishing Company Inc., 1983. 4. Naval Sea Systems 5. Weingart, Stephen G., Development of a Shipboard Damage Control Fire Team Leader Intelligent Computer Aided Instructional Tutoring Svstem, Master's Thesis, Naval Postgraduate School, Monterey, California, June 19'86. 6. Rowe, N. C, Introduction 7. KofTman, Elliot B., Problem Solving And Structured Programming Addison-Wesley Publishing Company Inc., April 1982. B., Building Expert Systems, Command Report 0901-LP-930-0003, Naval Ships Technical Manual, Chapter 9930, Firejlghting - Ship, December 1985. 8. Borland International, 9. Jov E. M., Graham, to Artificial Intelligence TURBO PASCAL, S. BERKELEY PASCAL L., Halev, C. User's B., Manual, Through Prolog, Prentice-Hall, in Pascal, Version 3.0 Reference Manual, 1985. McKusick, M. Version 3.0, K., and University Kessler, P. B., of California, Berkeley, July 1985. 10. MacLennan, Bruce J. Principles of Programming Languages: Design, Evaluation, and Implementation, Holt, Rineharl, ana^Winston, 1983. 84 BIBLIOGRAPHY Command Report 9086-SX-STM-020, Naval Ship's Technical Manual, Chapter 550, Industrial Gases Generating, Handling, and Stowage, September Naval Sea Systems Naval Sea Systems_ Command Report S9086-WK-STM-000, Naval Ship's Technical Manual, Chapter 670, Stowage, Handling, and Disposal of Hazardous General Use Consumables, February 1976. 85 INITIAL DISTRIBUTION LIST No. Copies 1. Defense Technical Information Center 2 Cameron Station Alexandria, Virginia 22304-6145 2. 3. Librarv. Code 0142 Naval Tostgraduate School Monterey, California 93943-5002 2 Department Chairman. Code 52 Department of Computer Science Naval Postgraduate School Monterey, California 93943-5000 1 4. Computer Technolosv Programs, Code 37 Naval Postgraduate "School Monterey, California 93943-5000 5. Associate Professor N.C. 1 Rowe 1 Code 52Rp Department of Computer Science Naval Postgraduate School Monterey, California 93943-5000 6. Gordon H. Bradley Code 52Bz Department of Computer Science Professor 1 Naval Postgraduate School Monterey, California 93943-5000 7. Commanding Officer 1 Naval Research Laboratory Washington, DC 20375 7. Commanding Officer 1 Naval Damage Control Training Center Philadelphia,^A 19112 8. LCDR Bernard G. Gogel Rural Route 3, Box 197 Huntingburg, Indiana 47542 2 86 1 7 8Q8 ?L 2 DUDLEY KHOX LIBE AE.y DTAVAL postgraduate; school MOBTTEBEY, CALIFORNIA 93943-6003 / Thesis G5285 c.l Gogel An expert system to provide guidance on the operation of installed damage control systems aboard Naval ships in emergency situations.