def CalcTimeStep(CFL, diff, conv, dX, dY, Dimension, Model):
    """Return the time step size in the numerical approximation.

    Call Signature:
        CalcTimeStep(CFL, diff, conv, dX, dY, Dimension, Model)

    Parameters
    ----------
    CFL: float
        In this program, CFL is treated as the
            diffusion number for diffusion equations, and
            Courant number for the convection equations.
            Caution: This is not a true numerical definition of CFL though.
    diff: float
        Physics specific coefficient in the diffusion model.
        For example, kinematic viscosity or thermal diffusivity.
    conv: float
        Physics specific coefficient in the convection model.
        For example, speed of sound in the first-order linear wave eq.
    dX: float
        Grid step size along X-axis.
    dY: float
        Grid step size along Y-axis. Value required for 2D applications.
    Dimension: str
        Dimension of the domain. Allowed inputs are "1D" or "2D".
    Model: str
        Model of the governing equation. To see available options for this
        parameter, type the following command on your terminal
            python fetchoption.py "model"

    Returns
    -------
    TimeStep: float
       Time step in the model equation.
    """
    print("Calculating time step size for the simulation: Completed.")
    # ************** DIFFUSION EQN. ******************
    if Model.upper() == "DIFFUSION":
        dX2 = dX*dX
        if Dimension.upper() == "1D":
            TimeStep = CFL*dX2/diff
            return TimeStep
        elif Dimension.upper() == "2D":
            dY2 = dY*dY
            TimeStep = CFL*(1.0/((1/dX2) + (1/dY2)))/diff
            return TimeStep
    # ************** FIRST-ORDER WAVE EQN. *****************
    elif Model.upper() == "FO_WAVE":
        if Dimension.upper() == "1D":
            TimeStep = CFL*dX/conv
            return TimeStep
    # ************** BURGERS EQN. *****************
    elif Model.upper() == "INV_BURGERS":
        if Dimension.upper() == "1D":
            TimeStep = CFL*dX
            return TimeStep
    elif Model.upper() == "VISC_BURGERS":
        if Dimension.upper() == "1D":
            dX2 = dX*dX
            TimeStep = CFL*dX2
            return TimeStep