cmake multichain wham cluster_wham -mcmodel=medium
[unres.git] / source / wham / src-M / CMakeLists.txt
index 1a29d77..4b3eb49 100644 (file)
@@ -96,11 +96,13 @@ set(UNRES_WHAM_M_PP_SRC
 # Set comipiler flags for different sourcefiles  
 #================================================
 if (Fortran_COMPILER_NAME STREQUAL "ifort")
-  set(FFLAGS0 "-g -CB -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+  set(FFLAGS0 "-mcmodel=medium -shared-intel  -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
-  set(FFLAGS0 "-std=legacy -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+  set(FFLAGS0 "-std=legacy -mcmodel=medium -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+  set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
 else ()
-  set(FFLAGS0 "-g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+  set(FFLAGS0 "-g -mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )   
 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
 
 
@@ -155,6 +157,11 @@ elseif (Fortran_COMPILER_NAME STREQUAL "f95")
 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
   # Add old gfortran flags
   set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+  set(CPPFLAGS "${CPPFLAGS} -DPGI")
+  FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+  list(APPEND UNRES_WHAM_M_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
+  set(CMAKE_EXE_LINKER_FLAGS "-Bdynamic")
 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
 
 #=========================================
@@ -244,6 +251,25 @@ install(TARGETS UNRES_WHAM_M_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/wham)
 # TESTS 
 #=========================================
 
+#  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
+  if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
+     MESSAGE (STATUS "LAM MPI library detected")
+     set (boot_lam "-boot")
+  else()
+     set (boot_lam "")
+  endif()
+
+  if (UNRES_SRUN)
+   set (np "-n")
+   set (mpiexec "srun")
+  elseif(UNRES_MPIRUN)
+   set (np "-np")
+   set (mpiexec "mpirun")
+  else()
+   set (np "-np")
+   set (mpiexec "mpiexec")
+  endif()
+
 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
 "#!/bin/sh
 export POT=GB
@@ -270,7 +296,7 @@ export SIDEP=$DD/contact.3.parm
 export SCRATCHDIR=.
 #-----------------------------------------------------------------------------
 echo CTEST_FULL_OUTPUT
-mpiexec -np $2 $WHAM_BIN 
+${mpiexec} ${boot_lam} ${np} $2 $WHAM_BIN 
 ./wham_check.sh $1 
 ")