-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* release/0.29.0: (49 commits) Version 0.29.0 GitHub Actions CI: enable OpenMP for C/C++ ATLAS-355 Workaround macOS OpenMP problems with 'omp task' ATLAS-354 bamboo using proj/8.2.1 ATLAS-354 Introduce FindPROJ.cmake for proj installations based on autotools ATLAS-354 Compatibility with proj >= 8 Add missing include <string> Restore compatibility with eckit < 1.18.5 Support cubed-sphere wind interpolation (#99) Fix Jacobian::transpose() introduced in PR #93 GitHub actions CI: reduce available MPI_SLOTS for macOS builds to 4 Quad2D: Added fused multiply-add to discriminant calculation (#102) FieldSet::has() to replace FieldSet::has_field() Config::json() function Create Array using ArraySpec only (containing datatype) Add Datatype to ArraySpec Cosmetic changes to UnstructuredBilinearLonLat Change Quad2D's PointXY arguments to Point2 Make GridToolsArray backend work with mixed indexing types Apply clang-format ...
- Loading branch information
Showing
108 changed files
with
3,223 additions
and
1,131 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
0.28.1 | ||
0.29.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# (C) Copyright 2011- ECMWF. | ||
# | ||
# This software is licensed under the terms of the Apache Licence Version 2.0 | ||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. | ||
# In applying this licence, ECMWF does not waive the privileges and immunities | ||
# granted to it by virtue of its status as an intergovernmental organisation | ||
# nor does it submit to any jurisdiction. | ||
|
||
# - Try to find the proj library | ||
# Once done this will define | ||
# | ||
# PROJ_FOUND - system has proj | ||
# PROJ_INCLUDE_DIRS - the proj include directory | ||
# PROJ_LIBRARIES - Link these to use proj | ||
# PROJ_VERSION - semantic version of proj | ||
# | ||
|
||
### Set search paths from environment | ||
if ( NOT PROJ_PATH AND PROJ_ROOT ) | ||
set( PROJ_PATH ${PROJ_ROOT} ) | ||
endif() | ||
if ( NOT PROJ_PATH AND NOT "$ENV{PROJ_ROOT}" STREQUAL "" ) | ||
set( PROJ_PATH "$ENV{PROJ_ROOT}" ) | ||
endif() | ||
if ( NOT PROJ_PATH AND NOT "$ENV{PROJ_PATH}" STREQUAL "" ) | ||
set( PROJ_PATH "$ENV{PROJ_PATH}" ) | ||
endif() | ||
if ( NOT PROJ_PATH AND NOT "$ENV{PROJ_DIR}" STREQUAL "" ) | ||
set( PROJ_PATH "$ENV{PROJ_DIR}" ) | ||
endif() | ||
|
||
|
||
### If search paths given, use it, otherwise, use pkg-config | ||
if( PROJ_PATH ) | ||
find_path(PROJ_INCLUDE_DIR NAMES proj.h PATHS ${PROJ_PATH} ${PROJ_PATH}/include PATH_SUFFIXES PROJ NO_DEFAULT_PATH ) | ||
find_library(PROJ_LIBRARY NAMES proj PATHS ${PROJ_PATH} ${PROJ_PATH}/lib PATH_SUFFIXES PROJ NO_DEFAULT_PATH ) | ||
else() | ||
find_package(PkgConfig) | ||
if(PKG_CONFIG_FOUND) | ||
if(PROJ_FIND_VERSION) | ||
pkg_check_modules(PKPROJ ${_pkgconfig_REQUIRED} QUIET PROJ>=${PROJ_FIND_VERSION}) | ||
else() | ||
pkg_check_modules(PKPROJ ${_pkgconfig_REQUIRED} QUIET PROJ) | ||
endif() | ||
|
||
if( PKPROJ_FOUND ) | ||
find_path(PROJ_INCLUDE_DIR proj.h HINTS ${PKPROJ_INCLUDEDIR} ${PKPROJ_INCLUDE_DIRS} PATH_SUFFIXES PROJ NO_DEFAULT_PATH ) | ||
find_library(PROJ_LIBRARY proj HINTS ${PKPROJ_LIBDIR} ${PKPROJ_LIBRARY_DIRS} PATH_SUFFIXES PROJ NO_DEFAULT_PATH ) | ||
endif() | ||
endif() | ||
endif() | ||
|
||
find_path(PROJ_INCLUDE_DIR NAMES proj.h PATHS PATH_SUFFIXES PROJ ) | ||
find_library( PROJ_LIBRARY NAMES proj PATHS PATH_SUFFIXES PROJ ) | ||
|
||
### Detect version | ||
set( PROJ_VERSION 0 ) | ||
file(READ ${PROJ_INCLUDE_DIR}/proj.h proj_version) | ||
string(REGEX REPLACE "^.*PROJ_VERSION_MAJOR +([0-9]+).*$" "\\1" PROJ_VERSION_MAJOR "${proj_version}") | ||
string(REGEX REPLACE "^.*PROJ_VERSION_MINOR +([0-9]+).*$" "\\1" PROJ_VERSION_MINOR "${proj_version}") | ||
string(REGEX REPLACE "^.*PROJ_VERSION_PATCH +([0-9]+).*$" "\\1" PROJ_VERSION_PATCH "${proj_version}") | ||
string(CONCAT PROJ_VERSION ${PROJ_VERSION_MAJOR} "." ${PROJ_VERSION_MINOR} "." ${PROJ_VERSION_PATCH}) | ||
|
||
### Handle the QUIETLY and REQUIRED arguments and set PROJ_FOUND | ||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(PROJ | ||
REQUIRED_VARS PROJ_LIBRARY PROJ_INCLUDE_DIR | ||
VERSION_VAR PROJ_VERSION) | ||
|
||
set( PROJ_LIBRARIES ${PROJ_LIBRARY} ) | ||
set( PROJ_INCLUDE_DIRS ${PROJ_INCLUDE_DIR} ) | ||
|
||
mark_as_advanced( PROJ_INCLUDE_DIR PROJ_LIBRARY ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* | ||
* (C) Copyright 2013 ECMWF. | ||
* | ||
* This software is licensed under the terms of the Apache Licence Version 2.0 | ||
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. | ||
* In applying this licence, ECMWF does not waive the privileges and immunities | ||
* granted to it by virtue of its status as an intergovernmental organisation | ||
* nor does it submit to any jurisdiction. | ||
*/ | ||
|
||
|
||
// This test mirrors functionality from src/atlas/parallel/omp/sort.h | ||
// It appears that on some installations / compilers (such as apple-clang with llvm omp) | ||
// the tasking does not seem to work properly. | ||
// It all compiles but leads to runtime errors. This executable is | ||
// added to allow compiler introspection for this feature. | ||
|
||
#include <algorithm> | ||
#include <vector> | ||
#include <iostream> | ||
|
||
#include <omp.h> | ||
|
||
|
||
void recursive_task( int begin, int end ) { | ||
int size = end - begin; | ||
|
||
if ( size >= 2 ) { // should be much larger in real case (e.g. 256) | ||
int mid = begin + size / 2; | ||
std::cout << begin << " - " << end << " [" <<size << "]" << std::endl; | ||
{ | ||
#pragma omp task | ||
recursive_task( begin, mid ); | ||
#pragma omp task | ||
recursive_task( mid, end ); | ||
#pragma omp taskwait | ||
} | ||
// do work after coming back from nested recursion | ||
} | ||
else { | ||
// deepest level work | ||
} | ||
} | ||
|
||
|
||
void start_task( int size ) { | ||
#pragma omp parallel | ||
#pragma omp single | ||
recursive_task( 0, size ); | ||
} | ||
|
||
int main() { | ||
start_task( 8 ); | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,51 @@ | ||
|
||
### Proj | ||
|
||
ecbuild_find_package( NAME PROJ4 QUIET ) | ||
# From proj 9 onwards, it is guaranteed that it was built/installed using CMake and the CMake export is available. | ||
# Then we can safely remove the file FindPROJ.cmake from atlas | ||
# and the following atrocity could be simply replaced with | ||
# | ||
# ecbuild_add_option( FEATURE PROJ | ||
# DESCRIPTION "PROJ-based projections" | ||
# DEFAULT OFF | ||
# REQUIRED_PACKAGES PROJ ) | ||
# | ||
|
||
if( ENABLE_PROJ ) | ||
ecbuild_find_package_search_hints( NAME PROJ ) | ||
|
||
# 1) Try to find PROJ the CMake way (proj >= 7) | ||
find_package( PROJ CONFIG ) | ||
if( PROJ_FOUND ) | ||
ecbuild_debug("Found PROJ via CONFIG") | ||
else() | ||
# 2) Try to find PROJ4 the CMake way (proj 6) | ||
find_package( PROJ4 CONFIG ) | ||
if( PROJ4_FOUND ) | ||
ecbuild_debug("Found PROJ4 via CONFIG") | ||
set( PROJ_FOUND ${PROJ4_FOUND} ) | ||
set( PROJ_LIBRARIES ${PROJ4_LIBRARIES} ) | ||
set( PROJ_INCLUDE_DIRS ${PROJ4_INCLUDE_DIRS} ) | ||
set( PROJ_VERSION ${PROJ4_VERSION} ) | ||
endif() | ||
endif() | ||
if( NOT PROJ_FOUND ) | ||
# 3) Try to find PROJ via FindPROJ.cmake provided within atlas (proj < 9) | ||
find_package( PROJ MODULE ) | ||
if( PROJ_FOUND ) | ||
ecbuild_debug("Found PROJ via FindPROJ.cmake") | ||
endif() | ||
endif() | ||
else() | ||
ecbuild_debug("Skipping search for PROJ as ENABLE_PROJ=OFF (default)") | ||
endif() | ||
|
||
if( PROJ_FOUND ) | ||
ecbuild_info( "Found PROJ (${PROJ_VERSION}):") | ||
ecbuild_info( " PROJ_LIBRARIES : ${PROJ_LIBRARIES}") | ||
ecbuild_info( " PROJ_INCLUDE_DIRS : ${PROJ_INCLUDE_DIRS}") | ||
endif() | ||
|
||
ecbuild_add_option( FEATURE PROJ | ||
DESCRIPTION "PROJ-based projections" | ||
DEFAULT OFF | ||
CONDITION PROJ4_FOUND ) | ||
CONDITION PROJ_FOUND ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.