# set(CMAKE_EXE_LINKER_FLAGS -pg)
# set(CMAKE_SHARED_LINKER_FLAGS -pg)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "./")
+
+FIND_PACKAGE(GSL REQUIRED)
+include_directories(${GSL_INCLUDE_DIRS})
+
+find_package(MPI REQUIRED)
+#set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
+#set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})
+include_directories(${MPI_INCLUDE_PATH})
+
SET(CMAKE_BUILD_TYPE Release)
add_subdirectory(latlib)
-add_executable(heatbath-nor heatbath.cpp)
-set_target_properties(heatbath-nor PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_NOR")
-target_link_libraries(heatbath-nor o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-metro heatbath.cpp)
+set_target_properties(heatbath-metro PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_METRO")
+target_link_libraries(heatbath-metro o815 ${GSL_LIBRARIES} lat_neigh)
+
+add_executable(heatbath-AhbMhb heatbath.cpp)
+set_target_properties(heatbath-AhbMhb PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AHBMHB")
+target_link_libraries(heatbath-AhbMhb o815 ${GSL_LIBRARIES} lat_neigh)
+
+add_executable(heatbath-AhbMor heatbath.cpp)
+set_target_properties(heatbath-AhbMor PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AHBMOR")
+target_link_libraries(heatbath-AhbMor o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-r heatbath.cpp)
-set_target_properties(heatbath-r PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_R")
-target_link_libraries(heatbath-r o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-AorMhb heatbath.cpp)
+set_target_properties(heatbath-AorMhb PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AORMHB")
+target_link_libraries(heatbath-AorMhb o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-1mr heatbath.cpp)
-set_target_properties(heatbath-1mr PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_1MR")
-target_link_libraries(heatbath-1mr o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-AorMor heatbath.cpp)
+set_target_properties(heatbath-AorMor PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AORMOR")
+target_link_libraries(heatbath-AorMor o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-1mr+ heatbath.cpp)
-set_target_properties(heatbath-1mr+ PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_1MRPLUS")
-target_link_libraries(heatbath-1mr+ o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-AorM0 heatbath.cpp)
+set_target_properties(heatbath-AorM0 PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AORM0")
+target_link_libraries(heatbath-AorM0 o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-1mr- heatbath.cpp)
-set_target_properties(heatbath-1mr- PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_1MRMINUS")
-target_link_libraries(heatbath-1mr- o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-AhbM0 heatbath.cpp)
+set_target_properties(heatbath-AhbM0 PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_AHBM0")
+target_link_libraries(heatbath-AhbM0 o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-r- heatbath.cpp)
-set_target_properties(heatbath-r- PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_RMINUS")
-target_link_libraries(heatbath-r- o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-A0Mor heatbath.cpp)
+set_target_properties(heatbath-A0Mor PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_A0MOR")
+target_link_libraries(heatbath-A0Mor o815 ${GSL_LIBRARIES} lat_neigh)
-add_executable(heatbath-r+ heatbath.cpp)
-set_target_properties(heatbath-r+ PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_RPLUS")
-target_link_libraries(heatbath-r+ o815 gsl gslcblas lat_neigh)
+add_executable(heatbath-A0Mhb heatbath.cpp)
+set_target_properties(heatbath-A0Mhb PROPERTIES COMPILE_DEFINITIONS "ALGORITHM_A0MHB")
+target_link_libraries(heatbath-A0Mhb o815 ${GSL_LIBRARIES} lat_neigh)