Pierre-Yves Barriat 6 роки тому
батько
коміт
10e7214a90

+ 24 - 0
foss-2017b/Autotools-20180311-GCCcore-6.4.0.eb

@@ -0,0 +1,24 @@
+easyblock = 'Bundle'
+
+name = 'Autotools'
+version = '20180311'  # date of the most recent change
+
+homepage = 'http://autotools.io'
+
+description = """
+ This bundle collect the standard GNU build tools: Autoconf, Automake
+ and libtool
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
+
+dependencies = [
+    ('Autoconf', '2.69'),    # 20120424
+    ('Automake', '1.16.1'),  # 20180311
+    ('libtool', '2.4.6'),    # 20150215
+]
+
+# Pure bundle -- no need to specify 'binutils' used when building GCCcore
+# toolchain as build dependency
+
+moduleclass = 'devel'

+ 41 - 0
foss-2017b/CMake-3.11.4-GCCcore-6.4.0.eb

@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'CMake'
+version = '3.11.4'
+
+homepage = 'http://www.cmake.org'
+
+description = """
+ CMake, the cross-platform, open-source build system.  CMake is a family of
+ tools designed to build, test and package software.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
+
+source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8f864e9f78917de3e1483e256270daabc4a321741592c5b36af028e72bff87f5']
+
+builddependencies = [
+    ('binutils', '2.30'),
+]
+
+dependencies = [
+    ('ncurses', '6.1'),
+    # OS dependency should be preferred if the os version is more recent then this version,
+    # it's nice to have an up to date openssl for security reasons
+    # ('OpenSSL', '1.1.0h'),
+]
+
+osdependencies = [
+    ('openssl-devel', 'libssl-dev', 'libopenssl-devel'),
+]
+
+configopts = '-- -DCMAKE_USE_OPENSSL=1 -DCMAKE_PREFIX_PATH=$EBROOTNCURSES'
+
+sanity_check_paths = {
+    'files': ["bin/%s" % x for x in ['ccmake', 'cmake', 'cpack', 'ctest']],
+    'dirs': [],
+}
+
+moduleclass = 'devel'

+ 37 - 0
foss-2017b/CMake-3.11.4-foss-2017b.eb

@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'CMake'
+version = '3.11.4'
+
+homepage = 'http://www.cmake.org'
+
+description = """
+ CMake, the cross-platform, open-source build system.  CMake is a family of
+ tools designed to build, test and package software.
+"""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+
+source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8f864e9f78917de3e1483e256270daabc4a321741592c5b36af028e72bff87f5']
+
+dependencies = [
+    ('ncurses', '6.1'),
+    # OS dependency should be preferred if the os version is more recent then this version,
+    # it's nice to have an up to date openssl for security reasons
+    # ('OpenSSL', '1.1.0h'),
+]
+
+osdependencies = [
+    ('openssl-devel', 'libssl-dev', 'libopenssl-devel'),
+]
+
+configopts = '-- -DCMAKE_USE_OPENSSL=1 -DCMAKE_PREFIX_PATH=$EBROOTNCURSES'
+
+sanity_check_paths = {
+    'files': ["bin/%s" % x for x in ['ccmake', 'cmake', 'cpack', 'ctest']],
+    'dirs': [],
+}
+
+moduleclass = 'devel'

+ 4 - 4
foss-2017b/ESMF-7.0.2-foss-2017b.eb

@@ -17,13 +17,13 @@ checksums = [
 ]
 
 dependencies = [
-    ('netCDF', '4.4.1.1', '-HDF5-1.8.19'),
-    ('netCDF-Fortran', '4.4.4'),
-    ('netCDF-C++4', '4.3.0', '-HDF5-1.8.19'),
+    ('netCDF', '4.6.1'),
+    ('netCDF-Fortran', '4.4.5'),
+    ('netCDF-C++4', '4.3.0'),
 ]
 
 buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
