Gaussian 03 is generally referred to as an ab initio electronic structure program. It predicts the energies, molecular structures, and vibrational frequencies of molecular systems, along with molecular properties derived from these basic computation types.

This document provides basic instructions on running Gaussian and configuring your account on Strauss. It is not a Gaussian tutorial. For more complete information, please consult the online Gaussian documentation.


Getting started with Gaussian: Setting up your UNIX account

Gaussian is installed in the directory /opt/Gaussian/current on Strauss. Throughout this document, the installation directory is referred to as g03root.

You must configure your UNIX account to use Gaussian on Strauss. You will source a file that will define a set of environment variables and source another file provided by Gaussian to configure your account properly.

For tcsh or csh shell users, use

	% source /opt/Gaussian/bin/setup-gaussian.csh 

For bash or sh shell users, use

	$ source /opt/Gaussian/bin/ 

You must have a large scratch directory for storing Gaussian's temporary files. If you do not already have a /scratch/UDelNetID  directory on Strauss, then you will get the following error

	ERROR:  Please request a /scratch directory on strauss before using Gaussian.
and you must request one from IT. Note that it takes at least 24 hours to process the request.

To submit a request to create your scratch directory, /scratch/UDelNetID, follow these steps.

  • Log into the IT network page. Type your UDelNet ID in the UDelNetID:(username) box. Type your password in the Password box, and click the Log in button.
  • Select Request a disk quota change to load the Quota Requests page.
  • On the Quota Requests page, select scratch (advanced users) from the Filesystem pull-down menu. Type "500" in the Requested Increase box and "Gaussian user" in the Reason for Request box. Then click the Submit button.
  • Your request will take at least 24 hours to process. If your directory /scratch/UDelNetID  has not been created after 24 hours have passed, contact the IT Help Center.


Running Gaussian

