summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToyohisa Kameyama <kameyama@riken.jp>2021-01-07 03:05:43 +0900
committerGitHub <noreply@github.com>2021-01-06 10:05:43 -0800
commit587d25ad457232a332275f8a38e65cbc56e00b7b (patch)
tree0b541bf1400632acd3ff5c60842f4d725eda2d68
parentdabee2cee89f3a90ace61260aec88e09144f473d (diff)
downloadspack-587d25ad457232a332275f8a38e65cbc56e00b7b.tar.gz
spack-587d25ad457232a332275f8a38e65cbc56e00b7b.tar.bz2
spack-587d25ad457232a332275f8a38e65cbc56e00b7b.tar.xz
spack-587d25ad457232a332275f8a38e65cbc56e00b7b.zip
parallelio: New Package. (#20673)
-rw-r--r--var/spack/repos/builtin/packages/parallelio/package.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py
new file mode 100644
index 0000000000..ec3334cfc6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallelio/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Parallelio(CMakePackage):
+ """The Parallel IO libraries (PIO) are high-level parallel I/O C and
+ Fortran libraries for applications that need to do netCDF I/O from
+ large numbers of processors on a HPC system."""
+
+ homepage = "https://ncar.github.io/ParallelIO/"
+ url = "https://github.com/NCAR/ParallelIO/archive/pio2_5_2.tar.gz"
+
+ maintainers = ['tkameyama']
+
+ version('2_5_2', sha256='935bc120ef3bf4fe09fb8bfdf788d05fb201a125d7346bf6b09e27ac3b5f345c')
+
+ variant('pnetcdf', default=False, description='enable pnetcdf')
+
+ depends_on('mpi')
+ depends_on('netcdf-c +mpi', type='link')
+ depends_on('netcdf-fortran', type='link')
+ depends_on('parallel-netcdf', type='link', when='+pnetcdf')
+
+ def cmake_args(self):
+ define = self.define
+ spec = self.spec
+ env['CC'] = spec['mpi'].mpicc
+ env['FC'] = spec['mpi'].mpifc
+ args = [
+ define('NetCDF_C_PATH', spec['netcdf-c'].prefix),
+ define('NetCDF_Fortran_PATH', spec['netcdf-fortran'].prefix),
+ ]
+ if spec.satisfies('+pnetcdf'):
+ args.extend([
+ define('PnetCDF_C_PATH', spec['parallel-netcdf'].prefix),
+ define('PnetCDF_Fortran_PATH', spec['parallel-netcdf'].prefix),
+ ])
+ return args