Background
When working with ISSM, much of the accompanying tools/infrastructure require the ISSM_DIR Environment Variable to point to the parent source directory. For example, for an [old] non-spack build of ISSM on gadi:
>>> echo $ISSM_DIR
/home/565/lb9857/issm/trunk
>>> $ISSM_DIR
aclocal.m4 bin config.h.in~ configure diff.txt execution lib m4 Makefile.in patches scripts test
autom4te.cache config.h config.log configure.ac etc externalpackages libtool Makefile make.out README src
aux-config config.h.in config.status configure.sh examples jenkins ltmain.sh Makefile.am packagers README.rtf stamp-h1
When building ISSM with Python wrappers (our default and recommended approach), we must be able to access the following directories:
$ISSM_DIR/bin/ - contains the issm.exe executable
$ISSM_DIR/lib/ - contains the shared libraries created when building with Python wrappers.
To support pre- and pos-processing of ISSM models within Python, we also need to access existing python functions that exist within various sub-directories in $ISSM_DIR/src/m/... for import to Python.
Current issue(s)
-
$ISSM_DIR is not set when running module load access-issm.
- When installing without spack, we include
export ISSM_DIR="<PATH_TO_ISSM_PARENT_DIR>" in our .bash_profile.
-
It appears that /bin/ is prepended to the $PATH, but /lib/ is not included.
- When installing without spack, we include
source $ISSM_DIR/etc/environment.sh in our .bash_profile. This points to this file.
>>> module load access-issm
Loading access-issm/2025.03.0-yyo5t4w
Loading requirement: access-triangle/1.6.1-iju5vxs issm/git.2025.04.11_2025.04.11-p5mv6jc
>>> module show access-issm
-------------------------------------------------------------------
/g/data/vk83/apps/spack/0.22/release/modules/linux-rocky8-x86_64/access-issm/2025.03.0-yyo5t4w:
module-whatis { ACCESS-ISSM bundle containing the issm Package.}
module load issm/git.2025.04.11_2025.04.11-p5mv6jc
prepend-path CMAKE_PREFIX_PATH /g/data/vk83/apps/spack/0.22/release/linux-rocky8-x86_64/gcc-13.2.0/access-issm-git.2025.03.0_2025.03.0-yyo5t4wqyskuazm4oumc35jhbu3fczmf/.
-------------------------------------------------------------------
>>> module show issm/git.2025.04.11_2025.04.11-p5mv6jc
-------------------------------------------------------------------
/g/data/vk83/apps/spack/0.22/release/modules/linux-rocky8-x86_64/issm/git.2025.04.11_2025.04.11-p5mv6jc:
module-whatis {Ice-sheet and Sea-Level System Model}
module load access-triangle/1.6.1-iju5vxs
prepend-path PATH /g/data/vk83/apps/spack/0.22/release/linux-rocky8-x86_64/gcc-13.2.0/issm-git.2025.04.11_2025.04.11-p5mv6jclgptt4xpvb3xq4mrzzdgkebny/bin
prepend-path CMAKE_PREFIX_PATH /g/data/vk83/apps/spack/0.22/release/linux-rocky8-x86_64/gcc-13.2.0/issm-git.2025.04.11_2025.04.11-p5mv6jclgptt4xpvb3xq4mrzzdgkebny/.
-------------------------------------------------------------------
- Existing Python functions
$ISSM_DIR/src/m/... are not available for import to Python.
- When installing without spack, we source this file when launching a new Python terminal to pre- and post-process ISSM models.
Required updates
- Update spack-package to
export ISSM_DIR=<PATH_TO_PARENT_DIR>
- Update spack-package to add both
bin/ and lib/ to $PATH.
- Update spack-package to retain all
*.py files in $ISSM_DIR/src/m/... for import to Python for pre- and post-processing.
Related testing
Background
When working with ISSM, much of the accompanying tools/infrastructure require the
ISSM_DIREnvironment Variable to point to the parent source directory. For example, for an [old] non-spack build of ISSM on gadi:When building ISSM with Python wrappers (our default and recommended approach), we must be able to access the following directories:
$ISSM_DIR/bin/- contains theissm.exeexecutable$ISSM_DIR/lib/- contains the shared libraries created when building with Python wrappers.To support pre- and pos-processing of ISSM models within Python, we also need to access existing python functions that exist within various sub-directories in
$ISSM_DIR/src/m/...for import to Python.Current issue(s)
$ISSM_DIRis not set when runningmodule load access-issm.export ISSM_DIR="<PATH_TO_ISSM_PARENT_DIR>"in our.bash_profile.It appears that
/bin/is prepended to the $PATH, but/lib/is not included.source $ISSM_DIR/etc/environment.shin our.bash_profile. This points to this file.$ISSM_DIR/src/m/...are not available for import to Python.Required updates
export ISSM_DIR=<PATH_TO_PARENT_DIR>bin/andlib/to $PATH.*.pyfiles in$ISSM_DIR/src/m/...for import to Python for pre- and post-processing.Related testing