This commit introduces a special case for the restart file writing
code. In particular we no longer write dynamic data vectors (e.g.,
*WEL, *GRP, *CON) to the restart file if we're being asked to output
the initial condition (i.e., report step/sequence number 0).
Add the report step as a new explicit parameter to createInteHEAD()
instead of inferring this value from the "sim_step" and output
dynamic sizes as zero for report_step=0. While here, also correct
an omission from earlier commit 7986e99e. We must ensure that the
maximum number of wells in the field (intehead[163]) is at least as
large as the current number of active wells (intehead[16]).
Update "intehead" test to account for report_step being passed
directly as an argument to InteHEAD::stepParam().
This commit allows clients to derive an InteHEAD::TimePoint (renamed
from InteHEAD::Date) from a calendrical start point (std::time_t)
and an elapsed time in seconds. This is generally useful for
restart purposes which needs to fill in Y-m-d H:M:S information in
INTEHEAD and has other uses as well. Demonstrate utility in a new
unit test that also shows leap year handling.
While here, also add fractional second resolution to the time-point
handling. INTEHEAD(411) already has microsecond precision and we
should leverage that support.