def make_variogram(nug, nst, it1, cc1, azi1, hmaj1, hmin1, it2=1, cc2=0,
    azi2=0, hmaj2=0, hmin2=0):
    """Make a dictionary of variogram parameters for application with spatial
    estimation and simulation.

    :param nug: TODO
    :param nst: TODO
    :param it1: TODO
    :param cc1: TODO
    :param azi1: TODO
    :param hmaj1: TODO
    :param hmin1: TODO
    :param it2: TODO
    :param cc2: TODO
    :param azi2: TODO
    :param hmaj2: TODO
    :param hmin2: TODO
    :return: TODO
    """
    if cc2 == 0:
        nst = 1
    var = dict([('nug', nug), ('nst', nst), ('it1', it1), ('cc1', cc1), (
        'azi1', azi1), ('hmaj1', hmaj1), ('hmin1', hmin1), ('it2', it2), (
        'cc2', cc2), ('azi2', azi2), ('hmaj2', hmaj2), ('hmin2', hmin2)])
    if nug + cc1 + cc2 != 1:
        print(
            '\x1b[0;30;41m make_variogram Warning: sill does not sum to 1.0, do not use in simulation \x1b[0m'
            )
    if (cc1 < 0 or cc2 < 0 or nug < 0 or hmaj1 < 0 or hmaj2 < 0 or hmin1 < 
        0 or hmin2 < 0):
        print(
            '\x1b[0;30;41m make_variogram Warning: contributions and ranges must be all positive \x1b[0m'
            )
    if hmaj1 < hmin1 or hmaj2 < hmin2:
        print(
            '\x1b[0;30;41m make_variogram Warning: major range should be greater than minor range \x1b[0m'
            )
    return var
