@@ -11,6 +11,7 @@ project(GFDLGTracers
11
11
12
12
include (GNUInstallDirs)
13
13
include (CMakePackageConfigHelpers)
14
+ include (CheckFortranCompilerFlag)
14
15
15
16
if (NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release|RelWithDebInfo|MinSizeRel)$" )
16
17
message (STATUS "Setting build type to 'Relwithdebinfo' as none was specified." )
@@ -37,22 +38,30 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
37
38
38
39
# Copied from MOM5/bin/mkmf.template.nci.gfortran
39
40
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fcray-pointer -fdefault-real-8 -ffree-line-length-none -fno-range-check -Waliasing -Wampersand -Warray-bounds -Wcharacter-truncation -Wconversion -Wline-truncation -Wintrinsics-std -Wsurprising -Wno-tabs -Wunderflow -Wunused-parameter -Wintrinsic-shadow -Wno-align-commons" )
41
+ check_fortran_compiler_flag("-fallow-invalid-boz" _boz_flag)
42
+ check_fortran_compiler_flag("-fallow-argument-mismatch" _argmis_flag)
43
+ if (_boz_flag)
44
+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-invalid-boz" )
45
+ endif ()
46
+ if (_argmis_flag)
47
+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch" )
48
+ endif ()
40
49
set (CMAKE_Fortran_FLAGS_RELEASE "-O2" )
41
50
set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g" )
42
51
set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -W -fbounds-check" )
43
52
44
53
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
45
54
46
55
# Copied from MOM5/bin/mkmf.template.nci
47
- set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-alias -safe-cray-ptr -fpe0 -ftz -assume byterecl -i4 -r8 -traceback -nowarn -check noarg_temp_created -assume nobuffered_io -convert big_endian -grecord-gcc-switches -align all" )
56
+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-alias -safe-cray-ptr -fpe0 -ftz -assume byterecl -i4 -r8 -traceback -nowarn -check noarg_temp_created -assume nobuffered_io -convert big_endian -grecord-gcc-switches -fp-model precise -fp-model source - align all" )
48
57
set (CMAKE_Fortran_FLAGS_RELEASE "-g3 -O2 -xCORE-AVX2 -debug all -check none" )
49
58
set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g3 -O2 -xCORE-AVX2 -debug all -check none" )
50
59
set (CMAKE_Fortran_FLAGS_DEBUG "-g3 -O0 -debug all -check -check noarg_temp_created -check nopointer -warn -warn noerrors -ftrapuv" )
51
60
52
61
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "IntelLLVM" )
53
62
54
63
# Copied from MOM5/bin/mkmf.template.nci
55
- set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-alias -safe-cray-ptr -fpe0 -ftz -assume byterecl -i4 -r8 -traceback -nowarn -check noarg_temp_created -assume nobuffered_io -convert big_endian -grecord-gcc-switches -align all" )
64
+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-alias -safe-cray-ptr -fpe0 -ftz -assume byterecl -i4 -r8 -traceback -nowarn -check noarg_temp_created -assume nobuffered_io -convert big_endian -grecord-gcc-switches -fp-model precise -fp-model source - align all" )
56
65
set (CMAKE_Fortran_FLAGS_RELEASE "-g3 -O2 -xCORE-AVX2 -debug all -check none" )
57
66
set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g3 -O2 -xCORE-AVX2 -debug all -check none" )
58
67
set (CMAKE_Fortran_FLAGS_DEBUG "-g3 -O0 -debug all -check -check noarg_temp_created -check nopointer -warn -warn noerrors -ftrapuv" )
0 commit comments