\n"; $count = count($arr); if ($count == 0) { $arr[0]= $item; return; } for ($j= $count; $j>0; $j--){ if ($arr[$j-1] > $item) break; } if (($j != $count) && ($arr[$j] == $item)) return; for ($i= $count-1; $i>=$j; $i--){ $arr[$i+1]= $arr[$i]; } $arr[$j]= $item; } function count_dates($date_set, $date1, $date2) { // echo "EF: $date1, $date2 ",count($date_set)," "; $i1= 0; while (($date_set[$i1] > $date1) and ($i1 < count($date_set))) { ++$i1; } $i2= 0; while (($date_set[$i2] > $date2) and ($i2 < count($date_set))) { ++$i2; } $result= $i1-$i2; if ($result < 0) $result= -$result; // echo " result: $i1 $i2 $result
\n"; return ($result+1); } function order_dates(&$date_set, $age_table) { foreach ($age_table as $a) { if (is_numeric($a)) { insert_sort($date_set,$a); } else if (is_array($a)) { if (isset($a['subdiv'])) order_dates($date_set, $a['subdiv']); if (isset($a['contents'])) order_dates($date_set, $a['contents']); } } } function reorder_by_date(&$date_set, &$age_table, &$result, $current_date, $final_date, $thin= 0, $upper_colour= "") { // echo "RBD: ",count($date_set),"
\n"; $count= count($age_table); for ($n= 0; $n < $count; ++$n) { $a= $age_table[$n]; if (is_numeric($a)) { $current_date= $a; // if (! isset($result[$a]) $result[$a]= array(); } else if (is_array($a)) { $temp['name']= $a['name']; $first_date= $current_date; $last_date= $final_date; if (isset($age_table[$n+1]) && is_numeric($age_table[$n+1])) $last_date= $age_table[$n+1]; // echo "Name: ",$a['name']," ",$first_date," ",$last_date," "; $temp['height']= 2 * (count_dates($date_set,$first_date,$last_date)-1); $temp['width']= 2; if ($thin) $temp['width']= 1; if (isset($a['subdiv'])) $temp['width']= 1; $colour= $upper_colour; if (isset($a['colour'])) $colour= $a['colour']; $temp['colour']= $colour; $result[$current_date][]= $temp; if (isset($a['subdiv'])) { reorder_by_date($date_set, $a['subdiv'], $result, $current_date, $last_date, 1, $colour); } if (isset($a['contents'])) { reorder_by_date($date_set, $a['contents'], $result, $current_date, $last_date, 0, $colour); } } } } function show_sequence($input_table) { $date_set= array(); order_dates($date_set, $input_table); $current_date= "1000000"; /* foreach ($date_set as $date) { echo "date: $date
\n"; } */ reorder_by_date($date_set, $input_table, $age_table, $current_date, 0); echo "\n"; $previous= 0; foreach ($date_set as $date) { echo "\n"; if (! $previous) { echo "\n"; } else { echo "\n"; } if (! isset($age_table[$date])) { echo "\n"; $previous= 0; } else { $previous= 1; echo "\n"; foreach ($age_table[$date] as $item) { echo " \n"; } } } echo "
"; if ($date < "9000") { echo "$date"; } else { echo "Ma"; } echo " 
", "",$item['name'],"
\n"; } Jessop Scientific Software
 

Palynoplot Geological Timeline

This is the geological timeline used by Palynodata.

This timeline is, consequently, the default timeline used by Palynoplot. However, the program's timeline is held in an ASCII file, and can be changed by the user if different values are required. The representation here does not include all the myriad stages, and some of the older periods in the database. These overlap in complicated ways, so a graphical representation would be excessively complicated, and be beyond the ability of this page to show.

You could, for example, build a timeline file based on the timeline from the geowhen timeline compiled by Robert A. Rhode of U.C. Berkeley.