public void addChromosome(Chromosome chrom) throws Exception {
        if (chrom==null) {
            throw new Exception("Error in addChromosome: chrom==null");
        }
        if ((ploidy==2 && chrom.getClass().equals(TetraploidChromosome.class)) ||
            (ploidy>2 && !chrom.getClass().equals(TetraploidChromosome.class))) {
            throw new Exception("Error in addChromosome: class of chrom does not match ploidy");
        }
        if (!this.equals(chrom.getPopdata())) {
            throw new Exception("Error in addChromosome: popdata invalid");
        }
        chromosome.add(chrom);
        //note that the same chromosome may be added multiple times, but
        //each instance will be non-homologous to the others
    }