2' 'ư>HELPA\NhNN:lCONTINUE n((tEXIT&%p=lHALTމPltdSTEP 1 4߉lg STOP߉X^F%EFSTOP ,,OFFg^w@߉UT߉WO$gp߉.Od$Cg|߉$C|ŻOdg$CModelsSchr6d.gpsLFeCFEOiLiiE(((((((((({\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern Courier New;}} {\colortbl\red0\green0\blue0;} \deflang1033\pard\tx1200\tx2400\tx4450\plain\f2\fs20 * Adapted from "Simulation Using GPSS", by Thomas J. Schriber \par * Variation of the Spare Parts Problem \par * \par *Loc Operation A,B,C,D,E,F,G Comments \par * \par * Random Number Sequence Initializations \par * \par RMULT 121,,17 ;Set random sequences for 1st run \par * \par * Function Definitions \par * \par Bfix FUNCTION RN2,C5 ;Repair time for a 'type B' part \par 0,50/.22,60/.57,70/.83,80/1,90 \par Flip FUNCTION P3,L2 ;Number of 'largest-lifetime' para \par 1,2/2,1 \par Point FUNCTION P3,M2 ;Pointer for repair time distribut \par 1,V$Afix/2,FN$Bfix \par * \par * Variable Definitions \par Var1 EQU 1 \par Var2 EQU 2 \par Var1 FVARIABLE (Normal(1,3500,700)) \par Var2 FVARIABLE (Normal(1,4500,900)) \par Afix FVARIABLE (Normal(1,80,5)) \par * \par * Model Segment 1 \par * \par GENERATE ,,,1 ;First worker arrives \par ASSIGN 1,V1 ;Set P1 = life of installed \par * "Type A" part \par ASSIGN 2,V2 ;Set P2 = life of installed \par * "Type B" part \par Again SELECT MIN 3,1,2,,P ;Set P3 = no. of parameter contain \par * smallest lifetime \par SEIZE Mac ;Turn the machine on \par ADVANCE P*3 ;Smallest lifetime elapses \par RELEASE Mac ;Turn machine off \par ASSIGN FN$Flip-,P*3 ;Update remaining life \par * of non-failed part \par ADVANCE 40 ;Remove the failed part \par SPLIT 1,Fetch ;Send co to fetch a spare \par SEIZE Fixer ;Capture the repairman \par ADVANCE FN$Point ;Repair proceeds \par RELEASE Fixer ;Free the repairman \par SAVEVALUE P3+,1 ;Update the number of good spares \par TERMINATE ;Leave, co-worker will carry on \par Fetch TEST G X*3,0 ;Wait (if necessary) for a good sp \par SAVEVALUE P3-,1 ;Update the number of good spares \par ADVANCE 60 ;Install the part \par ASSIGN P3,V*3 \par TRANSFER ,Again ;Go get ready to turn on machine \par * \par * Model Segment 2 \par * \par GENERATE (Exponential(1,0,90)),,,,1 ;"Other items" arrive at shop \par ADVANCE ;Dummy ADVANCE block \par SEIZE Fixer ;Capture the repairman \par ADVANCE 80,40 ;Repair proceeds \par RELEASE Fixer ;Free the Repairman \par TERMINATE ;"Other item" leaves \par * \par * Model Segment 3 \par * \par GENERATE 104000 ;Timer comes after 260 weeks. \par TERMINATE 1 ;Shut of the run. \par \par \par }