bgj get scf method: error reading rtdb


Click here for full thread
Clicked A Few Times
It seems like the only values that get written into the RTDB for "bgj:scf_type" are "1" for HF, or "2" for DFT:
[cchang@rrlogin1 src]$ grep -R 'bgj:scf_type' *
ddscf/scf.F:      if (.not. rtdb_put(rtdb, 'bgj:scf_type', MT_INT, 1, 1))
ddscf/scf.F:     $     call errquit('scf: put of bgj:scf_type failed',0, RTDB_ERR)
etrans/et_fock.F:      if (.not. rtdb_put(rtdb,'bgj:scf_type',mt_int,1, itype)) then
mcscf/mcscf.F:      if (.not. rtdb_put(rtdb, 'bgj:scf_type', MT_INT, 1, 1))
mcscf/mcscf.F:     $     call errquit('mcscf: put of bgj:scf_type failed',0,
nwdft/scf_dft/dft_scf.F:      if (.not. rtdb_put(rtdb, 'bgj:scf_type', MT_INT, 1, 2))
nwdft/scf_dft/dft_scf.F:     $     call errquit('dft_scf: put of bgj:scf_type failed',0,
nwdft/so_dft/dft_scf_so.F:      if (.not. rtdb_put(rtdb, 'bgj:scf_type', MT_INT, 1, 2))
nwdft/so_dft/dft_scf_so.F:     $     call errquit('dft_scf_so: put of bgj:scf_type failed',0,
util/bgj.F:      if (.not. rtdb_get(bgj_rtdb, 'bgj:scf_type', mt_int,

I don't see either a 1-byte char or a 4-byte int for "1" or "2" in the RTDB for this key. Two quick questions:
  1. Are integer values written to the RTDB as strings (where I'd expect 1 byte with an octal 061 for ASCII "1"), or as 4-byte ints? The rtdb_put routine treats the value as an MT_INT, but I don't know how the database writes might convert types.

  2. If a hybrid functional is being used, util/bgj.F seems to allow for a RTDB entry of "3" for bgj:scf_type. However, there doesn't seem to be a routine in NWChem to put a "3", and the electron transfer code (which I'm working toward using) wouldn't work with it anyway. BUT, if I'm using a hybrid functional and wanted to try hacking the RTDB just to get past this error, should I try dropping a "2" or a "3" in?