VB 3.0 Properties of Water and Steam, developed 2004 to 2008, Version 1.1, 01/29/04: mistake in calculation of partial derivatives for thermal conductivity corrected
CONST rgaswater = 461.526   'gas constant in J/(kg K)
CONST tcwater = 647.096     'critical temperature in K
CONST pcwater = 220.64      'critical pressure in bar
CONST dcwater = 322#        'critical density in kg/m**3
start:
 CLS
 COLOR 2, 0
 PRINT "Gross Plant Heat Rate and Net Plant Heat Rate"
 PRINT "---------------------------------------------"
 DIM m.dot
 DIM genout
 DIM delta.h
 DIM eff
 DIM aux.power
steam0:  
 INPUT "Steam Flow to Turbine (tph): "; m.dot
 IF m.dot = 0 THEN
  m.dot = 47.86945
  LOCATE CSRLIN - 1: PRINT "Steam Flow to Turbine set to:"; m.dot; "tph"
 END IF
 IF m.dot < 0 THEN
  LOCATE CSRLIN - 1: PRINT "Steam Flow to Turbine shall > 0, please input again"
  PRINT
  GOTO steam0
 END IF
 LOCATE CSRLIN - 1: PRINT "Steam Flow To Turbine set to:"; m.dot; "tph"
genout0:
 INPUT "Generator Output (MW): "; genout
 IF genout = 0 THEN
  genout = 11.31
  LOCATE CSRLIN - 1: PRINT "Generator Output set to: "; genout; "MW"
 END IF
 IF genout < 0 THEN
  PRINT "genout shall > 0, please input again"
  PRINT
  GOTO genout0
 END IF
 LOCATE CSRLIN - 1: PRINT "Generator Output set to: "; genout; "MW"
inletTemperatureTurbine0:
 INPUT "Temperature Inlet Turbine: (øC)"; TemperatureInletTurbine
 IF TemperatureInletTurbine = 0 THEN
  TemperatureInletTurbine = 470
  LOCATE CSRLIN - 1: PRINT "Temperature Inlet Turbine set to: "; TemperatureInletTurbine; "øC"
 END IF
 IF TemperatureInletTurbine < 0 THEN
  PRINT "Temperature Inlet Turbine shall > 0, please input again"
  PRINT
  GOTO inletTemperatureTurbine0
 END IF
 LOCATE CSRLIN - 1: PRINT "Temperature Inlet Turbine set to: "; TemperatureInletTurbine; "øC"
inletPressureTurbine0:
 INPUT "Pressure Inlet Turbine: (bar)"; PressureInletTurbine
 IF PressureInletTurbine = 0 THEN
  PressureInletTurbine = 49
  LOCATE CSRLIN - 1: PRINT "Pressure Inlet Turbine set to: "; PressureInletTurbine; "bar"
 END IF
 IF PressureInletTurbine < 0 THEN
  PRINT "Pressure Inlet Turbine shall > 0, please input again"
  PRINT
  GOTO inletPressureTurbine0
 END IF
 LOCATE CSRLIN - 1: PRINT "Pressure Inlet Turbine set to: "; PressureInletTurbine; "bar"
inletTemperatureBoiler0:
 INPUT "Temperature Inlet Boiler: (øC)"; TemperatureInletBoiler
 IF TemperatureInletBoiler = 0 THEN
  TemperatureInletBoiler = 150
  LOCATE CSRLIN - 1: PRINT "Temperature Inlet Boiler set to: "; TemperatureInletBoiler; "øC"
 END IF
 IF TemperatureInletBoiler < 0 THEN
  PRINT "Temperature Inlet Boiler shall > 0, please input again"
  PRINT
  GOTO inletTemperatureBoiler0
 END IF
 LOCATE CSRLIN - 1: PRINT "Temperature Inlet Boiler set to: "; TemperatureInletBoiler; "øC"
inletPressureBoiler0:
 INPUT "Pressure Inlet Boiler: (bar)"; PressureInletBoiler
 IF PressureInletBoiler = 0 THEN
  PressureInletBoiler = 72
  LOCATE CSRLIN - 1: PRINT "Pressure Inlet Boiler set to: "; PressureInletBoiler; "bar"
 END IF
 IF PressureInletBoiler < 0 THEN
  PRINT "Pressure Inlet Boiler shall > 0, please input again"
  PRINT
  GOTO inletPressureBoiler0
 END IF
 LOCATE CSRLIN - 1: PRINT "Pressure Inlet Boiler set to: "; PressureInletBoiler; "bar"
