@@ -127,13 +127,13 @@ if(SCHEMES_OPENMP_OFF)
127
127
endif ()
128
128
129
129
# Assign standard floating point precision flags to all remaining schemes and caps
130
- SET_PROPERTY (SOURCE ${SCHEMES} ${CAPS}
131
- APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} " )
132
-
133
130
if (OPENMP )
134
131
# Compile all remaining schemes and caps with OpenMP flags
135
- SET_PROPERTY (SOURCE ${SCHEMES} ${CAPS}
136
- APPEND_STRING PROPERTY COMPILE_FLAGS " ${OpenMP_Fortran_FLAGS} " )
132
+ SET_PROPERTY (SOURCE ${SCHEMES} ${CAPS}
133
+ APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} " )
134
+ else ()
135
+ SET_PROPERTY (SOURCE ${SCHEMES} ${CAPS}
136
+ APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} " )
137
137
endif ()
138
138
139
139
# For CAPS, remove bounds checks with Intel Classic (ifort), Intel LLVM (ifx),
@@ -158,28 +158,22 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release" AND (${CMAKE_Fortran_COMPILER_ID} STREQUA
158
158
)
159
159
foreach (SCHEME_NAME IN LISTS SCHEME_NAMES_LOWER_OPTIMIZATION )
160
160
SET_SOURCE_FILES_PROPERTIES (${SCHEME_NAME}
161
- APPEND_STRING PROPERTY COMPILE_FLAGS " -O1" )
161
+ APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O1" )
162
162
endforeach ()
163
163
endif ()
164
164
165
165
# No optimization for certain schemes when compiling with Intel in Release mode
166
166
if (CMAKE_BUILD_TYPE STREQUAL "Release" AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel" OR ${CMAKE_Fortran_COMPILER_ID} STREQUAL "IntelLLVM" ))
167
167
# Define a list of schemes that can't be optimized with Intel in Release mode
168
- set (SCHEME_NAMES_NO_OPTIMIZATION
169
- ${CMAKE_CURRENT_SOURCE_DIR} /physics/MP/Morrison_Gettelman/aerinterp.F90
170
- ${CMAKE_CURRENT_SOURCE_DIR} /physics/GFS_typedefs.F90
171
- )
168
+ # Since GFS_typedefs.F90 is provided by the host model, we need to "find" it in the list of SCHEMES
169
+ set (SCHEME_NAMES_NO_OPTIMIZATION GFS_typedefs.F90 )
172
170
foreach (SCHEME_NAME IN LISTS SCHEME_NAMES_NO_OPTIMIZATION )
173
- SET_SOURCE_FILES_PROPERTIES (${SCHEME_NAME}
174
- APPEND_STRING PROPERTY COMPILE_FLAGS " -O0" )
171
+ set (SCHEMES_TMP ${SCHEMES} )
172
+ # Need to determine the name of the scheme with its path
173
+ list (FILTER SCHEMES_TMP INCLUDE REGEX ".*${SCHEME_NAME} $" )
174
+ SET_SOURCE_FILES_PROPERTIES (${SCHEMES_TMP}
175
+ APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O0" )
175
176
endforeach ()
176
- # Since GFS_typedefs.F90 is provided by the host model,
177
- # we need to "find" it in the list of SCHEMES
178
- set (SCHEMES_TMP ${SCHEMES} )
179
- # Need to determine the name of the scheme with its path
180
- list (FILTER SCHEMES_TMP INCLUDE REGEX ".*GFS_typedefs.F90$" )
181
- SET_SOURCE_FILES_PROPERTIES (${SCHEMES_TMP}
182
- APPEND_STRING PROPERTY COMPILE_FLAGS " -O0" )
183
177
endif ()
184
178
185
179
if (${CMAKE_CURRENT_SOURCE_DIR} /physics/Radiation/mersenne_twister.f IN_LIST SCHEMES )
0 commit comments