def create_species_model(
    vaccination_states,
    non_vaccination_state,
    virus_states,
    areas,
    species_comp,
):
    """Create species of the model.

    Parameters
    ----------

    vaccination_states : list of strings
        List containing the names of the vaccinations containing a state for
        non-vaccinated individuals.

    non_vaccination_state : str
        Name of state indicates non-vaccinated individuals.

    virus_states : list of strings
        List containing the names of the virus types.

    areas : list of strings
        List containing the names of the areas.

    species_comp : list of strings
        List containing the names of the compartments. Should not be changed.


    Returns
    -------
    species : dict
        Dictionary that contains the species names as keys and dicitonaries,
        that specify all parameters for the species, as values.
    """

    species = {}
    for index_compartments in species_comp:
        for index_areas in areas:
            for index_vaccination in vaccination_states:
                for index_virus in virus_states:
                    if index_compartments == "susceptible":
                        species_combined = (
                            f"{index_compartments}_{index_areas}_{index_vaccination}"
                        )
                    else:
                        species_combined = f"{index_compartments}_{index_areas}_{index_vaccination}_{index_virus}"

                    amount_t0 = 0
                    species[species_combined] = {
                        "compartment": index_areas,
                        "initial_amount": amount_t0,
                    }
    return species