Partial optimization in Gaussian09

There are several ways to do partial optimization (freeze coordinates) in Gaussian.

  • One of them is to add “ModRedundant” to Opt or Geom keyword and to write

after coordinate section. “F” here means freeze, and integer stands for atom number.

  • Another one is to add “ReadOpt” to Opt keyword and to add
noatoms atoms=1-4

after Cartesians. This will exclude the first four atoms from optimization. BTW, you definitely should read the section about “ReadOptimize” option if you haven’t before.

  • The third one is using a freeze-code. I came across this method in the post at ResearchGate portal. The idea is simple: you add 0 (or nothing) between an atom symbol and its coordinates if the position of the atom should be optimized, and -1 if you want to freeze it.
C   0   1.5841970000         -2.9056620000          0.0000300000
C  -1   3.2294750000          0.7041530000          0.0001550000

The first atom in the example will be included in the optimization and the second will be frozen.

Just that simple!

And something more: if you restart your optimization from .chk file, freezing will be preserved. Enjoy!

P.S. Also check Dr. Barroso’s post on the topic.

This post was adopted and updated from my old blog.


  1. Thank you but that’s not what I would like to do. I want to freeze one particular coordinate, i.e. a dihedral angle; say I want to keep D1 constant during optimization of this hydronium:
    B1 0.97026220
    B2 0.96964597
    B3 0.96000000
    A1 120.00000000
    A2 120.00000000
    D1 -179.37111574

    Typing an F after the numerical value for D1 doesn’t do it; the variable still gets optimized (and changed)? Many thanks, Peter

    1. I do not use z-matrices often, but as I understand from the Gaussian manual, you can just separate the variables you want to freeze with a blank line. I found an example here:
      # RHF/STO-3G opt=z-mat

      title : methanol

      0 1
      H 1 R1
      H 1 R1 2 A1
      H 1 R1 2 A1 3 D1
      O 1 R2 2 A1 3 -D1
      H 5 R3 1 A2 2 D2

      R1 1.083
      R2 1.44
      A1 109.47122
      D1 120.0

      R3 0.96
      A2 104.48
      D2 180.0

      R1, R2, A1 and D1 will be allowed to vary whereas R3, A2 and D2 won't be.

      As the manual says, you can also separate the frozen variables by the following line:


      Hope this helps.

Leave a Reply

Your email address will not be published. Required fields are marked *