.. index:: libctl, guile; libctl .. _libctl: libctl ====== Description ----------- 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): .. code-block:: bash $ 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. Source ------ http://ab-initio.mit.edu/wiki/index.php/Libctl License ------- 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 :ref:`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. .. code-block:: bash $ 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