65 + 19
$sfile[67]="slr_sla_gbl_free_txj1j2_90.txt";
$sfile[69]="seaice_extent_final-Sum.txt"; //ocean ice
$sfile[70]="HOT_surface_CO2.txt.ph"; //ocean ph
$sfile[71]="HOT_surface_CO2.txt.co2"; //ocean co2
$sfile[72]="co2_mm_gl.txt"; // co2 gL
$sfile[73]="ch4_mm_gl.txt"; // ch4 gL
$sfile[74]="us-cities-NO2.txt"; // city pollution
$sfile[75]="us-cities-PM10.txt";
$sfile[76]="us-cities-PM25-mean.txt";
$sfile[77]="us-cities-PM25-98perc.txt";
$sfile[78]="us-cities-SO2.txt";
$sfile[79]=("ztoa_sw_all_mon.txt"); // Ceres
$sfile[80]=("ztoa_sw_clr_mon.txt");
$sfile[81]=("ztoa_lw_all_mon.txt");
$sfile[82]=("ztoa_lw_clr_mon.txt");
$sfile[83]=("ztoa_net_all_mon.txt");
$sfile[84]=("ztoa_net_clr_mon.txt");
$sfile[85]=("ztoa_alb_all_mon.txt");
$sfile[86]=("ztoa_alb_clr_mon.txt");
$sfile[87]=("ztoa_solar_all_mon.txt");
$sfile[88]=("zmodis_aod55_land_mon.txt");
$sfile[89]=("zmodis_aod55_ocean_mon.txt");
$sfile[90]=("ztoa_net_all_mon-e.txt");
$sfile[91]=("gloss/gloss-avg.txt"); //gauges
$sfile[92]=("rlrdata-m.txt");
$sreg[0]="Global";
$sreg[1]="n. Hem";
$sreg[2]="s. Hem";
$sreg[3]="tropics";
$sreg[4]="hawaii";
$sreg[5]="bermuda";
$sreg[6] = "globalmarine";
$sreg[7] = "maunaloa";
$sreg[8] = "southpole";
$sreg[9] = "n75n90";
$sreg[10] = "n60n75";
$sreg[11] = "n45n60";
$sreg[12] = "n30n45";
$sreg[13] = "n15n30";
$sreg[14] = "0n15";
$sreg[15] = "0s15";
$sreg[16] = "s15s30";
$sreg[17] = "s30s45";
$sreg[18] = "s45s60";
$sreg[19] = "s60s75";
$sreg[20] = "s75s90";
$slandNr[0]="BAUS";
$slandNr[1]="BAUT";
$slandNr[2]="BBRA";
$slandNr[3]="BCAN";
$slandNr[4]="BCHN";
$slandNr[5]="BDEU";
$slandNr[6]="BDNK";
$slandNr[7]="BESP";
$slandNr[8]="BEUU";
$slandNr[9]="BFIN";
$slandNr[10]="BFRA";
$slandNr[11]="BGBR";
$slandNr[12]="BIDN";
$slandNr[13]="BIND";
$slandNr[14]="BIRN";
$slandNr[15]="BITA";
$slandNr[16]="BJPN";
$slandNr[17]="BKOR";
$slandNr[18]="BMEX";
$slandNr[19]="BNOR";
$slandNr[20]="BNZL";
$slandNr[21]="BPAK";
$slandNr[22]="BPOL";
//$slandNr[]="BPRK";25; //N kor
$slandNr[23]="BRUS";
$slandNr[24]="BSAU";
$slandNr[25]="BSWE";
$slandNr[26]="BTHA";
$slandNr[27]="BTUR";
$slandNr[28]="BUSA";
$slandNr[29]="BWLD"; //+8
$slandNr[30]="BZAF";
//WDI
$slandNr[31]="WAUS";
$slandNr[32]="WAUT";
$slandNr[33]="WBRA";
$slandNr[34]="WCAN";
$slandNr[35]="WCHN";
$slandNr[36]="WDEU";
$slandNr[37]="WDNK";
$slandNr[38]="WESP";
$slandNr[39]="WEUU";
$slandNr[40]="WFIN";
$slandNr[41]="WFRA";
$slandNr[42]="WGBR";
$slandNr[43]="WIDN";
$slandNr[44]="WIND";
$slandNr[45]="WIRN";
$slandNr[46]="WITA";
$slandNr[47]="WJPN";
$slandNr[48]="WKOR";
$slandNr[49]="WMEX";
$slandNr[50]="WNOR";
$slandNr[51]="WNZL";
$slandNr[52]="WPAK";
$slandNr[53]="WPOL";
//$slandNr[]="WPRK";25;
$slandNr[54]="WRUS";
$slandNr[55]="WSAU";
$slandNr[56]="WSWE";
$slandNr[57]="WTHA";
$slandNr[58]="WTUR";
$slandNr[59]="WUSA";
$slandNr[60]="WWLD";
$slandNr[61]="WZAF";
//12.25
$slandNr[62]="WSSF"; //36
$slandNr[63]="WLCN";
$slandNr[64]="WMEA";
$slandNr[65]="WBGD";
$slandNr[66]="WVNM"; //40
// ved endring: husk å oppdatere arrayen helt ut
$slandNr[67]="PUSA";
$slandNr[68]="PCHI";
$slandNr[69]="PDAL";
$slandNr[70]="PLAN";
$slandNr[71]="PMIA";
$slandNr[72]="PNYO";
$slandNr[73]="PPHI";
$slandNr[74]="PWAS";
//$slandNr[70]="PLONW";
//$slandNr[71]="PLONC";
$slandNr[75]="PBEI"; //12.26 70 - 75
$slandNr[76]="PBEI98";
$slandNr[77]="PSHA";
$slandNr[78]="PSHA98";
$slandNr[79]="PGUA";
$slandNr[80]="PGUA98";
$slandNr[81]= "gavgvl";
$slandNr[82] = "gavg30x30vl";
$slandNr[83]= "gavglong";
$slandNr[84]= "gavg30x30l";
$slandNr[85]= "gavgml";
$slandNr[86]= "gavg30x30ml";
$slandNr[87]= "L30nNP";
$slandNr[88]= "eqto30n";
$slandNr[89]= "eqto30s";
$slandNr[90]= "L30sSP";
$slandNr[91]= "1";
$slandNr[92]= "7";
$slandNr[93]= "10";
$slandNr[94]= "44";
$slandNr[95]= "52";
$slandNr[96]= "61";
$slandNr[97]= "65";
$slandNr[98]= "78";
$slandNr[99]= "94";
$slandNr[100]= "96";
$slandNr[101]= "111";
$slandNr[102]= "145";
$slandNr[103]= "150";
$slandNr[104]= "155";
$slandNr[105]= "161";
$slandNr[106]= "163";
$slandNr[107]= "167";
$slandNr[108]= "180";
$slandNr[109]= "188";
$slandNr[110]= "196";
$slandNr[111]= "202";
for ($m=0; $m<=3; $m++){
$lenkeD[$m]="http://www.metoffice.gov.uk/hadobs/hadcrut4/data/current/download.html";
$lenkeF[$m]="HadCRUT4 time series: ensemble medians and uncertainties.";
}
for ($m=4; $m<=7; $m++){
$lenkeD[$m]="ftp://ftp.remss.com/msu/monthly_time_series/RSS_Monthly_MSU_AMSU_Channel_TLT_Anomalies_Land_and_Ocean_v04_0.txt";
//$lenkeF[$m]="Remote Sensing Systems Upper Air Temperature";
}
$lenkeF[4] = " Global";
$lenkeF[5] = " Northern hemisphere";
$lenkeF[6] = " Southern hemisphere";
$lenkeF[7] = " Tropics (20 deg S to 20 deg N)";
$lenkeD[8]="http://hadobs.metoffice.com/hadsst3/data/HadSST.3.1.1.0/diagnostics/HadSST.3.1.1.0_monthly_globe_ts.txt";
$lenkeF[8]="Met Office Hadley Centre observations datasets";
$lenkeD[8]="http://hadobs.metoffice.com/hadsst3/data/HadSST.3.1.1.0/diagnostics/HadSST.3.1.1.0_monthly_globe_ts.txt";
$lenkeD[9]="http://hadobs.metoffice.com/hadsst3/data/HadSST.3.1.1.0/diagnostics/HadSST.3.1.1.0_monthly_nh_ts.txt";
$lenkeD[10]="http://hadobs.metoffice.com/hadsst3/data/HadSST.3.1.1.0/diagnostics/HadSST.3.1.1.0_monthly_sh_ts.txt";
$lenkeD[11]="http://hadobs.metoffice.com/hadsst3/data/HadSST.3.1.1.0/diagnostics/HadSST.3.1.1.0_monthly_tropics_ts.txt";
$lenkeF[8]="Met Office Hadley Centre observations datasets";
$lenkeF[8] = sprintf("%s Global", $lenkeF[8]);
$lenkeF[9] = sprintf("%s Northern hemisphere", $lenkeF[8]);
$lenkeF[10] = sprintf("%s Southern hemisphere", $lenkeF[8]);
$lenkeF[11] = sprintf("%s Tropics (20 deg S to 20 deg N)", $lenkeF[8]);
//$lenkeF[9] += " Northern hemisphere";
//$lenkeF[10] += " Southern hemisphere";
//$lenkeF[11] += " Tropics (20 deg S to 20 deg N)";
for ($m=17; $m<=21; $m++){
$lenkeD[$m]="http://www.bp.com/content/dam/bp/excel/energy-economics/statistical-review-2015/bp-statistical-review-of-world-energy-2015-workbook.xlsx";
$lenkeF[$m]="BP Statistical Review of World Energy ";
}
for ($m=22; $m<=22; $m++){
$lenkeD[$m]="http://api.worldbank.org/v2/en/topic/6?downloadformat=excel";
$lenkeF[$m]="World Bank G. Development Indicators. PM2.5 air pollution, mean annual exposure (micrograms per cubic meter)";
}
//$sfile[26+1] ="CSIRO_Recons_gmsl_mo_2015.txt";
//$flabel[26+1]="Sea level Gauges";
$knummer = array();
define("ANTKIL", 92); //12.25 +12 // 12.27 +23
define("ANTREG", 20);
define("ANTLAND", 111);
define("USA", 2);
define("CHI", 69);
define("GER", 27);
define("WORLD", 86);
define("IND", 71);
define("USA", 2);
define("CHI", 69);
define("GER", 27);
define("WORLD", 86);
define("IND", 71);
$landNr = Array();
$landNr['BAUS']=88; //+18
$landNr['BAUT']=20;
$landNr['BBRA']=8;
$landNr['BCAN']=3;
$landNr['BCHN']=90;
$landNr['BDEU']=30;
$landNr['BDNK']=26; //+2
$landNr['BESP']=47;
$landNr['BEUU']=111;
$landNr['BFIN']=28; // +1
$landNr['BFRA']=29;
$landNr['BGBR']=51;
$landNr['BIDN']=93;
$landNr['BIND']=92;
$landNr['BIRN']=66; //+11
$landNr['BITA']=35;
$landNr['BJPN']=94;
$landNr['BKOR']=100;
$landNr['BMEX']=4;
$landNr['BNOR']=41; //+4
$landNr['BNZL']=96;
$landNr['BPAK']=97;
$landNr['BPOL']=42;
//$landNr['BPRK']=25; //N kor
$landNr['BRUS']=58;
$landNr['BSAU']=72;
$landNr['BSWE']=48;
$landNr['BTHA']=103;
$landNr['BTUR']=50;
$landNr['BUSA']=2;
$landNr['BWLD']=108; //+19
$landNr['BZAF']=80;
// World dev ind
$landNr['WLCN']=22;
$landNr['WMEA']=29;
$landNr['WSSF']=43;
$landNr['WAUS']=58;
$landNr['WAUT']=59;
$landNr['WBGD']=63;
$landNr['WBRA']=74;
$landNr['WCAN']=83;
$landNr['WCHN']=89;
$landNr['WDEU']=121;
$landNr['WDNK']=101;
$landNr['WESP']=227;
$landNr['WEUU']=12;
$landNr['WFIN']=115;
$landNr['WFRA']=116;
$landNr['WGBR']=253;
$landNr['WIDN']=138;
$landNr['WIND']=137;
$landNr['WIRN']=139;
$landNr['WITA']=144;
$landNr['WJPN']=146;
$landNr['WKOR']=152;
$landNr['WMEX']=176;
$landNr['WNOR']=195;
$landNr['WNZL']=190;
$landNr['WPAK']=197;
$landNr['WPOL']=204;
//$landNr['WPRK']=25;
$landNr['WRUS']=209;
$landNr['WSAU']=214;
$landNr['WSWE']=235;
$landNr['WTHA']=240;
$landNr['WTUR']=246;
$landNr['WUSA']=254;
$landNr['WVNM']=259;
$landNr['WWLD']=47;
$landNr['WZAF']=225;
$landNr['PUSA']=34;
$landNr['PCHI']=35;
$landNr['PDAL']=36;
$landNr['PLAN']=37;
$landNr['PMIA']=38;
$landNr['PNYO']=39;
$landNr['PPHI']=40;
$landNr['PWAS']=41;
$landNr['PBEI']=42;
$landNr['PBEI98']=43;
$landNr['PSHA'] =44;
$landNr['PSHA98']=45;
$landNr['PGUA'] =46;
$landNr['PGUA98']=47;
//12.24
function summable(){ // energy data for same region are summable
$sable = true;
$reg = sprintf("region%d", 1);
$region = $_GET[$reg];
$antkilder = $_GET["f2antkilder"];
for($k=1; $k<= $antkilder; $k++){
$gru = sprintf("gruppe%d", $k);
$reg = sprintf("region%d", $k);
$kf = sprintf("kildefil%d", $k);
$gruppe = $_GET[$gru];
// printf("summable**************gruppe =%s, reg1=%s reg=%s kf1=%s kf=%s fili=%s , \n" , $gruppe, $region, $_GET[$reg], $kf, $_GET[$kf], $fil[$k]);
if( strcmp($gruppe, "energy")!=0) $sable = false;
if($k>1 && strcmp($region, $_GET[$reg])!=0) $sable = false;
if( strcmp($_GET[$kf], "bp-2015-co2-p.txt")==0) $sable = false;
if( strcmp($_GET[$kf], "bp-statistical-review-of-world-energy-2015-workbook-prim-e-mtoe.txt")==0) $sable = false;
if( strcmp($_GET[$kf], "bp-statistical-review-of-world-energy-2015-workbook-elec-twh.txt")==0) $sable = false;
}//end for
return $sable;
} // end summable
function getlandkolB($region){
global $landNr;
$bsub = substr($region, 1);
$breg = sprintf("B%s", $bsub);
return $landNr[$breg];
}
function getlandkol($region){
global $landNr;
//printf("Lnr2=%d,\n", $landNr[$region]);
return $landNr[$region];
}
function minLabel($fil){
global $sfile, $flabel;
for($k=0; $k<= constant('ANTKIL'); $k++){
if(strcasecmp($sfile[$k], $fil)==0) return $flabel[$k];
}
}
function minLenkeF($fil){
global $sfile, $flabel;
for($k=0; $k<= constant('ANTKIL'); $k++){
if(strcasecmp($sfile[$k], $fil)==0) return $lenkeF[$k];
}
}
function sourcestart($k){
global $sfile, $flabel, $lenkeF, $sreg, $slandNr;
// printf("
\n", $k);
printf("
Series %d\n ", $k);
printf(" Choose sourcegroup and source
\n ", $k);
// printf("\n", $k);
printf(" \n");
// printf(" \n");
// printf(" \n");
printf(" \n");
printf("Source group: \n");
$gr= sprintf("gruppe%d", $k);
$kildef = sprintf("kildefil%d", $k);
printf(" \n", $gr, $gr, $k, $k);
// if($k>1) genOptionh("blank", "Choose group", $gr);
genOptionh("surface", "Surface observations", $gr);
genOptionh("satellite", "Satellite obs.", $gr);
genOptionh("balloon", "Weather balloon", $gr);
genOptionh("sealevel", "Sea level", $gr);
genOptionh("energy", "Energy data", $gr);
genOptionh("pollution", "World Bank dev. ind.", $gr);
genOptionh("otherc", "Other climate stuff", $gr);
genOptionh("uscpollution","City pollution (stations)", $gr);
genOptionh("cerestoa", "Ceres TOA", $gr);
printf(" \n");
printf(" \n");
printf("Source: ");
$kilde= sprintf("source%d", $k);
$llenke = minLenkeF($sfile[$k]);
// printf("XXX %s YYY %s k=%s\n", $llenke, $sfile[$k], $k);
printf(" \n", $k, $k, $k);
for($m=0; $m<= constant('ANTKIL'); $m++){
genOptionh($sfile[$m], $flabel[$m], $kildef);
}
printf(" \n");
printf(" \n");
printf("Region: \n");
printf(" Choose geographical region \n
\n", $k, $k);
printf(" \n");
$op = sprintf("region%s", $k);
printf("\n", $op, $op);
// $mt = microtime(true);
$reg = sprintf("region%d", $k);
for($m=0; $m<= constant('ANTREG'); $m++){
// index2: genOptionh($sreg[$m], "Choose source group", $reg);
genOptionh($sreg[$m], "reg", $reg);
}
for($m=0; $m<= constant('ANTLAND'); $m++){
genOptionh($slandNr[$m], "wld", $reg);
}
// $mt2 = microtime(true);
// printf("microtime = %s mt2=%s diff=%s \n ", $mt, $mt2, $mt2-$mt);
printf(" \n");
printf(" \n");
// printf(" Operation Value \n");
// printf(" \n");
} // sourcestart
function genOptionh($verdi, $label, $op) {
printf(" %s \n", $label);
} // genOption
?>
%s\n", $label);
} // genOption
function genRadTF($ind1){ //to and from
printf("From: \n");
$from = sprintf("fromval%d", $ind1);
$to = sprintf("toval%d", $ind1);
printf(" \n", $from, $from, $_GET[$from]);
// printf(" \n");
printf("To:\n");
printf(" \n", $to, $to, $_GET[$to]);
printf ("\n");
printf(" \n");
printf("
\n \n");
printf(" \n");
printf("Operation\n");
printf(" You may choose one or two operations to process the data, then press 'Plot graph' \n
\n");
printf(" \n");
printf("Value\n");
printf(" All operations except 'Decadal mean' require a value. Specify the number of months, or a multiplier for 'Scale', then press 'Plot graph'. More explanation in top menu 'Help'. \n
\n");
printf(" \n");
}// gerradTF
function genRad($ind1, $ind2) {
printf("\n");
//Tooltip on scrolldown commented out. Better to have a longer on the header?
//printf(" \n");
// printf(" \n", $ind1, $ind2, $ind1, $ind2, $ind1, $ind2);
printf(" \n", $ind1, $ind2, $ind1, $ind2, $ind1, $ind2, $ind1, $ind2);
genOption("-", "-", $ind1, $ind2);
genOption("mean", "Moving average", $ind1, $ind2);
genOption("blackman", "Low-pass filter", $ind1, $ind2);
genOption("stepwisemean", "Stepwise mean", $ind1, $ind2);
genOption("decadalmean", "Decadal mean", $ind1, $ind2);
genOption("scale", "Scale", $ind1, $ind2);
genOption("derivative", "Derivative", $ind1, $ind2);
printf(" \n");
// printf(" Choose operation \n
\n", $ind1, $ind2, $ind1, $ind2);
printf(" \n");
printf("\n");
$verdi = sprintf("value%d%d", $ind1, $ind2);
if (isset($_GET[$verdi])){
printf(" \n", $verdi, $verdi, $_GET[$verdi]);
}else{
if($ind2==1){
printf(" \n", $verdi, $verdi);
}elseif ($ind2==3){
printf(" \n", $verdi, $verdi);
}else{
printf(" \n", $verdi, $verdi);
}
}
printf (" \n");
printf(" \n");
} // genRad()
/*function genCheck($navn, $ind, $label, $funksjon){
printf("\n");
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
printf(" \n");
}*/
function genChecklin($navn, $ind, $label, $funksjon){
printf("\n");
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
printf(" \n");
}
function genChecksnitt($navn, $ind, $label, $funksjon){
printf("\n");
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
printf(" \n");
}
function genCheckcra($navn, $ind, $label, $funksjon){
printf("\n");
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
printf(" \n");
}
/*
function genCheckaverage($navn, $ind, $label, $funksjon){
printf("\n");
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
printf(" \n");
}
*/
//genCheckaverage("average", $k, "Average of series", "average");
//genChecklin("clinear", $k, "Add linear trendline", "setTrendlines");
//genChecksnitt("csnittverdi", $k, "Add mean value indicator", "snittverdi");
//genCheckcra("crakse", $k, "Right Y-axis", "rakse");
function genCheck2($navn, $ind, $label, $funksjon){
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
}
function genCheck3($navn, $ind, $label, $funksjon){
$nm = sprintf("%s%d", $navn, $ind);
printf(" %s\n", $label);
}
function sourceEnd($k){
printf("\n");
$lc = sprintf("linecolor%d", $k);
//printf("Color:\n");
printf("Color \n");
printf(" Interactive controls: line color and linewidth, trendline, linewith and right y-axis \n
\n");
printf("\n", $lc, $lc, $k);
/*
genOptionh("auto", "Auto", $k);
genOptionh("red", "Red", $k);
genOptionh("blue", "Blue", $k);
genOptionh("green", "Green", $k);
genOptionh("yellow", "Yellow",$k);
genOptionh("black", "Black", $k);
genOptionh("white", "White", $k);
printf(" \n");
//if(strcasecmp($_GET[$op], $verdi)==0) echo "selected='true'";
*/
$op = $lc;
printf(" Auto \n");
printf(" Blue \n");
printf(" Red \n");
printf(" Yellow \n");
printf(" Green \n");
printf(" Blueviolet \n");
printf(" Black \n");
printf(" Orange \n");
printf(" Brown \n");
printf(" Cyan \n");
printf(" Olive \n");
printf(" Grey \n");
printf(" Cornflowerblue \n");
printf(" \n");
$lw = sprintf("linewidth%d", $k);
if (isset($_GET[$lw])){
printf(" Width: \n", $lw, $lw, $_GET[$lw], $k);
}else{
printf(" Width: \n", $lw, $lw, $k);
}
printf(" \n");
genChecklin("clinear", $k, "Add linear trendline", "setTrendlines");
//12.24
if(!summable()){
genChecksnitt("csnittverdi", $k, "Add mean value indicator", "snittverdi");
genCheckcra("crakse", $k, "Right Y-axis", "rakse");
}
//genCheckaverage("caverage", $k, "Average of series", "average");
printf("
\n");
if ($k==1){
// plot graph
printf(" \n ");
// printf(" \n ");
printf(" \n ");
}
if ($_GET[$f2antkilder]>1 || $k>1){
//printf(" \n Delete \n ");
printf(" \n ");
// printf(" \n Delete \n ");
}
printf(" \n");
} // sourceEnd
?>
To plot graph select\n");
printf(" Source group, Source and Region \n");
printf("Then press 'Plot graph' \n");
}
?>
\n\n");
sourceEnd($k);
} // end for
?>
\n", $_GET['area']);
// printf("Top margin: \n", $_GET['area']);
// printf("Plotarea to margin fraction: \n", $_GET['area']);
//printf(" \n");
/*
printf("Footer \n");
for ($k=1; $k<=$antkilder; $k++){
$m=0;
while ($m <= ANTKIL){
// printf("ml=%s,hs=%s,fl=%s.%d \n", minlabel($fil[$k]), $fil[$k], $flabel[$m], $m);
// printf("Flenke=%s. \n", $lenkeF[$m]);
if (minLabel($fil[$k]) == $flabel[$m]){
echo $flabel[$m], " ";
echo $lenkeF[$m], " ";
echo "Link to source data: ", $lenkeD[$m], " ";
$m = ANTKIL+1;
}
$m+=1;
}// while
printf("%s \n", minLabel($fil[$k]));
if ($verdi[$k][1] >0) echo $operasjon[$k][1], ": ", $verdi[$k][1], " ";
if ($verdi[$k][2] >0) echo $operasjon[$k][2], ": ", $verdi[$k][2], " ";
if ($verdi[$k][3] >0) echo $operasjon[$k][3], ": ", $verdi[$k][3], " ";
if ($clinear[$k]) printf("With linear trendline \n");
if ($csnitt[$k]) printf("Mean value indicator1 =%.2f \n", $totsnitt[$k]);
} // end for
*/
?>