$DEBUG C*********************************************************************** C SUBROUTINE CO2 C C************************************************************************* C C -- THE CARBON EMISSION SUBROUTINE -- C C THIS MODULE CALCULATES GROSS CARBON EMISSIONS TO THE ATMOSPHERE IN A C GIVEN PERIOD FROM ENERGY PRODUCTION AND CONSUMPTION DATA C C INTEGER INPUTS: NF, NL C REAL INPUTS: COI, EFJL, ESIL, ESIL2M,ESRILM, SBURNL, SFEDIL, C SFLRL, SHALE C C INTERNAL INTEGERS: IOIL, IGAS, ICOAL, ISHL, ISYN, IFLR, IBIO C IIOIL, IISOIL, IISYNO, IICOAL, IISYNG, IIGAS C C REAL OUTPUTS: CO2IL, CO2IIL, CO2IM, CO2IIM, CO2LM, CO2M C C SUBROUTINES CALLED: NONE C C CODED BY C JAE EDMONDS LATEST REVISION: C 1 JANUARY 1982 1 JANUARY 1982 C 31 MARCH 1989-(CO2 BY DEMAND) C 22 AUGUST 89-TO CORRECT SYNFUEL C OVERFLOW IN EMISSIONS REPORT C************************************************************************** C C MAKE ALL REAL VARIABLES DOUBLE PRECISION C IMPLICIT REAL*8 (A-H,O-Z), INTEGER (I-N) C C COMMON BLOCKS C $INCLUDE: 'COMMON.FOR' C C -- LOCAL VARIABLES C REAL*8 A,B(9),C,D,CO2IL(8,9),CO2IIL(6,9),CO2DL(9),CO2DI(8),CO2D,SB, &SH INTEGER R(30) C C -- INITIALIZE HEADERS C R(1)='USA ' R(2)=' ' R(3)=' ' R(4)='W EU' R(5)='R + ' R(6)='CAN ' R(7)='OECD' R(8)=' PAC' R(9)='IFIC' R(10)='USSR' R(11)='/E. ' R(12)='EUR.' R(13)='CHIN' R(14)='A/ET' R(15)='.AL.' R(16)='MIDD' R(17)='LE E' R(18)='AST ' R(19)='AFRI' R(20)='CA ' R(21)=' ' R(22)='LATI' R(23)='N AM' R(24)='ER ' R(25)='S.&E' R(26)='. AS' R(27)='IA ' R(28)='ALL ' R(29)='REGI' R(30)='ONS ' C C C -- INITIALIZE FUEL DESIGNATORS, ZERO CO2 TOTALS, AND SET IUNIT VALUE C IUNIT=IOUNIT IOIL=1 IGAS=2 ICOAL=3 ICL=4 ICG=5 ISHL=6 IBIO=7 IFLR=8 C IIOIL=1 IISOIL=2 IISYNO=3 IICOAL=4 IISYNG=5 IIGAS=6 IIFLR=7 C C CO2D =0.D0 CO2M(M)=0.D0 A=0.D0 C=0.D0 D=0.D0 DO 10 I=1,NCO2 CO2IM(I,M)=0.D0 IF(I.LE.6)CO2IIM(I,M)=0.D0 10 CONTINUE C T=(M-1)*NJUMP C C FIND WEIGHTED AVERAGE VALUE FOR (1-SFEDIL)=A DO 50 L=1,NL B(L)=EDRIL(IOIL,L)-ESIL2M(IOIL,L,M)-SYNILM(IOIL,L,M) C=C+((1.D0-SFEDIL(IOIL,L))*B(L)) D=D+B(L) 50 CONTINUE A=C/D DO 100 L=1,NL C C -- INTERPOLATE FLARED GAS PARAMETER VALUES C SB=XNTERP(SBURNL(L,1),SBURNL(L,2),SBURNL(L,3),T) SH=XNTERP(SHALE(L,1),SHALE(L,2),SHALE(L,3),T) C C ------------------------------------- C -- COMPUTE REGIONAL EMISSIONS BY -- C -- END-USE SOURCE -- C ------------------------------------- C C CONVENTIONAL OIL CONSUMPTION CO2IL(IIOIL,L) =(1.D0-SFEDIL(IOIL,L))*COI(IOIL) & *(EDRIL(IOIL,L)-ESIL2M(IOIL,L,M) & -SYNILM(IOIL,L,M)) C C SHALE OIL PRODUCTION CO2IL(IISOIL,L) =ESIL2M(IOIL,L,M)*((1.D0-SFEDIL(IOIL,L)) $ *COI(IOIL)+SH*COI(ISHL)) C C COAL LIQUIFACTION CO2IL(IISYNO,L) =SYNILM(IOIL,L,M)*ESIL1M(ICOAL,L,M)/ $ESIL(ICOAL,L)*GCI(IOIL)*COI(ICOAL)/(1.D0-SFEDIL(IOIL,L)) C C DIRECT USE OF COAL CO2IL(IICOAL,L)= (1.D0-SFEDIL(ICOAL,L))*COI(ICOAL) & *(EDRIL(ICOAL,L)-ESIL2M(ICOAL,L,M)*SCIL(ICOAL,L)) C C COAL GASIFICATION CO2IL(IISYNG,L)=SYNILM(IGAS,L,M)*ESIL1M(ICOAL,L,M)/ $ESIL(ICOAL,L)*GCI(IGAS)*COI(ICOAL)/(1.D0-SFEDIL(IGAS,L)) C C CONVENTIONAL GAS CONSUMPTION CO2IL(IIGAS,L) =(1.D0-SFEDIL(IGAS,L))*COI(IGAS) & *(EDRIL(IGAS,L)-SYNILM(IGAS,L,M)) C C VENTING AND FLARING CO2IL(IIFLR,L) =SB*SFLRL(L)/(1.D0-SFLRL(L))*ESIL(IGAS,L) & *COI(IGAS) C C ------------------------------------------------ C -- COMPUTE CO2 EMISSIONS BY SUPPLY ACTIVITY -- C ------------------------------------------------ C CO2IIL(IIOIL,L) =ESIL1M(IOIL,L,M)*COI(IOIL)*A CO2IIL(IISOIL,L) =ESIL2M(IOIL,L,M)*(SH*COI(ISHL) & +(1.D0-SFEDIL(IOIL,L))*COI(IOIL)) CO2IIL(IISYNO,L) =CO2IL(IISYNO,L) CO2IIL(IICOAL,L) =ESIL1M(ICOAL,L,M)*SCIL(ICOAL,L)*COI(ICOAL) & *(1.D0-SFEDIL(ICOAL,L)) CO2IIL(IISYNG,L) =CO2IL(IISYNG,L) CO2IIL(IIGAS,L) =ESIL1M(IGAS,L,M)*COI(IGAS)*(1.D0-SFEDIL(IGAS,L)) & +CO2IL(IIFLR,L) C C ------------------------------------- C -- TOTAL REGIONAL CO2 PRODUCTION -- C ------------------------------------- C CO2LM(L,M)=0.D0 CO2DL(L) =0.D0 DO 70 I=1,NCO2 IF(I.LE.7)CO2DL(L) =CO2DL(L)+CO2IL(I,L) IF(I.LE.7)CO2IM(I,M) =CO2IM(I,M)+CO2IL(I,L) IF(I.LE.6)CO2LM(L,M) =CO2LM(L,M)+CO2IIL(I,L) IF(I.LE.6)CO2IIM(I,M) =CO2IIM(I,M)+CO2IIL(I,L) 70 CONTINUE CO2D =CO2D+CO2DL(L) CO2M(M) =CO2M(M)+CO2LM(L,M) 100 CONTINUE C C OUTPUT OPTION CONTROL FOR THE CO2 RESULTS C IF (NOPT(8) .EQ. 1) GO TO 110 C C ---------------------------- C -- PRINT SUPPLY RESULTS -- C ---------------------------- NYR=1950+NJUMP*M WRITE(JUNIT,1090) WRITE(JUNIT,1090) WRITE(JUNIT,1000) NYR WRITE(JUNIT,1010) WRITE(JUNIT,1020) WRITE(JUNIT,1030) WRITE(JUNIT,1040) WRITE(JUNIT,1060) WRITE(JUNIT,1070) DO 200 L=1,NL LA=1+3*(L-1) LB=LA+2 WRITE(JUNIT,1080) (R(LL),LL=LA,LB),(CO2IIL(I,L),I=1,6), & CO2LM(L,M) 200 CONTINUE WRITE(JUNIT,1070) WRITE(JUNIT,1090) L=NL+1 LA=1+3*(L-1) LB=LA+2 WRITE(JUNIT,1080) (R(LL),LL=LA,LB),(CO2IIM(I,M),I=1,6),CO2M(M) 1000 FORMAT(1X,27X,I4,1X,'CO2 EMISSIONS REPORT') 1010 FORMAT(1X,27X,'*************************') 1020 FORMAT('0',16X,'CO2 EMISSIONS BY REGION AND SOURCE OF CARBON SUPPL &Y') 1030 FORMAT(1X,25X,'UNITS: 10**6 TONNES OF CARBON') 1040 FORMAT('0',16X,'CONV',4X,'SHALE') 1060 FORMAT(1X,'REGION',10X,'OIL',6X,'OIL',5X,'SYNOIL',4X,'COAL',4X, &'SYNGAS',4X,'GAS',6X,'TOTAL') 1070 FORMAT(1X,12('-'),7(3X,6('-'))) 1080 FORMAT(1X,3A4,3X,F6.0,3X,F6.1,3(3X,F6.0),3X,F6.1,2(3X,F6.0)) 1090 FORMAT(1X) C C ---------------------------- C -- PRINT DEMAND RESULTS -- C ---------------------------- NYR=1950+NJUMP*M WRITE(JUNIT,1090) WRITE(JUNIT,1090) WRITE(JUNIT,1000) NYR WRITE(JUNIT,1010) WRITE(JUNIT,1025) WRITE(JUNIT,1030) WRITE(JUNIT,1040) WRITE(JUNIT,1065) WRITE(JUNIT,1075) DO 210 L=1,NL LA=1+3*(L-1) LB=LA+2 WRITE(JUNIT,1085) (R(LL),LL=LA,LB),(CO2IL(I,L),I=1,7), & CO2DL(L) 210 CONTINUE WRITE(JUNIT,1075) WRITE(JUNIT,1090) L=NL+1 LA=1+3*(L-1) LB=LA+2 WRITE(JUNIT,1085) (R(LL),LL=LA,LB),(CO2IM(I,M),I=1,7),CO2D WRITE(JUNIT,1090) WRITE(JUNIT,1090) 1025 FORMAT('0',16X,'CO2 EMISSIONS BY REGION AND POINT OF EMISSION') 1065 FORMAT(1X,'REGION',10X,'OIL',6X,'OIL',5X,'SYNOIL',4X,'COAL',4X, &'SYNGAS',4X,'GAS',5X,'FLRING',3X,'TOTAL') 1075 FORMAT(1X,12('-'),8(3X,6('-'))) 1085 FORMAT(1X,3A4,3X,F6.0,3X,F6.1,4(3X,F6.0),3X, &F6.1,3X,F6.0) C C 110 CONTINUE C RETURN END