public float MarkCohorts(IDisturbance disturbance)
 {
     //  Go backwards through list of cohort data, so the removal of an
     //  item doesn't mess up the loop.
     isMaturePresent = false;
     for (int i = cohorts.Count - 1; i >= 0; i--)
     {
         Cohort cohort = new Cohort(species, cohorts[i]);
         disturbance.ReduceOrKillMarkedCohort(cohort);
         double defoliation = disturbance.CumulativeDefoliation();
         cohort.Fol *= 1 - (float)defoliation;
     }
     return(0);
 }