10! ***FORRESTER MODEL, WORLD DYNAMICS*** 20 &:&"WORLD DYNAMICS MODEL" 30 &"AFTER THE FIRST RUN, TYPE 'RUNNH' FOR A SECOND, THIRD, ETC.":& 40 Z9$="KB:": INPUT"MODEL ";X$ 50 DIM G(100) 60 READ J8 70 MAT READ G$(J8) 80 MAT READ M(J8) 90 G$(0)=" " 100 OPEN Z9$ FOR OUTPUT AS FILE 1 110 READ S9 120 READ P,N,C,A,W ! INITIALIZE LEVELS 130 READ T0,T1,T2,T3,T4 ! TIME PARAMETERS (FROM,TO,STEP,SWITCH,PRINT 140 READ B7,D7,N7,F7,C7,X7,W7 ! SWITCH PARAMETERS 150 X8=X7 0 INPUT"BR,DR ";X,Y 170 B8=B7*X 180 D8=D7*Y 190 INPUT"NR,POL ";X,Y 200 N8=N7*X 210 W8=W7*Y 220 INPUT"FC,CI ";X,Y 230 F8=F7*X 240 C8=C7*Y 250 DIM T(22,10) 260 READ I9,J9 ! TABLE 270 FOR I=1 TO I9 280 FOR J=0 TO J9 290 READ T(I,J) 300 IF T(I,J)<0 THEN 320 310 NEXT J 320 NEXT I 330 DEF FNC(X,Y) 340 FNC=X 350 IF T=0 THEN 430 410 FNT=T,0) 420 GOTO 490 430 IF X1E-5 THEN 990 970 GOSUB 1300 980 GOSUB 1020 990 NEXT T 1000 GOSUB 1370 1010 GOTO 1660 1020 MAT G=ZER ! GRAPHIC OUTPUT 1030 G(0)=0 1040 FOR J=1 TO J8 1050 M=M(J) 1060 S=M/S9 1070 X=P(J) 1080 IF X>=0 THEN 1120 1090  1100 ,G$(J);" TURNED NEGATIVE" 1110 GOTO 1660 1120 IF X>M THEN 1150 1130 Y=FNR(X/S) 1140 G(Y)=J 1150 NEXT J 1160 T=T0+(P3-1)*T4 1170 IF T/20<>INT(T/20) THEN 1190 1180 ,T; 1190 ,TAB(8); 1200 GOSUB 1260 1210 FOR J=0 TO J9 1220 ,G$(G(J)); 1230 NEXT J 1240  1250 RETURN 1260 FOR J9=S9 TO 0 STEP -1 ! FIND END OF LINE 1270 IF G(J9)>0 THEN 1290 1280 NEXT J9 1290 RETURN 1300 P3=P3+1 ! SAVE RESTS 1310 P(1)=FNR(P/1E9) 1320 P(2)=FNR(W1) 1330 P(3)=FNR(C/1E9) 1340 P(4)=FNR(Q) 1350 P(5)=FNR(N/1E11) 1360 RETURN 1370 & FOR K=1 TO 5: RETURN 1380 DATA 5, P,W,C,Q,N,8,40,20,2,10 1390 DATA 60 1400 DATA 1.65E9,9E11,4E8,.2,2E8 1410 DATA 1900,2100,.5,1970,5 1420 DATA .04,.028,1,1,.05,.025,1 1430 DATA 22,10 1440 DATA 1.02,.9,.65,.35,.2,.1,.05,-1 1450 DATA .6,2.5,5,8,11.5,15.5,20,-1 1460 DATA .5,1,1.4,1.7,1.9,2.05,2.2,-1 1470 DATA 1.05,1,.9,.7,.6,.55,-1 14 DATA .9,1,1.2,1.5,1.9,3,-1 1490 DATA 2.4,1,.6,.4,.3,.2,-1 1500 DATA 0,1,1.6,1.9,2,-1 1510 DATA 1,.6,.3,.15,.1,-1 1520 DATA 0,1,1.8,2.4,2.7,-1 1530 DATA 0,.15,.5,.85,1,-1 1540 DATA 1.2,1,.85,.75,.7,.7,-1 1550 DATA .2,1,1.7,2.3,2.7,2.9,-1 1560 DATA .7,.8,1,1.5,2,-1 1570 DATA 0,1,1.8,2.4,2.9,3.3,3.6,3.8,3.9,3.95,4 1580 DATA 1.04,.85,.6,.3,.15,.05,.02,-1 1590 DATA 2,1.3,1,.75,.55,.45,.38,.3,.25,.22,.2 1600 DATA .05,1,3,5.4,7.4,8,-1 1610 DATA .1,1,1.8,2.4,2.8,3,-1 10 DATA 1.02,.9,.7,.4,.25,.15,.1,-1 1630 DATA 30,3,2,1.4,1,.7,.6,.5,.5,-1 1640 DATA .91,1.3,2,3.2,4.8,6.8,9.2,-1 1650 DATA 3,1.8,1,.8,.7,.6,.53,.5,.5,.5,.5 1660 ,CHR$(26): CLOSE 1 1670 END