Before running Gaussian, you must properly configure your UNIX account on Strauss. The configuration instructions are in the previous section, Getting started with Gaussian.

  • Starting a Gaussian job

  • Many Gaussian jobs may take weeks to complete. Since Strauss is a shared system, we request that you start your Gaussian job using the nice command. For example,
    	nice g03 input_data_file &

    starts a job having a Gaussian input data file named The filename must end with a .com extension, although the ".com" is not typed as part of the command.

    Output files are created in the directory containing the input data file. Therefore, it is good practice to create a separate directory for each input data file and to cd to that directory before running Gaussian. If any output file (including a checkpoint file) already exists when Gaussian tries to create it, Gaussian will overwrite it.

    A sample input data file for Gaussian might be named and contain the following lines.

    	# SP, RHF/STO-3G punch=archive trakio scf=conventional
         Gaussian Test Job 00
         Water with archiving
         0 1
         H 1 0.96
         H 1 0.96 2 109.471221

    When you run Gaussian, the system displays your job's main process ID. You can use the process ID to track your job and the work files that Gaussian generates. For example,

    	% nice g03 test000 &
         [1] 2418

    shows the main process ID associated with this Gaussian job is 2418.

  • Using multiple CPUs
  • Use the mpstat command to determine how many of Strauss' CPUs are at least 40% idle at that moment. (The "idl" column shows a CPU's current "idle %.") For example, the example below from mpstat shows that five processors, CPUs 12-15 and 20, are "sufficiently idle" for consideration.

    	% mpstat
         CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys wt idl
           0   70   1  111   698  854 1052  184  120  327    0   771   89   6 1   4
           1   40   1  488   836  639  401  197  322  266    0    57   54  17 1  27
           2   38   1  377   824  660  271  163  305  258    0   606   55  16 1  28
           3   35   1  494   782  640   42  140  255  257    0   212   62  18 1  19
          12   24   0   92   454  333  416  116  115   19    0   118   40  16 0  44
          13   16   0  531   370  290  378   74  105   18    0   138   35  14 0  52
          14   11   0  539   357  291  340   62   93   16    0    40   35  16 0  49
          15    9   0  540   351  291  304   54   81   15    0   489   36  17 0  46
          20  389   0  174   521  409  472  103  126   27    0   426   41   6 0  53
          21  484   1  202   809  624 1011  164  268   69    0   689   74  11 0  15
          22  435   1  951   847  696  898  135  234   62    0    97   71   9 0  20
          23  609   0  428   765  624  741  122  186   55    0   209   86  11 0   2

    Since Strauss is a system shared by others, we request that you do not specify more than half of the "sufficiently idle" CPUs in Gaussian's %NProcShared command. For this example, you could specify up to two CPUs at the beginning of your Gaussian input data file.

  • Gaussian temporary files
  • Gaussian's temporary work files are stored in the directory specified by the value of the $GAUSS_SCRDIR environment variable, for example, /scratch/jdoe. The extension on each filename correspond to the file's purpose. Each name starts with the same stem, Gau-ProcessID,  based on the process ID of the controlling job. The initial Gaussian process may also spawn other processes with their own related process IDs.

    In this example, the actual processes running for process ID 2418 are 2418, 2421 and 2422.

    jdoe 2418 2417  g03 test000
    jdoe 2421 2418  sh -c /opt/Gaussian/g03-d02/g03/l1.exe /scratch/jdoe/
    jdoe 2422 2421  /opt/Gaussian/g03-d02/g03/l1.exe /scratch/jdoe/Gau-2418.inp -scr

    The temporary files are stored in the scratch directory /scratch/jdoe. Note the process IDs used in their names.

    % ls /scratch/jdoe
    Gau-2418.inp  Gau-2422.d2e  Gau-2422.rwf
    Gau-2422.chk  Gau-2422.scr

    The purpose of these temporary Gaussian files is noted below.

    • Checkpoint file: Gau-processID.chk
    • Read-Write file: Gau-processID.rwf
    • Two-Electron Integral file:
    • Two-Electron Integral Derivation file: Gau-processID.d2e
    • Internal input file: Gau-ProcessID.inp
    • Internal scratch file: Gau-ProcessID.scr

  • Managing Checkpoint files
  • Gaussian deletes temporary files automatically when the job is successful. However, you may want to save the checkpoint file (.chk) to use later for another Gaussian job, to collaborate with another researcher, for use by a visualization program, or to restart a failed job. To accomplish this, specify a file or directory name for the checkpoint file by putting a %Chk command at the beginning of your Gaussian input data file. For example, if $GAUSS_SCRDIR is defined as /scratch/jdoe, then setting


    will create the checkpoint file /scratch/jdoe/test000.chk. It will not be removed even if the Gaussian job is successful.

  • Checking Your Gaussian Job
  • You can check on the status of your job by viewing the contents of the input_data_file>.log file.

    If the Gaussian job is completed successfully, then the .log file will contain a random quotation and indicate normal termination. For example, the log file test000.log, resulting from a successful run, might look like the following.

    The archive entry for this job was punched.
    The best way to pay for a lovely moment is to enjoy it.
    -- Richard Bach
    Job cpu time:  0 days  0 hours  0 minutes  4.4 seconds.
    File lengths (MBytes):  RWF=     13 Int=      2 D2E=      0 Chk=
    9 Scr=    1
    Normal termination of Gaussian 03 at Thu Jun  7 15:45:38 2007.


Gaussian documentation

Gaussian documentation can be viewed online at the Gaussian Inc. website.

After configuring your UNIX account for Gaussian use, you can also get general information and a list of help topics by typing the following command on Strauss

	% ghelp 

Sample input data files may be found in $g03root/g03/tests/com/ on Strauss.


Gaussian utility programs

The following table lists the function and names of Gaussian's utility programs.

c8603 Converts checkpoint files from previous program versions to Gaussian 03 format.
chkchk Displays the route and title sections from a checkpoint file.
cubegen Standalone cube generation utility.
cubman Manipulates Gaussian-produced cubes of electron density and electrostatic potential (allowing them to be added, subtracted, etc.).
formchk Converts a binary checkpoint file into an ASCII form suitable for use with visualization programs and for moving checkpoint files between different types of computer systems.
freqchk Prints frequency and thermochemistry data from a checkpoint file. Alternate isotopes, temperature, pressure and scale factor can be specified for the thermochemistry analysis.
freqmem Determines memory requirements for frequency calculations.
gauopt Performs optimizations of variables other than molecular coordinates.
ghelp On-line help for Gaussian.
mm Standalone molecular mechanics program.
newzmat Converts between various molecular geometry specification formats.
testrt Route section syntax checker and non-standard route generation.
unfchk Converts a formatted checkpoint file back to its binary form (e.g., after moving it from a different type of computer system).


Where to find Gaussian

Gaussian is available on Strauss. If you are interested in installing Gaussian on a departmental server or any UD-owned computer that meets the platform specifications, please contact Patrick McMahon for more information.