delta0:
'    INPUT "Delta H (kJ/kg): "; delta.h
'    IF delta.h = 0 THEN
'        delta.h = 2733
'        LOCATE CSRLIN - 1: PRINT "Delta H set to: "; delta.h; "kJ/kg"
'    END IF
'    IF delta.h < 0 THEN
'        PRINT "Delta H shall > 0, please input again"
'        PRINT
'        GOTO delta0
'    END IF
'    LOCATE CSRLIN - 1: PRINT "Delta H set to: "; delta.h; "kJ/kg"
 hit = enthalpyW(TemperatureInletTurbine + 273.15, PressureInletTurbine)
 hib = enthalpyW(TemperatureInletBoiler + 273.15, PressureInletBoiler)
 delta.h = hit - hib
eff0:
 INPUT "Efficiency Pipe(%): "; eff
 IF eff = 0 THEN
  eff = 99.5 '76.615
  LOCATE CSRLIN - 1: PRINT "Efficiency Pipe set to: "; eff; "%"
 END IF
 IF eff < 0 THEN
  PRINT "Efficiency Pipe shall > 0, please input again"
  PRINT
  GOTO eff0
 END IF
 LOCATE CSRLIN - 1: PRINT "Efficiency Pipe set to: "; eff; "%"
aux0:
 INPUT "Auxiliary Power (%): "; aux.power
 IF aux.power = 0 THEN
  aux.power = 10.4832
  LOCATE CSRLIN - 1: PRINT "Auxiliary Power set to: "; aux.power; "%"
 END IF
 IF aux.power < 0 THEN
  PRINT "Auxiliary Power shall > 0, please input again"
  PRINT
  GOTO aux0
 END IF
 LOCATE CSRLIN - 1: PRINT "Auxiliary Power set to: "; aux.power; "%"
HHV0:
 INPUT "HHV (kCal/kg): "; HHV
 IF HHV = 0 THEN
  HHV = 3909
  LOCATE CSRLIN - 1: PRINT "HHV set to: "; HHV; "kCal/kg"
 END IF
 IF HHV < 0 THEN
  PRINT "HHV shall > 0, please input again"
  PRINT
  GOTO HHV0
 END IF
 LOCATE CSRLIN - 1: PRINT "HHV set to: "; HHV; "kCal/kg"
eff1:
 INPUT "Efficiency Boiler (%): "; eff1
 IF eff1 = 0 THEN
  eff1 = 77
  LOCATE CSRLIN - 1: PRINT "Efficiency Boiler set to: "; eff1; "%"
 END IF
 IF eff1 < 0 THEN
  PRINT "Efficiency Boiler shall > 0, please input again"
  PRINT
  GOTO eff1
 END IF
 LOCATE CSRLIN - 1: PRINT "Efficiency Boiler set to: "; eff1; "%"
qvap0:
 INPUT "Pressure Outlet Turbine (bar): "; poutlet1
 IF poutlet1 = 0 THEN
  poutlet1 = .09
  LOCATE CSRLIN - 1: PRINT "Pressure Outlet Turbine set to: "; poutlet1; "bar"
 END IF
 IF poutlet1 < 0 THEN
  PRINT "Pressure Outlet Turbine shall > 0, please input again"
  PRINT
  GOTO qvap0
 END IF
 LOCATE CSRLIN - 1: PRINT "Pressure Outlet Turbine set to: "; poutlet1; "bar"
enthalpyOutletTurbine0:
 INPUT "Enthalpy Outlet Turbine (kJ/kg): "; houtlet1
 IF houtlet1 = 0 THEN
  houtlet1 = 2384
  LOCATE CSRLIN - 1: PRINT "Enthalpy Outlet Turbine set to: "; houtlet1; "kJ/kg"
 END IF
 IF poutlet1 < 0 THEN
  PRINT "Enthalpy Outlet Turbine shall > 0, please input again"
  PRINT
  GOTO enthalpyOutletTurbine0
 END IF
 LOCATE CSRLIN - 1: PRINT "Enthalpy Outlet Turbine set to: "; houtlet1; "kJ/kg"
