diff --git a/Golden_Repo/a/AMBER/adapt_to_python_3_10_api_changes.patch b/Golden_Repo/a/AMBER/adapt_to_python_3_10_api_changes.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b0e2212a60d6245a8117cf53bdb86009ffcc9961
--- /dev/null
+++ b/Golden_Repo/a/AMBER/adapt_to_python_3_10_api_changes.patch
@@ -0,0 +1,3185 @@
+Numerous small changes required to adjust to Python 3.10 API changes
+author: Sandipan Mohanty (Juelich Supercomputing Centre)
+diff -ruN amber20_src/AmberTools/src/include/CompatibilityMacros.h amber20_src1/AmberTools/src/include/CompatibilityMacros.h
+--- amber20_src/AmberTools/src/include/CompatibilityMacros.h	2018-06-18 16:24:02.000000000 +0200
++++ amber20_src1/AmberTools/src/include/CompatibilityMacros.h	2023-01-22 14:58:23.467995866 +0100
+@@ -18,6 +18,35 @@
+ #   define PyInt_FromLong PyLong_FromLong
+ #   define PyInt_AsLong PyLong_AsLong
+ 
++#if PY_VERSION_HEX < 0x030900A4
++#  define Py_SET_REFCNT(obj, refcnt) ((Py_REFCNT(obj) = (refcnt)), (void)0)
++#endif
++#define Py_INCR_REFCNT(obj) (Py_SET_REFCNT(obj, Py_REFCNT(obj) + 1))
++#define Py_DECR_REFCNT(obj) (Py_SET_REFCNT(obj, Py_REFCNT(obj) - 1))
++
++#if PY_VERSION_HEX >= 0x030A00A1
++PyObject * _PyGen_Send(PyGenObject *gen, PyObject *arg) {
++    PyObject *result;
++    // PyIter_Send() asserts non-NULL arg
++    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
++        if (PyAsyncGen_CheckExact(gen)) {
++            assert(result == Py_None);
++            PyErr_SetNone(PyExc_StopAsyncIteration);
++        }
++        else if (result == Py_None) {
++            PyErr_SetNone(PyExc_StopIteration);
++        }
++        else {
++            _PyGen_SetStopIterationValue(result);
++        }
++        Py_CLEAR(result);
++    }
++    return result;
++}
++#endif
++
++
++
+ #else /* Python 2 */
+ 
+ #   define PyObject_IS_STRING PyString_Check
+diff -ruN amber20_src/AmberTools/src/mpi4py-3.0.3/CMakeLists.txt amber20_src1/AmberTools/src/mpi4py-3.0.3/CMakeLists.txt
+--- amber20_src/AmberTools/src/mpi4py-3.0.3/CMakeLists.txt	2021-04-25 02:51:38.000000000 +0200
++++ amber20_src1/AmberTools/src/mpi4py-3.0.3/CMakeLists.txt	2023-01-22 14:19:04.933478114 +0100
+@@ -34,6 +34,8 @@
+ 	endif()
+ endif()
+ 
++set(MPI4PY_INCDIRS "${MPI4PY_INCDIRS}${LIST_SEP}${AMBERTOOLS_INC_DIR}")
++
+ set(MPI4PY_LIBS_LIST "")
+ set(MPI4PY_LIBDIR_LIST "")
+ 
+diff -ruN amber20_src/AmberTools/src/mpi4py-3.0.3/src/mpi4py.MPI.c amber20_src1/AmberTools/src/mpi4py-3.0.3/src/mpi4py.MPI.c
+--- amber20_src/AmberTools/src/mpi4py-3.0.3/src/mpi4py.MPI.c	2021-04-25 02:51:38.000000000 +0200
++++ amber20_src1/AmberTools/src/mpi4py-3.0.3/src/mpi4py.MPI.c	2023-01-22 15:05:14.380522648 +0100
+@@ -2,6 +2,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -154207,9 +154209,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_8Datatype_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -154497,9 +154499,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_7Request_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->ob_buf);
+@@ -154877,9 +154879,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_7Message_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->ob_buf);
+@@ -155073,9 +155075,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_2Op_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -155260,9 +155262,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_5Group_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -155456,9 +155458,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_4Info_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -155675,9 +155677,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_10Errhandler_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -155845,9 +155847,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_4Comm_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -156860,9 +156862,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_3Win_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->ob_mem);
+@@ -157166,9 +157168,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_4File_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -157436,9 +157438,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_6memory_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -157609,9 +157611,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6mpi4py_3MPI_6_p_mem_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+diff -ruN amber20_src/AmberTools/src/pymdgx/mdgx/mdgx.c amber20_src1/AmberTools/src/pymdgx/mdgx/mdgx.c
+--- amber20_src/AmberTools/src/pymdgx/mdgx/mdgx.c	2019-08-01 14:29:41.000000000 +0200
++++ amber20_src1/AmberTools/src/pymdgx/mdgx/mdgx.c	2023-01-22 15:06:10.320862855 +0100
+@@ -36,6 +36,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
+@@ -15988,9 +15990,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -16272,9 +16274,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -16509,9 +16511,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/CMakeLists.txt amber20_src1/AmberTools/src/pytraj/CMakeLists.txt
+--- amber20_src/AmberTools/src/pytraj/CMakeLists.txt	2021-04-27 22:14:35.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/CMakeLists.txt	2023-01-27 17:46:44.743410915 +0100
+@@ -40,8 +40,8 @@
+ add_custom_command(OUTPUT ${STAMP_FILE}
+ 	COMMAND ${CMAKE_COMMAND} -E env --unset=AMBERHOME 
+ 		CPPTRAJ_HEADERDIR=${CMAKE_CURRENT_SOURCE_DIR}/../cpptraj/src CPPTRAJ_LIBDIR=$<TARGET_FILE_DIR:${CPPTRAJ_TARGET}>
+-		CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ${RPATH_ARG}
+-		${PYTHON_EXECUTABLE} setup.py build -b ${BUILD_DIR} ${OPENMP_ARG} ${PYTHON_COMPILER_ARG} ${WIN64_DEFINE_ARG}
++		AMBERTOOLS_INC=${AMBERTOOLS_INC_DIR} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ${RPATH_ARG}
++		${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py build -b ${BUILD_DIR} ${OPENMP_ARG} ${PYTHON_COMPILER_ARG} ${WIN64_DEFINE_ARG}
+ 	COMMAND ${CMAKE_COMMAND} -E touch ${STAMP_FILE}
+ 	WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ 	DEPENDS ${PYTHON_SOURCES} ${CPPTRAJ_TARGET}
+@@ -61,13 +61,15 @@
+ 	include(${LIBDIR_FILE})
+ 	${FIX_BACKSLASHES_CMD}
+ 	execute_process(
+-    COMMAND \"${CMAKE_COMMAND}\" -E env  --unset=AMBERHOME
+-    \"CPPTRAJ_HEADERDIR=${CMAKE_CURRENT_SOURCE_DIR}/../cpptraj/src\" \"CPPTRAJ_LIBDIR=\${CPPTRAJ_LIBDIR}\"
+-    \"CXX=${CMAKE_CXX_COMPILER}\"
+-    \"CC=${CMAKE_C_COMPILER}\"
+-    ${RPATH_ARG}
+-    ${PYTHONPATH_SET_CMD}
+-	${PYTHON_EXECUTABLE} ./setup.py build -b ${BUILD_DIR} ${OPENMP_ARG} ${PYTHON_COMPILER_ARG} ${WIN64_DEFINE_ARG} install ${PYTHON_PREFIX_ARG}
+-    WORKING_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\")")
++		COMMAND \"${CMAKE_COMMAND}\" -E env  --unset=AMBERHOME
++		\"CPPTRAJ_HEADERDIR=${CMAKE_CURRENT_SOURCE_DIR}/../cpptraj/src\"
++		\"CPPTRAJ_LIBDIR=\${CPPTRAJ_LIBDIR}\"
++		\"AMBERTOOLS_INC=${AMBERTOOLS_INC_DIR}\"
++		\"CXX=${CMAKE_CXX_COMPILER}\" \"CC=${CMAKE_C_COMPILER}\"
++		${PYTHONPATH_SET_CMD}
++		${PYTHON_EXECUTABLE} ./setup.py build -b \"${BUILD_DIR}\" ${OPENMP_ARG} ${PYTHON_COMPILER_ARG} ${WIN64_DEFINE_ARG} install ${PYTHON_PREFIX_ARG}
++		WORKING_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\"
++	)
++")
+ 
+ add_subdirectory(tests)
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_action/actionlist.cpp amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_action/actionlist.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_action/actionlist.cpp	2021-04-28 14:29:50.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_action/actionlist.cpp	2023-01-22 15:10:34.252460710 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -22473,9 +22475,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_10actionlist_10ActionList_5__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->top);
+@@ -23079,9 +23081,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -23390,9 +23392,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -23640,9 +23642,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_action/c_action.cpp amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_action/c_action.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_action/c_action.cpp	2021-04-28 14:29:52.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_action/c_action.cpp	2023-01-22 15:10:14.452341138 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -47313,9 +47315,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_6Action_5__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->top);
+@@ -47524,9 +47526,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Align_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47645,9 +47647,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Angle_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47766,9 +47768,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_AreaPerMol_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47887,9 +47889,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_AtomMap_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48008,9 +48010,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_AtomicCorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48129,9 +48131,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_18Action_AtomicFluct_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48250,9 +48252,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_AutoImage_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48371,9 +48373,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Average_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48492,9 +48494,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Bounds_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48613,9 +48615,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_10Action_Box_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48734,9 +48736,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Center_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48855,9 +48857,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Channel_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48976,9 +48978,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_CheckChirality_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49097,9 +49099,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_CheckStructure_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49218,9 +49220,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Closest_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49339,9 +49341,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_22Action_ClusterDihedral_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49460,9 +49462,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_Contacts_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49581,9 +49583,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_CreateCrd_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49702,9 +49704,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_DNAionTracker_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49823,9 +49825,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_DSSP_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49944,9 +49946,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Density_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50065,9 +50067,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_Diffusion_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50186,9 +50188,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_Dihedral_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50307,9 +50309,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Dipole_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50428,9 +50430,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_DistRmsd_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50549,9 +50551,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_Distance_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50670,9 +50672,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Energy_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50791,9 +50793,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Esander_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -50912,9 +50914,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_19Action_FilterByData_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51033,9 +51035,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_19Action_FixAtomOrder_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51154,9 +51156,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_FixImagedBonds_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51275,9 +51277,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_GIST_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51396,9 +51398,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_Grid_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51517,9 +51519,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_GridFreeEnergy_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51638,9 +51640,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_19Action_HydrogenBond_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51759,9 +51761,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Image_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -51880,9 +51882,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_Jcoupling_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52001,9 +52003,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_LESsplit_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52122,9 +52124,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_10Action_LIE_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52243,9 +52245,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_LipidOrder_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52364,9 +52366,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_MakeStructure_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52485,9 +52487,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_Mask_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52606,9 +52608,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Matrix_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52727,9 +52729,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_MinImage_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52848,9 +52850,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Molsurf_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -52969,9 +52971,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_MultiDihedral_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53090,9 +53092,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_18Action_MultiVector_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53211,9 +53213,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_NAstruct_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53332,9 +53334,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_NMRrst_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53453,9 +53455,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_NativeContacts_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53574,9 +53576,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_OrderParameter_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53695,9 +53697,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Outtraj_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53816,9 +53818,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_PairDist_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -53937,9 +53939,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_Pairwise_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54058,9 +54060,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_Principal_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54179,9 +54181,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_Projection_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54300,9 +54302,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Pucker_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54421,9 +54423,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Radgyr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54542,9 +54544,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Radial_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54663,9 +54665,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_RandomizeIons_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54784,9 +54786,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Remap_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -54905,9 +54907,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_ReplicateCell_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55026,9 +55028,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_Rmsd_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55147,9 +55149,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Rotate_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55268,9 +55270,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_RunningAvg_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55389,9 +55391,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_21Action_STFC_Diffusion_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55510,9 +55512,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Scale_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55631,9 +55633,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_18Action_SetVelocity_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55752,9 +55754,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_Spam_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55873,9 +55875,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_12Action_Strip_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -55994,9 +55996,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_11Action_Surf_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56115,9 +56117,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_20Action_SymmetricRmsd_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56236,9 +56238,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_18Action_Temperature_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56357,9 +56359,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_16Action_Translate_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56478,9 +56480,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_14Action_Unstrip_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56599,9 +56601,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Unwrap_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56720,9 +56722,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Vector_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56841,9 +56843,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_23Action_VelocityAutoCorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -56962,9 +56964,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Volmap_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -57083,9 +57085,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_13Action_Volume_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -57204,9 +57206,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_17Action_Watershell_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -57325,9 +57327,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_8c_action_8c_action_15Action_XtalSymm_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -57686,9 +57688,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -57997,9 +57999,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -58247,9 +58249,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_analysis/c_analysis.cpp amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_analysis/c_analysis.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/analysis/c_analysis/c_analysis.cpp	2021-04-28 14:29:54.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/analysis/c_analysis/c_analysis.cpp	2023-01-22 15:09:38.252122446 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -28870,9 +28872,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_8Analysis_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -28975,9 +28977,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_16Analysis_AmdBias_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29082,9 +29084,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_17Analysis_AutoCorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29189,9 +29191,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_16Analysis_Average_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29296,9 +29298,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_Clustering_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29403,9 +29405,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_13Analysis_Corr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29510,9 +29512,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_CrankShaft_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29617,9 +29619,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_17Analysis_CrdFluct_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29724,9 +29726,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_18Analysis_CrossCorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29831,9 +29833,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_Divergence_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -29938,9 +29940,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_12Analysis_FFT_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30045,9 +30047,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_13Analysis_Hist_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30152,9 +30154,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_13Analysis_IRED_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30259,9 +30261,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_18Analysis_Integrate_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30366,9 +30368,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_12Analysis_KDE_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30473,9 +30475,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_17Analysis_Lifetime_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30580,9 +30582,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_15Analysis_Matrix_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30687,9 +30689,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_18Analysis_MeltCurve_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30794,9 +30796,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_14Analysis_Modes_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -30901,9 +30903,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_18Analysis_MultiHist_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31008,9 +31010,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_16Analysis_Overlap_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31115,9 +31117,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_Regression_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31222,9 +31224,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_15Analysis_RemLog_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31329,9 +31331,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_14Analysis_Rms2d_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31436,9 +31438,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_RmsAvgCorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31543,9 +31545,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_RunningAvg_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31650,9 +31652,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_15Analysis_Spline_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31757,9 +31759,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_Statistics_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31864,9 +31866,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_17Analysis_Timecorr_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -31971,9 +31973,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_VectorMath_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32078,9 +32080,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_15Analysis_Rotdif_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32185,9 +32187,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_20Analysis_LowestCurve_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32292,9 +32294,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_15Analysis_PhiPsi_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32399,9 +32401,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_11Analysis_TI_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32506,9 +32508,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_16Analysis_Wavelet_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32613,9 +32615,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_17Analysis_CurveFit_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32720,9 +32722,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_19Analysis_Multicurve_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32827,9 +32829,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_14Analysis_State_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -32934,9 +32936,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8analysis_10c_analysis_10c_analysis_18Analysis_Hausdorff_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   __pyx_tp_dealloc_6pytraj_8analysis_10c_analysis_10c_analysis_Analysis(o);
+@@ -33053,9 +33055,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -33364,9 +33366,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -33614,9 +33616,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/box.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/box.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/box.cpp	2021-04-28 14:29:55.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/box.cpp	2023-01-22 15:07:38.721399246 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -17827,9 +17829,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_3box_3Box_11__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -18127,9 +18129,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -18438,9 +18440,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -18688,9 +18690,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/c_core.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/c_core.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/c_core.cpp	2021-04-28 14:29:56.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/c_core.cpp	2023-01-22 15:08:09.481585562 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -25114,9 +25116,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_12CpptrajState_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->datafilelist);
+@@ -25552,9 +25554,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_8AtomMask_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -25732,9 +25734,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_8FileName_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -25848,9 +25850,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_8NameType_5__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -25993,9 +25995,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_7ArgList_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -26120,9 +26122,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_6c_core_7Command_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -26349,9 +26351,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -26660,9 +26662,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -26910,9 +26912,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/c_dict.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/c_dict.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/c_dict.cpp	2021-04-28 14:29:56.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/c_dict.cpp	2023-01-22 15:08:21.871660570 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/coordinfo.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/coordinfo.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/coordinfo.cpp	2021-04-28 14:29:56.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/coordinfo.cpp	2023-01-22 15:08:39.021764352 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -1740,9 +1742,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_9coordinfo_14CoordinateInfo_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/parameter_types.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/parameter_types.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/parameter_types.cpp	2021-04-28 14:29:57.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/parameter_types.cpp	2023-01-26 11:16:55.667802923 +0100
+@@ -16,6 +16,7 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -5765,9 +5766,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_9AngleType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -5975,9 +5976,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_12LES_AtomType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -6097,9 +6098,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_13AngleParmType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -6663,9 +6664,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_12BondParmType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -6873,9 +6874,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_12DihedralType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -6999,9 +7000,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_8BondType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -7219,9 +7220,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_15parameter_types_16DihedralParmType_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/core/topology_objects.cpp amber20_src1/AmberTools/src/pytraj/pytraj/core/topology_objects.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/core/topology_objects.cpp	2021-04-28 14:29:58.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/core/topology_objects.cpp	2023-01-22 15:08:59.421887745 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -21208,9 +21210,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_16topology_objects_4Atom_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->resname);
+@@ -21457,9 +21459,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_16topology_objects_7Residue_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -21621,9 +21623,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4core_16topology_objects_8Molecule_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -21747,9 +21749,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -22058,9 +22060,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -22308,9 +22310,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/datafiles/datafiles.cpp amber20_src1/AmberTools/src/pytraj/pytraj/datafiles/datafiles.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/datafiles/datafiles.cpp	2021-04-28 14:29:59.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/datafiles/datafiles.cpp	2023-01-22 15:13:47.303624059 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -17156,9 +17158,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_9datafiles_9datafiles_8DataFile_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -17264,9 +17266,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_9datafiles_9datafiles_12DataFileList_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -17379,9 +17381,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -17690,9 +17692,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -17940,9 +17942,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/datasets/cast_dataset.cpp amber20_src1/AmberTools/src/pytraj/pytraj/datasets/cast_dataset.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/datasets/cast_dataset.cpp	2021-04-28 14:30:04.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/datasets/cast_dataset.cpp	2023-01-26 10:37:24.934860624 +0100
+@@ -16,6 +16,7 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -19658,9 +19659,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -19969,9 +19970,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -20219,9 +20220,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/datasets/c_datasetlist.cpp amber20_src1/AmberTools/src/pytraj/pytraj/datasets/c_datasetlist.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/datasets/c_datasetlist.cpp	2021-04-28 14:30:01.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/datasets/c_datasetlist.cpp	2023-01-25 19:44:35.930918886 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -25823,9 +25825,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_13c_datasetlist_11DatasetList_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->_parent_lists);
+@@ -26970,9 +26972,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -27281,9 +27283,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -27531,9 +27533,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/datasets/c_datasets.cpp amber20_src1/AmberTools/src/pytraj/pytraj/datasets/c_datasets.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/datasets/c_datasets.cpp	2021-04-28 14:30:03.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/datasets/c_datasets.cpp	2023-01-25 19:45:37.801188852 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -44907,9 +44909,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_7Dataset_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->_base);
+@@ -45198,9 +45200,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_9Dataset1D_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -45343,9 +45345,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_13DatasetDouble_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -45523,9 +45525,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_12DatasetFloat_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -45703,9 +45705,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_14DatasetInteger_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -45884,9 +45886,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_13DatasetString_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46064,9 +46066,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_13DatasetVector_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46236,9 +46238,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_9Dataset2D_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46378,9 +46380,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_19DatasetMatrixDouble_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46572,9 +46574,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_18DatasetMatrixFloat_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46728,9 +46730,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_9Dataset3D_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -46844,9 +46846,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_16DatasetGridFloat_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47052,9 +47054,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_17DatasetGridDouble_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47260,9 +47262,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_12DatasetModes_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47610,9 +47612,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_16DatasetMatrix3x3_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47775,9 +47777,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_11DatasetMesh_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -47923,9 +47925,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_13DatasetCoords_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->_top);
+@@ -48134,9 +48136,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_16DatasetCoordsCRD_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48265,9 +48267,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_16DatasetCoordsRef_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -48411,9 +48413,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8datasets_10c_datasets_15DatasetTopology_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   PyObject_GC_Track(o);
+@@ -49453,9 +49455,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -49764,9 +49766,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -50014,9 +50016,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/math/cpp_math.cpp amber20_src1/AmberTools/src/pytraj/pytraj/math/cpp_math.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/math/cpp_math.cpp	2021-04-28 14:30:06.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/math/cpp_math.cpp	2023-01-22 15:12:15.953074065 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -27652,9 +27654,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4math_8cpp_math_4Grid_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -27829,9 +27831,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4math_8cpp_math_10Matrix_3x3_16__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -28096,9 +28098,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_4math_8cpp_math_4Vec3_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -28680,9 +28682,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -28991,9 +28993,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -29241,9 +29243,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/topology/topology.cpp amber20_src1/AmberTools/src/pytraj/pytraj/topology/topology.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/topology/topology.cpp	2021-04-28 14:30:08.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/topology/topology.cpp	2023-01-25 19:46:48.531497479 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -34817,9 +34819,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8topology_8topology_8Topology_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -35173,9 +35175,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_8topology_8topology_8ParmFile_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -36324,9 +36326,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -36635,9 +36637,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -36885,9 +36887,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajectory.cpp amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajectory.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajectory.cpp	2021-04-28 14:30:10.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajectory.cpp	2023-01-22 15:12:40.053219243 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -30149,9 +30151,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_10trajectory_6c_traj_12c_trajectory_17TrajectoryCpptraj_32__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->_top);
+@@ -31394,9 +31396,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -31705,9 +31707,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -31955,9 +31957,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajout.cpp amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajout.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajout.cpp	2021-04-28 14:30:11.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/c_traj/c_trajout.cpp	2023-01-22 15:12:58.463330119 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -18179,9 +18181,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_10trajectory_6c_traj_9c_trajout_16TrajectoryWriter_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   (*Py_TYPE(o)->tp_free)(o);
+@@ -18529,9 +18531,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -18840,9 +18842,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -19090,9 +19092,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/trajectory/frame.cpp amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/frame.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/trajectory/frame.cpp	2021-04-28 14:30:13.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/trajectory/frame.cpp	2023-01-22 15:13:25.033490024 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -34146,9 +34148,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_pw_6pytraj_10trajectory_5frame_5Frame_3__dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->_top);
+@@ -35182,9 +35184,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -35493,9 +35495,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -35743,9 +35745,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/pytraj/utils/cyutils.cpp amber20_src1/AmberTools/src/pytraj/pytraj/utils/cyutils.cpp
+--- amber20_src/AmberTools/src/pytraj/pytraj/utils/cyutils.cpp	2021-04-28 14:30:15.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/pytraj/utils/cyutils.cpp	2023-01-22 15:10:56.812596886 +0100
+@@ -16,6 +16,8 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ #include "Python.h"
++#include "CompatibilityMacros.h"
++
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+@@ -19989,9 +19991,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_array___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->mode);
+@@ -20300,9 +20302,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryview___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->obj);
+@@ -20550,9 +20552,9 @@
+   {
+     PyObject *etype, *eval, *etb;
+     PyErr_Fetch(&etype, &eval, &etb);
+-    ++Py_REFCNT(o);
++    Py_INCR_REFCNT(o);
+     __pyx_memoryviewslice___dealloc__(o);
+-    --Py_REFCNT(o);
++    Py_DECR_REFCNT(o);
+     PyErr_Restore(etype, eval, etb);
+   }
+   Py_CLEAR(p->from_object);
+diff -ruN amber20_src/AmberTools/src/pytraj/scripts/base_setup.py amber20_src1/AmberTools/src/pytraj/scripts/base_setup.py
+--- amber20_src/AmberTools/src/pytraj/scripts/base_setup.py	2021-04-28 14:29:48.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/scripts/base_setup.py	2023-01-26 09:54:41.354690608 +0100
+@@ -489,7 +489,8 @@
+             cpptraj_info.lib_dir,
+         ]
+ 
+-        include_dirs=[cpptraj_info.include_dir, pytraj_src]
++        ambertools_inc=os.environ['AMBERTOOLS_INC']
++        include_dirs=[cpptraj_info.include_dir, pytraj_src, ambertools_inc]
+         ext_modules = []
+         if sys.platform.startswith('win'):
+             libraries=['libcpptraj']
+diff -ruN amber20_src/AmberTools/src/pytraj/setup.py amber20_src1/AmberTools/src/pytraj/setup.py
+--- amber20_src/AmberTools/src/pytraj/setup.py	2021-04-26 15:45:42.000000000 +0200
++++ amber20_src1/AmberTools/src/pytraj/setup.py	2023-01-26 09:55:47.604913750 +0100
+@@ -113,7 +113,6 @@
+     extra_compile_args = ['-O0', '-ggdb']
+     extra_link_args = ['-O0', '-ggdb']
+ 
+-
+ cython_directives = {
+     'embedsignature': True,
+     'boundscheck': False,