*** Stratographic Years Slot Calculator Example, Age of Earth*** ---- This page is under development. Comments are welcome, but please load any comments in the comments section at the middle of the page. Thanks, [gold] ---- [gold] Here is an eTCL script on Stratographic Years. I have modified a slot calculator in eTCL to handle calculations for stratographic years. There are a number of issues that have risen with the accuracy of the age of the earth. --- In planning any software, it is advisable to gather a number of testcases to check the results of the program. For the stratography, these cases represent a diverse lot spanning the globe and several million years of history. ---- pseudocode: enter period,speed,width pseudocode: (width in cm +-2mm)* 50000 years per cm pseudocode: answer is years, used xxx years per cm , +- error Permian 254 to 235 myrs n.a. maximum deposit 274320 cm (254-235)myrs/274320 cm = 6.926E-5 myrs/cm 10 cm * 6.926E-5 myrs/cm= 69.26E-5 myrs or 69.26E-5 myrs *E+6 = 692.6 years world maximum deposit 548640 cm (254-235)myrs/ 548640 cm = 3.4631E-5 myrs/cm 10 cm * 3.4631E-5 myrs/cm= 34.631E-5 myrs or 34.631E-5 myrs * E+6 = 346.3 years figuring error of +-0.03 cm 10.03 cm * 3.4631E-5 myrs/cm *E+6 = 347.348 9.97 cm * 3.4631E-5 myrs/cm *E+6 = 345.28 (1.-347.348/345.28) *100 = 0.6 per cent error ---- '''Comments Section''' Please place any comments here, Thanks. ---- ***References:*** ---- ***Screenshots Section*** [http://img855.imageshack.us/img855/7702/strattclwiki.gif] ---- ****Appendix Code**** ****appendix TCL programs and scripts **** ---- ********************* ****FIRST VERSION *** ====== # code from TCL WIKI Slot_Calculator_Demo # 8Aug2010, gold # written on Windows XP on eTCL # working under TCL version 8.5.6 and eTCL 1.0.1 # gold on TCL WIKI , 8aug2010 frame .frame -relief flat -bg aquamarine4 pack .frame -side top -fill y -anchor center set names {{} {width cm:} period: {locale:} {speed:} {year rate /cm:} {answer years:} possible:} foreach i {1 2 3 4 5 6 } { label .frame.label$i -text [lindex $names $i] -anchor e entry .frame.entry$i -width 35 -textvariable side$i grid .frame.label$i .frame.entry$i -sticky ew -pady 2 -padx 1 } proc about {} { set msg "Calculator for stratographic years. from TCL WIKI, written on eTCL " tk_messageBox -title "About" -message $msg } proc periodic {lister} { global side1 side2 side3 global side4 side5 side6 set const .5 set item $side2 set cambrian [expr { 600-400 } ] set ordovician [expr { 412-372 } ] set silurian [expr { 372-338 } ] set devonian [expr { 338-300 } ] set carbon [expr { 300-254 } ] set permian [expr { 254-235 } ] set triassic [expr { 235-205 } ] set jurassic [expr { 205-161 } ] set cretaceous [expr { 161-110 } ] set paleoscene [expr { 110-98 } ] set eocene [expr { 98-68 } ] set oligocene [expr { 68-42 } ] set miocene [expr { 42-21 } ] set pliocene [expr { 21-6 } ] set pleistocene [expr { 6-.00001 } ] set modern [expr { 6-.00001 } ] set one [expr { 200-150 } ] set two [expr { 300-250 } ] if { $item == "cambrian" } { set const [expr { ($cambrian/33700.)*(1./30.48) } ] } if { $item == "ordovician" } { set const [expr { ($ordovician/23100.)*(1./30.48) } ] } if { $item == "silurian" } {set const [expr { ($silurian/6400.)*(1./30.48) } ] } if { $item == "devonian" } { set const [expr { ($devonian/12700.)*(1./30.48) } ] } if { $item == "carboniferous" } { set const [expr { ($carbon/23800.)*(1./30.48) } ] } if { $item == "permian" } { set const [expr { ($permian/9000.)*(1./30.48) } ] } if { $item == "triassic" } { set const [expr { ($triassic/15000.)*(1./30.48) } ] } if { $item == "jurassic" } { set const [expr { ($jurassic/22200.)*(1./30.48) } ] } if { $item == "cretaceous" } { set const [expr { ($cretaceous/23800.)*(1./30.48) } ] } if { $item == "paleoscene" } { set const [expr { ($paleocene/9000.)*(1./30.48) } ] } if { $item == "eocene" } { set const [expr { ($eocene/15000.)*(1./30.48) } ] } if { $item == "oligocene" } { set const [expr { ($oligocene/22200.)*(1./30.48) } ] } if { $item == "miocene" } { set const [expr { ($miocene/9000.)*(1./30.48) } ] } if { $item == "pliocene" } { set const [expr { ($pliocene/15000.)*(1./30.48) } ] } if { $item == "modern" } { set const [expr { ($modern/22200.)*(1./30.48) } ] } if { $item == "1" } { set const [expr { ($modern/25000)*(1./30.48) } ] } if { $item == "2" } { set const [expr { ($modern/25000)*(1./30.48) } ] } if { $side3 >= "2" } { if { $item == "cambrian" } { set const [expr { ($cambrian/40000.)*(1./30.48) } ] } if { $item == "ordovician" } { set const [expr { ($ordovician/40000.)*(1./30.48) } ] } if { $item == "silurian" } {set const [expr { ($silurian/20000.)*(1./30.48) } ] } if { $item == "devonian" } { set const [expr { ($devonian/37000.)*(1./30.48) } ] } if { $item == "carboniferous" } { set const [expr { ($carbon/40000.)*(1./30.48) } ] } if { $item == "permian" } { set const [expr { ($permian/18000.)*(1./30.48) } ] } if { $item == "triassic" } { set const [expr { ($triassic/25000.)*(1./30.48) } ] } if { $item == "jurassic" } { set const [expr { ($jurassic/22000.)*(1./30.48) } ] } if { $item == "cretaceous" } { set const [expr { ($cretacious/64000.)*(1./30.48) } ] } if { $item == "paleoscene" } { set const [expr { ($paleocene/9000.)*(1./30.48) } ] } if { $item == "eocene" } { set const [expr { ($eocene/23000.)*(1./30.48) } ] } if { $item == "oligocene" } { set const [expr { ($oligocene/15000.)*(1./30.48) } ] } if { $item == "miocene" } { set const [expr { ($miocene/21000.)*(1./30.48) } ] } if { $item == "pliocene" } { set const [expr { ($pliocene/18000.)*(1./30.48) } ] } if { $item == "pleistocene" } { set const [expr { ($jurassic/4000.)*(1./30.48) } ] } if { $item == "modern" } { set const [expr { ($jurassic/4000.)*(1./30.48) } ] } if { $item == "1" } { set const [expr { (10000./25000)*(1./30.48) } ] } if { $item == "2" } { set const [expr { (10000./25000)*(1./30.48) } ] } } return $const} proc strat5 { xx1 } { global side1 side2 side3 global side4 side5 side6 set ss side1 set tt [ periodic {$side2} ] set side5 [ expr { $side1*$tt*1.} ] set side4 [ expr { $side1*$tt*1.} ] set side6 [ expr { $side1*$tt*1.} ] } proc calculate { } { global answer2 global side1 side2 side3 side4 side5 side6 set answer2 [ strat5 $side1 ] set side6 $answer2 } proc fillup {aa bb cc dd ee ff } { .frame.entry1 insert 0 "$aa" .frame.entry2 insert 0 "$bb" .frame.entry3 insert 0 "$cc" .frame.entry4 insert 0 "$dd" .frame.entry5 insert 0 "$ee" .frame.entry6 insert 0 "$ff " } proc clearx {} { foreach i {1 2 3 4 5 6 } { .frame.entry$i delete 0 end } } proc reportx {} { console show; puts " " } frame .buttons -bg aquamarine4 ::ttk::button .calculator -text "Solve" -command { calculate } ::ttk::button .test2 -text "Testcase1" -command { clearx;fillup 2. 1. 1. 12. 50. 116 } ::ttk::button .test3 -text "Testcase2" -command { clearx;fillup 10. "jurassic" 1. 12. 15. 1133 } ::ttk::button .test4 -text "Testcase3" -command { clearx;fillup 5. "permian" 2. 15. 25. 1250} ::ttk::button .clearallx -text clear -command {clearx } ::ttk::button .about -text about -command about ::ttk::button .cons -text report -command { reportx } ::ttk::button .exit -text exit -command {exit} pack .calculator -in .buttons -side top -padx 10 -pady 5 pack .clearallx .cons .about .exit .test4 .test3 .test2 -side bottom -in .buttons grid .frame .buttons -sticky ns -pady {0 10} . configure -background aquamarine4 -highlightcolor brown -relief raised -border 30 wm title . "Stratographic Years Calculator" ====== <> Numerical Analysis | Toys | Calculator | Example | Mathematics