CLS DIM i AS INTEGER DIM ilimit AS INTEGER DIM j AS INTEGER DIM t(1000) DIM h(1000) DIM min(1000) DIM mout(1000) OPEN "Output.txt" FOR OUTPUT AS #1 minput = 10 density = 1000 aoutput = .001 = 1 height = 1 a = 10 deltatime = 1 miputncutoff = 1 aoutputcutoff = 5 g = 9.81 moutput = density * aoutput * (2 * g * height) ^ .5 PRINT "" PRINT " Reservoir Simulation" PRINT "" PRINT " Enter the Input Data!" PRINT " Followed by the enter key!" PRINT "" INPUT " Reservoir fluid inlet mass flow rate (default value is 10 [kg/s])! ", minput PRINT "" INPUT " Reservoir fluid density (default value is 1,000 [kg/m^3])! ", density PRINT "" INPUT " Res. fluid outlet valve cross sect. area (default value is 0.001 [m^2])! ", aoutput PRINT "" INPUT " Reservoir initial fluid height level (default value is 1 [m])! ", height PRINT "" INPUT " Reservoir cross sectional area (default value is 10 [m^2])! ", a PRINT "" INPUT " Simulation integration time (default value is 1 [s])! ", deltatime PRINT "" INPUT " Res. fluid inlet mass flow rate cut off time (default value is 1 [min])! ", minputcutoff PRINT "" INPUT " Res. fluid outlet mass flow rate cut off time (default value is 5 [min])! ", aoutputcutoff PRINT "" INPUT " Gravity (default value is 9.81 [m/s^2]! ", g PRINT "" PRINT " Step Time Flow In Height Flow Out" PRINT " [/] [s] [kg/s] [m] [kg/s] " PRINT "" IF minput = 0 THEN minput = 10 IF density = 0 THEN density = 1000 IF aoutput = 0 THEN aoutput = .001 IF height = 0 THEN height = 1 IF a = 0 THEN a = 10 IF deltatime = 0 THEN deltatime = 1 IF minputcutoff = 0 THEN minputcutoff = 1 IF aoutputcutoff = 0 THEN aoutputcutoff = 5 IF g = 0 THEN g = 9.81 PRINT #1, " Reservoir fluid inlet mass flow rate [kg/s]: ", TAB(65); minput; PRINT #1, "" PRINT #1, " Reservoir fluid density [kg/m^3]: ", TAB(65); density; PRINT #1, "" PRINT #1, " Reservoir fluid outlet cross sectional area [m^2]: ", TAB(65); aoutput; PRINT #1, "" PRINT #1, " Reservoir initial fluid height level [m]: ", TAB(65); height; PRINT #1, "" PRINT #1, " Reservoir cross sectional area [m^2]: ", TAB(65); a; PRINT #1, "" PRINT #1, " Simulation integration time [s]: ", TAB(65); deltatime; PRINT #1, "" PRINT #1, " Reservoir fluid inlet mass flow rate cut off time [min]: "; TAB(65); minputcutoff; PRINT #1, "" PRINT #1, " Reservoir fluid outlet mass flow rate cut off time [min]: "; TAB(65); aoutputcutoff; PRINT #1, "" PRINT #1, " Gravity [m/s^2]: "; TAB(65); g; PRINT #1, "" PRINT #1, "" PRINT #1, "" PRINT #1, " Step Time Flow In Height Flow Out" PRINT #1, " [/] [s] [kg/s] [m] [kg/s] " PRINT #1, "" t(1) = 0 min(1) = minput h(1) = height mout(1) = density * aoutput * ((2 * g * height) ^ .5) FOR i = 1 TO 1000 IF i > 10 AND min(i) = 0 AND mout(i) = 0 AND min(i - 1) = 0 AND mout(i - 1) = 0 THEN GOTO finish: PRINT TAB(1); i; TAB(11); t(i); TAB(22); min(i); TAB(35); USING "###.######"; h(i); PRINT TAB(49); USING "###,###.######"; mout(i); IF (i + 1) > 1000 THEN GOTO finish: t(i + 1) = t(i) + deltatime min(i + 1) = minput IF t(i + 1) / 60 > minputcutoff THEN min(i + 1) = 0 h(i + 1) = h(i) + ((min(i) - mout(i)) / (density * a)) * deltatime IF h(i + 1) < 0 THEN GOTO finish: mout(i + 1) = density * aoutput * ((2 * g * h(i + 1)) ^ .5) IF t(i + 1) / 60 > aoutputcutoff THEN mout(i + 1) = 0 PRINT #1, TAB(1); i; TAB(11); t(i); TAB(21); min(i); TAB(34); USING "###.######"; h(i); PRINT #1, TAB(51); USING "###,###.######"; mout(i); IF h(i + 1) < 0 THEN GOTO finish: NEXT finish: PRINT "" PRINT "" PRINT " Output.txt file contains the output data!" PRINT " The Run is Over!" PRINT " Hit anykey to close the program!" PRINT "" PRINT " Engineeering Software" PRINT " http://www.engineering-4e.com" CLOSE #1 DO LOOP UNTIL INKEY$ <> "" END