libctl is a Guile-based library for implementing flexible control files for scientific simulations.

User instructions

libctl is available via the modules system. To add it to your environment run (for example):

$ module load libctl/4.0.0

The main library is called ‘libctl.a’ and there’s a program for generating C interface code for libctl control files, ‘gen-ctl-io’.

See the gen-ctl-io man page and libctl manual for user and developer documentation.


GNU General Public License/Lesser General Public License (the libctl website quotes both).

Admin notes

libctl was installed mainly as it is recommended for use with Meep. I compiled it for both intel and gcc as it might be useful in development work. The build system uses a standard autoconf approach.

$ ml purge
$ ml intel
$ ./configure --prefix=/common/debian/9.1/Compiler/intel/2017.4/libctl/libctl-4.0.0 CC=icc CXX=icpc F77=ifort CFLAGS='-fPIC' FFLAGS='-fPIC'
$ make && make install