--- trunk/gadget/growthcalc.cc 2014/02/10 17:09:07 1 +++ trunk/gadget/growthcalc.cc 2015/04/29 12:55:30 2 @@ -701,6 +701,32 @@ Lgrowth[i] = (growthPar[0] - LgrpDiv->meanLength(i)) * mult; } + + +void GrowthCalcH::calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) { + + growthPar.Update(TimeInfo); + //JMB - first some error checking + if ((handle.getLogLevel() >= LOGWARN) && (growthPar.didChange(TimeInfo))) { + if (isZero(growthPar[1]) || isZero(growthPar[2])) + handle.logMessage(LOGWARN, "Warning in growth calculation - growth parameter is zero"); + if (LgrpDiv->maxLength() > growthPar[0]) + handle.logMessage(LOGWARN, "Warning in growth calculation - length greater than length infinity"); + } + + double mult = 1.0 - exp(-growthPar[1] * TimeInfo->getTimeStepSize()); + int i; + for (i = 0; i < size; i++) + Lgrowth[i] = (growthPar[0] - LgrpDiv->meanLength(i)) * mult; +} + + + + + // ******************************************************** // Functions for GrowthCalcI // ********************************************************