-buildopts += 'ESMF_NETCDF_LIBS="`ncconfig --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
 
 # too parallel causes the build to become really slow
 maxparallel = 8

+ 31 - 0
foss-2017b/ESMF-7.1.0r-foss-2017b.eb

@@ -0,0 +1,31 @@
+name = 'ESMF'
+version = '7.1.0r'
+
+homepage = 'http://sourceforge.net/projects/esmf'
+description = """The Earth System Modeling Framework (ESMF) is software for building and coupling weather,
+ climate, and related models."""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'usempi': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%%(namelower)s_%s_src.tar.gz' % '_'.join(version.split('.'))]
+patches = ['ESMF-6.1.1_libopts.patch']
+checksums = [
+    'ae9a5edb8d40ae97a35cbd4bd00b77061f995c77c43d36334dbb95c18b00a889',  # esmf_7_1_0r_src.tar.gz
+    '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4',  # ESMF-6.1.1_libopts.patch
+]
+
+dependencies = [
+    ('netCDF', '4.6.1'),
+    ('netCDF-Fortran', '4.4.5'),
+    ('netCDF-C++4', '4.3.0'),
+]
+
+buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+
+# too parallel causes the build to become really slow
+maxparallel = 8
+
+moduleclass = 'geo'

+ 48 - 0
foss-2017b/GDAL-2.2.4-foss-2017b-Python-3.6.3.eb

