mache.spack.get_modules_env_vars_and_mpi_compilers

mache.spack.get_modules_env_vars_and_mpi_compilers(machine, compiler, mpi, shell, include_e3sm_lapack=False, include_e3sm_hdf5_netcdf=None, *, e3sm_hdf5_netcdf=None, exclude_packages=None)[source]

Get the non-spack modules, environment variables and compiler names for a given machine, compiler and MPI library.

Parameters:
  • compiler (str) – One of the E3SM supported compilers for the machine

  • mpi (str) – One of the E3SM supported MPI libraries for the given compiler and machine

  • machine (str, optional) – The name of an E3SM supported machine. If none is given, the machine will be detected automatically via the host name.

  • shell ({'sh', 'csh'}) – Which shell the script is for

  • include_e3sm_lapack (bool, optional) – Whether to include the same lapack (typically from MKL) as used in E3SM

  • e3sm_hdf5_netcdf (bool, optional) – Whether to include the same hdf5, netcdf-c, netcdf-fortran and pnetcdf as used in E3SM

  • include_e3sm_hdf5_netcdf (bool, optional) – Deprecated alias for e3sm_hdf5_netcdf.

  • exclude_packages (sequence of str or str, optional) – System-provided Spack packages to opt out of. For this function, the package bundle that affects shell setup is e3sm_hdf5_netcdf (or hdf5_netcdf), which disables the machine-provided HDF5/NetCDF module and environment-variable setup.

Returns:

  • mpicc (str) – The MPI c compiler for this machine

  • mpicxx (str) – The MPI c++ compiler for this machine

  • mpifc (str) – The MPI Fortran compiler for this machine

  • mod_env_commands (str) – Modules and environment variables needed to set up the compilers, MPI libraries and other dependencies like NetCDF and PNetCDF