Skip to content

Commit b7da711

Browse files
Merge branch 'main' into gz
2 parents 37fd277 + f845eb8 commit b7da711

File tree

874 files changed

+27290
-55708
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

874 files changed

+27290
-55708
lines changed

.github/workflows/common-workflow.yml

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ on:
2727
python_version:
2828
required: false
2929
type: string
30+
3031
env:
3132
ISSM_DIR: ${{ github.workspace }}
3233

@@ -37,6 +38,47 @@ jobs:
3738
outputs:
3839
test_matrix: ${{ steps.createTestMatrix.outputs.test_output }}
3940
steps:
41+
- name: Free disk space
42+
run: |
43+
# Source: https://dev.to/mathio/squeezing-disk-space-from-github-actions-runners-an-engineers-guide-3pjg#6-how-to-automate-cleanup-in-your-ci
44+
#
45+
46+
# Remove Java (JDKs)
47+
#sudo rm -rf /usr/lib/jvm
48+
49+
# Remove .NET SDKs
50+
sudo rm -rf /usr/share/dotnet
51+
52+
# Remove Swift toolchain
53+
sudo rm -rf /usr/share/swift
54+
55+
# Remove Haskell (GHC)
56+
sudo rm -rf /usr/local/.ghcup
57+
58+
# Remove Julia
59+
sudo rm -rf /usr/local/julia*
60+
61+
# Remove Android SDKs
62+
sudo rm -rf /usr/local/lib/android
63+
64+
# Remove Chromium (optional if not using for browser tests)
65+
sudo rm -rf /usr/local/share/chromium
66+
67+
# Remove Microsoft/Edge and Google Chrome builds
68+
sudo rm -rf /opt/microsoft /opt/google
69+
70+
# Remove Azure CLI
71+
sudo rm -rf /opt/az
72+
73+
# Remove PowerShell
74+
sudo rm -rf /usr/local/share/powershell
75+
76+
# Remove CodeQL and other toolcaches
77+
sudo rm -rf /opt/hostedtoolcache
78+
79+
docker system prune -af || true
80+
docker builder prune -af || true
81+
df -h
4082
- name: Check out copy of repository
4183
uses: actions/checkout@v4
4284

@@ -61,7 +103,7 @@ jobs:
61103
id: setup-matlab
62104
uses: matlab-actions/setup-matlab@v2
63105
with:
64-
release: R2023b
106+
release: latest
65107
cache: true
66108

67109
- name: Prepare Python
@@ -74,17 +116,22 @@ jobs:
74116
- name: Install Python dependencies
75117
if: contains(inputs.interface, 'python')
76118
run: |
77-
sudo apt-get install libpython${{ inputs.python_version }}-dev
78-
sudo apt-get install python3-dev
119+
sudo apt update
120+
sudo apt install libpython${{ inputs.python_version }}-dev
121+
sudo apt install python3-dev
79122
python -m pip install --upgrade pip
80-
sudo apt-get update && sudo apt-get install -y python-tk python3-tk
123+
sudo apt install -y python3-tk
81124
python -m pip install numpy scipy matplotlib nose
82125
83126
- name: Build ISSM
84127
run: |
128+
export CC=${{ env.ISSM_DIR }}/externalpackages/petsc/install/bin/mpicc
129+
export CXX=${{ env.ISSM_DIR }}/externalpackages/petsc/install/bin/mpicxx
130+
export FC=${{ env.ISSM_DIR }}/externalpackages/petsc/install/bin/mpifort
131+
export F77=$FC
132+
export F90=$FC
85133
export MATLAB_ROOT=${{ steps.setup-matlab.outputs.matlabroot }}
86134
export PYTHON_ROOT=${{ env.pythonLocation }}
87-
export NUMPY_ROOT=${{ env.LD_LIBRARY_PATH }}/python3.11/site-packages/numpy
88135
${{ inputs.build_command }}
89136
90137
- name: Compile ISSM
@@ -171,7 +218,7 @@ jobs:
171218
if: contains( inputs.interface, 'python')
172219
run: |
173220
python -m pip install --upgrade pip
174-
sudo apt-get update && sudo apt-get install -y python-tk python3-tk
221+
sudo apt update && sudo apt install -y python3-tk
175222
python -m pip install numpy scipy matplotlib nose netCDF4
176223
177224
- name: Run Python tests

