---------------------------------------- Gaussian-09 C.01/NBO6 Installation Guide ---------------------------------------- The following describes the steps required to build an NBO6-compatible Gaussian-09 (pre-Rev.D) executable. You must have access to the source distribution for G09. Both source and binary distributions of NBO6 support the interface to G09 pre-Rev.D. NBO6 communicates with G09 via an external program interface beginning with G09 Rev.D. See INSTALL.gaussian for instructions for installing NBO6 with G09 Rev.D. The following lists the possible combinations of G09 and NBO6 distributions that are supported: ------------------------------------------------------------------ NBO6 Gaussian-09 D.01 Gaussian-09 pre-D.01 distribution binary source binary source ------------------------------------------------------------------ binary yes yes no yes source yes yes no yes ------------------------------------------------------------------ See INSTALL.gaussian for instructions for Rev D.01. Gaussian-09 consists of a set of executables (links), including NBO 3.1 which is implemented in Link 607 (l607.exe). Interfacing NBO6 to G09 requires that you rebuild l607.exe after replacing the l607.F source file of the G09 distribution by a l607.F file from the NBO6 distribution. The NBO6 l607 executable that you build serves as a message-passing interface between host G09 and the client NBO6 programs. It is critical that G09 and NBO6 use the same integer length (either i4 or i8), otherwise the message-passing interface (and NBO6) will fail. If G09 is compiled with 32-bit integers (i4), l607.exe must likewise be built with 32-bit integers, and the NBOEXE environment variable must identify the full path to and filename of the 32-bit NBO6 executable (nbo6.i4.exe). If 64-bit integers are used instead, the 64-bit l607.exe must be built and NBOEXE should identify the 64-bit NBO6 executable (nbo6.i8.exe). If uncertain which integer length should be employed, choose one (either i4 or i8). Build G09, set the NBOEXE environment variable appropriately, and run a test calculation with NBO. If NBO fails, you've likely selected the wrong integer length. Rebuild G09 with the appropriate integer length. See step 2 and 4 below for details relating to integer length. Complete the following steps to install NBO6 via Link 607. 1. Build G09 as described by that program's installation instructions. Ensure that G09 executes without error before attempting to install NBO6. 2. [If you have a binary NBO6 distribution, you should skip to step 4.] Go to the top-level directory of the NBO6 source distribution. Edit Make.config. Ensure that the following variables are set appropriately for your environment. FC = gfortran CC = gcc INT = i4 ! i4 or i8 OS = linux NBODIR = /path/to/nbo6 ! path to top-level directory BLAS = false ! true, if you want NBO to use BLAS BLASLIB = -L/usr/local/lib -lblas STATIC = false FTNCHEK = false FLUSH = false The Fortran compiler selected need not be the same as that used to compile G09. The integer length selected must be consistent with that used to compile G09. 3. Type 'make' in the NBO6 top-level directory to build the NBO6 client program. Make will also prepare the replacement L607.F source code for G09 and compile the message-passing routines. 4. At least three files should exist at this point in the nbo6/bin directory. These include nbo6.i4.exe and/or nbo6.i8.exe (the NBO6 executable), g09nbo.i4.F and/or g09nbo.i8.F (the replacement L607.F code for G09), and nbhost.o (object code for socket-pair communication between G09 and NBO6). Go to the G09 installation directory and replace the l607.F source file in this directory by the g09nbo.i4.F or g09nbo.i8.F file of the nbo6/bin directory, e.g., cd $g09root/g09 cp /path/to/nbo6/bin/g09nbo.i4.F ./l607.F You must select here the i4 or i8 source file that is consistent with the integer length of G09. Also, make a subdirectory called nbo6 and copy the nbhost.o file from step 3 into this subdirectory. mkdir $g09root/g09/nbo6 cp /path/to/nbo6/bin/nbhost.o $g09root/g09/nbo6/nbhost.o 5. Go to the bsd subdirectory (cd $g09root/g09/bsd) and determine which makefile is used to build G09. Note that g09.make is a symbolic link to this makefile: cd $g09root/g09/bsd ls -l g09.make For example, on an i386 machine, g09.make is linked to i386.make. Edit the makefile (e.g., edit i386.make on an i386 machine) and search for the section of the file that builds the l607.a library (search for 'l607.a:'). Ensure that the last two lines of this section read: $(RUNAR) rlv l607.a nbo6/nbhost.o $(RUNRAN) l607.a Note that you will have to insert the first of these two lines into the section. The first character of this line MUST be a tab character, NOT spaces!! This section of the makefile compiles the l607.F source code and stores the resulting object code into a library called l607.a. The line that you insert ensures that the nbhost.o object code (in $g09root/g09/nbo6) is also included in the l607.a library. 6. Return to the G09 installation directory, discard the old l607.a and l607.exe files, and rebuild G09. You can either rebuild the entire G09 program using bsd/bldg09, or rebuild just l607.exe using 'mg l607.exe', e.g., cd $g09root/g09 rm -f l607.a rm -f l607.exe bsd/install source bsd/g09.login mg l607.exe chmod 750 l607.exe The resulting G09 executable (l607.exe) is NBO6-compatible. 7. Modify the script that you use for G09 calculations to set the NBOEXE environment variable to give the path and filename of the NBO6 executable, e.g., setenv NBOEXE /path/to/nbo6/bin/nbo6.i4.exe If NBOEXE is not set appropriately, l607.exe will fail and report that the NBO6 program cannot by found. You may optionally set the environment variable NBOFIL to specify the default filename for the external files used by NBO6. For example, setenv NBOFIL myjob will set the filename to 'myjob' (e.g., myjob.48, myjob.47, etc.) Otherwise, the default filename is 'FILE'. 8. Sample g09test input (.g09) and output (.arc) files are provided in /path/to/nbo6/g09tests. Note: The pop=nbo6, pop=nbo6read, and pop=nbo6del keywords in the sample input files initiate NBO6 analysis for G09 Rev.D. For pre-Rev.D G09 calculations, delete the '6' (i.e. pop=nbo, pop=nboread, and pop=nbodel). Eric Glendening (glendening@indstate.edu) maintains the G09/NBO interface. Contact him if you encounter problems with this installation. Last updated: 1-February-2014