// stworld.java // regional economy driven by world growth minimodel // adapted from a program in basic by H.T. Odum & E. Odum, 1994 import java.applet.Applet; import java.awt.*; public class stworld extends Applet { double i,j,s,q,w,f,u,k1,k2,k3,k4,k5,k6,k7,k8,l,l1,l2,l3,l4,l5,l6,s0,q0,f0,dt; double t0,u0,w0,t,ti,si,qi,fi,wi,ui,d1,d2,d3,d4,d5; int y; Label pr1,pr2,pr3; TextField in1,in2,in3; Button drawbutton; public void init() { pr1 = new Label("L2 Rate of use of world resources (1 to 10): "); in1 = new TextField("2",3); add(pr1);add(in1); pr2 = new Label("I Amount of world´s sunlight: "); in2 = new TextField("120",4); add(pr2);add(in2); pr3 = new Label("F New rich fuel source in the year: "); in3 = new TextField("4",3); add(pr3);add(in3); drawbutton = new Button("Draw"); add(drawbutton); } public boolean action (Event e, Object o) { l2 = 0.0000266*(double)Integer.parseInt(in1.getText()); i = (double)Integer.parseInt(in2.getText()); y = Integer.parseInt(in3.getText()); repaint(); return true; } public void paint (Graphics g) { j=2;s=60000;si=60000;q=1;qi=1;w=10;wi=10;f=0;fi=0;u=0.1;ui=0.1; k1=1e-09;k2=5e-07;k3=0.04;k4=2e-09; k5=1.8e-08;k6=0.000018;k7=0.0018; k8=1e-05;l=0.1;l1=0.00016; l3=0.17;l4=0.01;l5=0.006;l6=0.04666; s0=0.001;q0=0.3;f0=0.08;dt=1;t0=0.45; u0=3;w0=3;t=0;ti=0; g.drawRect(0,90,320,180); g.drawLine(0,170,320,170); while ((t*t0)<320) { if (t==300) f=1000; if (y==0) f=f; else if (t==(y-1600)) f=1000; d1=k1*s*f*q+k2*s*q-k3*q+k8*s; d2=i-k5*f*s*q-k6*s*q-k7*s; d3=-k4*s*f*q; d4=j-l1*q*u*w-l3*w-l5*w; d5=-l*u+l2*u*q*w+l4*w-l6*u; q=q+d1*dt; s=s+d2*dt; f=f+d3*dt; w=w+d4*dt; if (w<0.1) w=0.1; u=u+d5*dt; g.setColor(Color.blue); g.drawLine((int)(ti*t0),(int)(170-qi*q0),(int)(t*t0),(int)(170-q*q0)); g.setColor(Color.red); g.drawLine((int)(ti*t0),(int)(170-si*s0),(int)(t*t0),(int)(170-s*s0)); g.setColor(Color.green); g.drawLine((int)(ti*t0),(int)(170-fi*f0),(int)(t*t0),(int)(170-f*f0)); g.setColor(Color.orange); g.drawLine((int)(ti*t0),(int)(270-wi*w0),(int)(t*t0),(int)(270-w*w0)); g.setColor(Color.magenta); g.drawLine((int)(ti*t0),(int)(270-ui*u0),(int)(t*t0),(int)(270-u*u0)); ti=t; t+=dt; qi=q;si=s;fi=f;wi=w;ui=u; } } } // Stefan Kontur & E. Ortega, August 29th 2000