void clInsectInfestation::GetData( xercesc::DOMDocument * p_oDoc ) { try { clTreePopulation *p_oPop = (clTreePopulation *) mp_oSimManager->GetPopulationObject("treepopulation"); m_iYearsOfInfestation = 0; ReadParFile( p_oDoc, p_oPop ); FormatQueryString( p_oPop ); } catch ( modelErr & err ) { throw( err ); } catch ( modelMsg & msg ) { throw( msg ); } //non-fatal error catch ( ... ) { modelErr stcErr; stcErr.iErrorCode = UNKNOWN; strcpy( stcErr.cFunction, "clInsectInfestation::GetData" ); throw( stcErr ); } }
void clAggregatedMortality::DoShellSetup( xercesc::DOMDocument * p_oDoc ) { try { clTreePopulation *p_oPop = (clTreePopulation *) mp_oSimManager->GetPopulationObject("treepopulation"); m_iTotalNumSpecies = p_oPop->GetNumberOfSpecies(); ReadParFile( p_oDoc ); GetDeadCodes( p_oPop ); SetUpAppliesTo( p_oPop ); //Calculate probability of a mortality episode float fNumYearsPerTimestep = mp_oSimManager->GetNumberOfYearsPerTimestep(); m_fMortalityEpisodeProbability = fNumYearsPerTimestep / m_fMortalityEpisodeProbability; //Calculate the per-timestep amount to kill m_fMortalityProb = 1 - pow(1 - m_fMortalityProb, fNumYearsPerTimestep); m_fMortalityProb /= m_iNumTreesToClump; } catch ( modelErr & err ) { throw( err ); } catch ( modelMsg & msg ) { throw( msg ); } //non-fatal error catch ( ... ) { modelErr stcErr; stcErr.iErrorCode = UNKNOWN; stcErr.sFunction = "clAggregatedMortality::DoShellSetup" ; throw( stcErr ); } }