Skip to content

HIM: The Hallberg Isopycnal Model

HIM is a C-Grid isopycnal coordinate ocean model, developed by R. Hallberg at NOAA’s Geophysical Fluid Dynamics Laboratory

HIM is so named because (1) R. Hallberg’s wife is in marketing, and (2) it entirely describes what this model is: it uses an isopycnal vertical coordinate, and R. Hallberg is entirely responsible for its existence.

This web page describes several code features of HIM and algorithmic developments. A much more detailed overview of HIM is also available.

What is HIM?

HIM is a C-grid, isopycnal coordinate, primitive equation ocean model, written in a fairly modular C.

While HIM is qualitatively similar to MICOM, most of the details of the numerics differ.

A deliberately short User’s Guide, describing how to use HIM is available. For ocean modelers with experience in Fortran, but not in C, a short list of tips may help get started.

An overview of the HIM code should provide enough further guidance for many people to figure out where to go to get started.

A deliberately long (but somewhat out of date) technical description is also available for the brave.

HIM1.10 went out for a beta release on June 30, 2002, and again with minor revisions on August 12, 2002. To obtain the HIM code, 3 working examples, and documentation, please go to the HIM page on the GFDL NOMADS Server. You will need to register to obtain the code. Information obtained from this list will not be used for any purpose beyond an indication to us who might be using the model. This registration can be done anonymously if you prefer, but I appreciate your cooperation.

Please e-mail R. Hallberg ( if you would like to be informed of future HIM releases or bug fixes.

Nice code features with HIM:

  1. HIM is sufficiently modular that the time step, parameterizations, and discretizations are easily changed. (For example, two very different time stepping schemes are implemented now within the code.)
  2. NetCDF output, containing a wide variety of instantaneous and time averaged diagnostic fields, is easily produced and is readily extended.
  3. Diagnostic code exists for calculating the exact time mean momentum, and continuity balances. (Work on exact energy and potential vorticity balances is underway.)
  4. HIM Runs on parallel machines using 1-D or 2-D message passing (via SHMEM or MPI).
  5. HIM works without change with any C compiler.

C is such a mature programming language there are no known exceptions to this last point. The NetCDF-3 library is required, but is freely available. An appropriate SHMEM or MPI library is also required for parallel implementations.

Please note that there is no inherent difference in speed between the HIM C-code and equivalent Fortran code. (The C-version was a negligible 1% faster in a recent test with the HIM core.) Historical anecdotes about C being much slower than F77 may be highly out of date, or may apply to a naive or devious C-programming style.

Developments with HIM:

  • HIM uses any generalized orthogonal grid, including all metric terms in the Primitive Equations.
  • HIM is coupled to a bulk surface mixed layer through a variable density buffer layer to avoid some of the difficulties associated with detrainment. There may be an arbitrary number of sublayers within the mixed layer, to facilitate the introduction of horizontal processes or biology in the mixed layer representation.
  • HIM uses a novel diapycnal time stepping scheme, which is qualitatively correct everywhere in parameter space with no time step limit.
  • Richardson number dependent mixing based on Turner’s parameterization is an available option. This dramatically improves the representation of mixing in the gravity currents downstream of sills.
  • Vertical viscosity is used to essentially eliminate Montgomery potential gradient errors near the intersection of isopycnal surfaces with topography.
  • Numerics handle thin layers sufficiently well that a minimum layer thickness of 1 Angstrom works well.
  • The Smagorinsky biharmonic viscosity has been implemented.This is a scale-selective, grid- and flow state-dependent viscosity. Only the time steps must now be adjusted to insure stability as resolutions are changed.
  • Potential temperature and salinity are state variables, with the user’s choice of a linear or fully nonlinear equation of state.
  • Tracers are advected with the monotonic flux-form scheme of Easter (1993), implemented in such a way as to avoid any CFL constraint.
  • User-provided tracer packages (taking care of vertical tracer processes, boundary conditions, chemistry, biology, etc.) may be added with minimal (1-line) changes to the generic HIM code.
  • HIM is driven with a flexible range of surface fluxes – whatever is appropriate for a particular simulation.
  • HIM uses 3-way time splitting: the barotropic mode, baroclinic dynamics, and thermodynamics can all use different time steps. In some instances, this allows the addition of many additional tracers at very modest computational cost.