Index: source/openmm/omm_ecomponents.src =================================================================== --- source/openmm/omm_ecomponents.src (revision 369) +++ source/openmm/omm_ecomponents.src (working copy) @@ -65,22 +65,30 @@ end function omm_incr_eterms - subroutine omm_assign_eterms(context, state, enforce_periodic) + subroutine omm_assign_eterms(context, enforce_periodic) + use OpenMM, only: OpenMM_State_create, OpenMM_State_destroy, & + OpenMM_State_getPotentialEnergy, OpenMM_KJPerKcal, & + OpenMM_State, OpenMM_Context use omm_plus, only: OMM_Context_getState + use chm_kinds, only: chm_real + use energym, only: ETERM + implicit none integer*4, intent(in) :: enforce_periodic type(OpenMM_Context), intent(in) :: context - type(OpenMM_State), intent(inout) :: state + type(OpenMM_State) :: state real(chm_real) :: Epterm integer*4 :: itype, group if(numeterms>=0) then do itype = 0, numeterms group=ishft(1,itype) + call OpenMM_State_create(state) call OMM_Context_getState(context, OpenMM_State_Energy, & enforce_periodic, group, state) Epterm = OpenMM_State_getPotentialEnergy(state) / OpenMM_KJPerKcal + call OpenMM_State_destroy(state) ETERM(neterm(itype)) = Epterm enddo Index: source/openmm/omm_main.src =================================================================== --- source/openmm/omm_main.src (revision 369) +++ source/openmm/omm_main.src (working copy) @@ -749,7 +749,7 @@ call export_periodic_box(state) call avfl_ucell_update() endif - call omm_assign_eterms(context, state, enforce_periodic) + call omm_assign_eterms(context, enforce_periodic) navestps = navestps + 1 call avfl_update(eprop, eterm, epress) if (todo_now(NPRINT, istep) .or. istep == istop) then @@ -810,7 +810,7 @@ call OpenMM_Context_getState(context, data_wanted, enforce_periodic, state) call export_energy(state) call export_forces(state, DX, DY, DZ) - call omm_assign_eterms(context, state, enforce_periodic) + call omm_assign_eterms(context, enforce_periodic) call OpenMM_State_destroy(state) #if KEY_NEWTIMER==1