cmake changes for pgf90
[unres.git] / source / cluster / wham / src / CMakeLists.txt
index 8669d33..e20baf4 100644 (file)
@@ -60,14 +60,16 @@ set(UNRES_CLUSTER_WHAM_PP_SRC
 
 
 #================================================
-# Set comipiler flags for different sourcefiles  
+# Set compiler flags for different sourcefiles  
 #================================================
 if (Fortran_COMPILER_NAME STREQUAL "ifort")
   set(FFLAGS0 "-mcmodel=medium -shared-intel -ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
-  set(FFLAGS0 "-std=legacy -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
+  set(FFLAGS0 "-std=legacy -mcmodel=medium -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 "-I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
+  set(FFLAGS0 "-mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
 
 #=========================================
@@ -113,6 +115,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_CLUSTER_WHAM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
+  set(CMAKE_EXE_LINKER_FLAGS "-Bdynamic")
 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
 
 
@@ -176,6 +183,25 @@ install(TARGETS UNRES_CLUSTER_WHAM_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/clust
 # 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/cluster_wham_mpi_E0LL2Y.sh
 "#!/bin/sh
 export POT=GB
@@ -207,7 +233,7 @@ export SIDEP=$DD/contact.3.parm
 export SCRATCHDIR=.
 #-----------------------------------------------------------------------------
 echo CTEST_FULL_OUTPUT
-mpiexec -np $2 $CLUSTER_WHAM_BIN 
+${mpiexec} ${boot_lam} ${np} $2 $CLUSTER_WHAM_BIN 
 ./cluster_wham_check.sh $1 
 ")