.github/workflows/ubuntu-basic.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,29 @@ name: Ubuntu Basic
33
on:
44
push:
55
branches: [ "main" ]
6+
paths:
7+
- ".github/workflows/common-workflow.yml"
8+
- ".github/workflows/ubuntu-basic.yml"
9+
- "etc/**"
10+
- "externalpackages/**"
11+
- "m4/**"
12+
- "src/**"
13+
- "test/**"
14+
- "Makefile.am"
15+
- "configure.ac"
616
pull_request:
717
branches: [ "main" ]
18+
paths:
19+
- ".github/workflows/common-workflow.yml"
20+
- ".github/workflows/ubuntu-basic.yml"
21+
- "etc/**"
22+
- "externalpackages/**"
23+
- "m4/**"
24+
- "src/**"
25+
- "test/**"
26+
- "Makefile.am"
27+
- "configure.ac"
28+
829
env:
930
ISSM_DIR: ${{ github.workspace }}
1031

.github/workflows/ubuntu-codipack.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,29 @@ name: Ubuntu CodiPack
33
on:
44
push:
55
branches: [ "main" ]
6+
paths:
7+
- ".github/workflows/common-workflow.yml"
8+
- ".github/workflows/ubuntu-codipack.yml"
9+
- "etc/**"
10+
- "externalpackages/**"
11+
- "m4/**"
12+
- "src/**"
13+
- "test/**"
14+
- "Makefile.am"
15+
- "configure.ac"
616
pull_request:
717
branches: [ "main" ]
18+
paths:
19+
- ".github/workflows/common-workflow.yml"
20+
- ".github/workflows/ubuntu-codipack.yml"
21+
- "etc/**"
22+
- "externalpackages/**"
23+
- "m4/**"
24+
- "src/**"
25+
- "test/**"
26+
- "Makefile.am"
27+
- "configure.ac"
28+
829
env:
930
ISSM_DIR: ${{ github.workspace }}
1031

.github/workflows/ubuntu-python.yml

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,29 @@ name: Ubuntu Python
33
on:
44
push:
55
branches: [ "main" ]
6+
paths:
7+
- ".github/workflows/common-workflow.yml"
8+
- ".github/workflows/ubuntu-python.yml"
9+
- "etc/**"
10+
- "externalpackages/**"
11+
- "m4/**"
12+
- "src/**"
13+
- "test/**"
14+
- "Makefile.am"
15+
- "configure.ac"
616
pull_request:
717
branches: [ "main" ]
18+
paths:
19+
- ".github/workflows/common-workflow.yml"
20+
- ".github/workflows/ubuntu-basic.yml"
21+
- "etc/**"
22+
- "externalpackages/**"
23+
- "m4/**"
24+
- "src/**"
25+
- "test/**"
26+
- "Makefile.am"
27+
- "configure.ac"
28+
829
env:
930
ISSM_DIR: ${{ github.workspace }}
1031

