1if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) # this is gfortran 2 add_definitions(-DVAR_GFORTRAN) 3 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffloat-store -fcray-pointer -std=legacy") 4 if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER 10.0.0) 5 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-invalid-boz -fallow-argument-mismatch") 6 endif() 7 if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "i386") 8 set(CMAKE_Fortran_FLAGS 9 "${CMAKE_Fortran_FLAGS} -m32" 10 ) 11 endif() 12 if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") 13 set(CMAKE_Fortran_FLAGS 14 "${CMAKE_Fortran_FLAGS} -m64" 15 ) 16 endif() 17 set(CMAKE_Fortran_FLAGS_DEBUG "-Og -g -fbacktrace -fcray-pointer -Wuninitialized") 18 set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ffast-math -funroll-loops -ftree-vectorize -w") 19 set(CMAKE_Fortran_FLAGS_PROFILE "${CMAKE_Fortran_FLAGS_RELEASE} -g -pg") 20 if(ENABLE_STATIC_LINKING) 21 set(CMAKE_Fortran_FLAGS 22 "${CMAKE_Fortran_FLAGS} -static" 23 ) 24 endif() 25 if(ENABLE_64BIT_INTEGERS) 26 set(CMAKE_Fortran_FLAGS 27 "${CMAKE_Fortran_FLAGS} -fdefault-integer-8" 28 ) 29 endif() 30 if(ENABLE_BOUNDS_CHECK) 31 set(CMAKE_Fortran_FLAGS 32 "${CMAKE_Fortran_FLAGS} -fbounds-check -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wunderflow" 33 ) 34 endif() 35 if(ENABLE_CODE_COVERAGE) 36 set(CMAKE_Fortran_FLAGS 37 "${CMAKE_Fortran_FLAGS} -fprofile-arcs -ftest-coverage" 38 ) 39 endif() 40endif() 41 42if(CMAKE_Fortran_COMPILER_ID MATCHES Intel) 43 add_definitions(-DVAR_IFORT) 44 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpp -assume byterecl -DVAR_IFORT") 45 set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -traceback") 46 set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ip -diag-disable 8290 -diag-disable 8291") 47 set(CMAKE_Fortran_FLAGS_PROFILE "${CMAKE_Fortran_FLAGS_RELEASE} -g -pg") 48 49 if(DEFINED MKL_FLAG) 50 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${MKL_FLAG}") 51 endif() 52 53 if(ENABLE_STATIC_LINKING) 54 set(CMAKE_Fortran_FLAGS 55 "${CMAKE_Fortran_FLAGS} -static-libgcc -static-intel" 56 ) 57 endif() 58 if(ENABLE_64BIT_INTEGERS) 59 set(CMAKE_Fortran_FLAGS 60 "${CMAKE_Fortran_FLAGS} -i8" 61 ) 62 endif() 63 if(ENABLE_BOUNDS_CHECK) 64 set(CMAKE_Fortran_FLAGS 65 "${CMAKE_Fortran_FLAGS} -check all -traceback -debug all -fpstkchk -ftrapuv" 66 ) 67 endif() 68 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 69 message("--Switch off warnings due to incompatibility XCode 4 and Intel 11 on OsX 10.6") 70 set(CMAKE_Fortran_FLAGS 71 "${CMAKE_Fortran_FLAGS} -Qoption,ld,-w" 72 ) 73 endif() 74endif() 75 76if(CMAKE_Fortran_COMPILER_ID MATCHES PGI) 77 78 add_definitions(-DVAR_PGI) 79 80# Patrick: mcmodel=medium is not available on PGI Free for MacOS X 81set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DVAR_PGI") 82 if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") 83 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -mcmodel=medium") 84 endif() 85 86# Simen: added to include c++ libraries needed for the final linking 87 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -pgc++libs") 88 89 set(CMAKE_Fortran_FLAGS_DEBUG "-g -O0 -Mframe -traceback") 90# I would like to add -fast but this makes certain dec tests fails 91 set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -Mipa=fast") 92 set(CMAKE_Fortran_FLAGS_PROFILE "${CMAKE_Fortran_FLAGS_RELEASE} -g -pg") 93 if(ENABLE_64BIT_INTEGERS) 94 set(CMAKE_Fortran_FLAGS 95 "${CMAKE_Fortran_FLAGS} -i8 -i8storage" 96 ) 97 endif() 98 if(ENABLE_BOUNDS_CHECK) 99 set(CMAKE_Fortran_FLAGS 100#add -Mbounds at some point 101 "${CMAKE_Fortran_FLAGS} " 102 ) 103 endif() 104 if(ENABLE_CODE_COVERAGE) 105 set(CMAKE_Fortran_FLAGS 106 "${CMAKE_Fortran_FLAGS} " 107 ) 108 endif() 109endif() 110 111if(CMAKE_Fortran_COMPILER_ID MATCHES XL) 112 add_definitions(-DVAR_XLF) 113 set(CMAKE_Fortran_FLAGS "-qzerosize -qextname") 114 set(CMAKE_Fortran_FLAGS_DEBUG "-g") 115 set(CMAKE_Fortran_FLAGS_RELEASE "-qstrict -O3") 116 set(CMAKE_Fortran_FLAGS_PROFILE "${CMAKE_Fortran_FLAGS_RELEASE} -g -pg") 117 if(ENABLE_64BIT_INTEGERS) 118 set(CMAKE_Fortran_FLAGS 119 "${CMAKE_Fortran_FLAGS} -q64" 120 ) 121 endif() 122 set_source_files_properties(${DALTON_FREE_FORTRAN_SOURCES} PROPERTIES COMPILE_FLAGS "-qfree -qlanglvl=extended -qinit=f90ptr") 123 set_source_files_properties(${DALTON_FIXED_FORTRAN_SOURCES} PROPERTIES COMPILE_FLAGS "-qfixed") 124 set_source_files_properties(${DALTON_OWN_BLAS_SOURCES} PROPERTIES COMPILE_FLAGS "-qfixed") 125 set_source_files_properties(${DALTON_OWN_LAPACK_SOURCES} PROPERTIES COMPILE_FLAGS "-qfixed") 126 if(ENABLE_BOUNDS_CHECK) 127 set(CMAKE_Fortran_FLAGS 128 "${CMAKE_Fortran_FLAGS} -C" 129 ) 130 endif() 131 132endif() 133 134if(CMAKE_Fortran_COMPILER_ID MATCHES Cray) 135 add_definitions(-DVAR_CRAY) 136 137 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DVAR_CRAY -eZ") 138 139 set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g") 140 set(CMAKE_Fortran_FLAGS_RELEASE " ") 141 set(CMAKE_Fortran_FLAGS_PROFILE "-g") 142 if(ENABLE_64BIT_INTEGERS) 143 set(CMAKE_Fortran_FLAGS 144 "${CMAKE_Fortran_FLAGS} -s integer64" 145 ) 146 endif() 147 if(ENABLE_BOUNDS_CHECK) 148 set(CMAKE_Fortran_FLAGS 149 "${CMAKE_Fortran_FLAGS} -R bps" 150 ) 151 endif() 152endif() 153 154if(DEFINED EXTRA_Fortran_FLAGS) 155 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${EXTRA_Fortran_FLAGS}") 156endif() 157 158save_compiler_flags(Fortran) 159