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.new:         *)
(*                                                                                 *)
(*             Windows example:  "C:\\Folder\\Subfolder\\...\\SampleRun.new"       *)
(*                                                                                 *)
(*   Unix, Linux, OS X example:  "Home Directory/Subdirectory/.../SampleRun.new"   *)
(*                                                                                 *)
(*                     When done replacing, evaluate this cell.                    *)
(*                                                                                 *)
(*********        BEGIN ALL SUBSEQUENT RUNS BY EVALUATING THIS CELL.       *********)

Print[StandardForm[StringForm["Now  a) click on Kernel -> Evaluation -> Evaluate Notebook
in the toolbar,"]]]
Print[StandardForm[StringForm["or   b) evaluate cells individually."]]]

<<data.m

<<solveABR0.m

<<ProcEqS.m

<<IterateS.m

{tRQmin, t100doublings, t0} = t /. N[{FindRoot[Rsol[t] == N[RQmin,1000], {t, 10^(-60)},
                                               AccuracyGoal -> 50, PrecisionGoal -> 50,
                                               WorkingPrecision -> 100],
                                      FindRoot[Log[2, Ssol[t]] == 100, {t, 0, 10^(-60)},
                                               AccuracyGoal -> 50, PrecisionGoal -> 50,
                                               WorkingPrecision -> 100],
                                      FindRoot[Rsol[t] == N[R0,100], {t, targettime/2},
                                               AccuracyGoal -> 50, PrecisionGoal -> 50,
                                               WorkingPrecision -> 100]}]

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[{{Log[2, 1 + 10^(-16)], 0}, {Log[2, 1 + 10^(-16)], 134}}]}];
                                                                                 (* Fills spurious *)
                                                                                 (* gap in graph.  *)
 g0 = Show[g00, g01, PlotLabel -> "g0", ImageSize -> {1050, 650},
                     DisplayFunction -> $DisplayFunction]

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[{{Log[2, 1 + 10^(-9)], Log[2, Ssol[10^(-13)]]},
                                       {Log[2, 1 + 10^(-9)], 178}}]}];           (* Fills spurious *)
                                                                                 (* gap in graph.  *)
 g1 = Show[g10, g11, PlotLabel -> "g1", ImageSize -> {1050, 650},
                     DisplayFunction -> $DisplayFunction]

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];
 g2 = Show[g20, PlotLabel -> "g2", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

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];
 g3 = Show[g30, PlotLabel -> "g3", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

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];
 g4 = Show[g40, PlotLabel -> "g4", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

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];
 g5 = Show[g50, PlotLabel -> "g5", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

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];
 g6 = Show[g60, PlotLabel -> "g6", ImageSize -> {1050, 650}, DisplayFunction -> $DisplayFunction]

fig4graph = Show[g0, g1, g2, g3, g4, g5, g6, \
                 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."]]

Map[Round,{Log[2, 1 + t0], Log[2, Ssol[t0]], Log[2, Ssol[targettime]]}]

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

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 ."]]

N[{Q0, Hmax/H0}]     (* = {Row head, Column head} for Table 1 entry *)

N[Qmin,2]                                                 (* Minimum value attained by the
                                                             acceleration parameter Q. *)

N[tRQmin,2] Second                                        (* Time at which Q reached its minimum. *)

N[t100doublings,2] Second                                 (* Time elapsed during the first 100
                                                             doublings of the scale factor R. *)

N[Convert[t0 Second, Year],3]/(10^9 Year) Giga Year       (* Time elapsed from the
                                                             bounce to the present. *)

N[Log[2, Ssol[t0]],4]                                     (* Number of doublings of the scale factor
                                                             R between the bounce and the present. *)

Play[Sin[2Pi 440 t], {t, 0, 1}]