@@ -13,20 +34,21 @@ jobs:
1334
uses: ./.github/workflows/common-workflow.yml
1435
with:
1536
os: ubuntu-latest
16-
build_type: basic-python-3.11
37+
build_type: basic-python
1738
interface: python
18-
python_version: 3.11
39+
python_version: 3.12
1940
build_command: |
2041
source $ISSM_DIR/etc/environment.sh
2142
autoreconf -ivf
22-
./configure --prefix=${ISSM_DIR} \
43+
ls ${ISSM_DIR}/externalpackages/petsc/install/bin/
44+
which mpicxx
45+
./configure \
46+
--prefix=${ISSM_DIR} \
2347
--disable-static \
2448
--enable-development \
2549
--enable-debugging \
2650
--with-numthreads=4 \
27-
--with-python-version=3.11 \
28-
--with-python-dir=$PYTHON_ROOT \
29-
--with-python-numpy-dir=$NUMPY_ROOT \
51+
--with-python=${PYTHON_ROOT}/bin/python3 \
3052
--with-fortran-lib="-L/usr/lib/x86_64-linux-gnu -lgfortran" \
3153
--with-mpi-include="${ISSM_DIR}/externalpackages/petsc/install/include" \
3254
--with-mpi-libflags="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lmpi -lmpicxx -lmpifort" \

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#==================
33
*.a
44
*.al
5+
*.js
56
*.la
67
*.lo
78
*.mexa64
@@ -10,6 +11,7 @@
1011
*.pyo
1112
*.so
1213
*.so.[0-9]*
14+
*.wasm
1315
__pycache__
1416
bin/
1517
lib/
@@ -67,6 +69,8 @@ externalpackages/*/*.zip
6769
externalpackages/*/*.gz
6870
externalpackages/*/*.tgz
6971
externalpackages/chaco/chaco*guide.pdf
72+
externalpackages/export_fig/.ignore
73+
externalpackages/vim/addons/vim/.netrwhist
7074

7175
# Jenkins #
7276
#==========

Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
EXTRA_DIST = reconf scripts test m4 examples etc doc packages
1+
EXTRA_DIST = examples scripts execution etc test
2+
23
SUBDIRS = src
34

45
ACLOCAL_AMFLAGS = -I m4

README.md

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# Ice-sheet and Sea-level System Model - ISSM
2+
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
23
[![Ubuntu Basic](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-basic.yml/badge.svg)](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-basic.yml)
3-
[![Ubuntu CodiPack](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-codipack.yml/badge.svg)](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-codipack.yml)
44
[![Ubuntu Python](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-python.yml/badge.svg)](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-python.yml)
5+
[![Ubuntu CodiPack](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-codipack.yml/badge.svg)](https://github.com/ISSMteam/ISSM/actions/workflows/ubuntu-codipack.yml)
56

67
## Description
78
ISSM is a large-scale thermo-mechanical 2D/3D parallelized multi-purpose finite-element software dedicated to ice sheet and sea-level modeling.
89

10+
## Documentation
11+
<a href="https://issmteam.github.io/ISSM-Documentation" target="_blank">Just The Docs</a>
12+
913
## Contact
10-
- Forum: https://issm.ess.uci.edu/forum
11-
- GitHub: https://github.com/ISSMteam/ISSM
12-
- Website: https://issm.jpl.nasa.gov
14+
- Bug Reporting: Please direct compile and run time bug reports strictly related to ISSM's core code or API's to the 'Issues' page.
15+
- Questions: Please direct all other questions (e.g. model setup, configuration/compiling on a particular platform, compute cluster configuration) to the 'Discussions' page.
16+
- Website: https://issm.jpl.nasa.gov (will be decommissioned soon)
1317

1418
## Checking Out a Copy of the Repository
1519
Navigate to the parent directory where you want the ISSM repository to be located. If you plan to make contributions to the code base, we recommend that you check out a copy via SSH with,
@@ -28,31 +32,25 @@ Note that checkout via HTTPS does not require credentials, but does not allow co
2832
## Committing Changes to the Repository
2933
A good basic workflow for committing changes to the repository is,
3034

31-
1. Stash your local changes
32-
```
35+
```bash
36+
#1. Stash your local changes
3337
git stash
34-
```
3538

36-
2. Update your local branch
37-
```
39+
#2. Update your local branch
3840
git pull
39-
```
4041

41-
3. Merge your local changes
42-
```
42+
#3. Merge your local changes
4343
git stash apply
44-
```
4544

46-
4. Add, commit, and push your changes
47-
```
45+
#4. Add, commit, and push your changes
4846
git add [file]
4947
git commit [-m "descriptive commit message"]
5048
git push
5149
```
5250

53-
5. If you have forked the ISSM repository, consider making sure that your commit passes CI workflows before submitting a pull request.
51+
If you have forked the ISSM repository, consider making sure that your commit passes CI workflows before submitting a pull request.
5452

55-
6. Submit a pull request via GitHub so that project admins can review your changes and merge them into the main branch.
53+
Submit a pull request via GitHub so that project admins can review your changes and merge them into the main branch.
5654

5755
If you find yourself making a lot of commits and pull requests, consider asking us to add you to the 'ISSM Contributors' group, which will allow you to make commits directly to the repository.
5856

configure.ac

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
#Initializing configure
3-
AC_INIT([Ice-sheet and Sea-level System Model (ISSM)],[4.24],[https://issm.ess.uci.edu/forum/],[issm],[http://issm.jpl.nasa.gov])
3+
AC_INIT([Ice-sheet and Sea-level System Model (ISSM)],[4.24],[https://github.com/ISSMteam/ISSM/],[issm],[https://issmteam.github.io/ISSM-Documentation/])
44
AC_CONFIG_AUX_DIR([./aux-config]) # Put config files in aux-config
55
AC_CONFIG_MACRO_DIR([m4]) # m4 macros are located in m4
66
m4_include([m4/issm_options.m4])
@@ -14,11 +14,11 @@ AC_MSG_NOTICE(==================================================================
1414
AC_CANONICAL_TARGET
1515

1616
#Compilers
17-
AC_PROG_CC([icc cl icl gcc])
18-
AC_PROG_CPP
19-
AC_PROG_CXX([icpc cl icl g++])
20-
AC_PROG_F77([ifort g77 gfortran])
21-
AC_PROG_FC([ifort gfortran])
17+
AC_PROG_CC( [mpicc icc cl icl gcc]) # C compiler
18+
AC_PROG_CPP # C preprocessor (after CC)
19+
AC_PROG_CXX([mpicxx mpic++ icpc cl icl g++]) # C++ compiler
20+
AC_PROG_F77([mpifort ifort g77 gfortran]) # Fortran 77 compiler
21+
AC_PROG_FC( [mpifort ifort gfortran]) # Fortran compiler
2222

2323
#AUTOMAKE
2424
AM_INIT_AUTOMAKE([foreign]) # Initialize automake and declare foreign (don't need a ChangeLog, INSTALL, etc)
@@ -29,20 +29,23 @@ AM_PROG_AR
2929
#Libtool
3030
LT_INIT([win32-dll])
3131

32-
#Run issm_options.m4
32+
# ---------------------------------------------------------------------
33+
# Run ISSM’s usual option-detection macro collection
34+
# ---------------------------------------------------------------------
3335
ISSM_OPTIONS
3436

35-
#List all Makefiles
37+
# ---------------------------------------------------------------------
38+
# Output files
39+
# ---------------------------------------------------------------------
3640
AC_CONFIG_FILES([
37-
Makefile
38-
src/Makefile
39-
src/c/Makefile
40-
src/wrappers/Makefile
41-
src/wrappers/python/Makefile
42-
src/wrappers/matlab/Makefile
43-
src/wrappers/javascript/Makefile
44-
src/m/Makefile
41+
Makefile
42+
src/Makefile
43+
src/c/Makefile
44+
src/m/Makefile
45+
src/wrappers/Makefile
46+
src/wrappers/python/Makefile
47+
src/wrappers/matlab/Makefile
48+
src/wrappers/javascript/Makefile
4549
])
4650

47-
#End of configure.ac
4851
AC_OUTPUT

0 commit comments

Comments
 (0)