TITLE WORLD3 - THE DYNAMICS OF GROWTH IN A FINITE WORLD 00000010 * EULER 00000020 NOTE LIMITS TO GROWTH BY DONELLA MEADOWS ET.AL. 00000030 NOTE THIS IS THE VERSION USED IN THE TECHNICAL REPORT 00000040 NOTE LAST REVISED DECEMBER 14,1972 00000050 NOTE 00000060 NOTE POPULATION SECTOR 00000070 NOTE 00000080 A POP.K=P1.K+P2.K+P3.K+P4.K 00000090 L P1.K=INTGRL(B.JK-D1.JK-MAT1.JK) 00000100 N P1=P1I 00000110 C P1I=65E7 00000120 R D1.KL=P1.K*M1.K 00000130 A M1.K=TABHL(M1T,LE.K,20,80,10) 00000140 T M1T=.0567,.0366,.0243,.0155,.0032,.0023,.001 00000150 R MAT1.KL=(P1.K)(1-M1.K)/15 00000160 L P2.K=INTGRL(MAT1.JK-D2.JK-MAT2.JK) 00000170 N P2=P2I 00000180 C P2I=70E7 00000190 R D2.KL=P2.K*M2.K 00000200 A M2.K=TABHL(M2T,LE.K,20,80,10) 00000210 T M2T=.0266,.0171,.0110,.0065,.0040,.0016,.0008 00000220 R MAT2.KL=(P2.K)(1-M2.K)/30 00000230 L P3.K=INTGRL(MAT2.JK-D3.JK-MAT3.JK) 00000240 N P3=P3I 00000250 C P3I=19E7 00000260 R D3.KL=P3.K*M3.K 00000270 A M3.K=TABHL(M3T,LE.K,20,80,10) 00000280 T M3T=.0562,.0373,.0252,.0171,.0118,.0083,.006 00000290 R MAT3.KL=(P3.K)(1-M3.K)/20 00000300 L P4.K=INTGRL(MAT3.JK-D4.JK) 00000310 N P4=P4I 00000320 C P4I=6E7 00000330 R D4.KL=P4.K*M4.K 00000340 A M4.K=TABHL(M4T,LE.K,20,80,10) 00000350 T M4T=.13,.11,.09,.07,.06,.05,.04 00000360 NOTE 00000370 NOTE DEATH RATE SUBSECTOR 00000380 NOTE 00000390 A D.K=(P1.K*M1.K)+(P2.K*M2.K)+(P3.K*M3.K)+(P4.K*M4.K) 00000400 S CDR.K=1000*D.K/POP.K 00000410 A LE.K=LEN*LMF.K*LMHS.K*LMP.K*LMC.K 00000420 C LEN=28 00000430 A LMF.K=TABHL(LMFT,FPC.K/SFPC,0,5,1) 00000440 T LMFT=0,1,1.2,1.3,1.35,1.4 00000450 A LMHS.K=CLIP(LMHS2.K,LMHS1.K,TIME.K,1940) 00000460 A LMHS1.K=TABHL(LMHS1T,EHSPC.K,0,100,20) 00000470 T LMHS1T=1,1.1,1.4,1.6,1.7,1.8 00000480 A LMHS2.K=TABHL(LMHS2T,EHSPC.K,0,100,20) 00000490 T LMHS2T=1,1.4,1.6,1.8,1.95,2.0 00000500 A EHSPC.K=NEW6.K 00000510 N NEW6=7.0810 00000520 L NEW6.K=INTGRL(NE6RAT.JK) 00000530 R NE6RAT.KL=(HSAPC.K-NEW6.K)/HSID 00000540 C HSID=20 00000550 A HSAPC.K=TABHL(HSAPCT,SOPC.K,0,2000,250) 00000560 T HSAPCT=0,20,50,95,140,175,200,220,230 00000570 A FPU.K=TABHL(FPUT,POP.K,0,16E9,2E9) 00000580 T FPUT=0,.2,.4,.58,.65,.72,.78,.80 00000590 A CMI.K=TABHL(CMIT,IOPC.K,0,1600,200) 00000600 T CMIT=.5,.05,-.1,-.08,-.02,.05,.1,.15,.2 00000610 A LMC.K=1-(CMI.K*FPU.K) 00000620 A LMP.K=TABHL(LMPT,PPOLX.K,0,100,10) 00000630 T LMPT=1.0,.99,.97,.95,.90,.85,.75,.65,.55,.40,.20 00000640 NOTE 00000650 NOTE BIRTH RATE SECTOR 00000660 NOTE 00000670 R B.KL=CLIP(D.K,(TF.K*P2.K*0.5/RLT),TIME.K,PET) 00000680 C RLT=30 00000690 C PET=4000 00000700 S CBR.K=1000*B.JK/POP.K 00000710 A TF.K=MIN(MTF.K,(MTF.K*(1-FCE.K)+DTF.K*FCE.K)) 00000720 A MTF.K=MTFN*FM.K 00000730 C MTFN=12 00000740 A FM.K=TABHL(FMT,LE.K,0,80,10) 00000750 T FMT=0,.2,.4,.6,.8,.9,1,1.05,1.1 00000760 A DTF.K=DCFS.K*CMPLE.K 00000770 A DCFS.K=CLIP(2.0,DCFSN*FRSN.K*SFSN.K,TIME.K,ZPGT) 00000780 C ZPGT=4000 00000790 C DCFSN=4 00000800 A FRSN.K=TABHL(FRSNT,FIE.K,-.2,.2,.1) 00000810 T FRSNT=.5,.6,.7,.85,1 00000820 A FIE.K=(IOPC.K-AIOPC.K)/AIOPC.K 00000830 A AIOPC.K=NEW5.K 00000840 N NEW5=40.876 00000850 L NEW5.K=INTGRL(NE5RAT.JK) 00000860 R NE5RAT.KL=(IOPC.K-NEW5.K)/IEAT 00000870 C IEAT=3 00000880 A SFSN.K=TABHL(SFSNT,DIOPC.K,0,800,200) 00000890 T SFSNT=1.25,1,.9,.8,.75 00000900 A DIOPC.K=O3.K 00000910 N O1=40.876 00000920 N O2=40.876 00000930 N O3=40.876 00000940 L O1.K=INTGRL(RO1.JK) 00000950 L O2.K=INTGRL(RO2.JK) 00000960 L O3.K=INTGRL(RO3.JK) 00000970 R RO1.KL=(IOPC.K-O1.K)/(SAD/3) 00000980 R RO2.KL=(O1.K-O2.K)/(SAD/3) 00000990 R RO3.KL=(O2.K-O3.K)/(SAD/3) 00001000 C SAD=20 00001010 A CMPLE.K=TABHL(CMPLET,PLE.K,0,80,10) 00001020 T CMPLET=3,2.1,1.6,1.4,1.3,1.2,1.1,1.05,1 00001030 A PLE.K=N3.K 00001040 N N1=28.351 00001050 L N1.K=INTGRL(RN1.JK) 00001060 R RN1.KL=(LE.K-N1.K)/(LPD/3) 00001070 N N2=28.351 00001080 L N2.K=INTGRL(RN2.JK) 00001090 R RN2.KL=(N1.K-N2.K)/(LPD/3) 00001100 N N3=28.351 00001110 L N3.K=INTGRL(RN3.JK) 00001120 R RN3.KL=(N2.K-N3.K)/(LPD/3) 00001130 C LPD=20 00001140 A FCE.K=CLIP(1.0,(TABHL(FCET,FCFPC.K,0,3,.5)),TIME.K,FCEST) 00001150 C FCEST=4000 00001160 T FCET=.75,.85,.9,.95,.98,.99,1 00001170 A FCFPC.K=N6.K 00001180 N N4=.098140 00001190 N N5=.098140 00001200 N N6=.098140 00001210 L N4.K=INTGRL(RN4.JK) 00001220 L N5.K=INTGRL(RN5.JK) 00001230 L N6.K=INTGRL(RN6.JK) 00001240 R RN4.KL=(LE.K-N4.K)/(LPD/3) 00001250 R RN5.KL=(N4.K-N5.K)/(LPD/3) 00001260 R RN6.KL=(N5.K-N6.K)/(LPD/3) 00001270 A FCAPC.K=FSAFC.K*SOPC.K 00001280 A FSAFC.K=TABHL(FSAFCT,NFC.K,0,10,2) 00001290 T FSAFCT=0,.005,.015,.025,.03,.035 00001300 A NFC.K=(MTF.K/DTF.K)-1 00001310 NOTE 00001320 NOTE CAPITAL SECTOR 00001330 NOTE 00001340 NOTE INDUSTRIAL SUBSECTOR 00001350 NOTE 00001360 A IOPC.K=IO.K/POP.K 00001370 A IO.K=(IC.K)(1-FCAOR.K)(CUF.K)/ICOR.K 00001380 A ICOR.K=CLIP(ICOR2,ICOR1,TIME.K,PYEAR) 00001390 C ICOR1=3 00001400 C ICOR2=3 00001410 L IC.K=INTGRL(ICIR.JK-ICDR.JK) 00001420 N IC=ICI 00001430 C ICI=2.1E11 00001440 R ICDR.KL=IC.K/ALIC.K 00001450 A ALIC.K=CLIP(ALIC2,ALIC1,TIME.K,PYEAR) 00001460 C ALIC1=14 00001470 C ALIC2=14 00001480 R ICIR.KL=(IO.K)(FIOAI.K) 00001490 A FIOAI.K=(1-FIOAA.K-FIOAS.K-FIOAC.K) 00001500 A FIOAC.K=CLIP(FIOACV.K,FIOACC.K,TIME.K,IET) 00001510 C IET=4000 00001520 A FIOACC.K=CLIP(FIOAC2,FIOAC1,TIME.K,PYEAR) 00001530 C FIOAC1=.43 00001540 C FIOAC2=.43 00001550 A FIOACV.K=TABHL(FIOACT,IOPC.K/IOPCD,0,2,.2) 00001560 T FIOACT=.3,.32,.34,.36,.38,.43,.73,.77,.81,.82,.83 00001570 C IOPCD=400 00001580 NOTE 00001590 NOTE SERVICE SUBSECTOR 00001600 NOTE 00001610 A ISOPC.K=CLIP(ISOPC2.K,ISOPC1.K,TIME.K,PYEAR) 00001620 A ISOPC1.K=TABHL(ISPCIT,IOPC.K,0,1600,200) 00001630 T ISPCIT=40,300,640,1000,1220,1450,1650,1800,2000 00001640 A ISOPC2.K=TABHL(ISPC2T,IOPC.K,0,1600,200) 00001650 T ISPC2T=40,300,640,1000,1220,1450,1650,1800,2000 00001660 A FIOAS.K=CLIP(FIOAS2.K,FIOAS1.K,TIME.K,PYEAR) 00001670 A FIOAS1.K=TABHL(FIAS1T,SOPC.K/ISOPC.K,0,2,.5) 00001680 T FIAS1T=.3,.2,.1,.05,0 00001690 A FIOAS2.K=TABHL(FIAS2T,SOPC.K/ISOPC.K,0,2,.5) 00001700 T FIAS2T=.3,.2,.1,.05,0 00001710 R SCIR.KL=(IC.K)(FIOAS.K) 00001720 L SC.K=INTGRL(SCIR.JK-SCDR.JK) 00001730 N SC=SCI 00001740 C SCI=1.44E11 00001750 R SCDR.KL=SC.K/ALSC.K 00001760 A ALSC.K=CLIP(ALSC2,ALSC1,TIME.K,PYEAR) 00001770 C ALSC1=20 00001780 C ALSC2=20 00001790 A SO.K=(SC.K*CUF.K)/(SCOR.K) 00001800 A SOPC.K=SO.K/POP.K 00001810 A SCOR.K=CLIP(SCOR2,SCOR1,TIME.K,PYEAR) 00001820 C SCOR1=1 00001830 C SCOR2=1 00001840 NOTE 00001850 NOTE JOB SECTOR 00001860 NOTE 00001870 A J.K=PJIS.K+PJAS.K+PJSS.K 00001880 A PJIS.K=(IC.K)(JPICU.K) 00001890 A JPICU.K=(TABHL(JPICUT,IOPC.K,50,800,50))*.001 00001900 T JPICUT=.37,.25,.2,.18,.16,.13,.12,.11,.1,.09,.08,.07,.07,.07,.07,.07 00001910 A PJSS.K=(SC.K)(JPSCU.K) 00001920 A JPSCU.K=(TABHL(JPSCUT,SOPC.K,50,800,50))*.001 00001930 T JPSCUT=101,.9,.7,.6,.5,.4,.35,.25,.2,.2,.2,.2,.15,.15,.15,.15 00001940 A PJAS.K=(JPH.K)(AL.K) 00001950 A JPH.K=TABHL(JPHT,AIPH.K,2,30,4) 00001960 T JPHT=2,.5,.4,.3,.27,.24,.2,.2 00001970 A LF.K=(P2.K+P3.K)*LFPF 00001980 C LFPF=.75 00001990 A LUF.K=J.K/LF.K 00002000 A LUFD.K=NEW2.K 00002010 N NEW2=.97478 00002020 L NEW2.K=INTGRL(NEWRAT.JK) 00002030 R NEWRAT.KL=(LUF.K-NEW2.K)/LUFDT 00002040 C LUFDT=2 00002050 A CUF.K=TABHL(CUFT,LUFD.K,1,11,2) 00002060 T CUFT=1,.9,.7,.3,.1,.1 00002070 NOTE 00002080 NOTE AGRICULTURAL SECTOR 00002090 NOTE 00002100 NOTE LOOP 1 - FOOD FROM INVESTMENT IN LAND DEVELOPMENT 00002110 NOTE 00002120 L AL.K=INTGRL(LDR.JK-LER.JK-LRUI.JK) 00002130 N AL=ALI 00002140 C ALI=.9E9 00002150 L PAL.K=INTGRL(-LDR.JK) 00002160 N PAL=PALI 00002170 C PALI=2.3E9 00002180 A LFC.K=AL.K/PALT 00002190 C PALT=3.2E9 00002200 A F.K=LY.K*AL.K*LFH*(1-PL) 00002210 C LFH=.7 00002220 C PL=.1 00002230 A FPC.K=F.K/POP.K 00002240 A IFPC.K=CLIP(IFPC2.K,IFPC1.K,TIME.K,PYEAR) 00002250 A IFPC1.K=TABHL(IFPC1T,IOPC.K,0,1600,200) 00002260 T IFPC1T=230,480,690,850,970,1070,1150,1210,1250 00002270 A IFPC2.K=TABHL(IFPC2T,IOPC.K,0,1600,200) 00002280 T IFPC2T=230,480,690,850,970,1070,1150,1210,1250 00002290 A TAI.K=IO.K*FIOAA.K 00002300 A FIOAA.K=CLIP(FIOAA2.K,FIOAA1.K,TIME.K,PYEAR) 00002310 A FIOAA1.K=TABHL(FIAA1T,FPC.K/IFPC.K,0,2.5,.5) 00002320 T FIAA1T=.4,.2,.1,.025,0,0 00002330 A FIOAA2.K=TABHL(FIAA2T,FPC.K/IFPC.K,0,2.5,.5) 00002340 T FIAA2T=.4,.2,.1,.025,.0,0 00002350 R LDR.KL=TAI.K*FIALD.K/DCPH.K 00002360 A DCPH.K=TABHL(DCPHT,PAL.K/PALT,0,1,.1) 00002370 T DCPHT=1E5,7400,5200,3500,2400,1500,750,300,150,75,50 00002380 NOTE 00002390 NOTE LOOP2 - FOOD FROM INVESTMENT IN AGRICULTURAL INPUTS 00002400 NOTE 00002410 A CAI.K=TAI.K*(1-FIALD.K) 00002420 A AI.K=NEW3.K 00002430 N NEW3=5477E6 00002440 L NEW3.K=INTGRL(NEWRAT.JK) 00002450 R NE3RAT.KL=(CAI.K-NEW3.K)/ALAI.K 00002460 A ALAI.K=CLIP(ALAI2,ALAI1,TIME.K,PYEAR) 00002470 C ALAI1=2 00002480 C ALAI2=2 00002490 A AIPH.K=AI.K*(1-FALM.K)/AL.K 00002500 A LYMC.K=TABHL(LYMCT,AIPH.K,0,1000,40) 00002510 T LYMCT=1,3,3.8,4.4,4.9,5.4,5.7,6.0,6.3,6.6,6.9,7.2, 00002520 X 7.4,7.6,7.8,8,8.2,8.4,8.6,8.8,9.0,9.2,9.4,9.6,9.8,10 00002530 A LY.K=LYF.K*LFERT.K*LYMC.K*LYMAP.K 00002540 A LYF.K=CLIP(LYF2,LYF1,TIME.K,PYEAR) 00002550 C LYF1=1 00002560 C LYF2=1 00002570 A LYMAP.K=CLIP(LYMAP2.K,LYMAP1.K,TIME.K,PYEAR) 00002580 A LYMAP1.K=TABHL(LYMP1T,IO.K/IO70,0,30,10) 00002590 T LYMP1T=1,1,.7,.4 00002600 A LYMAP2.K=TABHL(LYMP2T,IO.K/IO70,0,30,10) 00002610 T LYMP2T=1,1,.7,.4 00002620 C IO70=7.9E11 00002630 NOTE 00002640 NOTE LOOPS 1 & 2 - THE INVESTMENT ALLOCATION DECISON 00002650 NOTE 00002660 A FIALD.K=TABHL(FIALDT,(MPLD.K/MPAI.K),0,2,.25) 00002670 T FIALDT=0,.05,.15,.30,.50,.70,.85,.95,1 00002680 A MPLD.K=LY.K/(DCPH.K*SD) 00002690 C SD=.07 00002700 A MPAI.K=ALAI.K*LY.K*MLYMC.K/LYMC.K 00002710 A MLYMC.K=TABHL(MLYMCT,AIPH.K,0,600,40) 00002720 T MLYMCT=.075,.03,.015,.011,.009,.003,.007,.006,.005,.005,.005,.005, 00002730 X .005,.005,.005,.005 00002740 NOTE 00002750 A ALL.K=ALLN*LLMY.K 00002760 C ALLN=6000 00002770 A LLMY.K=CLIP(LLMY2.K,LLMY1.K,TIME.K,PYEAR) 00002780 A LLMY1.K=TABHL(LLMY1T,LY.K/ILF,0,9,1) 00002790 T LLMY1T=1.2,1,.63,.36,.16,.055,.04,.025,.015,.01 00002800 A LLMY2.K=TABHL(LLMY2T,LY.K/ILF,0,9,1) 00002810 T LLMY2T=1.2,1,.63,.36,.16,.055,.04,.025,.015,.01 00002820 R LER.KL=AL.K/ALL.K 00002830 A UILPC.K=TABHL(UILPCT,IOPC.K,0,1600,200) 00002840 T UILPCT=.005,.0081,015,.025,.04,.055,.07,.08,.09 00002850 A UILR.K=UILPC.K*POP.K 00002860 R LRUI.KL=MAX(0,(UILR.K,UIL.K)/UILDT) 00002870 C UILDT=10 00002880 L UIL.K=INTGRL(LRUI.JK) 00002890 N UIL=UILI 00002900 C UILI=8.2E6 00002910 NOTE 00002920 NOTE LOOP 4- LAND AND FERTILITY DEGRADATION 00002930 NOTE 00002940 L LFERT.K=INTGRL(LFR.JK-LFD.JK) 00002950 N LFERT=LFERTI 00002960 C LFERTI=600 00002970 A LFDR.K=TABHL(LFDRT,PPOLX.K,0,30,10) 00002980 T LFDRT=0,.1,.3,.5 00002990 R LFD.KL=LFERT.K*LFDR.K 00003000 NOTE 00003010 NOTE LOOP 5 - LAND FERTILITY REGENERATION 00003020 NOTE 00003030 R LFR.KL=(ILF-LFERT.K)/LFRT.K 00003040 C ILF=600 00003050 A LFRT.K=TABHL(LFRTT,FALM.K,0,.10,.02) 00003060 T LFRTT=20,13,8,4,2,2 00003070 NOTE 00003080 NOTE LOOP 6- DISCONTINUING LAND MAINTENANCE 00003090 NOTE 00003100 A FALM.K=TABHL(FALMT,PFR.K,0,4,1) 00003110 T FALMT=0,.04,.07,.09,1 00003120 A FR.K=FPC.K/SFPC 00003130 C SFPC=230 00003140 A PFR.K=NEW4.K 00003150 N NEW4=1.2290 00003160 L NEW4.K=INTGRL(NE4RAT.JK) 00003170 R NE4RAT.KL=(FR.K-NEW4.K)/FSPD 00003180 C FSPD=2 00003190 NOTE 00003200 NOTE NONRENEWABLE RESOURCE SECTOR 00003210 NOTE 00003220 L NR.K=INTGRL(-NRUR.JK) 00003230 N NR=NRI 00003240 C NRI=1E12 00003250 R NRUR.KL=(POP.K)(PCRUM.K)(NRUF.K) 00003260 A NRUF.K=CLIP(NRUF2,NRUF1,TIME.K,PYEAR) 00003270 C NRUF1=1 00003280 C NRUF2=1 00003290 A PCRUM.K=TABHL(PCRUMT,IOPC.K,0,1600,200) 00003300 T PCRUMT=0,.85,2.6,4.4,5.4,6.2,6.8,7,7 00003310 A NRFR.K=NR.K/NRI 00003320 A FCAOR.K=CLIP(FCAOR2.K,FCAOR1.K,TIME.K,PYEAR) 00003330 A FCAOR1.K=TABHL(FCAR1T,NRFR.K,0,1,.1) 00003340 T FCAR1T=1,.9,.7,.5,.2,.1,.05,.05,.05,.05,.05 00003350 A FCAOR2.K=TABHL(FCAR2T,NRFR.K,0,1,.1) 00003360 T FCAR2T=1,.9,.7,.5,.2,.1,.05,.05,.05,.05,.05 00003370 NOTE 00003380 NOTE PERSISTENT POLLUTION SECTOR 00003390 NOTE 00003400 R PPGR.KL=(PPGIO.K+PPGAO.K)*(PPGF.K) 00003410 A PPGF.K=CLIP(PPGF2,PPGF1,TIME.K,PYEAR) 00003420 C PPGF1=1 00003430 C PPGF2=1 00003440 A PPGIO.K=PCRUM.K*POP.K*FRPM*IMEF*IMTI 00003450 C FRPM=.02 00003460 C IMEF=.1 00003470 C IMTI=10 00003480 A PPGAO.K=AIPH.K*AL.K*FIPM*AMTI 00003490 C FIPM=.001 00003500 C AMTI=1 00003510 R PPAPR.KL=DP3.K/(PPTD/3) 00003520 N DP1=(11.489E6)(PPTD/3) 00003530 N DP2=(11.489E6)(PPTD/3) 00003540 N DP3=(11.489E6)(PPTD/3) 00003550 L DP1.K=INTGRL(PPGR.JK-RP1.JK) 00003560 L DP2.K=INTGRL(RP1.JK-RP2.JK) 00003570 L DP3.K=INTGRL(RP2.JK-RP3.JK) 00003580 R RP1.KL=DP1.K/(PPTD/3) 00003590 R RP2.KL=DP2.K/(PPTD/3) 00003600 R RP3.KL=DP3.K/(PPTD/3) 00003610 C PPTD=20 00003620 L PPOL.K=INTGRL(PPAPR.JK-PPASR.JK) 00003630 N PPOL=2.5E7 00003640 A PPOLX.K=PPOL.K/PPOL70 00003650 C PPOL70=1.36E8 00003660 A AHLM.K=TABHL(AHLMT,PPOLX.K,1,1001,250) 00003670 T AHLMT=1,11,21,31,41 00003680 A AHL.K=AHL70*AHLM.K 00003690 C AHL70=1.5 00003700 R PPASR.KL=PPOL.K/(AHL.K*1.4) 00003710 NOTE 00003720 NOTE SUPPLEMENTARY EQUATIONS 00003730 NOTE 00003740 S FCA.K=(.22)(F.K)/(.22*F.K+SO.K+IO.K) 00003750 S FCI.K=IO.K/(.22*F.K+SO.K+IO.K) 00003760 S FCS.K=SO.K/(.22*F.K+SO.K+IO.K) 00003770 NOTE 00003780 NOTE CONTROL CARDS FOR SIMULATION 00003790 NOTE 00003800 PARM DT=1 00003810 PARM START=1900 00003820 PARM STOP=1975 00003830 PARM PRTPER=1 00003840 PARM PLTPER=1 00003845 C PYEAR=1975 00003850 PRINT POP,IC,IO,IOPC,AL,NR 00003860 PLOT POP/IC/IO/IOPC/AL/NR 00003870