diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a7e387a..0fe14c62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") message("setting intel true") set(IntelComp true ) -elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU*") +elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU*" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang*") set(GNUComp true ) elseif(CMAKE_CXX_COMPILER_ID MATCHES "pgc*") set(PGIComp true ) @@ -28,9 +28,18 @@ if( (BUILD_RELEASE) OR (BUILD_PRODUCTION) ) set(CMAKE_Fortran_8_FLAGS "-O3 -auto -qopenmp -i8 -r8 -convert big_endian -assume byterecl -fp-model strict -fpp -qopenmp -DLINUX " CACHE INTERNAL "" ) set(CMAKE_Fortran_4_FLAGS "-O3 -auto -qopenmp -DLINUX -i4 -convert big_endian -assume byterecl -fp-model strict -real-size 32 -fpp -qopenmp" CACHE INTERNAL "" ) elseif(GNUComp) - elseif(PGIComp) + message("setting gnu flags") + if (APPLE) + set(TMP_PLATFORM_FLAG "-DAPPLE") + elseif (UNIX) + set(TMP_PLATFORM_FLAG "-DLINUX") + endif() + set(CMAKE_Fortran_d_FLAGS "-O3 -fdefault-real-8 -fconvert=big-endian -cpp ${TMP_PLATFORM_FLAG} " CACHE INTERNAL "" ) + set(CMAKE_Fortran_8_FLAGS "-O3 -fdefault-integer-8 -fdefault-real-8 -fconvert=big-endian -cpp ${TMP_PLATFORM_FLAG} " CACHE INTERNAL "" ) + set(CMAKE_Fortran_4_FLAGS "-O3 -fconvert=big-endian -cpp ${TMP_PLATFORM_FLAG} " CACHE INTERNAL "" ) + unset(TMP_PLATFORM_FLAG) else() - message("unkown compiler!") + message("unknown compiler!") exit() endif() endif() diff --git a/src/fftpack.F b/src/fftpack.F index afc1790c..775eb0ed 100644 --- a/src/fftpack.F +++ b/src/fftpack.F @@ -1,4 +1,4 @@ -#if LINUX +#if defined LINUX || defined APPLE SUBROUTINE dcrft(init,x,ldx,y,ldy,n,m,isign,scale, & table,n1,wrk,n2,z,nz) diff --git a/src/ncpus.F b/src/ncpus.F index 4ff8ee0d..698c290f 100644 --- a/src/ncpus.F +++ b/src/ncpus.F @@ -29,7 +29,7 @@ FUNCTION NCPUS() C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INTEGER NTHREADS, TID, OMP_GET_NUM_THREADS,OMP_GET_THREAD_NUM C Obtain thread number -#ifdef LINUX +#if defined LINUX || defined APPLE !$OMP PARALLEL PRIVATE(TID) TID = OMP_GET_THREAD_NUM() ! PRINT *, '...............thread # ', TID