$NOFLOATCALLS C*********************************************************************** C SUBROUTINE POST C C*********************************************************************** C C -- THE REPORT VARIABLE ASSEMBLY MODULE -- C C THIS MODULE GENERATES TOTALS AND SUBTOTALS OF ENERGY CONSUMPTION C BY VARIOUS CATEGORIES OF GLOBAL CONSUMERS. C C VERSION: A.31.07.84 C C INTEGER INPUTS: NI, NJ, NKKL, NKKMAX, NL C C REAL INPUTS: EDIKL, EDJKL, EDRIKL, EFJKL, ESIL, EXIL C C REAL OUTPUTS: EDKL, EDIL, EDI, EDL, ED, EDRIL, EFKL, EFJL, EFJ, C EFL, ES, ESI, ESL, ESR1M, ESR2M, EXI, EXL, EX C C SUBROUTINES CALLED: NONE C C CODED BY: C JAE EDMONDS LATEST REVISION: C 1 JANUARY 1982 31 JULY 1984 C BY: JAE EDMONDS C *POPULATION NUMBERS ARE TAKEN C DIRECTLY FORM THE MODEL NOW C AND NOT CONVERTED FROM AN INDEX C 4 SEPT 88-TO INCLUDE COMMON C ********************************************************************** C C MAKE ALL REAL VARIABLES DOUBLE PRECISION C IMPLICIT REAL*8 (A-H,O-Z), INTEGER (I-N) C C COMMON BLOCKS $INCLUDE:'COMMON.FOR' C C LOCAL VARIABLES: C REAL*8 TPJLM(4,9,6),TPJKLM(4,3,9,6), & TEFLM(9,6),TEFJL(4,9),TEFJKL(4,4,9),TEFM(6),TPKLM(3,9,6) C C +--------------------------------+ C | INITIALIZE VARIABLE VALUES | C +--------------------------------+ C NLL=NL+1 C C +-------------------------------------+ C | COMPUTE ENERGY TRADE STATISTICS | C +-------------------------------------+ DO 20 L=1,NL EXLM(L,M)=0.D0 GNPLM(L,M)=GNP(L,M)*GNPBL(L)/(1.0D3) 20 CONTINUE DO 50 I=1,NI EXIM(I,M)=0.D0 DO 40 L=1,NL EXIL(I,L)=EDRIL(I,L)-ESRILM(I,L,M) IF (EXIL(I,L).LE.0.D0) EXIM(I,M)=EXIM(I,M)-EXIL(I,L) EXLM(L,M)=EXLM(L,M)+EXIL(I,L) 40 CONTINUE 50 CONTINUE C EXM(M)=0.D0 DO 109 I=1,NF EXM(M)=EXM(M)+EXIM(I,M) 109 CONTINUE C C +----------------------------------------------+ C | COMPUTE PRIMARY ENERGY DEMAND STATISTICS | C +----------------------------------------------+ DO 110 I=1,NF TEMP=0.D0 DO 80 L=1,NL IF (EXIL(I,L).GT.0.D0) GO TO 80 FACT=ESIL(I,L)/ESRILM(I,L,M) EDIL(I,L)=FACT*EDRIL(I,L) NKK=NKKL(L) DO 70 K=1,NKK EDIKL(I,K,L)=FACT*EDRIKL(I,K,L) 70 CONTINUE TEMP=TEMP-FACT*EXIL(I,L)/EXIM(I,M) 80 CONTINUE C DO 100 L=1,NL IF (EXIL(I,L).LE.0.D0) GO TO 100 EDIL(I,L)=ESIL(I,L)+TEMP*EXIL(I,L) FACT=EDIL(I,L)/EDRIL(I,L) NKK=NKKL(L) DO 90 K=1,NKK EDIKL(I,K,L)=FACT*EDRIKL(I,K,L) 90 CONTINUE 100 CONTINUE 110 CONTINUE C C +-------------------------------------------+ C | COMPUTE SYNFUEL PRODUCTION STATISTICS | C +-------------------------------------------+ C SYNM(M)=0.D0 DO 125 I=1,NF SYNIM(I,M)=0.D0 125 CONTINUE DO 130 L=1,NL SYNLM(L,M)=0.D0 DO 120 I=1,NI SYNILM(I,L,M)=ESRILM(I,L,M)-ESIL(I,L) 120 CONTINUE DO 119 I=1,NFF SYNLM(L,M)=SYNLM(L,M)+SYNILM(I,L,M) SYNIM(I,M)=SYNIM(I,M)+SYNILM(I,L,M) 119 CONTINUE SYNIM(NF,M)=SYNIM(NF,M)+SYNILM(NF,L,M) 130 CONTINUE DO 135 I=1,NFF SYNM(M)=SYNM(M)+SYNIM(I,M) 135 CONTINUE C C +-----------------------------------------------------------+ C | COMPUTE ENERGY DEMAND AND SUPPLY STATISTICS BY COUNTRY | C +-----------------------------------------------------------+ EDM(M)=0.D0 DO 250 L=1,NL EDLM(L,M)=0.D0 EDRLM(L,M)=0.D0 ESLM(L,M)=0.D0 ESRLM(L,M)=0.D0 NKK=NKKL(L) DO 190 K=1,NKK EDKL(K,L)=0.D0 EFKL(K,L)=0.D0 EDRKLM(K,L,M)=0.D0 DO 150 I=1,NI EDKL(K,L)=EDKL(K,L)+EDIKL(I,K,L) EDRKLM(K,L,M)=EDRKLM(K,L,M)+EDRIKL(I,K,L) 150 CONTINUE DO 170 J=1,NJ EFKL(K,L)=EFKL(K,L)+EFJKL(J,K,L) 170 CONTINUE EDLM(L,M)=EDLM(L,M)+EDKL(K,L) EDRLM(L,M)=EDRLM(L,M)+EDRKLM(K,L,M) 190 CONTINUE DO 220 I=1,NI EDRIL(I,L)=0.D0 NKK=NKKL(L) DO 210 K=1,NKK EDRIL(I,L)=EDRIL(I,L)+EDRIKL(I,K,L) 210 CONTINUE 220 CONTINUE EDM(M)=EDM(M)+EDLM(L,M) 250 CONTINUE C C +--------------------------------------------------------+ C | COMPUTE ENERGY DEMAND AND SUPPLY STATISTICS BY FUEL | C +--------------------------------------------------------+ ESM(M)=0.D0 ESRM(M)=0.D0 EDRM(M)=0.D0 EDRKM(M)=0.D0 DO 350 I=1,NI EDIM(I,M)=0.D0 EDRIM(I,M)=0.D0 EDRIKM(I,M)=0.D0 ESIM(I,M)=0.D0 ESRIM(I,M)=0.D0 DO 300 L=1,NL EDIM(I,M)=EDIM(I,M)+EDIL(I,L) EDRIM(I,M)=EDRIM(I,M)+EDRIL(I,L) ESIM(I,M)=ESIM(I,M)+ESIL(I,L) ESRIM(I,M)=ESRIM(I,M)+ESRILM(I,L,M) EDRIKM(I,M)=EDRIKM(I,M)+EDRIKL(I,1,L) ESLM(L,M)=ESLM(L,M)+ESIL(I,L) ESRLM(L,M)=ESRLM(L,M)+ESRILM(I,L,M) 300 CONTINUE ESM(M)=ESM(M)+ESIM(I,M) ESRM(M)=ESRM(M)+ESRIM(I,M) EDRM(M)=EDRM(M)+EDRIM(I,M) EDRKM(M)=EDRKM(M)+EDRIKM(I,M) 350 CONTINUE C C +---------------------------------------------+ C | COMPUTE ELECTRICITY SUPPLY STATISTICS | C +---------------------------------------------+ C ESUM(M)=0.D0 DO 360 I=1,NI ESUIM(I,M)=0.D0 360 CONTINUE DO 380 L=1,NL ESULM(L,M)=0.D0 DO 370 I=1,NI ESULM(L,M)=ESULM(L,M)+ESUILM(I,L,M) ESUIM(I,M)=ESUIM(I,M)+ESUILM(I,L,M) 370 CONTINUE 380 CONTINUE DO 390 I=1,NI ESUM(M)=ESUM(M)+ESUIM(I,M) 390 CONTINUE C C +------------------------------------------------+ C | ASSEMBLE SECONDARY ENERGY DEMAND VARIABLES | C +------------------------------------------------+ DO 804 J=1,NJ EFJM(J,M)=0.D0 DO 802 L=1,NL EFJL(J,L)=0.D0 NKK=NKKL(L) DO 801 K=2,NKK EFJL(J,L)=EFJL(J,L)+EFJKL(J,K,L) 801 CONTINUE EFJM(J,M)=EFJM(J,M)+EFJL(J,L) 802 CONTINUE 804 CONTINUE EFM(M)=0.D0 DO 803 L=1,NL EFLM(L,M)=0.D0 DO 501 J=1,NJ EFLM(L,M)=EFLM(L,M)+EFJL(J,L) 501 CONTINUE EFM(M)=EFM(M)+EFLM(L,M) 803 CONTINUE C C +-------------------------------------------------------------+ C | COMPUTE END OF PERIOD GNP (MILLIONS OF 1975 US DOLLARS) | C | AND ENERGY USE PER DOLLAR GNP AND PER CAPITA | C +-------------------------------------------------------------+ C ZLXM(NLL,M)=0.D0 EPGLM(NLL,M)=0.D0 EPCLM(NLL,M)=0.D0 GNPPCM(NLL,M)=0.D0 GNPLM(NLL,M)=0.D0 GNPFLM(NLL,M)=0.D0 DO 550 L=1,NL ZLXM(L,M)=ZLM(L,M)/(1.0D3) GNPFLM(L,M)=GNPBL(L)*YLM(L,M)/(1.0D3) EPGLM(L,M)=EDLM(L,M)/GNPFLM(L,M)*(1.0D3) EPCLM(L,M)=EDLM(L,M)/ZLXM(L,M)*(1.0D3) GNPPCM(L,M)=(GNPFLM(L,M)/ZLXM(L,M))*(1.0D3) ZLXM(NLL,M)=ZLXM(NLL,M)+ZLXM(L,M) GNPLM(NLL,M)=GNPLM(NLL,M)+GNPLM(L,M) GNPFLM(NLL,M)=GNPFLM(NLL,M)+GNPFLM(L,M) 550 CONTINUE EPGLM(NLL,M)=EDM(M)/GNPFLM(NLL,M)*(1.0D3) EPCLM(NLL,M)=EDM(M)/ZLXM(NLL,M)*(1.0D3) GNPPCM(NLL,M)=GNPFLM(NLL,M)/ZLXM(NLL,M)*(1.0D3) C C +----------------------------------------------+ C | COMPUTE SUMMARY ENERGY SUPPLY STATISTICS | C +----------------------------------------------+ C C -- AGGREGATE BY REGION C ESR1M(M)=0.D0 ESR2M(M)=0.D0 DO 351 L=1,NL ESR1M(M)=ESR1M(M)+ESRL1M(L,M) ESR2M(M)=ESR2M(M)+ESRL2M(L,M) ESL2M(L,M)=0.D0 DO 352 I=1,NF ESL2M(L,M)=ESL2M(L,M) + ESIL2M(I,L,M) 352 CONTINUE 351 CONTINUE C NII=NF+1 DO 353 L=1,NL ESL1M(L,M)=0.D0 DO 354 I=1,NF ESL1M(L,M)= ESL1M(L,M)+ESIL1M(I,L,M) 354 CONTINUE DO 355 I=NII,NI ESL1M(L,M)= ESL1M(L,M) + ESIL(I,L) 355 CONTINUE 353 CONTINUE C C -- AGGREGATE BY FUEL TYPE C DO 652 I=1,NF ESI2M(I,M)=0.D0 DO 651 L=1,NL ESI2M(I,M)=ESI2M(I,M) + ESIL2M(I,L,M) 651 CONTINUE 652 CONTINUE C DO 356 I=1,NF ESI1M(I,M)=0.D0 DO 357 L=1,NL ESI1M(I,M)= ESI1M(I,M)+ESIL1M(I,L,M) 357 CONTINUE 356 CONTINUE DO 358 I=NII,NI ESI1M(I,M)=0.D0 DO 359 L=1,NL ESI1M(I,M)= ESI1M(I,M) + ESIL(I,L) 359 CONTINUE 358 CONTINUE C C +------------------------------------------------------+ C | COMPUTE NON-ELECTRIC SOLAR/CONSERVATION STATISTICS | C +------------------------------------------------------+ C C -- IN PERIOD 1, THERE IS NO CONSERVATION BY DEFINITION C IF (M-1) 682,682,685 682 DO 683 L=1,NL CONLM(L,M)=0.D0 CEFLM(L,M)=EFLM(L,M) 683 CONTINUE CONM(M)=0.D0 CEFM(M)=EFM(M) GO TO 800 685 CONTINUE C C -- PRESERVE CURRENT PERIOD VARIABLE VALUES AND INSERT FIRST C PERIOD PRICE VALUES -- C DO 730 L=1,NL NKK=NKKL(L) NK=NKL(L) DO 711 K=1,NK TPKLM(K,L,M)=PKLM(K,L,M) PKLM(K,L,M)=PKLM(K,L,1) 711 CONTINUE TEFLM(L,M)=EFLM(L,M) DO 700 J=1,NJ TPJLM(J,L,M)=PJLM(J,L,M) PJLM(J,L,M)=PJLM(J,L,1) TEFJL(J,L)=EFJL(J,L) DO 690 K=1,NK TPJKLM(J,K,L,M)=PJKLM(J,K,L,M) PJKLM(J,K,L,M)=PJKLM(J,K,L,1) 690 CONTINUE DO 695 K=1,NKK TEFJKL(J,K,L)=EFJKL(J,K,L) 695 CONTINUE 700 CONTINUE 730 CONTINUE TEFM(M)=EFM(M) C C -- DETERMINE DEMAND AT 1975 PRICES, OTHER INPUT VARIABLES AT CURRENT C PERIOD VALUES. C NUB=1 CALL DDDD C C -- ASSEMBLE SECONDARY ENERGY DEMAND VARIABLES C DO 500 J=1,NJ DO 450 L=1,NL EFJL(J,L)=0.D0 NKK=NKKL(L) DO 400 K=2,NKK EFJL(J,L)=EFJL(J,L)+EFJKL(J,K,L) 400 CONTINUE 450 CONTINUE 500 CONTINUE EFM(M)=0.D0 DO 806 L=1,NL EFLM(L,M)=0.D0 DO 807 J=1,NJ EFLM(L,M)=EFLM(L,M)+EFJL(J,L) 807 CONTINUE EFM(M)=EFM(M)+EFLM(L,M) 806 CONTINUE C C -- CALCULATE CONSERVATION/NON-ELECTRIC SOLAR ENERGY AS A RESIDUAL C DO 737 L=1,NL CONLM(L,M)=EFLM(L,M)-TEFLM(L,M) CEFLM(L,M)=TEFLM(L,M)+CONLM(L,M) 737 CONTINUE CONM(M)=EFM(M)-TEFM(M) CEFM(M)=TEFM(M)+CONM(M) C C -- REASSIGN CURRENT PERIOD VALUES TO PRICE AND DEMAND VARIABLES C DO 780 L=1,NL NKK=NKKL(L) NK=NKL(L) EFLM(L,M)=TEFLM(L,M) DO 712 K=1,NK PKLM(K,L,M)=TPKLM(K,L,M) 712 CONTINUE DO 750 J=1,NJ PJLM(J,L,M)=TPJLM(J,L,M) EFJL(J,L)=TEFJL(J,L) DO 745 K=1,NK PJKLM(J,K,L,M)=TPJKLM(J,K,L,M) 745 CONTINUE DO 740 K=1,NKK EFJKL(J,K,L)=TEFJKL(J,K,L) 740 CONTINUE 750 CONTINUE 780 CONTINUE EFM(M)=TEFM(M) C 800 CONTINUE C RETURN END