From 5db4f484656d16daf238fc06a6376c469694a8e6 Mon Sep 17 00:00:00 2001 From: edoapra Date: Tue, 26 Aug 2025 15:04:55 -0700 Subject: [PATCH] fix potcorr keyword set potcorr=t when using SES --- src/solvation/cosmo_initialize.F | 4 ++-- src/solvation/cosmo_input.F | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/solvation/cosmo_initialize.F b/src/solvation/cosmo_initialize.F index 8cbebadc51..aa5d218e67 100644 --- a/src/solvation/cosmo_initialize.F +++ b/src/solvation/cosmo_initialize.F @@ -258,7 +258,6 @@ c D cosmo_cavity = COSMO_CAVITY_VDW cosmo_screen = COSMO_SCREEN_ST cosmo_sccor = COSMO_SCCOR_LAGRA ! surface charge correction adapted for geometry optimzations - cosmo_ptcor = .false. ! correct potentials in case of outlying charge corrections minbem =2 maxbem =4 ! used in Klamt-Schuurmann model but not in ! York-Karplus model @@ -300,7 +299,8 @@ c endif status = rtdb_get(rtdb,'cosmo:screen',mt_int,1,cosmo_screen) status = rtdb_get(rtdb,'cosmo:sccor',mt_int,1,cosmo_sccor) - status = rtdb_get(rtdb,'cosmo:ptcor',mt_log,1,cosmo_ptcor) + if(.not.rtdb_get(rtdb,'cosmo:ptcor',mt_log,1,cosmo_ptcor)) + I cosmo_ptcor = .false. ! correct potentials in case of outlying charge corrections status = rtdb_get(rtdb,'cosmo:minbem',mt_int,1,minbem) status = rtdb_get(rtdb,'cosmo:maxbem',mt_int,1,maxbem) status = rtdb_get(rtdb,'cosmo:ificos',mt_int,1,ificos) diff --git a/src/solvation/cosmo_input.F b/src/solvation/cosmo_input.F index 20ad7323bc..78685b41a9 100644 --- a/src/solvation/cosmo_input.F +++ b/src/solvation/cosmo_input.F @@ -380,6 +380,8 @@ c cosmo_cavity = COSMO_CAVITY_SES c use KS model by default when using SES cavity do_cosmo_model=DO_COSMO_KS +c correct potential when using SES + cosmo_ptcor=.true. else write(luout,*)"invalid option for CAVITY, valid options are:" write(luout,*)"- VDW for a van der Waals cavity" @@ -393,6 +395,9 @@ c use KS model by default when using SES cavity if (.not. rtdb_put(rtdb,'cosmo:do_cosmo_model',mt_int,1, C do_cosmo_model)) $ call errquit('cosmo_input: rtdb put failed',912, RTDB_ERR) + if (.not. + $ rtdb_put(rtdb,'cosmo:ptcor',mt_log,1,cosmo_ptcor)) + $ call errquit('cosmo_input: rtdb put failed',913, RTDB_ERR) c c --- ndiv: specifies the division level for the triangles on c --- sphere surface when a SES cavity is used. @@ -572,11 +577,11 @@ c if (.not. rtdb_put(rtdb,'cosmo:sccor',mt_int,1,cosmo_sccor)) $ call errquit('cosmo_input: rtdb put failed',911, RTDB_ERR) c -c --- no_potcor flag: for debugging purposes, disable the potential +c --- potcorr flag: use the potential c correction associated with charge corrections c else if(inp_compare(.false.,'potcorr',field)) then - cosmo_ptcor=.false. + cosmo_ptcor=.true. if (.not. $ rtdb_put(rtdb,'cosmo:ptcor',mt_log,1,cosmo_ptcor)) $ call errquit('cosmo_input: rtdb put failed',911, RTDB_ERR)