From the perspective of "memory stack X heap Y global Z", you should limit X+Y to the ~half the memory per core. You can set Z to anything, because it will be allocated on demand from the heap (at least in all of the GA back-ends I have inspected). In contrast, the stack+heap is allocated at initialization. If you request more than is feasible, NWChem is likely to crash.
Jeff