The ExaStencils project started as a domain-specific language for multigrid solvers on structured grids. Meanwhile, the external DSL ExaSlang is mature enough to used to express full application models. As an example we will show whole-program generation for an ocean model on block-structured grids using a higher discontinuous Galerkin discretization. The generated code is highly scalable and runs on current CPU and GPU supercomputers like SuperMUC-NG or Piz Daint.