@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDAL'
+version = '2.2.4'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'http://www.gdal.org/'
+description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style
+ Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model
+ to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for
+ data translation and processing."""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['http://download.osgeo.org/gdal/%(version)s/']
+sources = [SOURCELOWER_TAR_XZ]
+
+dependencies = [
+    ('Python', '3.6.3'),
+    ('netCDF', '4.6.1'),
+    ('expat', '2.2.4'),
+    ('GEOS', '3.6.2', '-Python-%(pyver)s'),
+    ('SQLite', '3.20.1'),
+    ('libxml2', '2.9.4'),
+    ('libpng', '1.6.34'),
+    ('libjpeg-turbo', '1.5.2'),
+    ('JasPer', '1.900.1'),
+    ('LibTIFF', '4.0.9'),
+    ('zlib', '1.2.11'),
+    ('cURL', '7.60.0'),
+    ('PCRE', '8.41'),
+    ('PROJ', '5.1.0'),
+]
+
+configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF'
+configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
+configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
+configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+    'files': ['lib/libgdal.a', 'lib/libgdal.%s' % SHLIB_EXT],
+    'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'data'

+ 45 - 0
foss-2017b/NCL-6.5.0-foss-2017b.eb

@@ -0,0 +1,45 @@
+name = 'NCL'
+version = '6.5.0'
+
+homepage = 'http://www.ncl.ucar.edu'
+description = "NCL is an interpreted language designed specifically for scientific data analysis and visualization."
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'cstd': 'c99', 'openmp': True, 'pic': True}
+
+source_urls = ['https://www.earthsystemgrid.org/dataset/ncl.%(version_major)s%(version_minor)s0.src/file/']
+sources = ['%(namelower)s_ncarg-%(version)s.tar.gz']
+patches = ['NCL-6.4.0_fix-types.patch']
+checksums = [
+    'cf7b8a255a434d2c9d385f995e84d2024fa9e6c04f847c91ecbcb3e4070c94d2',  # ncl_ncarg-6.5.0.tar.gz
+    'f6dfaf95e5de9045745e122cb44f9c035f81fab92f5892991ddfe93945891c8f',  # NCL-6.4.0_fix-types.patch
+]
+
+dependencies = [
+    ('cURL', '7.60.0'),
+    ('JasPer', '2.0.14'),
+    ('g2lib', '1.4.0'),
+    ('g2clib', '1.6.0-patch'),
+    ('HDF', '4.2.14'),
+    ('HDF5', '1.10.1'),
+    ('netCDF', '4.6.1',),
+    ('netCDF-Fortran', '4.4.5'),
+    ('Szip', '2.1.1'),
+    ('freetype', '2.9.1'),
+    ('zlib', '1.2.11'),
+    ('GDAL', '2.2.4', '-Python-3.6.3'),
+    ('UDUNITS', '2.2.26'),
+    ('ESMF', '7.1.0r'),
+    ('bzip2', '1.0.6'),
+    ('cairo', '1.14.12'),
+    ('libiconv', '1.15'),
+    ('GSL', '2.4'),
+]
+
+builddependencies = [
+    ('makedepend', '1.0.5'),
+    ('Bison', '3.0.4'),
+    ('flex', '2.6.4'),
+]
+
+moduleclass = 'data'

+ 94 - 0
foss-2017b/NCL-6.5.0_fix-types.patch

@@ -0,0 +1,94 @@
+fix compilation problems due to incorrect type
+author: Kenneth Hoste (HPC-UGent)
+--- ni/src/lib/nfp/SCRIP2KMLW.c.orig	2017-04-21 11:22:11.523861897 +0200
++++ ni/src/lib/nfp/SCRIP2KMLW.c	2017-04-21 11:22:17.773923222 +0200
+@@ -8,17 +8,17 @@
+ NhlErrorTypes SCRIP2KML_W(void) {
+     /* Defining the Arguments */
+     /* Argument # 0 */
+-    string * scrip_filename;
++    NclQuark* scrip_filename;
+     char * c_scrip_filename;
+     int ncid;
+ 
+     /* Argument # 1 */
+-    string * kml_filename;
++    NclQuark* kml_filename;
+     char * c_kml_filename;
+     FILE * fid;
+ 
+     /* Argument # 2 */
+-    string * gridname;
++    NclQuark* gridname;
+     char * c_gridname;
+ 
+     /* End of Defining the Arguments */
+@@ -48,7 +48,7 @@
+ 
+     /* Getting Arguments values */
+     /* Argument # 0 */
+-    scrip_filename = (string *) NclGetArgValue(
++    scrip_filename = (NclQuark*) NclGetArgValue(
+             0,
+             3,
+             NULL,
+@@ -61,7 +61,7 @@
+     c_scrip_filename = NrmQuarkToString(*scrip_filename);
+ 
+     /* Argument # 1 */
+-    kml_filename = (string *) NclGetArgValue(
++    kml_filename = (NclQuark*) NclGetArgValue(
+             1,
+             3,
+             NULL,
+@@ -74,7 +74,7 @@
+     c_kml_filename = NrmQuarkToString(*kml_filename);
+ 
+     /* Argument # 1 */
+-    gridname = (string *) NclGetArgValue(
++    gridname = (NclQuark*) NclGetArgValue(
+             2,
+             3,
+             NULL,
+@@ -212,4 +212,4 @@
+     free(grid_corner_lon);
+     fclose(fid);
+     return (NhlNOERROR);
+-}
+\ No newline at end of file
++}
+--- ni/src/lib/nfp/Unstruct2KMLW.c.orig	2017-04-21 11:20:50.403067496 +0200
++++ ni/src/lib/nfp/Unstruct2KMLW.c	2017-04-21 11:21:34.883504667 +0200
+@@ -7,12 +7,12 @@
+ NhlErrorTypes Unstruct2KML_W(void) {
+     /* Defining the Arguments */
+     /* Argument # 0 */
+-    string * filename;
++    NclQuark* filename;
+     char * c_filename;
+     FILE * fid;
+ 
+     /* Argument # 1 */
+-    string * gridname;
++    NclQuark* gridname;
+     char * c_gridname;
+ 
+     /* Argument # 2 */
+@@ -50,7 +50,7 @@
+ 
+     /* Getting Arguments values */
+     /* Argument # 0 */
+-    filename = (string *) NclGetArgValue(
++    filename = (NclQuark*) NclGetArgValue(
+             0,
+             6,
+             NULL,
+@@ -63,7 +63,7 @@
+     c_filename = NrmQuarkToString(*filename);
+ 
+     /* Argument # 1 */
+-    gridname = (string *) NclGetArgValue(
++    gridname = (NclQuark*) NclGetArgValue(
+             1,
+             6,
+             NULL,

+ 30 - 0
foss-2017b/PROJ-5.1.0-foss-2017b.eb

@@ -0,0 +1,30 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2014-2015 The Cyprus Institute
+# Authors:: Thekla Loizou <t.loizou@cyi.ac.cy>
+# License:: MIT/GPL
+#
+##
+easyblock = 'ConfigureMake'
+
+name = 'PROJ'
+version = '5.1.0'
+
+homepage = 'http://trac.osgeo.org/proj/'
+description = """Program proj is a standard Unix filter function which converts 
+geographic longitude and latitude coordinates into cartesian coordinates"""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['http://download.osgeo.org/proj/']
+sources = [SOURCELOWER_TAR_GZ]
+
+sanity_check_paths = {
+    'files': ['bin/cs2cs', 'bin/geod', 'bin/invgeod', 'bin/invproj',
+              'bin/nad2bin', 'bin/proj'],
+    'dirs': [],
+}
+
+moduleclass = 'lib'

+ 26 - 0
foss-2017b/binutils-2.30-GCCcore-6.4.0.eb

@@ -0,0 +1,26 @@
+name = 'binutils'
+version = '2.30'
+
+homepage = 'http://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+patches = ['binutils-%(version)s_fix-assertion-fail-elf.patch']
+checksums = [
+    '8c3850195d1c093d290a716e20ebcaa72eda32abf5e3d8611154b39cff79e9ea',  # binutils-2.30.tar.gz
+    '7a661190c973287642296dd9fb30ff45dc26ae2138f7761cd8362f7e412ff5ab',  # binutils-2.30_fix-assertion-fail-elf.patch
+]
+
+builddependencies = [
+    ('flex', '2.6.4'),
+    ('Bison', '3.0.4'),
+    # zlib required, but being linked in statically, so not a runtime dep
+    ('zlib', '1.2.11'),
+    # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
+    ('binutils', version, '', True)
+]
+
+moduleclass = 'tools'

+ 49 - 0
foss-2017b/cURL-7.60.0-GCCcore-6.4.0.eb

@@ -0,0 +1,49 @@
+easyblock = 'ConfigureMake'
+
+name = 'cURL'
+version = '7.60.0'
+
+homepage = 'http://curl.haxx.se'
+
+description = """
+ libcurl is a free and easy-to-use client-side URL transfer library,
+ supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
+ LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
+ libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
+ form based upload, proxies, cookies, user+password authentication (Basic,
+ Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
+ and more.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
+
+source_urls = ['https://curl.haxx.se/download/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e9c37986337743f37fd14fe8737f246e97aec94b39d1b71e8a5973f72a9fc4f5']
+
+builddependencies = [
+    ('binutils', '2.30'),
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    # OS dependency should be preferred if the os version is more recent then this version,
+    # it's nice to have an up to date openssl for security reasons
+    # ('OpenSSL', '1.1.0h')
+]
+
+osdependencies = [
+    ('openssl-devel', 'libssl-dev', 'libopenssl-devel'),
+]
+
+configopts = '--with-zlib'
+# configopts += '--with-ssl=$EBROOTOPENSSL'
+
+modextravars = {'CURL_INCLUDES': '%(installdir)s/include'}
+
+sanity_check_paths = {
+    'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT],
+    'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'tools'

+ 35 - 0
foss-2017b/freetype-2.9.1-foss-2017b.eb

@@ -0,0 +1,35 @@
+name = 'freetype'
+version = '2.9.1'
+
+homepage = 'http://freetype.org'
+
+description = """
+ FreeType 2 is a software font engine that is designed to be small, efficient,
+ highly customizable, and portable while capable of producing high-quality
+ output (glyph images). It can be used in graphics libraries, display servers,
+ font conversion tools, text image generation tools, and many other products
+ as well.
+"""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'pic': True}
+
+source_urls = [GNU_SAVANNAH_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce']
+
+dependencies = [
+    ('bzip2', '1.0.6'),
+    ('libpng', '1.6.34'),
+    ('zlib', '1.2.11'),
+]
+
+configopts = '--enable-freetype-config --with-harfbuzz=no'
+
+sanity_check_paths = {
+    'files': ['bin/freetype-config', 'lib/libfreetype.a',
+              'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'],
+    'dirs': ['include/freetype2'],
+}
+
+moduleclass = 'vis'

+ 35 - 0
foss-2017b/g2clib-1.6.0-patch-foss-2017b.eb

@@ -0,0 +1,35 @@
+name = 'g2clib'
+version = '1.6.0-patch'
+
+homepage = 'http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/'
+description = """Library contains GRIB2 encoder/decoder ('C' version)."""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+
+source_urls = [homepage]
+sources = ['%(name)s-%(version)s.tar']
+
+dependencies = [
+    ('JasPer', '1.900.1'),
+    ('libpng', '1.6.32'),
+]
+
+buildopts = 'CFLAGS="$CFLAGS -DUSE_JPEG2000 -DUSE_PNG -D__64BIT__"'
+
+skipsteps = ['install']
+
+postinstallcmds = [
+    "cd %(builddir)s/%(name)s-%(version)s && " +
+    'rm -rf %(installdir)s && ' +
+    'mkdir -p %(installdir)s/include && ' +
+    'mkdir -p %(installdir)s/lib && ' +
+    'cp *.h  %(installdir)s/include && ' +
+    'cp libgrib2c.a %(installdir)s/lib && ' +
+    "cd %(installdir)s/lib && " +
+    'ln -s libgrib2c.a libg2c_v1.6.0.a'
+]
+
+# parallel build tends to fail
+parallel = 1
+
+moduleclass = 'data'

+ 34 - 0
foss-2017b/netCDF-4.6.1-foss-2017b.eb

@@ -0,0 +1,34 @@
+name = 'netCDF'
+version = '4.6.1'
+
+homepage = 'http://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries 
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented 
+ scientific data."""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/Unidata/netcdf-c/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['a2fabf27c72a5ee746e3843e1debbaad37cd035767eaede2045371322211eebb']
+
+dependencies = [
+    ('HDF5', '1.10.1'),
+    ('cURL', '7.60.0'),
+    ('Szip', '2.1.1'),
+]
+
+builddependencies = [
+    ('Autotools', '20180311'),
+    ('CMake', '3.11.4'),
+    ('Doxygen', '1.8.14'),
+]
+
+# make sure both static and shared libs are built
+configopts = [
+    "-DBUILD_SHARED_LIBS=OFF ",
+    "-DBUILD_SHARED_LIBS=ON ",
+]
+
+moduleclass = 'data'

+ 1 - 2
foss-2017b/netCDF-C++4-4.3.0-foss-2017b-HDF5-1.8.19.eb → foss-2017b/netCDF-C++4-4.3.0-foss-2017b.eb

@@ -2,7 +2,6 @@ easyblock = 'ConfigureMake'
 
 name = 'netCDF-C++4'
 version = '4.3.0'
-versionsuffix = '-HDF5-1.8.19'
 
 homepage = 'http://www.unidata.ucar.edu/software/netcdf/'
 description = """NetCDF (network Common Data Form) is a set of software libraries 
@@ -16,7 +15,7 @@ source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/']
 sources = ['v%(version)s.tar.gz']
 checksums = ['25da1c97d7a01bc4cee34121c32909872edd38404589c0427fefa1301743f18f']
 
-dependencies = [('netCDF', '4.4.1.1', versionsuffix)]
+dependencies = [('netCDF', '4.6.1')]
 
 sanity_check_paths = {
     'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT],

+ 18 - 0
foss-2017b/netCDF-Fortran-4.4.5-foss-2017b.eb

@@ -0,0 +1,18 @@
+name = 'netCDF-Fortran'
+version = '4.4.5'
+
+homepage = 'http://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented
+ scientific data."""
+
+toolchain = {'name': 'foss', 'version': '2017b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/']
+sources = ['v4.4.4.tar.gz']
+checksums = ['44b1986c427989604df9925dcdbf6c1a977e4ecbde6dd459114bca20bf5e9e67']
+
+dependencies = [('netCDF', '4.6.1')]
+
+moduleclass = 'data'

+ 33 - 0
foss-2018b/CDO-1.9.2-foss-2018b.eb

@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'CDO'
+version = '1.9.2'
+
+homepage = 'https://code.zmaw.de/projects/cdo'
+description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data."""
+
+toolchain = {'name': 'foss', 'version': '2018b'}
+toolchainopts = {'opt': True, 'pic': True, 'usempi': True}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['https://code.mpimet.mpg.de/attachments/download/16035/']
+checksums = ['d1c5092167034a48e4b8ada24cf78a1d4b84e364ffbb08b9ca70d13f428f300c']
+
+dependencies = [
+    ('HDF5', '1.10.2'),
+    ('netCDF', '4.6.1'),
+    ('YAXT', '0.5.1'),
+    ('grib_api', '1.24.0'),
+]
+
+configopts = "--with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF --with-grib_api=$EBROOTGRIB_API"
+
+# fix for linking issues with HDF5 libraries for libcdi, should link with both -lnetcdf and -lhdf5_hl -lhdf5
+prebuildopts = "find libcdi -name Makefile | xargs sed -i 's/-lnetcdf -lnetcdf/-lnetcdf -lhdf5_hl -lhdf5/g' && "
+
+sanity_check_paths = {
+    'files': ["bin/cdo"],
+    'dirs': [],
+}
+
+moduleclass = 'data'

+ 23 - 0
foss-2018b/YAXT-0.5.1-foss-2018b.eb

@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake'
+
+name = 'YAXT'
+version = '0.5.1'
+
+homepage = 'https://www.dkrz.de/redmine/projects/yaxt'
+description = "Yet Another eXchange Tool"
+
+toolchain = {'name': 'foss', 'version': '2018b'}
+toolchainopts = {'usempi': True}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['https://www.dkrz.de/redmine/attachments/download/473/']
+checksums = ['f9b6ab7ea9b475ebdf8dd434e6adb8aace92b328102a0094bd8e6d94d6523c5e']
+
+configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"'
+
+sanity_check_paths = {
+    'files': ["include/yaxt.h", "include/yaxt.mod", "lib/libyaxt.a", "lib/libyaxt.%s" % SHLIB_EXT],
+    'dirs': ["include/xt"],
+}
+
+moduleclass = 'tools'

+ 25 - 0
foss-2018b/grib_api-1.24.0-foss-2018b.eb

@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'grib_api'
+version = '1.24.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/GRIB/Home'
+description = """The ECMWF GRIB API is an application program interface accessible from C, FORTRAN and Python
+ programs developed for encoding and decoding WMO FM-92 GRIB edition 1 and edition 2 messages. A useful set of
+ command line tools is also provided to give quick access to GRIB messages."""
+
+toolchain = {'name': 'foss', 'version': '2018b'}
+
+source_urls = ['https://software.ecmwf.int/wiki/download/attachments/3473437/']
+sources = ['grib_api-%(version)s-Source.tar.gz']
+checksums = ['6b0d443cb0802c5de652e5816c5b88734cb3ead454eb932c5ec12ef8d4f77bcd']
+
+dependencies = [
+    ('JasPer', '1.900.1'),  # 2.x doesn't work
+]
+
+configopts = '--with-jasper=$EBROOTJASPER'
+
+parallel = 1
+
+moduleclass = 'data'