********>Bugfix 42: Author: Ross Walker Date: 04/15/08 Programs: sander Description: QM/MM Calculations with semiempirical should be restricted to singlets only due to the lack of support for calculating the spin pairing energy vs unoccupied orbital energy for unpaired electrons. Fix: apply the following patch to amber9/src/sander/qmmm_module.f apply the following patch to amber9/test/makefile ---------------------------------------------------------------------------- --- src/sander/qmmm_module.f 2008-04-15 10:05:39.000000000 -0700 +++ src/sander/qmmm_module.f 2008-04-15 10:06:23.000000000 -0700 @@ -100,7 +100,7 @@ integer :: qmtheory !Level of theory to use for QM region (Hamiltonian) 1 = PM3, 2 = AM1, 3 = MNDO (Default = PM3) ! 4 = PDDG/PM3, 5 = PDDG/MNDO, 6 = PM3CARB1 integer :: qmcharge !Charge of the QM region in electron units - must be an integer charge. (Default = 0) - integer :: spin !Spin state - default = 1 (singlet). Valid values = 1 to 6. + integer :: spin !Spin state - default = 1 (singlet). Current Valid values = 1 (alternate options not currently available). integer :: verbosity !Controls amount of info printed about qm part of calc - (Default = 0) integer :: itrmax !Maximum number of SCF cycles to conduct before assuming convergence has failed. (Default = 1000). integer :: qmshake !Whether to shake qm atoms if ntc>1 (default = 1 - shake QM atoms) 0 = do not shake. @@ -1297,7 +1297,9 @@ call int_legal_range('QMMM: (Density Matrix Convergence) ', tight_p_conv,0,1) call float_legal_range('QMMM: (SCF Convergence) ', scfconv,1.0D-16,1.0D0) call int_legal_range('QMMM: (PRINT CHARGES) ', printcharges,0,1) - call int_legal_range('QMMM: (Spin State) ', spin,1,6) + call int_legal_range('QMMM: (Spin State) ', spin,1,1) +!RCW: Currently limit spin state to singlets only since the code for spin>1 does not exist / work at present. +! WARNING - IF WE LATER ALLOW SPIN>1 qm2_densit will need updating. call int_legal_range('QMMM: (Peptide Correction) ',peptide_corr,0,1) call int_legal_range('QMMM: (QM-QM RIJ in Core) ',qmqmrij_incore,0,1) call int_legal_range('QMMM: (QM-MM RIJ in Core) ',qmmmrij_incore,0,1) --- test/Makefile 2008-04-15 10:09:57.000000000 -0700 +++ test/Makefile 2008-04-15 10:01:53.000000000 -0700 @@ -128,11 +128,6 @@ cd qmmm2/pure_QM_MD; ./Run.nma_md_qmgb1 cd qmmm2/pure_QM_MD; ./Run.nma_md_qmgb2 cd qmmm2/pure_QM_MD; ./Run.nma_md_qmgb2_saltcon - cd qmmm2/pure_QM_MD; ./Run.nma_md_doublet - cd qmmm2/pure_QM_MD; ./Run.nma_md_triplet - cd qmmm2/pure_QM_MD; ./Run.nma_md_quartet - cd qmmm2/pure_QM_MD; ./Run.nma_md_quintet - cd qmmm2/pure_QM_MD; ./Run.nma_md_sextet cd qmmm2/pure_QM_MD; ./Run.C6H4FCL_md cd qmmm2/pure_QM_MD_shake; ./Run.nma_md cd qmmm2/pure_QM_MD_tight_p; ./Run.nma ------------------------------------------------------------------------------ Temporary Workarounds: Do not use spin>1 in qmmm namelist.