How to set dimensions in ORAC : The config.h file

Being written mostly in fortran77 language, the ORAC program does not dynamically allocate the required memory. Memory allocation is done statically and dimensions throughout the code are given in a single file named config.h. To adapt the size of the program to other problems the config.h file need to be changed and the program recompiled. In the current distribution an ancillary awk script that builds the config.h file has been provided. This script is called configure and can be found in the tests directory. configure parses a general input file for ORAC and produces, to the standard output, the corresponding config.h file.

A certain number of ORAC routines contains INCLUDE statements. The corresponding include files, which may contain PARAMETER, COMMON and general dimension statements ( REAL, INTEGER etc.), have by convention a .h suffix and are generated by the standard preprocessor (/lib/cpp) from .inc files and the config.h file. The .inc files are templates of include files. where constants are initialized to character symbols (some are listed below). When making the executable, these character symbols are replaced by the standard preprocessor with their numeric values assigned in the config.h file.

The meaning of most of the character symbols contained in the config.h is explained in the file itself. Here, it is worth mentioning a few:

The total size of the code depends on the number of particles in the system and on the kind of calculation to be carried out. To give an idea, an 8000 atoms system, running with PME, linked cell and computing e.g. the VACF, requires about 25 Mb of memory. The equilibration of the solvated reaction center (33000 atoms) requires around 85 Mb.

procacci 2021-12-29