C******************************************************************************* C SUBROUTINE IN C REVISED 8 SEPT 88 TO "INCLUDE" COMMON C******************************************************************************* C C IMPLICIT REAL*8 (A-H,O-Z), INTEGER(I-N) C REAL*8 AN,AM,BN,B1,B2,B3,BD1,BD2,SUM CHARACTER*20 RESNAM(5) CHARACTER*41 NAME(6) INTEGER IA,IB,IC,ID C C COMMON BLOCK C $INCLUDE:'COMMON.FOR' C C C **************************************** C *** %%% 0 %%% *** C *** CREATE INPUT ASSUMPTIONS SCREEN *** C *** *** C **************************************** C IA=0 AN=0.D0 C YESNO='Y' RESNAME(1)='CONVENTIONAL OIL ' RESNAME(2)='NATURAL GAS ' RESNAME(3)='COAL ' RESNAME(4)='SHALE OIL ' RESNAME(5)='NUCLEAR POWER ' C 10 CONTINUE C WRITE(IOUNIT,2000) 2000 FORMAT(1X,25X,29('*')) WRITE(IOUNIT,2001) 2001 FORMAT(1X,25X,3('*'),23X,3('*')) WRITE(IOUNIT,2002) 2002 FORMAT(1X,25X,3('*'),3X,'INPUT ASSUMPTIONS',3X,3('*')) WRITE(IOUNIT,2001) WRITE(IOUNIT,2000) WRITE(IOUNIT,2003) 2003 FORMAT(1X) WRITE(IOUNIT,2004) 2004 FORMAT(1X,15X,'THERE ARE TWELVE INPUT ASSUMPTION CATEGORIES OPEN') WRITE(IOUNIT,2005) 2005 FORMAT(1X,15X,'TO USER INSPECTION AND/OR MODIFICATION. SELECT ONE &') WRITE(IOUNIT,2006) 2006 FORMAT(1X,15X,'OF THE FOLLOWING:') WRITE(IOUNIT,2007) 2007 FORMAT(1X,25X,'1 POPULATION') WRITE(IOUNIT,2008) 2008 FORMAT(1X,25X,'2 LABOR PRODUCTIVITY') WRITE(IOUNIT,2009) 2009 FORMAT(1X,25X,'3 END-USE ENERGY EFFICIENCY') WRITE(IOUNIT,2010) 2010 FORMAT(1X,25X,'4 INCOME EFFECTS') WRITE(IOUNIT,2011) 2011 FORMAT(1X,25X,'5 PRICE EFFECTS') WRITE(IOUNIT,2012) 2012 FORMAT(1X,25X,'6 RESOURCE BASE') WRITE(IOUNIT,2013) 2013 FORMAT(1X,25X,'7 TECHNOLOGICAL CHANGE IN ENERGY PRODUCTION') WRITE(IOUNIT,2014) 2014 FORMAT(1X,25X,'8 ENVIRONMENTAL COSTS OF ENERGY PRODUCTION') WRITE(IOUNIT,2015) 2015 FORMAT(1X,25X,'9 MARKET PENETRATION SUPPLY TECHNOLOGY') WRITE(IOUNIT,2016) 2016 FORMAT(1X,24X,'10 SOLAR AND BIOMASS ENERGY COSTS') WRITE(IOUNIT,2017) 2017 FORMAT(1X,24X,'11 SYNFUEL COSTS') WRITE(IOUNIT,2018) 2018 FORMAT(1X,24X,'12 NUMBER OF FORECAST PERIODS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2019) 2019 FORMAT(1X,25X,'0 NONE OF THE ABOVE. RUN THE MODEL.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' ENTER YOUR CHOICE, THEN PRESS &RETURN =====>' READ(IOUNIT,'(BN,I2)',ERR=20) IA C IF(IA.EQ.0) GOTO 1300 IF(IA.EQ.1) GOTO 100 IF(IA.EQ.2) GOTO 200 IF(IA.EQ.3) GOTO 300 IF(IA.EQ.4) GOTO 400 IF(IA.EQ.5) GOTO 500 IF(IA.EQ.6) GOTO 600 IF(IA.EQ.7) GOTO 700 IF(IA.EQ.8) GOTO 800 IF(IA.EQ.9) GOTO 900 IF(IA.EQ.10) GOTO 1000 IF(IA.EQ.11) GOTO 1100 IF(IA.EQ.12) GOTO 1200 C GOTO 10 C +-------------------------+ C | KEYBOARD ERROR HANDLING | C +-------------------------+ 20 CONTINUE WRITE(IOUNIT,2020) 2020 FORMAT(1X,15X,'!!!!! ILLEGAL ENTRY !!!!! TRY AGAIN !!!!!',//1X) CALL TIME GOTO 10 RETURN C C ************************************************** C *** %%% 1 %%% *** C *** CREATE POPULATION ASSUMPTION SCREEN *** C *** *** C ************************************************** C 100 CONTINUE C DO 110 IA=1,13 110 WRITE(IOUNIT,2003) WRITE(IOUNIT,2100) 2100 FORMAT(1X,29X,'POPULATION ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2101) 2101 FORMAT(1X,10X,'POPULATION IS SPECIFIED IN MILLIONS OF PERSONS IN T &HE YEAR') WRITE(IOUNIT,2102) 2102 FORMAT(1X,10X,'2075 FOR TWO DIFFERENT REGIONS. YOU MAY EXAMINE AN &D/OR CHANGE') WRITE(IOUNIT,2103) 2103 FORMAT(1X,10X,'ASSUMPTIONS FOR EITHER REGION, ONE AT A TIME, IN AN &Y ORDER.') WRITE(IOUNIT,2104) 2104 FORMAT(1X,10X,'SELECT ONE OF THE FOLLOWING:') WRITE(IOUNIT,2003) WRITE(IOUNIT,2105) 2105 FORMAT(1X,20X,'1= NORTH (N.AMER+EUROPE+USSR+JAPAN+AUSTRALIA)') WRITE(IOUNIT,2106) 2106 FORMAT(1X,20X,'2= SOUTH (ASIA + AFRICA + L. AMERICA + MIDEAST)') WRITE(IOUNIT,2107) 2107 FORMAT(1X,10X,'OR') WRITE(IOUNIT,2108) 2108 FORMAT(1X,20X,'0= NEITHER. RETURN TO MAIN ASSUMPTIONS MENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' CHOOSE 1,2, OR 0, THEN PRESS RETURN &. =====>' READ(IOUNIT,'(BN,I1)',ERR=199) IA IF(IA.EQ.0) GOTO 10 IF((IA.LT.0).OR.(IA.GT.2)) WRITE(IOUNIT,2020) IF((IA.LT.0).OR.(IA.GT.2)) CALL TIME IF((IA.LT.0).OR.(IA.GT.2)) GOTO 100 C IF(IA.NE.1) GOTO 130 B1=1280.D0 B2=1568.D0 B3=1910.D0 C 130 IF(IA.NE.2) GOTO 140 B1=5632.D0 B2=6882.D0 B3=8397.D0 C 140 CONTINUE BD1=100.D0 BD2=10000.D0 C IF(IA.EQ.1) L1=1 IF(IA.EQ.1) L2=4 IF(IA.EQ.2) L1=5 IF(IA.EQ.2) L2=9 C SUM=0.D0 DO 141 L=L1,L2 SUM=SUM+ZLM(L,5) 141 CONTINUE BN=SUM/1000.D0 C 145 CONTINUE C DO 146 IB=1,11 146 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2100) WRITE(IOUNIT,2003) WRITE(IOUNIT,2110) 2110 FORMAT(1X,5X,'CONCEPT= REGIONAL POPULATION IN THE YEAR 2075') WRITE(IOUNIT,2111) 2111 FORMAT(1X,5X,'UNITS= MILLIONS (10**6)PERSONS IN THE YEAR 2075') IF(IA.EQ.1) WRITE(IOUNIT,2112) 2112 FORMAT(1X,5X,'REGION= NORTH(USA+CANADA+EUROPE+USSR+JAPAN+AUSTRALIA &+N.ZEALAND)') IF(IA.EQ.2) WRITE(IOUNIT,2113) 2113 FORMAT(1X,5X,'REGION= SOUTH(ASIA + AFRICA + LATIN AMERICA + MIDEAS &T)') WRITE(IOUNIT,2003) C ID=0 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 145 IF(AN.EQ.BN) GOTO 100 C DO 155 M=1,NM AM=M-1 AM=AM/4.D0 DO 154 L=L1,L2 ZLM(L,M)=ZLM(L,M)*(1.D0+((AN/BN)-1.D0)*AM) 154 CONTINUE 155 CONTINUE GOTO 100 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 199 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 100 C C ********************************************************** C *** %%% 2 %%% *** C *** CREATE LABOR PRODUCTIVITY ASSUMPTION SCREEN *** C *** *** C ********************************************************** C 200 CONTINUE C DO 210 IA=1,10 210 WRITE(IOUNIT,2003) WRITE(IOUNIT,2200) 2200 FORMAT(1X,25X,'LABOR PRODUCTIVITY ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2201) 2201 FORMAT(1X,5X,'LABOR PRODUCTIVITY -- CLOSELY RELATED TO ECONOMIC GR &OWTH AND GNP.') WRITE(IOUNIT,2203) 2203 FORMAT(1X,9X,'THE RATE OF GROWTH OF THE LABOR FORCE PLUS THE RATE &OF GROWTH OF') WRITE(IOUNIT,2204) 2204 FORMAT(1X,9X,'LABOR PRODUCTIVITY EQUALS THE RATE OF GROWTH OF GNP. & THE RATE') WRITE(IOUNIT,2205) 2205 FORMAT(1X,9X,'OF GROWTH OF THE LABOR FORCE IS DETERMINED WITHIN TH &E MODEL USING') WRITE(IOUNIT,2206) 2206 FORMAT(1X,9X,'POPULATION ASSUMPTIONS. LABOR PRODUCTIVITY IS SPECI &FIED AS A') WRITE(IOUNIT,2207) 2207 FORMAT(1X,9X,'CONSTANT RATE FOR TWO DIFFERENT REGIONS. YOU MAY EX &AMINE AND/OR') WRITE(IOUNIT,2208) 2208 FORMAT(1X,9X,'CHANGE ASSUMPTIONS FOR EITHER REGION, ONE AT A TIME, & IN ANY ORDER.') WRITE(IOUNIT,2209) 2209 FORMAT(1X,9X,'SELECT ONE OF THE FOLLOWING:') WRITE(IOUNIT,2003) WRITE(IOUNIT,2210) 2210 FORMAT(1X,20X,'1= NORTH (N.AMER+EUROPE+USSR+JAPAN+AUSTRALIA)') WRITE(IOUNIT,2211) 2211 FORMAT(1X,20X,'2= SOUTH (ASIA + AFRICA + L. AMERICA + MIDEAST)') WRITE(IOUNIT,2212) 2212 FORMAT(1X,10X,'OR') WRITE(IOUNIT,2213) 2213 FORMAT(1X,20X,'0= NEITHER. RETURN TO MAIN ASSUMPTIONS MENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' CHOOSE 1,2, OR 0, THEN PRESS RETURN. & =====>' READ(IOUNIT,'(BN,I1)',ERR=299) IA IF(IA.EQ.0) GOTO 10 IF((IA.LT.0).OR.(IA.GT.2)) WRITE(IOUNIT,2020) IF((IA.LT.0).OR.(IA.GT.2)) CALL TIME IF((IA.LT.0).OR.(IA.GT.2)) GOTO 200 C IF(IA.NE.1) GOTO 230 B1=-.005D0 B2= .017D0 B3= .040D0 C 230 IF(IA.NE.2) GOTO 240 B1=-.010D0 B2= .029D0 B3= .055D0 C 240 CONTINUE BD1=-.02D0 BD2= .10D0 C IF(IA.EQ.1) L1=1 IF(IA.EQ.1) L2=4 IF(IA.EQ.2) L1=5 IF(IA.EQ.2) L2=9 C IF(IA.EQ.1) BN=PROL(1) IF(IA.EQ.2) BN=PROL(5) C 245 CONTINUE DO 246 IB=1,7 246 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2200) WRITE(IOUNIT,2003) WRITE(IOUNIT,2220) 2220 FORMAT(1X,5X,'CONCEPT= LABOR PRODUCTIVITY IS CLOSELY RELATED TO EC &ONOMIC GROWTH AND') WRITE(IOUNIT,2222) 2222 FORMAT(1X,9X,'GNP. THE RATE OF GROWTH OF THE LABOR FORCE PLUS THE & RATE OF GROWTH') WRITE(IOUNIT,2224) 2224 FORMAT(1X,9X,'OF LABOR PRODUCTIVITY EQUALS THE RATE OF GROWTH OF G &NP. THE RATE') WRITE(IOUNIT,2205) WRITE(IOUNIT,2206) WRITE(IOUNIT,2226) 2226 FORMAT(1X,9X,'CONSTANT RATE.') WRITE(IOUNIT,2228) 2228 FORMAT(1X,5X,'UNITS= NONE (RATE PER YEAR)') IF(IA.EQ.1) WRITE(IOUNIT,2230) 2230 FORMAT(1X,5X,'REGION= NORTH(USA+CANADA+EUROPE+USSR+JAPAN+AUSTRALIA &+N.ZEALAND)') IF(IA.EQ.2) WRITE(IOUNIT,2232) 2232 FORMAT(1X,5X,'REGION= SOUTH(ASIA + AFRICA + LATIN AMERICA + MIDEAS &T)') C ID=3 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 245 IF(AN.EQ.BN) GOTO 200 C DO 255 L=L1,L2 PROL(L)=AN 255 CONTINUE GOTO 200 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 299 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 200 C C ************************************************** C *** %%% 3 %%% *** C *** CREATE END-USE EFFICIENCY SCREEN *** C *** *** C ************************************************** C 300 CONTINUE C B1=0.00D0 B2=0.01D0 B3=0.03D0 C BD1=-0.02D0 BD2= 0.10D0 C BN=TKL(2,1) ID=3 C 320 CONTINUE C DO 321 IA=1,7 321 WRITE(IOUNIT,2003) WRITE(IOUNIT,2300) 2300 FORMAT(1X,22X,'END-USE ENERGY EFFICIENCY ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2301) 2301 FORMAT(1X,5X,'CONCEPT= RATE AT WHICH ENERGY USE PER UNIT OUTPUT WO &ULD DECLINE') WRITE(IOUNIT,2302) 2302 FORMAT(1X,14X,'OVER TIME, AS A CONSEQUENCE OF TECHNOLOGICAL CHANGE &,') WRITE(IOUNIT,2303) 2303 FORMAT(1X,14X,'PROCESS IMPROVEMENTS AND CHANGES IN THE MIX OF GOOD &S') WRITE(IOUNIT,2304) 2304 FORMAT(1X,14X,'PRODUCED, IF OTHER THINGS SUCH AS POPULATION, GNP, &') WRITE(IOUNIT,2305) 2305 FORMAT(1X,14X,'AND PRICES WERE UNCHANGED.') WRITE(IOUNIT,2306) 2306 FORMAT(1X,5X,'UNITS= NONE (AVERAGE ANNUAL RATE)') WRITE(IOUNIT,2307) 2307 FORMAT(1X,5X,'REGION= GLOBAL') WRITE(IOUNIT,2003) C CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 320 IF(AN.EQ.BN) GOTO 10 C DO 335 L=1,NL DO 330 K=1,3 TKL(K,L)=AN 330 CONTINUE 335 CONTINUE C GOTO 10 C C ********************************************************** C *** %%% 4 %%% *** C *** CREATE INCOME EFFECTS ASSUMPTION SCREEN *** C *** *** C ********************************************************** C 400 CONTINUE C DO 410 IA=1,10 410 WRITE(IOUNIT,2003) WRITE(IOUNIT,2400) 2400 FORMAT(1X,27X,'INCOME EFFECTS ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2401) 2401 FORMAT(1X,5X,'INCOME ELASTICITY -- REFLECTS THE EFFECT OF INCOME O &N AGGREGATE') WRITE(IOUNIT,2403) 2403 FORMAT(1X,9X,'END-USE ENERGY CONSUMPTION. MEASURED AS THE PERCENT &AGE CHANGE') WRITE(IOUNIT,2404) 2404 FORMAT(1X,9X,'IN ENERGY USE FOR EACH PERCENTAGE CHANGE IN INCOME W &ITH OTHER') WRITE(IOUNIT,2405) 2405 FORMAT(1X,9X,'FACTORS SUCH AS POPULATION, TECHNOLOGY AND ENERGY PR &ICES FIXED.') WRITE(IOUNIT,2003) WRITE(IOUNIT,2407) 2407 FORMAT(1X,9X,'YOU MAY EXAMINE AND/OR CHANGE ASSUMPTIONS FOR ANY OF & THREE REGIONS,') WRITE(IOUNIT,2409) 2409 FORMAT(1X,9X,'ONE AT A TIME, IN ANY ORDER. SELECT ONE OF THE FOLL &OWING:') WRITE(IOUNIT,2003) WRITE(IOUNIT,2410) 2410 FORMAT(1X,20X,'1= OECD (N.AMER+W.EUROPE+JAPAN+AUSTRALIA+N.Z.)') WRITE(IOUNIT,2411) 2411 FORMAT(1X,20X,'2= USSR+E.EUROPE') WRITE(IOUNIT,2412) 2412 FORMAT(1X,20X,'3= SOUTH (ASIA+AFRICA+L.AMERICA+MIDEAST)') WRITE(IOUNIT,2413) 2413 FORMAT(1X,10X,'OR') WRITE(IOUNIT,2414) 2414 FORMAT(1X,20X,'0= NONE OF THE ABOVE. RETURN TO MAIN ASSUMPTIONS M &ENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' CHOOSE 1,2,3, OR 0, THEN PRESS RETU &RN. =====>' READ(IOUNIT,'(BN,I1)',ERR=499) IA IF(IA.EQ.0) GOTO 10 IF((IA.LT.0).OR.(IA.GT.3)) WRITE(IOUNIT,2020) IF((IA.LT.0).OR.(IA.GT.3)) CALL TIME IF((IA.LT.0).OR.(IA.GT.3)) GOTO 400 C IF(IA.NE.1) GOTO 430 B1=0.2D0 B2=1.0D0 B3=1.4D0 C 430 IF(IA.NE.2) GOTO 440 B1=0.2D0 B2=1.25D0 B3=1.8D0 C 440 IF(IA.NE.3) GOTO 450 B1=0.5D0 B2=1.4D0 B3=2.2D0 C 450 CONTINUE BD1=0.0D0 BD2=5.0D0 C IF(IA.EQ.1) BN=RYKK(1) IF(IA.EQ.2) BN=RYKL(1) IF(IA.EQ.3) BN=RYKL(2) C 460 CONTINUE DO 465 IB=1,6 465 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2400) WRITE(IOUNIT,2003) WRITE(IOUNIT,2420) 2420 FORMAT(1X,5X,'CONCEPT= INCOME ELASTICITY REFLECTS THE EFFECT OF IN &COME ON AGGREGATE') WRITE(IOUNIT,2422) 2422 FORMAT(1X,9X,'END-USE ENERGY CONSUMPTION.') WRITE(IOUNIT,2424) 2424 FORMAT(1X,5X,'MEASURE= PERCENTAGE CHANGE IN END-USE ENERGY CONSUMP &TION FOR EACH') WRITE(IOUNIT,2426) 2426 FORMAT(1X,9X,'PERCENTAGE CHANGE IN INCOME WITH OTHER FACTORS SUCH &AS POP-') WRITE(IOUNIT,2428) 2428 FORMAT(1X,9X,'ULATION, TECHNOLOGY AND ENERGY PRICES CONSTANT.') WRITE(IOUNIT,2430) 2430 FORMAT(1X,5X,'UNITS= NONE') IF(IA.EQ.1) WRITE(IOUNIT,2432) 2432 FORMAT(1X,5X,'REGION= OECD (USA+CANADA+EUROPE+JAPAN+AUSTRALIA+N.ZE &ALAND)') IF(IA.EQ.2) WRITE(IOUNIT,2433) 2433 FORMAT(1X,5X,'REGION= USSR+E.EUROPE') IF(IA.EQ.3) WRITE(IOUNIT,2434) 2434 FORMAT(1X,5X,'REGION= SOUTH (ASIA+AFRICA+L.AMERICA+MIDEAST)') WRITE(IOUNIT,2003) WRITE(IOUNIT,2436) 2436 FORMAT(1X,5X,'NOTES: 1. A VALUE OF 1.0 IMPLIES A CONSTANT ENERGY &TO GNP RATIO.') IF(IA.EQ.1) WRITE(IOUNIT,2438) 2438 FORMAT(1X,13X,'2. VALUE IS CONSTANT OVER ALL PERIODS.') IF(IA.EQ.2) WRITE(IOUNIT,2440) 2440 FORMAT(1X,13X,'2. VALUE IS REDUCED BY 20% BETWEEN 1975 AND 2050.') IF(IA.EQ.3) WRITE(IOUNIT,2442) 2442 FORMAT(1X,13X,'2. VALUE IS REDUCED BY 30% BETWEEN 1975 AND 2050.') C ID=3 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 460 IF(AN.EQ.BN) GOTO 400 C IF(IA.EQ.1) RYKK(1)=AN IF(IA.EQ.1) RYKK(2)=AN IF(IA.EQ.1) RYKK(3)=AN IF(IA.EQ.2) RYKL(1)=AN IF(IA.EQ.3) RYKL(2)=AN GOTO 400 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 499 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 400 C C ********************************* C *** %%% 5 %%% *** C *** PRICE EFFECTS SCREENS *** C *** *** C ********************************* C 500 CONTINUE C DO 502 IA=1,9 502 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2500) 2500 FORMAT(1X,28X,'PRICE EFFECT ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2502) 2502 FORMAT(1X,10X,'THERE ARE 4 PRICE EFFECT ASSUMPTIONS THAT CAN BE CH &ANGED.') WRITE(IOUNIT,2504) 2504 FORMAT(1X,10X,'CHOOSE ONE OF THE FOLLOWING:') WRITE(IOUNIT,2003) WRITE(IOUNIT,2505) 2505 FORMAT(1X,25X,'1= AGGREGATE PRICE ELASTICITY') WRITE(IOUNIT,2506) 2506 FORMAT(1X,31X,'FOR END-USE ENERGY,') WRITE(IOUNIT,2508) 2508 FORMAT(1X,25X,'2= THE RATE OF INTERFUEL SUB-') WRITE(IOUNIT,2510) 2510 FORMAT(1X,31X,'STITUTION IN END-USE,') WRITE(IOUNIT,2512) 2512 FORMAT(1X,25X,'3= THE RATE OF INTERFUEL SUB-') WRITE(IOUNIT,2514) 2514 FORMAT(1X,31X,'STITUTION FOR ELECTRIC') WRITE(IOUNIT,2516) 2516 FORMAT(1X,31X,'UTILITIES,') WRITE(IOUNIT,2518) 2518 FORMAT(1X,25X,'4= ENERGY-GNP FEEDBACK ELASTICITY.') WRITE(IOUNIT,2520) 2520 FORMAT(1X,10X,'OR') WRITE(IOUNIT,2525) 2525 FORMAT(1X,25X,'0= NONE OF THE ABOVE. RETURN TO MASTER MENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' TYPE YOUR CHOICE: 1,2,3,4, OR 0 == &=>' READ(IOUNIT,'(BN,I1)',ERR=599) IC C IF(IC.EQ.0) GOTO 10 IF(IC.EQ.1) GOTO 510 IF(IC.EQ.2) GOTO 520 IF(IC.EQ.3) GOTO 530 IF(IC.EQ.4) GOTO 540 WRITE(IOUNIT,2020) CALL TIME GOTO 500 C +-----------------------------------+ C | AGGREGATE PRICE ELASTICITY SCREEN | C +-----------------------------------+ 510 CONTINUE C B1=-0.05D0 B2=-0.70D0 B3=-1.30D0 C BD1=-5.D0 BD2= 0.D0 C BN=RPK 515 CONTINUE C ID=2 DO 517 IB=1,5 517 WRITE(IOUNIT,2003) WRITE(IOUNIT,2530) 2530 FORMAT(1X,26X,'1= AGGREGATE PRICE ELASTICITY') WRITE(IOUNIT,2003) WRITE(IOUNIT,2532) 2532 FORMAT(1X,10X,'CONCEPT= PERCENTAGE CHANGE IN THE DEMAND FOR SECOND &ARY (END-USE)') WRITE(IOUNIT,2534) 2534 FORMAT(1X,19X,'ENERGY FOR EACH PERCENTAGE CHANGE IN THE PRICE OF') WRITE(IOUNIT,2536) 2536 FORMAT(1X,19X,'SECONDARY (END-USE) ENERGY, WITH OTHER FACTORS SUCH &') WRITE(IOUNIT,2538) 2538 FORMAT(1X,19X,'AS POPULATION, TECHNOLOGY, AND INCOME, FIXED.') WRITE(IOUNIT,2550) 2550 FORMAT(1X,10X,'UNITS= NONE') WRITE(IOUNIT,2560) 2560 FORMAT(1X,10X,'REGI0NS= GLOBAL') WRITE(IOUNIT,2561) 2561 FORMAT(1X,10X,'SECTORS= ALL END-USE SECTORS') WRITE(IOUNIT,2003) WRITE(IOUNIT,2562) 2562 FORMAT(1X,10X,'NOTE: INPUT VALUES ARE ALWAYS NEGATIVE TO REFLECT &THE') WRITE(IOUNIT,2564) 2564 FORMAT(1X,17X,'REDUCTION IN ENERGY USE CAUSED BY PRICE INCREASES.' &) WRITE(IOUNIT,2566) 2566 FORMAT(1X,17X,'A VALUE OF ZERO (0.0) INDICATES NO PRICE EFFECTS.') C CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 515 IF(AN.EQ.BN) GOTO 500 C RPK=AN DO 519 K=1,3 RPKK(K)=AN 519 CONTINUE GOTO 500 C +--------------------------------+ C | END-USE INTERFUEL SUBSTITUTION | C +--------------------------------+ 520 CONTINUE C B1=-0.4D0 B2=-3.0D0 B3=-7.5D0 C BD1=-15.D0 BD2= 0.D0 BN =RPJ(1) C 525 CONTINUE C ID =2 DO 526 IB=1,5 526 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2542) 2542 FORMAT(1X,19X,'2= RATE OF END-USE INTERFUEL SUBSTITUTION') WRITE(IOUNIT,2003) WRITE(IOUNIT,2544) 2544 FORMAT(1X,5X,'CONCEPT= A MEASURE OF THE EASE OF SUBSTITUTION AMONG & END-USE FUELS') WRITE(IOUNIT,2546) 2546 FORMAT(1X,14X,'(LIQUIDS, GASES, SOLIDS, AND ELECTRICITY), OTHER TH &INGS') WRITE(IOUNIT,2548) 2548 FORMAT(1X,14X,'SUCH AS INCOME AND TECHNOLOGY FIXED.') WRITE(IOUNIT,2552) 2552 FORMAT(1X,5X,'THEORETICAL BOUNDS= INDEX IS NEGATIVE OR ZERO') WRITE(IOUNIT,2554) 2554 FORMAT(1X,14X,'0.0 ==> NO SUBSTITUTION--FIXED MARKET SHARES.' &) WRITE(IOUNIT,2556) 2556 FORMAT(1X,14X,'-INFINITY==> PERFECT SUBSTITUTION--LEAST COST OPTIO &N') WRITE(IOUNIT,2557) 2557 FORMAT(1X,27X,'GETS 100% OF MARKET.') WRITE(IOUNIT,2558) 2558 FORMAT(1X,5X,'UNITS= NONE') WRITE(IOUNIT,2559) 2559 FORMAT(1X,5X,'REGION= GLOBAL') WRITE(IOUNIT,2571) 2571 FORMAT(1X,5X,'SECTORS= ALL END-USE SECTORS') WRITE(IOUNIT,2572) 2572 FORMAT(1X,5X,'NOTE: INDEX IS NEGATIVE TO REFLECT THE LOSS OF MARK &ET SHARE CAUSED') WRITE(IOUNIT,2574) 2574 FORMAT(1X,12X,'BY AN INCREASE IN THE RELATIVE COST OF ANY FUEL.') C CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 525 IF(AN.EQ.BN) GOTO 500 C DO 529 J=1,NJ RPJ(J)=AN DO 528 K=1,3 RPJK(J,K)=AN 528 CONTINUE 529 CONTINUE GOTO 500 C C +--------------------------------+ C | UTILITY INTERFUEL SUBSTITUTION | C +--------------------------------+ 530 CONTINUE C B1= -0.4D0 B2= -3.0D0 B3=-12.0D0 C BD1=-15.D0 BD2= 0.D0 BN=RUI(1) C 535 CONTINUE C ID=2 DO 536 IB=1,5 536 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2580) 2580 FORMAT(1X,19X,'3= RATE OF UTILITY INTERFUEL SUBSTITUTION') WRITE(IOUNIT,2003) WRITE(IOUNIT,2582) 2582 FORMAT(1X,5X,'CONCEPT= A MEASURE OF THE EASE OF SUBSTITUTION AMONG & UTILITY FUELS') WRITE(IOUNIT,2584) 2584 FORMAT(1X,14X,'(LIQUIDS, GASES, SOLIDS, NUCLEAR AND SOLAR ELECTRIC &),') WRITE(IOUNIT,2586) 2586 FORMAT(1X,14X,'OTHER THINGS SUCH AS INCOME AND TECHNOLOGY FIXED.') WRITE(IOUNIT,2552) WRITE(IOUNIT,2554) WRITE(IOUNIT,2556) WRITE(IOUNIT,2557) WRITE(IOUNIT,2558) WRITE(IOUNIT,2559) WRITE(IOUNIT,2588) 2588 FORMAT(1X,5X,'SECTOR= ELECTRIC UTILITIES') WRITE(IOUNIT,2572) WRITE(IOUNIT,2574) C CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 535 IF(AN.EQ.BN) GOTO 500 C DO 538 I=1,5 RUI(I)=AN 538 CONTINUE GOTO 500 C +---------------------+ C | ENERGY-GNP FEEDBACK | C +---------------------+ 540 CONTINUE C NAME(4)='1.NORTH=OECD+USSR+E.EUROPE ' NAME(5)='2.MIDEAST ' NAME(6)='3.SOUTH(EX.MIDEAST)=ASIA+L.AMER.+AFRICA ' C BD1=-1.0D0 BD2= 1.0D0 C 541 CONTINUE IA=0 DO 542 IB=1,5 542 WRITE(IOUNIT,2003) C 543 CONTINUE IF(IA.EQ.0) GOTO 546 C IF(IA.NE.1) GOTO 544 B1=-0.01D0 B2=-0.15D0 B3=-0.30D0 BN=RYL(1) C 544 IF(IA.NE.2) GOTO 545 B1=-0.05D0 B2= 0.05D0 B3= 0.2D0 BN=RYL(6) C 545 IF(IA.NE.3) GOTO 546 B1=-0.05D0 B2=-0.20D0 B3=-0.40D0 BN=RYL(5) C 546 CONTINUE DO 548 IB=1,5 548 WRITE(IOUNIT,2003) WRITE(IOUNIT,2590) 2590 FORMAT(1X,23X,'4= ENERGY-GNP FEEDBACK ELASTICITY') WRITE(IOUNIT,2003) IB=IA+3 IF(IA.NE.0) WRITE(IOUNIT,2591) NAME(IB) 2591 FORMAT(1X,5X,'REGION= ',A41) WRITE(IOUNIT,2592) 2592 FORMAT(1X,5X,'CONCEPT= A MEASURE OF THE PERCENTAGE CHANGE IN THE G &NP CAUSED BY') WRITE(IOUNIT,2593) 2593 FORMAT(1X,14X,'EACH PERCENTAGE CHANGE IN THE AVERAGE COST OF ENERG &Y SERVICES.') WRITE(IOUNIT,2594) 2594 FORMAT(1X,14X,'OTHER THINGS SUCH AS POPULATION AND TECHNOLOGY FIXE &D.') IF(IA.NE.0) GOTO 590 WRITE(IOUNIT,2003) WRITE(IOUNIT,2575) 2575 FORMAT(1X,5X,'DISAGGREGATION: THIS PARAMETER IS SPECIFIED FOR THR &EE REGIONS. YOU') WRITE(IOUNIT,2576) 2576 FORMAT(1X,5X,'MAY SELECT ANY ONE OF THEM:') WRITE(IOUNIT,2003) DO 549 IC=4,6 WRITE(IOUNIT,2577) NAME(IC) 2577 FORMAT(1X,15X,A41) 549 CONTINUE WRITE(IOUNIT,2003) WRITE(IOUNIT,2578) 2578 FORMAT(1X,15X,'0. NONE OF THE ABOVE. RETURN TO MAIN PRICE ASSUMPT &IONS MENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' SELECT 1,2,3, OR 0, THEN PRESS RETURN. &===>' READ(IOUNIT,'(BN,I1)',ERR=598) IA C IF(IA.EQ.0) GOTO 500 IC=0 IF((IA.LT.0).OR.(IA.GT.3)) IC=1 IF(IC.EQ.1) WRITE(IOUNIT,2020) IF(IC.EQ.1) CALL TIME IF(IC.EQ.1) IA=0 IF(IC.EQ.1) GOTO 541 GOTO 543 C 590 CONTINUE C WRITE(IOUNIT,2003) WRITE(IOUNIT,2595) 2595 FORMAT(1X,5X,'NOTE: A NEGATIVE VALUE (THE NORM) INDICATES THAT IN &CREASED ENERGY') WRITE(IOUNIT,2596) 2596 FORMAT(1X,7X,'COSTS REDUCE ECONOMIC PRODUCTION. A POSITIVE VALUE &(MAJOR') WRITE(IOUNIT,2597) 2597 FORMAT(1X,7X,'ENERGY PRODUCERS ONLY) INDICATES THAT INCREASED ENER &GY COSTS') WRITE(IOUNIT,2598) 2598 FORMAT(1X,7X,'RAISE THE VALUE OF ENERGY PRODUCTION MORE THAN IT RE &DUCES') WRITE(IOUNIT,2599) 2599 FORMAT(1X,7X,'THE VALUE OF NON-ENERGY PRODUCTION.') C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 546 C IF(IA.NE.1) GOTO 593 DO 592 L=1,3 RYL(L)=AN 592 CONTINUE C 593 IF(IA.NE.2) GOTO 594 RYL(6)=AN C 594 IF(IA.NE.3) GOTO 596 DO 595 L=5,9 IF(L.EQ.6) GOTO 595 RYL(L)=AN 595 CONTINUE 596 CONTINUE GOTO 541 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 598 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 546 599 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 500 C C ***************************************************** C *** %%% 6 %%% *** C *** CREATE RESOURCE ASSUMPTIONS SCREENS *** C *** *** C ***************************************************** C 600 CONTINUE C 602 CONTINUE IA=1 CALL MU(IA) IF(IA.EQ.0) GOTO 10 C OIL IF(IA.NE.1) GOTO 605 B1=12660.D0 B2=19950.D0 B3=36741.D0 C GAS 605 IF(IA.NE.2) GOTO 606 B1= 4990.D0 B2=14000.D0 B3=66990.D0 C COAL 606 IF(IA.NE.3) GOTO 607 B1= 52500.D0 B2=271000.D0 B3=683000.D0 C SHALE 607 IF(IA.NE.4) GOTO 608 B1= 0.1D0 B2=2079000.D0 B3=4802000.D0 C NUCLEAR 608 IF(IA.NE.5) GOTO 609 B1= 0.D0 B2=14500.D0 B3=27000.D0 C 609 CONTINUE SUM=0.D0 DO 611 L=1,NL DO 610 IG=1,5 IF((IA.EQ.5).AND.(IG.GE.3)) GOTO 610 SUM=SUM+RIGISL(IG,IA,L) 610 CONTINUE 611 CONTINUE C BN=SUM C 615 CONTINUE IC=4 IF(IA.NE.5) IC=9 DO 616 IB=1,IC 616 WRITE(IOUNIT,2003) WRITE(IOUNIT,2600) RESNAM(IA) 2600 FORMAT(1X,10X,'RESOURCE BASE: ',A20) WRITE(IOUNIT,2003) IF(IA.NE.5) GOTO 620 WRITE(IOUNIT,2630) 2630 FORMAT(1X,10X,'NOTE: FOR NUCLEAR POWER TWO ASSUMPTIONS MUST BE SP &ECIFIED:') WRITE(IOUNIT,2632) 2632 FORMAT(1X,15X,'1. THE ELECTRIC POWER EQUIVALENT RESOURCE BASE OF') WRITE(IOUNIT,2633) 2633 FORMAT(1X,18X,'URANIUM AVAILABLE WITH CONVENTIONAL LIGHTWATER') WRITE(IOUNIT,2634) 2634 FORMAT(1X,18X,'REACTOR TECHNOLOGY') WRITE(IOUNIT,2636) 2636 FORMAT(1X,15X,'2. WHETHER OR NOT TO INTRODUCE BREEDER REACTORS.') C 620 CONTINUE C WRITE(IOUNIT,2602) 2602 FORMAT(1X,10X,'CONCEPT= TOTAL RECOVERABLE RESOURCES REMAINING, INC &LUDING') WRITE(IOUNIT,2604) 2604 FORMAT(1X,19X,'DISCOVERED AND UNDISCOVERED RESOURCES OVER ALL') WRITE(IOUNIT,2606) 2606 FORMAT(1X,19X,'COST GRADATIONS, UNPRODUCED AS OF 1975, BUT') WRITE(IOUNIT,2608) 2608 FORMAT(1X,19X,'PRODUCIBLE WITH KNOWN TECHNOLOGIES.') WRITE(IOUNIT,2610) 2610 FORMAT(1X,10X,'UNITS= EXAJOULES') WRITE(IOUNIT,2612) 2612 FORMAT(1X,10X,'REGION= GLOBAL') C BD1=0.D0 BD2=9999999.D0 ID=0 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 615 C IF(AN.EQ.BN) GOTO 650 C DO 635 L=1,NL DO 630 IG=1,5 IF((IA.EQ.5).AND.(IG.GE.3)) GOTO 630 RIGISL(IG,IA,L)=RIGISL(IG,IA,L)*(AN/BN) 630 CONTINUE 635 CONTINUE C 650 CONTINUE IF(IA.NE.5) GOTO 602 DO 660 IB=1,19 660 WRITE(IOUNIT,2003) WRITE(IOUNIT,2624) 2624 FORMAT(1X,27X,'NUCLEAR TECHNOLOGY OPTION:') WRITE(IOUNIT,2003) WRITE(IOUNIT,2626) 2626 FORMAT(1X,5X,'BREEDER REACTORS ARE A TECHNOLOGICAL OPTION IN THIS &MODEL.') WRITE(IOUNIT,2628) 2628 FORMAT(1X,5X,'THE DEFAULT OPTION IS TO ASSUME THIS TECHNOLOGY IS A &VAILABLE.') WRITE(IOUNIT,2629) 2629 FORMAT(1X,5X,'DO YOU WISH TO ASSUME THIS TECHNOLOGY IS AVAILABLE?' &) WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' TYPE EITHER "YES" OR "NO". THEN PRESS &RETURN ===>' READ(IOUNIT,'(BN,A1)') YESNO WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) IF((YESNO.EQ.'N').OR.(YESNO.EQ.'n')) GOTO 665 IF((YESNO.NE.' ').AND.(YESNO.NE.'Y').AND.(YESNO.NE.'y')) GOTO 690 AN=1000.D0 WRITE(IOUNIT,2638) 2638 FORMAT(1X,15X,'BREEDER REACTORS ARE A TECHNOLOGY IN THIS RUN.') GOTO 670 C 665 CONTINUE AN=0.D0 WRITE(IOUNIT,2639) 2639 FORMAT(1X,15X,'BREEDER REACTORS ARE NOT A TECHNOLOGY IN THIS RUN') C 670 CONTINUE CALL TIME DO 680 L=1,NL DO 675 IG=3,5 RIGISL(IG,IA,L)=AN 675 CONTINUE 680 CONTINUE GOTO 602 690 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 650 C C ******************************************************* C *** %%% 7 %%% *** C *** TECHNOLOGICAL CHANGE IN SUPPLY SCREENS *** C *** *** C ******************************************************* C 700 CONTINUE C IA=2 CALL MU(IA) IF(IA.EQ.0) GOTO 10 C B1=0.D0 B2=0.005D0 B3=0.01D0 IF((IA.EQ.3).OR.(IA.EQ.4)) B1=-0.005D0 IF(IA.EQ.3) B3=0.02D0 IF(IA.EQ.4) B3=0.025D0 C BD1=-0.02D0 BD2= 0.10D0 C BN=STISL(IA,1) C 710 CONTINUE C DO 716 IB=1,9 716 WRITE(IOUNIT,2003) WRITE(IOUNIT,2700) 2700 FORMAT(1X,5X,'RATE OF TECHNOLOGICAL CHANGE IN ENERGY PRODUCTION:') WRITE(IOUNIT,2701) RESNAM(IA) 2701 FORMAT(1X,5X,A20) WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) WRITE(IOUNIT,2702) 2702 FORMAT(1X,5X,'CONCEPT= RATE AT WHICH TECHNOLOGICAL CHANGE REDUCES &PRODUCTION') WRITE(IOUNIT,2704) 2704 FORMAT(1X,14X,'COSTS OVER THE FORECAST.') WRITE(IOUNIT,2706) 2706 FORMAT(1X,5X,'UNITS= RATE PER YEAR') WRITE(IOUNIT,2003) C ID=3 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 710 C IF(AN.EQ.BN) GOTO 700 C DO 735 L=1,NL STISL(IA,L)=STISL(IA,L)*(AN/BN) 735 CONTINUE GOTO 700 C ****************************************************** C *** %%% 8 %%% *** C *** ENVIRONMENTAL COSTS OF SUPPLY SCREENS *** C *** *** C ****************************************************** C 800 CONTINUE C IA=3 CALL MU(IA) IF(IA.EQ.0) GOTO 10 C B1=0.D0 B2=0.D0 B3=3.D0 C IF(IA.EQ.3) B2=1.6D0 IF(IA.EQ.4) B2=1.3D0 IF(IA.EQ.5) B2=10.0D0 C IF(IA.EQ.3) B3=8.0D0 IF(IA.EQ.4) B3=13.0D0 IF(IA.EQ.5) B3=100.0D0 C BD1=0.0D0 BD2=100.0D0 C BN=VISL(IA,1) C 830 CONTINUE C DO 840 III=1,6 840 WRITE(IOUNIT,2003) WRITE(IOUNIT,2800) 2800 FORMAT(1X,10X,'ENVIRONMENTAL COSTS OF ENERGY PRODUCTION:') WRITE(IOUNIT,2801) RESNAM(IA) 2801 FORMAT(1X,10X,A20) WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) WRITE(IOUNIT,2802) 2802 FORMAT(1X,10X,'CONCEPT= ENVIRONMENTAL COSTS OF ENERGY PRODUCTION I &N THE YEAR') WRITE(IOUNIT,2804) 2804 FORMAT(1X,19X,'2050. INCLUDES ONLY THOSE COSTS ASSOCIATED WITH EN &ERGY') WRITE(IOUNIT,2805) 2805 FORMAT(1X,19X,'PRODUCTION AND NOT ENERGY USE. INCLUDES ONLY COSTS &') WRITE(IOUNIT,2806) 2806 FORMAT(1X,19X,'IN EXCESS OF THOSE ENCOUNTERED IN 1975. COSTS INCU &RRED') WRITE(IOUNIT,2807) 2807 FORMAT(1X,19X,'AS A RESULT OF 1975 REGULATIONS ARE INCLUDED AS PAR &T') WRITE(IOUNIT,2808) 2808 FORMAT(1X,19X,'OF THE BASE COSTS OF PRODUCTION.') WRITE(IOUNIT,2809) 2809 FORMAT(1X,10X,'UNITS= 1975 US $ PER GIGAJOULE') WRITE(IOUNIT,2810) 2810 FORMAT(1X,10X,'REGION= GLOBAL') C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 830 IF(AN.EQ.BN) GOTO 800 C DO 835 L=1,NL IF(BN.EQ.0.D0) VISL(IA,L)=AN IF(BN.NE.0.D0) VISL(IA,L)=VISL(IA,L)*(AN/BN) 835 CONTINUE GOTO 800 C ***************************************************** C *** %%% 9 %%% *** C *** MARKET PENETRATION OF SUPPLY SCREENS *** C *** *** C ***************************************************** C 900 CONTINUE C IA=4 CALL MU(IA) IF(IA.EQ.0) GOTO 10 C B1=0.D0 B2=1.D0 B3=2.D0 C IF(IA.EQ.4) B2=2.D0 IF(IA.EQ.4) B3=5.D0 C BD1=0.D0 BD2=10.D0 C BN=RIL(IA,1) C 930 CONTINUE C DO 931 IB=1,5 931 WRITE(IOUNIT,2003) C WRITE(IOUNIT,2900) 2900 FORMAT(1X,10X,'MARKET PENETRATION OF ENERGY PRODUCTION:') WRITE(IOUNIT,2901) RESNAM(IA) 2901 FORMAT(1X,10X,A20) WRITE(IOUNIT,2003) WRITE(IOUNIT,2003) WRITE(IOUNIT,2902) 2902 FORMAT(1X,10X,'CONCEPT= PRESCRIBES THE MAXIMUM INCREASE IN ENERGY &SUPPLY FROM') WRITE(IOUNIT,2904) 2904 FORMAT(1X,19X,'ONE PERIOD TO THE NEXT. SUPPLY IS ASSUMED TO GROW &NO') WRITE(IOUNIT,2905) 2905 FORMAT(1X,19X,'FASTER THAN GNP WITHOUT INCREASING COSTS.') WRITE(IOUNIT,2906) 2906 FORMAT(1X,10X,'MEASURE= MAXIMUM PERCENTAGE INCREASE IN SUPPLY (OVE &R PREVIOUS PERIOD') WRITE(IOUNIT,2907) 2907 FORMAT(1X,19X,'PLUS ALLOWANCE FOR GNP GROWTH) FOR EACH PERCENTAGE &INCREASE') WRITE(IOUNIT,2908) 2908 FORMAT(1X,19X,'IN COSTS.') WRITE(IOUNIT,2909) 2909 FORMAT(1X,10X,'UNITS= NONE') WRITE(IOUNIT,2910) 2910 FORMAT(1X,10X,'REGION= GLOBAL') C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 930 IF(AN.EQ.BN) GOTO 900 C DO 935 L=1,NL RIL(IA,L)=RIL(IA,L)*(AN/BN) 935 CONTINUE GOTO 900 C C ***************************************************** C *** %%% 10 %%% *** C *** CREATE SOLAR/BIOMASS ASSUMPTION SCREEN *** C *** *** C ***************************************************** C 1000 CONTINUE C DO 1001 IA=1,14 1001 WRITE(IOUNIT,2003) C WRITE(IOUNIT,3000) 3000 FORMAT(1X,28X,'SOLAR/BIOMASS ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,3001) 3001 FORMAT(1X,10X,'THERE ARE TWO SOLAR ENERGY TECHNOLOGY CATEGORIES. &YOU MAY') WRITE(IOUNIT,3002) 3002 FORMAT(1X,10X,'EXAMINE AND/OR CHANGE EITHER, ONE AT A TIME, IN ANY & ORDER.') WRITE(IOUNIT,3004) 3004 FORMAT(1X,10X,'SELECT ONE OF THE FOLLOWING:') WRITE(IOUNIT,3005) 3005 FORMAT(1X,20X,'1= SOLAR ELECTRIC POWER') WRITE(IOUNIT,3006) 3006 FORMAT(1X,20X,'2= BIOMASS') WRITE(IOUNIT,3007) 3007 FORMAT(1X,10X,'OR') WRITE(IOUNIT,3008) 3008 FORMAT(1X,20X,'0= NEITHER. RETURN TO MAIN ASSUMPTIONS MENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' CHOOSE 1,2, OR 0, THEN PRESS RETURN &. =====>' READ(IOUNIT,'(BN,I1)',ERR=1099) IA IF(IA.EQ.0) GOTO 10 IF(IA.EQ.1) GOTO 1030 IF(IA.EQ.2) GOTO 1060 WRITE(IOUNIT,2020) CALL TIME GOTO 1000 C +------------------------+ C | SOLAR ELECTRIC POWER | C +------------------------+ 1030 CONTINUE C B1= 1.D0 B2= 15.D0 B3=100.D0 C BD1= 1.D0 BD2=200.D0 C BN=CSLT(1,2) C 1035 CONTINUE DO 1046 IB=1,15 1046 WRITE(IOUNIT,2003) C WRITE(IOUNIT,3020) 3020 FORMAT(1X,24X,'SOLAR ELECTRIC POWER TECHNOLOGIES') WRITE(IOUNIT,2003) WRITE(IOUNIT,3021) 3021 FORMAT(1X,5X,'CONCEPT= NUMEROUS SOLAR ELECTRIC TECHNOLOGIES ARE AG &GREGATED INTO A') WRITE(IOUNIT,3022) 3022 FORMAT(1X,14X,'SINGLE PARAMETER INCLUDING PHOTOVOLTAICS, SOLAR THE &RMAL ENERGY') WRITE(IOUNIT,3023) 3023 FORMAT(1X,14X,'CONVERSION, OCEAN THERMAL ENERGY CONVERSION, WIND, &TIDAL, AND') WRITE(IOUNIT,3024) 3024 FORMAT(1X,14X,'SUCH NON-SOLAR ENERGY SOURCES AS GEOTHERMAL, AND FU &SION POWER') WRITE(IOUNIT,3025) 3025 FORMAT(1X,5X,'VARIABLE= GLOBAL AVERAGE COST OF SOLAR ELECTRIC POWE &R IN THE YEAR 2050') WRITE(IOUNIT,3026) 3026 FORMAT(1X,5X,'UNITS= 1975 US $ PER GIGAJOULE') WRITE(IOUNIT,3027) 3027 FORMAT(1X,5X,'REGION= GLOBAL') WRITE(IOUNIT,2003) C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 1035 IF(AN.EQ.BN) GOTO 1000 C DO 1055 L=1,NL CSLT(L,2)=AN CSLT(L,3)=75.D0 1055 CONTINUE GOTO 1000 C +-------------------------+ C | BIOMASS ENERGY SCREEN | C +-------------------------+ 1060 CONTINUE C B1= 0.4D0 B2= 2.1D0 B3= 9.0D0 C BD1= 0.1D0 BD2=100.0D0 C BN=BIOPSM(2,1,2) C 1065 CONTINUE DO 1076 IB=1,7 1076 WRITE(IOUNIT,2003) C WRITE(IOUNIT,3060) 3060 FORMAT(1X,27X,'BIOMASS ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,3061) 3061 FORMAT(1X,5X,'CONCEPT= THERE ARE 2 SOURCES OF BIOMASS ENERGY IN TH &E MODEL, WASTE') WRITE(IOUNIT,3062) 3062 FORMAT(1X,14X,'AND ENERGY FARMS. THE USER CONTROLS THE MINIMUM CO &ST OF') WRITE(IOUNIT,3063) 3063 FORMAT(1X,14X,'ENERGY PRODUCED ON BIOMASS FARMS. THIS ASSUMPTION &IS THEN') WRITE(IOUNIT,3064) 3064 FORMAT(1X,14X,'USED AS AN INDEX OF THE COST OF BIOMASS ENERGY FROM & BOTH') WRITE(IOUNIT,3065) 3065 FORMAT(1X,14X,'SOURCES AT ALL GRADES.') WRITE(IOUNIT,3027) WRITE(IOUNIT,3026) WRITE(IOUNIT,2003) C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 1065 IF(AN.EQ.BN) GOTO 1000 C DO 1075 IP=1,NIP DO 1074 IS=1,2 DO 1073 IM=1,NIM BIOPSM(IP,IS,IM)=BIOPSM(IP,IS,IM)*(AN/BN) 1073 CONTINUE 1074 CONTINUE 1075 CONTINUE GOTO 1000 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 1099 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 1000 C C *********************************************** C *** %%% 11 %%% *** C *** CREATE SYNFUEL ASSUMPTION SCREEN *** C *** *** C *********************************************** C 1100 CONTINUE C DO 1101 IA=1,10 1101 WRITE(IOUNIT,2003) C WRITE(IOUNIT,3100) 3100 FORMAT(1X,30X,'SYNFUEL ASSUMPTIONS') WRITE(IOUNIT,2003) WRITE(IOUNIT,3101) 3101 FORMAT(1X,10X,'SOLID FUELS (COAL AND BIOMASS) CAN BE TRANSFORMED I &NTO LIQUIDS') WRITE(IOUNIT,3102) 3102 FORMAT(1X,10X,'AND GASES. THIS TRANSFORMATION IS GOVERNED BY 4 PA &RAMETERS.') WRITE(IOUNIT,3103) 3103 FORMAT(1X,10X,'YOU MAY EXAMINE AND/OR MODIFY ANY OR ALL OF THEM IN & ANY ORDER.') WRITE(IOUNIT,3104) 3104 FORMAT(1X,10X,'SELECT ONE OF THE FOLLOWING:') WRITE(IOUNIT,2003) WRITE(IOUNIT,3105) 3105 FORMAT(1X,20X,'1= NON-ENERGY COSTS OF SYNOIL') WRITE(IOUNIT,3106) 3106 FORMAT(1X,20X,'2= NON-ENERGY COSTS OF SYNGAS') WRITE(IOUNIT,3107) 3107 FORMAT(1X,20X,'3= PROCESS EFFICIENCY OF SYNOIL') WRITE(IOUNIT,3108) 3108 FORMAT(1X,20X,'4= PROCESS EFFICIENCY OF SYNGAS') WRITE(IOUNIT,3109) 3109 FORMAT(1X,10X,'OR') WRITE(IOUNIT,3110) 3110 FORMAT(1X,20X,'0= NONE OF THE ABOVE. RETURN TO MAIN ASSUMPTIONS M &ENU.') WRITE(IOUNIT,2003) WRITE(IOUNIT,'(A\)')' CHOOSE 1,2,3,4 OR 0, THEN PRESS RET &URN. =====>' READ(IOUNIT,'(BN,I1)',ERR=1199) IA IF(IA.EQ.0) GOTO 10 IF((IA.LT.0).OR.(IA.GT.4)) WRITE(IOUNIT,2020) IF((IA.LT.0).OR.(IA.GT.4)) CALL TIME IF((IA.LT.0).OR.(IA.GT.4)) GOTO 1100 IF((IA.EQ.1).OR.(IA.EQ.2)) GOTO 1130 IF((IA.EQ.3).OR.(IA.EQ.4)) GOTO 1160 WRITE(IOUNIT,2020) CALL TIME C +---------------------------+ C | NON-ENERGY COST SCREENS | C +---------------------------+ 1130 CONTINUE C B1= 3.5D0 B2= 4.5D0 B3=20.0D0 C IF(IA.EQ.1) GOTO 1135 B1=B1*.73D0 B2=B2*.73D0 B3=B3*.73D0 C 1135 CONTINUE C BD1= 1.D0 BD2=100.D0 C BN=HCILT(IA,1,2) C 1140 CONTINUE DO 1146 IB=1,10 1146 WRITE(IOUNIT,2003) C IF(IA.EQ.1) WRITE(IOUNIT,3120) 3120 FORMAT(1X,27X,'NON-ENERGY COSTS OF SYNOIL') IF(IA.EQ.2) WRITE(IOUNIT,3121) 3121 FORMAT(1X,27X,'NON-ENERGY COSTS OF SYNGAS') WRITE(IOUNIT,2003) WRITE(IOUNIT,3122) 3122 FORMAT(1X,5X,'CONCEPT= AVERAGE CAPITAL, LABOR AND MATERIALS COSTS &PER GIGAJOULE OF') WRITE(IOUNIT,3123) 3123 FORMAT(1X,14X,'OUTPUT. (ENERGY COSTS ARE CALCULATED IN THE MODEL &ITSELF.)') WRITE(IOUNIT,3126) 3126 FORMAT(1X,5X,'UNITS= 1975 US $ PER GIGAJOULE OF SYNFUEL PRODUCED') WRITE(IOUNIT,3127) 3127 FORMAT(1X,5X,'REGION= GLOBAL') WRITE(IOUNIT,2003) C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 1140 IF(AN.EQ.BN) GOTO 1100 C DO 1155 L=1,NL HCILT(IA,L,2)=HCILT(IA,L,2)*(AN/BN) 1155 CONTINUE GOTO 1100 C +------------------------------+ C | PROCESS EFFICIENCY SCREENS | C +------------------------------+ 1160 CONTINUE C B1=1.25D0 B2=2.00D0 B3=3.30D0 C BD1= 1.D0 BD2=10.D0 C IB=IA-2 BN=GCI(IB) C 1165 CONTINUE DO 1176 IB=1,10 1176 WRITE(IOUNIT,2003) C IB=IA-2 IF(IA.EQ.3) WRITE(IOUNIT,3160) IF(IA.EQ.4) WRITE(IOUNIT,3161) 3160 FORMAT(1X,26X,'PROCESS EFFICIENCY OF SYNOIL') 3161 FORMAT(1X,26X,'PROCESS EFFICIENCY OF SYNGAS') WRITE(IOUNIT,2003) WRITE(IOUNIT,3162) 3162 FORMAT(1X,5X,'CONCEPT= INPUT-OUTPUT COEFFICIENT: NUMBER OF JOULES & OF SOLIDS (COAL') WRITE(IOUNIT,3163) 3163 FORMAT(1X,14X,'AND BIOMASS) REQUIRED FOR EACH JOULE OF SYNFUEL PRO &DUCED') WRITE(IOUNIT,3164) 3164 FORMAT(1X,5X,'UNITS= NONE') WRITE(IOUNIT,3127) WRITE(IOUNIT,2003) C ID=2 CALL IO(AN,BN,B1,B2,B3,BD1,BD2,ID) IF(ID.EQ.1) GOTO 1165 GCI(IB)=AN GOTO 1100 C +---------------------------------+ C | READING ERROR IN KEYBOARD ENTRY | C +---------------------------------+ 1199 CONTINUE WRITE(IOUNIT,2020) CALL TIME GOTO 1100 C C ************************************************* C *** %%% 12 %%% *** C *** NUMBER OF FORECAST PERIODS *** C *** *** C ************************************************* 1200 CONTINUE C DO 120 I=1,7 120 WRITE(IOUNIT,2003) C WRITE(IOUNIT,3200) 3200 FORMAT(1X,23X,'*** NUMBER OF FORECAST PERIODS ***',/1X) WRITE(IOUNIT,3201) 3201 FORMAT(1X,10X,'THE IEA/ORAU LONG-TERM GLOBAL ENERGY-ECONOMIC MODEL & IS') WRITE(IOUNIT,3202) 3202 FORMAT(1X,10X,'DESIGNED TO PRODUCE FORECAST SCENARIOS FOR UP TO SI &X') WRITE(IOUNIT,3203) 3203 FORMAT(1X,10X,'FORECAST PERIODS:') WRITE(IOUNIT,2003) WRITE(IOUNIT,3204) 3204 FORMAT(1X,33X,'1= 1975') WRITE(IOUNIT,3206) 3206 FORMAT(1X,33X,'2= 2000') WRITE(IOUNIT,3208) 3208 FORMAT(1X,33X,'3= 2025') WRITE(IOUNIT,3210) 3210 FORMAT(1X,33X,'4= 2050') WRITE(IOUNIT,3212) 3212 FORMAT(1X,33X,'5= 2075') WRITE(IOUNIT,3214) 3214 FORMAT(1X,33X,'6= 2100') WRITE(IOUNIT,2003) WRITE(IOUNIT,3216) 3216 FORMAT(1X,10X,'YOU MAY CHOOSE A FORECAST TERMINAL DATE FOR THIS RU &N.') IF(NM.EQ.1) NMYEAR=1975 IF(NM.EQ.2) NMYEAR=2000 IF(NM.EQ.3) NMYEAR=2025 IF(NM.EQ.4) NMYEAR=2050 IF(NM.EQ.5) NMYEAR=2075 IF(NM.EQ.6) NMYEAR=2100 WRITE(IOUNIT,3218) 3218 FORMAT(1X,10X,'THE DEFAULT TERMINAL YEAR IS:') WRITE(IOUNIT,3220) NM, NMYEAR 3220 FORMAT(1X,33X,I1,'= ',I4,'.') WRITE(IOUNIT,3222) 3222 FORMAT(1X,10X,'DO YOU WISH TO ACCEPT THE DEFAULT ASSUMPTION? TYPE &') WRITE(IOUNIT,'(A\)')' EITHER "YES" OR "NO", THEN PRESS R &ETURN. ===>' READ(IOUNIT,'(BN,A1)',ERR=1299) YESNO IF((YESNO.EQ.'Y').OR.(YESNO.EQ.'y').OR.(YESNO.EQ.' ')) NMTEMP=NM IF((YESNO.EQ.'Y').OR.(YESNO.EQ.'y').OR.(YESNO.EQ.' ')) GOTO 1220 IF((YESNO.NE.'N').AND.(YESNO.NE.'n')) GOTO 1299 C WRITE(IOUNIT,2003) WRITE(IOUNIT,3225) 3225 FORMAT(1X,10X,'TYPE DESIRED TERMINAL PERIOD, 1,2,3,4,5 OR 6, THEN' &) WRITE(IOUNIT,'(A\)')' PRESS RETURN. ===>' READ(IOUNIT,'(BN,I1)',ERR=1299) NMTEMP IF((NMTEMP.LT.1).OR.(NMTEMP.GT.6)) GOTO 1299 C WRITE(IOUNIT,2003) IF(NMTEMP.EQ.1) NMYEAR=1975 IF(NMTEMP.EQ.2) NMYEAR=2000 IF(NMTEMP.EQ.3) NMYEAR=2025 IF(NMTEMP.EQ.4) NMYEAR=2050 IF(NMTEMP.EQ.5) NMYEAR=2075 IF(NMTEMP.EQ.6) NMYEAR=2100 C 1220 CONTINUE WRITE(IOUNIT,2003) WRITE(IOUNIT,3270) NMTEMP,NMYEAR 3270 FORMAT(1X,10X,'THIS SCENARIO WILL RUN ',I1,' PERIODS TO A TERMINAL & DATE ',I4,'.') C WRITE(IOUNIT,3275) 3275 FORMAT(1X,10X,'IS THIS ASSUMPTION CORRECT? TYPE EITHER "YES" OR " &NO",') WRITE(IOUNIT,'(A\)')' THEN PRESS RETURN. ===>' READ(IOUNIT,'(BN,A1)',ERR=1299) YESNO IF((YESNO.EQ.'Y').OR.(YESNO.EQ.'y').OR.(YESNO.EQ.' ')) NM=NMTEMP IF((YESNO.EQ.'Y').OR.(YESNO.EQ.'y').OR.(YESNO.EQ.' ')) GOTO 10 IF((YESNO.EQ.'N').OR.(YESNO.EQ.'n')) GOTO 1200 C +-------------------------------+ C | KEYBOARD INPUT ERROR HANDLING | C +-------------------------------+ 1299 WRITE(IOUNIT,2020) CALL TIME GOTO 1200 C C ************************************************* C *** %%% 13 %%% *** C *** INITIAL PRICE OPTIMIZATION MODULE *** C *** *** C ************************************************* 1300 CONTINUE RETURN C PIM(1,2)=DEXP(0.0D0 +0.0D0*RPJ(1)+0.0D0*RYKL(2)+0.0D0*RPK+ & 0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(1,3)=DEXP(0.0D0 +0.0D0*RPJ(1)+0.0D0*RYKL(2)+0.0D0*RPK+ & 0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(1,4)=DEXP(0.0D0 +0.0D0*RPJ(1)+0.0D0*RYKL(2)+0.0D0*RPK+ & 0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(1,5)=DEXP(0.0D0 +0.0D0*RPJ(1)+0.0D0*RYKL(2)+0.0D0*RPK+ & 0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) C PIM(2,2)=DEXP(0.0D0 +0.0D0*RYKK(1)+0.0D0*RYKL(2)+0.0D0*RUI(1)+ & 0.0D0*RPK+0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(2,3)=DEXP(0.0D0 +0.0D0*RYKK(1)+0.0D0*RYKL(2)+0.0D0*RUI(1)+ & 0.0D0*RPK+0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(2,4)=DEXP(0.0D0 +0.0D0*RYKK(1)+0.0D0*RYKL(2)+0.0D0*RUI(1)+ & 0.0D0*RPK+0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) PIM(2,5)=DEXP(0.0D0 +0.0D0*RYKK(1)+0.0D0*RYKL(2)+0.0D0*RUI(1)+ & 0.0D0*RPK+0.0D0*TKL(2,1)+0.0D0*PROL(1)+0.0D0*PROL(2)) C PIM(3,2)=DEXP(0.0D0 +0.0D0*BIOPSM(2,1,2)+0.0D0*RPJ(1)+0.0D0* & RYKL(2)+0.0D0*TKL(2,1)+0.0D0*STISL(3,1)+0.0D0*VISL(3,1)) PIM(3,3)=DEXP(0.0D0 +0.0D0*BIOPSM(2,1,2)+0.0D0*RPJ(1)+0.0D0* & RYKL(2)+0.0D0*TKL(2,1)+0.0D0*STISL(3,1)+0.0D0*VISL(3,1)) PIM(3,4)=DEXP(0.0D0 +0.0D0*BIOPSM(2,1,2)+0.0D0*RPJ(1)+0.0D0* & RYKL(2)+0.0D0*TKL(2,1)+0.0D0*STISL(3,1)+0.0D0*VISL(3,1)) PIM(3,5)=DEXP(0.0D0 +0.0D0*BIOPSM(2,1,2)+0.0D0*RPJ(1)+0.0D0* & RYKL(2)+0.0D0*TKL(2,1)+0.0D0*STISL(3,1)+0.0D0*VISL(3,1)) RETURN END