C ***** C COMPLETE COMBUSTION-BY-AIR PRODUCT C PROGRAM IPROPCHO INTEGER IERR,KPA,KMOL,J REAL TI,EXCESS,HH,PR,UU,VR,S0 CHARACTER*3 TUNIT CHARACTER*3 PVUNIT CHARACTER*12 RUNIT CHARACTER*8 HUNIT COMMON /UNIT/KPA,KMOL,MESS COMMON /CNST/GASCON WRITE(6,9711) 9711 FORMAT(1H ,'Do you need ERROR MESSAGES ? NO->0 : YES->1 = ') READ(5,*) IM CALL IPINIT(0,0,IM,0,0.0) WRITE(6,1210) 1210 FORMAT(1H ,' This program calculates properties '/ 1 1H ,' for complete combustion-by-air product '/ 2 1H ,' of CxHyOz at an arbitrary air factor.'/) 10 WRITE(6,2000) 2000 FORMAT(1H ,' KPA PRESSURE TEMPERATURE'/ 1 1H ,' 0 Pa K'/ 2 1H ,' 1 bar C'/ 3 1H ,' 2 bar K'/ 4 1H ,' 3 Pa C'/ 5 1H ,' others Pa K'/ 6 1H ,' -----------------------------') WRITE(6,*) ' Select one set of units ', 1 'for pressure and temperature : KPA = ' READ(5,*) KPA IF (KPA .EQ. 1 .OR. KPA .EQ. 3) THEN TUNIT='[C]' ELSE TUNIT='[K]' ENDIF WRITE(6,2010) 2010 FORMAT(1H ,' KMOL Amount of Substance'/ 7 1H ,' 0 kmol'/ 8 1H ,' 1 kg'/ 3 1H ,' others kmol'/ 9 1H ,' ------------------------------') WRITE(6,*) ' Select kmol or kg for amount of substance : KMOL = ' READ(5,*) KMOL IF (KMOL .EQ. 1) THEN RUNIT='[J/(kg*K)]' HUNIT='[J/kg]' ELSE RUNIT='[J/(kmol*K)]' HUNIT='[J/kmol]' ENDIF PVUNIT='[-]' 15 WRITE(6,1220) 1220 FORMAT(1H ,' CxHyOz : INPUT X, Y, and Z') WRITE(6,*) 'INPUT X ( FOR C ) = ' READ(5,*) XC WRITE(6,*) 'INPUT Y ( FOR H ) = ' READ(5,*) XH WRITE(6,*) 'INPUT Z ( FOR O ) = ' READ(5,*) X0 20 WRITE(6,*) 'INPUT AIR FACTOR ( >= 1) ' READ(5,*) AF 30 WRITE(6,1218) TUNIT 1218 FORMAT(1H ,' INPUT T',A3,'= ' ) READ(5,*) TI CALL CHOTBL(IERR,XC,XH,XO,AF,AMM,TI,HH,PR,UU,VR,S0) WRITE(6,1050) XC,XH,XO,AF,TI,TUNIT,AMM,HH,HUNIT,PR,PVUNIT, 1 UU,HUNIT,VR,PVUNIT,S0,RUNIT 1050 FORMAT(1H ,2X,'C-',F5.1,' H-',F5.1,' O-',F5.1, 1 ' AIR FACTOR =',E12.4/ 1 3X,'T =',F14.3,A3/ 1 3X,'M =',E14.6,'[kg/kmol]'/ 2 3X,'H =',E14.6,A8,6X,'PR =',E14.6,A3/ 3 3X,'U =',E14.6,A8,6X,'VR =',E14.6,A3/ 4 3X,'S0 =',E14.6,A12) WRITE(6,2003) 2003 FORMAT(1H / 1 ' 1 : CONTINUE ', 2 1H ,' 2 : CHANGE AIR FACTOR '/ 2 ' 3 : CHANGE NUMBER OF C, H, O ', 2 1H ,' 4 : SELECT SYSTEM OF UNITS '/ 3 ' 5 : STOP') WRITE(6,*) ' What do you wish to do next ? Input (1-5) = ' READ(5,*) INUM IF (INUM .EQ. 1) THEN GOTO 30 ELSEIF (INUM .EQ. 2) THEN GOTO 20 ELSEIF (INUM .EQ. 3) THEN GOTO 15 ELSEIF (INUM .EQ. 4) THEN GOTO 10 ENDIF STOP END