mp=true;
running=true;
sn=["E","C","F","T","S"];
se=["stabemit","stabconc","stabrf&allghgaero", "stabtemp", "stabsea"];
curve=["carboncycle.totemit","carboncycle.atppm","radfor.totalrf","heatflux.glotemp","sealevel.total"];
ymin=["0","250","-1","-0.5","0"];
ymax=["12000","600","5","3.5","1.5"];
yu=["giga&ton&carbon~1000~1000","ppm~50~1","watt&per&m2~0.5~1","degrees~0.5~1","m~0.2~1"];

s("reset",  "true");
s("backred", 255);
s("backgreen", 255);
s("backblue", 255);
s("scriptmode", "direct");
s("helpmode", "false");
s("baseyear", 1850);
s("stabconc&atlevel", 480);
s("othgasemit", "sresscale");
s("layoutmenu", "25plot");

mainloop:
for (stab=0; stab<5; stab++) {
s("emitmenu",se[stab]);
for (s("sresmenu", "A1B"), sres=0; sres<6; s("sresmenu", "next"), sres++) {
blue=sres*40;
for (s("climodmenu", "gfdl"), gcm=0; gcm<7; s("climodmenu", "next"), gcm++) { 
green=gcm*35;
for (carbon=0; carbon<5; carbon++) { 
red=carbon*50;
s("makebuf", (carbon==4) ? "true" : "false" );
carbonparam();
for (plot=0; plot<5; plot++) {
	curvename=v("climodmenu")+v("othgasemit")+v("sresmenu");
	colour= ""+red+","+green+","+blue;
	makecurve();
} //plot
} //carbon
	jcm.sleep(1000);
	if (!running) break mainloop;
} //climod
} //sres 
} //stab

function carbonparam() {
	s("scriptmode", "delay");
	s("fertbeta", carbon==4 ? 0.144 : carbon==0 ? 0.430 : 0.287);
	s("lucfemit1990", carbon==4 ? 825 : carbon==0 ? 2475 : 1650);
	s("ceddydiff", carbon==3 ? 0.5 : carbon==1 ? 1.5 : 1.0);
	go(); 
	s("scriptmode", "direct");
}

function makecurve() {
	plotname=sn[plot]+"/"+sn[stab];
	if ( mp ) { makeplot(plotname); }
	addcurve= "curve~" +curve[plot]+ "~"+plotname+"~true~" +colour; 
	s(plotname, addcurve);
	if ( mp ) { makescale(f(plotname)); }
	if ( plot==4 ) { mp=false;}
}

function makescale(plotob) {
	plotob.tmh=0; 
	plotob.yscale.min.val=ymin[plot];
	plotob.yscale.max.val=ymax[plot];
	plotob.xscale.min.val=1850;
	plotob.xscale.max.val=2250;
}

function makeplot(plotname) {
	s("blankplot", "title~"+plotname);	
	s(plotname, "clear");	
	s(plotname, "scale~"+yu[plot]);
	if (plot!=stab) f(plotname).doubleline=false;
}

