This gave me the following error:
  File "2d_compressible_stratified_2.py", line 180, in <module>
    solve(a == L, out, solver_parameters={'ksp_rtol': 1e-14})
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/solving.py", line 122, in solve
    _solve_varproblem(*args, **kwargs)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/solving.py", line 151, in _solve_varproblem
    appctx=appctx)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/variational_solver.py", line 262, in __init__
    super(LinearVariationalSolver, self).__init__(*args, **kwargs)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/variational_solver.py", line 132, in __init__
    appctx=appctx)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/solving_utils.py", line 213, in __init__
    appctx=appctx)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/assemble.py", line 114, in allocate_matrix
    allocate_only=True)
  File "<decorator-gen-279>", line 2, in _assemble
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/utils.py", line 62, in wrapper
    return f(*args, **kwargs)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/assemble.py", line 182, in _assemble
    inverse=inverse)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/tsfc_interface.py", line 189, in compile_form
    number_map).kernels
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/PyOP2/pyop2/caching.py", line 200, in __new__
    obj = make_obj()
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/PyOP2/pyop2/caching.py", line 190, in make_obj
    obj.__init__(*args, **kwargs)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/firedrake/firedrake/tsfc_interface.py", line 110, in __init__
    tree = tsfc_compile_form(form, prefix=name, parameters=parameters)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/tsfc/driver.py", line 51, in compile_form
    kernels.append(compile_integral(integral_data, fd, prefix, parameters))
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/tsfc/driver.py", line 160, in compile_integral
    ir = fem.compile_ufl(integrand, interior_facet=interior_facet, **config)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/tsfc/fem.py", line 380, in compile_ufl
    result = map_expr_dags(translator, expressions)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/ufl/ufl/corealg/map_dag.py", line 86, in map_expr_dags
    r = handlers[v._ufl_typecode_](v, *[vcache[u] for u in v.ufl_operands])
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/tsfc/ufl2gem.py", line 86, in conditional
    indices)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/gem/gem.py", line 49, in __call__
    obj = super(NodeMeta, self).__call__(*args, **kwargs)
  File "/usr/not-backed-up/firedrake/2016-12-14/firedrake/src/tsfc/gem/gem.py", line 555, in __new__
    assert set(multiindex) <= set(expression.free_indices)
AssertionError