def courant(dx, dt, v_max, **kwargs):
  """
  Calculate the Courant's number describing
  stability of the numerical scheme.
  
  Parameters
  ----------
  dx : float 
    Size of the spatial grid cell [m].
  dt : float 
    Time step [s].
  v_max : float
    Max. velocity of the model.
  
  Returns
  -------
  C : float 
    Courant's number used later in 
    CFL criterion C < C_max where 
    C_max is scheme-specific.
  
  Notes
  -----
  The smaller the more stable.
  
  If C > 1 the fastest wave in the model will 
  be covering more than 1 grid cell per time step.
  
  """
  # GRID VELOCITY (1 GRID-CELL PER TIME-STEP) IN PHYSICAL UNITS
  v_grid = dx / float(dt) 
  # RATIO OF MAX AND GRID VELOCITY 
  C = v_max / float(v_grid) 

  return C