Install CitcomS

Q: What are the dependencies of CitcomS-2.2 or later?

CitcomS-2.2 or later depends on the MPI library. In addition, if you like to use the Pyre framework (which provides an ease-of-use environment), you will need Python 2.3 or newer. (Note that if your machine is 64-bit, you will need Python 2.4.)


Q: I want to use CitcomS in the old way (pure C code, no Python). How can I do that?

You can configure CitcomS to only use C code by running:

  ./configure --without-pyre

before compiling the code.


Q: What does it mean when “configure” reports this error message

  OverflowError: signed integer is greater than maximum

Are you on a 64-bit machine? If so, you will need to upgrade your Python to v2.4 or newer. Python 2.3 or earlier is not 64-bit safe.


Q: The gcc/python/mpi on my system is too old, but I don't have the privilege to update the software. How can I install gcc/python/mpi under my home directory?

1 Get the tarball of gcc/python/mpi and untar it

2 cd into the untarred directory

3 Run the following to install the package under the directory $HOME/opt

  ./configure --prefix=$HOME/opt && make && make install 

4 Add $HOME/opt/bin into your $PATH and (maybe) $HOME/opt/lib into your $LD_PATH_LIBRARY.

Documentation for Developers

Q: I want a specific temperature boundary condition. Where to modify?

Look at lib/ directory, the function full_temperature_boundary_conditions() in Full_boundary_conditions.c or regional_temperature_boundary_conditions in Regional_boundary_conditions.c is the function you need to modify.


Q: I want a specific velocity boundary condition. Where to modify?

Look at lib/ directory, the function full_velocity_boundary_conditions() in Full_boundary_conditions.c or regional_velocity_boundary_conditions() in Regional_boundary_conditions.c.


Q: I want a specific rheology law. Where to modify?

Look at lib/ directory, the function get_system_viscosity() in Viscosity_structures.c.


Q: I want a new equation of state or a new law for heat expansivity, heat capacity, or thermal conductivity. Where to modify?

Look at lib/ directory, the function () in Material_properties.c.