HIM: The Hallberg Isopycnal Model
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.
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
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 (Robert.Hallberg@noaa.gov) if you would like to be informed of future
HIM releases or bug fixes.
Nice code features with HIM:
- 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.)
- NetCDF output, containing a wide variety of instantaneous and time averaged
diagnostic fields, is easily produced and is readily extended.
- Diagnostic code exists for calculating the exact time mean momentum,
and continuity balances. (Work on exact energy and potential vorticity balances
- HIM Runs on parallel machines using 1-D or 2-D message passing (via SHMEM or MPI).
- 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
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 is driven with a flexible range of surface fluxes – whatever is appropriate for a
- 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.