AppendTo[$Path," "];
                
(*   Before beginning evaluation of the notebook for the first time, replace the   *)
(*   blank space between the " marks above with the path to SampleRun:             *)
(*                                                                                 *)
(*             Windows example:  "C:\\Folder\\Subfolder\\...\\SampleRun"           *)
(*                                                                                 *)
(*   Unix, Linux, OS X example:  "Home Directory/Subdirectory/.../SampleRun"       *)
(*                                                                                 *)
(*                When done replacing, evaluate this cell.                         *)

<<data.m

<<solveABR0.m

<<ProcEqS.m

<<IterateS.m

troots = {FindRoot[Log[2, Ssol[t]] == 100, {t, 10^(-15)}],
          FindRoot[Rsol[t] == N[R0,6], {t, targettime/2}]}

{t100doublings = t /. troots[[1]], t0 = t /. troots[[2]]}

Convert[t0 Second, Year]

{N[Hsol[t100doublings],6], Rsol[t100doublings], Rsol[t100doublings]/N[RHmax,1000]}

{Log[2, 1 + t0], Log[2, Ssol[t0]], N[Log[2, Ssol[targettime]],6]}

{Qsol[10^(-42)], Qsol[10^17]}

N[Convert[10^17 Second, Year]]

{Qsol[t0/2], Qsol[t0], Qsol[2 t0], Qsol[targettime]}

SetOptions[ParametricPlot, PlotStyle -> Thickness[.003]]; \
SetOptions[ParametricPlot, PlotPoints -> 1000]; \
g00 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 0, 10^(-13)}, \
                     PlotRange -> {All, {Log[2, Ssol[0]], Log[2, Ssol[10^(-13)]]}}, \
                     DisplayFunction -> Identity]; \
g01 = Graphics[{Thickness[.003], Line[{{2 10^(-16), 0}, {2 10^(-16), 91}}]}]; \   (* Fills spurious *)
                                                                                  (* gap in graph.  *)
g10 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 1/10^13, 1}, \
                     PlotRange -> {All, {Log[2, Ssol[10^(-13)]], Log[2, Ssol[1]]}}, \
                     DisplayFunction -> Identity]; \
g11 = Graphics[{Thickness[.003], Line[{{.001, Log[2, Ssol[10^(-13)]]}, {.001, 134}}]}]; \
                                                                                  (* Fills spurious *)
                                                                                  (* gap in graph.  *)
g20 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 1, 10^3}, \
                    PlotRange -> {All, {Log[2, Ssol[1]], Log[2, Ssol[10^3]]}}, \
                    DisplayFunction -> Identity]; \
g30 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 10^3, 10^10}, \
                    PlotRange -> {All, {Log[2, Ssol[10^3]], Log[2, Ssol[10^10]]}}, \
                    DisplayFunction -> Identity]; \
g40 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 10^10, t0}, \
                    PlotRange -> {All, {Log[2, Ssol[10^10]], Log[2, Ssol[t0]]}}, \
                    DisplayFunction -> Identity]; \
g50 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, t0, 2 t0}, \
                    PlotRange -> {All, {Log[2, Ssol[t0]], Log[2, Ssol[2 t0]]}}, \
                    DisplayFunction -> Identity]; \
g60 = ParametricPlot[{Log[2, 1 + t], Log[2, Ssol[t]]}, {t, 2 t0, targettime}, \
                    PlotRange -> {All, {Log[2, Ssol[2 t0]], Log[2, Ssol[targettime]]}}, \
                    DisplayFunction -> Identity]
                    
g0 = Show[g00, g01, PlotLabel -> "g0", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g1 = Show[g10, g11, PlotLabel -> "g1", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g2 = Show[g20, PlotLabel -> "g2", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g3 = Show[g30, PlotLabel -> "g3", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g4 = Show[g40, PlotLabel -> "g4", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g5 = Show[g50, PlotLabel -> "g5", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g6 = Show[g60, PlotLabel -> "g6", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

g000 = Graphics[{Thickness[.003], Line[{{2 10^(-16), 0}, {2 10^(-16), 140}}]}]; \ (* Fills spurious *)
                                                                                  (* gap in graph.  *)
fig4graph = Show[g0, g1, g2, g3, g4, g5, g6, g000, \
                 PlotRange -> {All, {Log[2, Ssol[0]], Log[2, Ssol[targettime]]}}, \
                 PlotLabel -> "Figure 4 graph = g0 ⋃ ⋯ ⋃ g6", ImageSize -> {1050, 650}, \
                 DisplayFunction -> $DisplayFunction]
                 
Print[StringForm["If the graphs extend beyond the righthand margin, try lowering the magnification factor in Format -> Magnification."]]

Print[StringForm["$Path = ``", $Path]]
savepath = $Path;
Print[StringForm["If the $Path variable as shown has unwanted or repeated appendages, you can remove the last n of them with the command $Path = Drop[$Path,-n] .  If you happen to drop more than intended, you can recover with the command $Path = savepath ."]]