NBO Limits - Where are they enforced

In trying to use the internal NBO (v5) code I have encountered the 300 atom limit. Does this limit derive from the Q-Chem internal code or is it a part of the NBO code? If I use the external NBO code (i.e. NBO7) it the 300 atom limit enforced by Q-Chem or can I use the 999 limit in the NBO7 code?

It’s a hard-coded limit within the NBO5 code that could be modified easily if you have source code access. (Was increased to 300 by me, in 2018, but the memory footprint of NBO is rather small and there was no particular reason to stop at 300 except that was sufficient for whatever I was doing at the time.)

Thanks John.

I have the NBO7 source code so if I use that Q-Chem won’t get in my way?

They are separate. Q-Chem ships with NBO5 inside (and that internal copy of NBO5 is where the hard-coded limit lives), but there is an external interface to NBO6 and NBO7. Should be fine; all Q-Chem supplies in the latter cases are the density matrices and some basis function info.

To use the external (user-supplied) version of NBO,

NBO = TRUE ! as for any NBO calc
NBO_EXTERNAL = TRUE ! use the external interface


As described in the manual, you need to set an environment variable $NBOEXE to point to the binary of your external copy of NBO. This has been tested recently by the office for both NBO6 and NBO7.

Thanks for your reply.