// rotation.java // agrarian economy based on land rotation // adapted from a program in basic by H.T. Odum & E. Odum, 1994 import java.applet.*; import java.awt.*; public class rotation extends Applet { Label prompt1, prompt2; TextField input1, input2; Button drawbutton; double dt, a0, s0, q0, b0, i0, a, a1, b, s, q; double k0, k1, k2, k3, k4, k5, k6, k7, k8, k9; double l1, l2, l3, l4, l5, l6, a2, r, db, ds, da, dq, t, ti; double a1i, a2i, bi, si, qi, r0, r1; public void init() { prompt1 = new Label("S value for wood and soil: "); input1 = new TextField("2", 5); add(prompt1); add(input1); prompt2 = new Label("A1 fallow land: "); input2 = new TextField("100", 5); add(prompt2); add(input2); drawbutton = new Button("Draw"); add(drawbutton); } public boolean action(Event e, Object o) { s = (float)Integer.parseInt(input1.getText()); a1 = (float)Integer.parseInt(input2.getText()); repaint(); return true; } public void paint(Graphics g) { g.drawRect(0,60,320,250); t=0; ti=0; dt=3; a0=1; s0=0.5; q0=0.5; b0=0.5; i0=100; a=100; b=100; q=10; k0=0.18; k1=0.00008; k2=0.0032; k3=0.004; k4=0.002; k5=0.0002; k6=0.0002; k7=0.004; k8=0.00000032; k9=0.002; l1=0.0002; l2=0.0002; l3=0.0000002; l4=0.001; l5=0.001; l6=0.00004; a1i=0; a2i=0; bi=0; qi=0; si=0; a2=0; r=0; //r1=100; //do { //r0=r1; //r1=i0/(1+k0*r0*a1+k1*s*q*a2); //} //while ( ((r0-r1)<0.01) && ((r1-r0)<0.01) ); //r=r1; while (t/10<320) { a2i=a-a1i; r=i0/(1+k0*r*a1+k1*s*q*a2); db=k2*r*a1-k3*b-k4*b-k5*b*a1-k9*b; ds=k6*b*a1-k7*s-k8*s*r*a2*q; da=l1*a2*b-l2*q*a1; dq=l3*q*a2*s*r+l4*s-l5*q-l6*a1*q; a1i=a1+da*dt; if (a1i<0) a1i=0; bi=b+(db*dt); si=s+(ds*dt); qi=q+(dq*dt); ti=t+dt; g.setColor(Color.red); g.drawLine((int)t/10, (int)(310-b*b0), (int)ti/10, (int)(310-bi*b0)); g.setColor(Color.green); g.drawLine((int)t/10, (int)(310-a2*a0), (int)ti/10, (int)(310-a2i*a0)); g.setColor(Color.blue); g.drawLine((int)t/10, (int)(310-s*s0), (int)ti/10, (int)(310-si*s0)); g.setColor(Color.pink); g.drawLine((int)t/10, (int)(310-q*q0), (int)ti/10, (int)(310-qi*q0)); t=ti; b=bi; a2=a2i; s=si; q=qi; } } } // Camila Duarte & E. Ortega. November 17th 2000