Last updated: 21. 2.1998, 0:50
IMPLEMENTATION MODULE Helper;
IMPORT SysClock;
IMPORT TimeFunc;
IMPORT h2d_ddepop;
(*++++*****************************************************************)
PROCEDURE CalcPops();
(**********************************************************************)
VAR
i : INTEGER;
lTime : CARDINAL;
SBM2Date : SysClock.DateTime;
BEGIN
SysClock.GetClock(SBM2Date);
TimeFunc.DateTimeToC(SBM2Date,lTime);
(* time in seconds since 1\1\70 *)
lTime := lTime - (92h(*L*) * 24 * 60 * 60); (* time in seconds since 4\1\70 *)
FOR i := 0 TO h2d_ddepop.NUM_STATES DO
h2d_ddepop.pop[i].lPop := VAL(INTEGER,h2d_ddepop.pop[i].a * FLOAT(lTime) * FLOAT(lTime) +
h2d_ddepop.pop[i].b * FLOAT(lTime) +
h2d_ddepop.pop[i].c);
END;
END CalcPops;
(*++++*****************************************************************)
PROCEDURE InitPops();
(**********************************************************************)
VAR
i : INTEGER;
ldSec80 : LONGREAL;
ldSec90 : LONGREAL;
BEGIN
ldSec80 := 3653.0 * 24. * 60. * 60.; (* seconds from 4\1\70 to 4\1\80 *)
ldSec90 := 7305.0 * 24. * 60. * 60.; (* seconds from 4\1\70 to 4\1\90 *)
FOR i := 0 TO h2d_ddepop.NUM_STATES DO
h2d_ddepop.pop[i].a := (ldSec90 * FLOAT(h2d_ddepop.pop[i].lPop80 - h2d_ddepop.pop[i].lPop70) +
ldSec80 * FLOAT(h2d_ddepop.pop[i].lPop70 - h2d_ddepop.pop[i].lPop90)) /
(ldSec90 * ldSec80 * (ldSec80 - ldSec90));
h2d_ddepop.pop[i].b := (ldSec90 * ldSec90 * FLOAT(h2d_ddepop.pop[i].lPop70 - h2d_ddepop.pop[i].lPop80) +
ldSec80 * ldSec80 * FLOAT(h2d_ddepop.pop[i].lPop90 - h2d_ddepop.pop[i].lPop70)) /
(ldSec90 * ldSec80 * (ldSec80 - ldSec90));
h2d_ddepop.pop[i].c := FLOAT(h2d_ddepop.pop[i].lPop70);
END;
CalcPops ();
END InitPops;
END Helper.