Actively supported, maintained and upgraded by community contributors.

How to Cite

Code changes:

Geodynamics Forum

Bug reports:
Github Issue Tracker



ConMan is a finite element program for the solution of the equations of incompressible, infinite-Prandtl number convection in two dimensions, originally written by Scott King, Arthur Raefsky, and Brad Hager.

ConMan is a public domain program and is distributed free of charge to anyone who wishes to use it, and may be freely copied and modified. ConMan is written in Standard Fortran 77 with cray pointers and runs on most UNIX systems with many Fortran compilers. Porting it to other systems should be straightforward. As with anything free, ConMan comes with no guarantees, but it has been benchmarked against other existing codes.

There are several significant differences that the user familiar with past versions of ConMan will find in the 3.0 version. First, we removed the clunky memory manager library (a set of routines wrapped around the c function malloc) and replaced them with FORTRAN 90's allocate and deallocate functions.?This eliminates many of the compilation problems people experienced with the 2.0 version.?Most of these routines were in files subroutines input and elminp.

As part of a general clean up, we replaced the separate input and elminp (both input subroutines) and created a new input subroutine. As part of this we removed the `element library' function (eglib.F and eg2.F) which was a structure originally designed for different formulations 2D Cartesian, 3D Cartesian, spherical axysymmetric, ...). Because these were never fully developed, it made on sense to retain the cumbersome structure. We also moved all out the subroutines associated with output, into new output subroutine. The user does not need to hunt through the time_driver subroutine to find out where the specific output subroutines are called. Thus, subroutines geoid, fluxke, masflx, print, output_rheol, print_compbm_data, and stress are all in subroutine output.

We also changed the names of many of the subroutines to take advantage of longer subroutine names allowed by modern FORTRAN. Thus f_tlhs has become form_temp_matrix, f_vres has become form_vel-ocity_rhs, f_vstf has become form_velocity_stiffness_matrix. Similarly, subroutine timdrv has become time_driver. As you look through the code there are examples where this could have been carried further.

Second, Picard iteration for the temperature equation is now a runtime option as opposed to a compiler option. This necessitated specifying both implicit and explicit subroutines for the temperature right hand side, form_temp_rhs_implicit and form_temp_rhs_explicit, a well as a form_temp_matrix for the implicit temperature matrix and form_temp_mass_matrix for the lumped mass matrix that has traditionally been used for the explicit version of the temperature solver.

Third, we added the EBA, TALA, and ALA formulations as described in [King et al, 2010]. The compressible formulation is described in Chapter 3 of the manual. This required a number of changes throughout the form_temperature and form_velocity subroutines. We provide a test suite that runs a subset of the problems from [King et al., 2010] that can be used to verify the installation version 3.0.0

Finally, we have added a cookbook of subduction wedge problems based on problems from the subduction zone benchmark paper [vanKeken et al., 2008] and one based on the compressible convection benchmark paper [King et al., 2010]. This required adding a new 'fault' subroutine and a subroutine to implement the Batchelor corner flow boundary conditions. These can be found in the subduct.src directory.

Current Release

Source Packages

ConMan-3.0.0.tar.gz [2020-01-31]

v 3.0 has several significant differences than previous versions See release notes.

View Prior Source Releases

[show] [hide]

ConMan-2.0.0.tar.gz [2008-09-17]

Latest release solves equations of 2D Cartesian incompressible thermal convection with an explicit or Picard time iteration scheme.

User Resources

User Manual

The ConMan user manual is available online.

Community Wiki

Visit the ConMan Wiki page for additional support with building, using, or modifying ConMan.

ConMan Publications List

Research publications using ConMan.

Community Discussion

Browse the CIG Mailing List Archive to find past discussions and previous troubleshooting help, or post to the CIG forum with questions or comments.

Developer Resources

Development Version

If you are interested in getting the development version of this code from the CIG repository, use the following git command:

git clone --recursive

You can also browse the history of modifications in the Git repository.

Issue/Bug Tracker on Github

Browse and/or submit new issues at our Github Issues Tracker.

Doxygen Documentation

Auto-generated Doxygen documentation is available for the Development codebase.

ConMan Users Map

Shows location of all users who downloaded ConMan in the past year (image updated daily.)

map showing location of all users who downloaded ConMan in the last year (image updated daily)
This image was generated using GMT: The Generic Mapping Tools which is released under the GNU LGPL3+. Location data is based on MaxMind's GeoLite database which is released under the Creative Commons CC-BY-SA 3.0.
Sign In