Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
785febe
Rejig library config for AM3
Whyborn May 22, 2026
5e0bd5a
Add library manifests to CI
Whyborn May 22, 2026
5ea70cd
Add library manifests to CI
Whyborn May 22, 2026
1bdd923
Set ref for spack-packages
Whyborn May 22, 2026
3cb4057
Remove templates taken from spack-packages
Whyborn May 22, 2026
329c302
Fix quotes
Whyborn May 22, 2026
4a692ca
Misspelled matches
Whyborn May 22, 2026
395b1fa
Move some files to common library
Whyborn May 22, 2026
d033810
Add type files to library
Whyborn May 22, 2026
f84c396
Fix some file names
Whyborn May 25, 2026
fea2e45
Fix more file names
Whyborn May 25, 2026
b5e9b4d
Drop coupled namelists mod
Whyborn May 25, 2026
367ba2f
Add surface types mod
Whyborn May 26, 2026
878632d
Fix name
Whyborn May 26, 2026
114cf54
use new cable_surface_types_mod.F90
Whyborn May 26, 2026
cb6ac5c
Wrong end subroutine name
Whyborn May 26, 2026
26c5d59
Add stash mapping
Whyborn May 26, 2026
8b94bfb
Add ncpft back
Whyborn May 26, 2026
6f9b9b0
Add dimension declaration
Whyborn May 26, 2026
0bd7975
Remove CASA IO from library
Whyborn May 26, 2026
de283d4
Readd landuse
Whyborn May 26, 2026
921abd5
Fix file name
Whyborn May 26, 2026
feb632b
Add cable_iovars.F90 to the build with slight adjustment
Whyborn May 27, 2026
dc432f7
Readd casa_inout
Whyborn May 27, 2026
4813a19
Library now builds
Whyborn May 27, 2026
911c2b3
Remove casa_variable.F90 from library
Whyborn May 28, 2026
f5662be
Add all the CASA types
Whyborn May 28, 2026
c6fe3e5
Update CASA types
Whyborn May 28, 2026
8d4ebc6
Use new cable_surface_types_mod.F90
Whyborn May 29, 2026
6d8f1a1
Fix dummy argument intents
Whyborn May 29, 2026
2ebc5da
Accidental doubly defined argument
Whyborn May 29, 2026
a01f924
Fix typos
Whyborn Jun 1, 2026
4d68181
Remove IFDEF statement
Whyborn Jun 2, 2026
7a6d2e2
Remove duplicate files
Whyborn Jun 2, 2026
3d0312a
Set ncpft
Whyborn Jun 2, 2026
a892c05
Remove coupled version of cable_surface_types
Whyborn Jun 12, 2026
39fc220
Fix name error
Whyborn Jun 12, 2026
cd3747d
Update cable_user and CMakeLists.txt
Whyborn Jun 16, 2026
1c1e944
Include ESM1.5 version of casa_landuse
Whyborn Jun 17, 2026
aaba5ca
Add missing file
Whyborn Jun 17, 2026
4ec8c8f
Rejig library config for AM3
Whyborn May 22, 2026
3235b1c
Add library manifests to CI
Whyborn May 22, 2026
4179d4d
Add library manifests to CI
Whyborn May 22, 2026
894a7bb
Remove templates taken from spack-packages
Whyborn May 22, 2026
02a30fb
Fix quotes
Whyborn May 22, 2026
4ae5a9a
Misspelled matches
Whyborn May 22, 2026
e094b8b
Move some files to common library
Whyborn May 22, 2026
d243577
Add type files to library
Whyborn May 22, 2026
dc2e041
Fix some file names
Whyborn May 25, 2026
023a5f4
Fix more file names
Whyborn May 25, 2026
4fb34ed
Drop coupled namelists mod
Whyborn May 25, 2026
106cbc3
Add surface types mod
Whyborn May 26, 2026
976c0d1
Fix name
Whyborn May 26, 2026
ac97bca
use new cable_surface_types_mod.F90
Whyborn May 26, 2026
c754e2c
Wrong end subroutine name
Whyborn May 26, 2026
7ef5097
Add stash mapping
Whyborn May 26, 2026
5e47793
Add ncpft back
Whyborn May 26, 2026
fe9b898
Add dimension declaration
Whyborn May 26, 2026
dcf009c
Remove CASA IO from library
Whyborn May 26, 2026
c93562d
Readd landuse
Whyborn May 26, 2026
c274767
Fix file name
Whyborn May 26, 2026
b9db7a2
Add cable_iovars.F90 to the build with slight adjustment
Whyborn May 27, 2026
2df4cd6
Readd casa_inout
Whyborn May 27, 2026
7c485cc
Library now builds
Whyborn May 27, 2026
5fe937f
Remove casa_variable.F90 from library
Whyborn May 28, 2026
3d5343c
Add all the CASA types
Whyborn May 28, 2026
084d900
Update CASA types
Whyborn May 28, 2026
f845f2e
Use new cable_surface_types_mod.F90
Whyborn May 29, 2026
d8803a2
Fix dummy argument intents
Whyborn May 29, 2026
cd5f58f
Accidental doubly defined argument
Whyborn May 29, 2026
0672feb
Fix typos
Whyborn Jun 1, 2026
95c8a00
Remove IFDEF statement
Whyborn Jun 2, 2026
b9ba147
Remove duplicate files
Whyborn Jun 2, 2026
3e2f3cf
Set ncpft
Whyborn Jun 2, 2026
4f0d020
Remove coupled version of cable_surface_types
Whyborn Jun 12, 2026
174ab43
Fix name error
Whyborn Jun 12, 2026
79fdbd3
Update cable_user and CMakeLists.txt
Whyborn Jun 16, 2026
595bce0
Include ESM1.5 version of casa_landuse
Whyborn Jun 17, 2026
3ef0fed
Add missing file
Whyborn Jun 17, 2026
2f78493
Update science
Whyborn Jul 3, 2026
43bd6c6
ff pull
Whyborn Jul 3, 2026
e413350
Merge branch 'main' into make-AM3-library
Whyborn Jul 3, 2026
7cd8286
Didn't fix the merge conflict properly
Whyborn Jul 3, 2026
ef8cdfd
Address PR feedback
Whyborn Jul 9, 2026
4d4c117
Add files back to ESM1.6 library
Whyborn Jul 15, 2026
9d5714e
Modify CI for ACCESS3
Whyborn Jul 27, 2026
f2acc72
File name typo in things moved to ESM1.6 lib
Whyborn Jul 27, 2026
1003d02
Move cable_iovars.F90 to core library
Whyborn Jul 27, 2026
713372e
Remove duplicate cable_iovars.F90
Whyborn Jul 27, 2026
49435ab
Move type files to more logical location
Whyborn Jul 27, 2026
b6c0646
Remove all files that exist in the coupling code
Whyborn Jul 27, 2026
85c8a86
Merge branch 'main' into make-AM3-library
Whyborn Jul 27, 2026
f11d99c
Move the ESM1.5 landuse file
Whyborn Jul 28, 2026
0e72a98
Merge branch 'make-AM3-library' of github.com:CABLE-LSM/CABLE into ma…
Whyborn Jul 28, 2026
d7f4be8
Somehow the old CI manifests came back
Whyborn Jul 28, 2026
a9c3331
Add CI for UM in ACCESS3
Whyborn Jul 28, 2026
360c0ae
Bad indenting
Whyborn Jul 28, 2026
1f63ec5
Fix model variant spec
Whyborn Jul 28, 2026
5a6d286
Try adding python dep
Whyborn Jul 28, 2026
2548615
Add @ for compiler spec
Whyborn Jul 28, 2026
def2a99
For some reason this needs Python?
Whyborn Jul 28, 2026
65214fb
Add +cable to um CI spec
Whyborn Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/build-ci/manifests/library-access3-gcc.spack.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
spack:
specs:
- cable@git.{{ ref }} ~mpi library=access3

packages:
gcc:
require:
- '@{{ gcc_compiler_ver }}'

all:
require:
- '%access_gcc'
- 'target={{ target }}'

concretizer:
unify: false
view: false
17 changes: 17 additions & 0 deletions .github/build-ci/manifests/library-access3-intel.spack.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
spack:
specs:
- cable@git.{{ ref }} ~mpi library=access3

packages:
intel-oneapi-compilers-classic:
require:
- '@{{ oneapi_compiler_classic_ver }}'

all:
require:
- '%access_intel'
- 'target={{ target }}'

concretizer:
unify: false
view: false
27 changes: 27 additions & 0 deletions .github/build-ci/manifests/um-access3.spack.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
spack:
specs:
- um@13.0 +cable model=vn13 um_ref="AM3-dev" jules_ref="AM3-dev" ukca_ref="AM3-2026.03.0"

packages:
cable:
require:
- '@git.{{ ref }}'
- '~mpi'
- 'library=access3'

python:
require:
- '@3.11.14'

intel-oneapi-compilers-classic:
require:
- '@{{ oneapi_compiler_classic_ver }}'

all:
require:
- '%access_intel'
- 'target={{ target }}'

view: false
concretizer:
unify: false
74 changes: 62 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ if(CABLE_LIBRARY)

# Set the core sources
set(SOURCES
src/offline/cable_iovars.F90
src/science/albedo/cbl_albedo.F90
src/science/albedo/cbl_snow_albedo.F90
src/science/albedo/cbl_soilColour_albedo.F90
Expand All @@ -88,17 +89,11 @@ if(CABLE_LIBRARY)
src/science/casa-cnp/bgcdriver.F90
src/science/casa-cnp/biogeochem_casa.F90
src/science/casa-cnp/casa_cnp.F90
src/science/casa-cnp/casa_dimension.F90
src/science/casa-cnp/casa_feedback.F90
src/science/casa-cnp/casa_inout.F90
src/science/casa-cnp/casa_param.F90
src/science/casa-cnp/casa_phenology.F90
src/science/casa-cnp/casa_readbiome.F90
src/science/casa-cnp/casa_rplant.F90
src/science/casa-cnp/casa_sumcflux.F90
src/science/casa-cnp/casa_variable.F90
Comment on lines -91 to -99

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens to all these CASA files for the ESM1.6 library? Were they added but are in fact not needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately these are bits that had been rewritten for AM3- the way the derived types are structured is different to offline, see this JULES issue. This is related to the duplicate ALLOCATABLE/POINTER type definitions that I wanted to unify some time back. The AM3 versions of these live in the JULES src/util/casa.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I follow what you are saying. So these files are not the same between ESM1.6 and AM3, ok. But it does not explain what happens for these files for ESM1.6. Right now, these files completely disappear of the compilation of ESM1.6 library in this PR, making me doubt that the compilation of the ESM1.6 library would work..
At the same time, I'm pretty sure we said this version of CABLE won't be compatible with ESM1.6, so should we not include an ESM1.6 library in the CMakeLists.txt file?

@Whyborn Whyborn Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, I think its either:

  1. Include those files in the ESM1.6 library build
  2. Drop the ESM1.6 library build altogether

With the conversations around BLAZE ongoing, I think it would be wise to keep the ESM1.6 library code there and add the files. I don't think it would be much work to make the ESM1.6 library build again, but keeping the list of files up to date would make future life easier if someone else was to come work on it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, when you have time, can you look at making sure the ESM1.6 library works. Can it also be added to the compilation CI in CABLE's PRs then so we would do 2 library builds?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I make that a separate PR? Separate that work from the AM3 work.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we keep the files in the list then so that it's easier to identify these files are problematic for the work on ESM1.6? Or comment them out with enough explanation to know what's needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't leave them in the list uncommented, as the build with fail, but I think commenting them out with an explanation is a good idea.

src/science/landuse/landuse3.F90
src/science/landuse/landuse_constant.F90
src/science/misc/cable_air.F90
src/science/misc/cable_carbon.F90
src/science/misc/cable_climate.F90
Expand Down Expand Up @@ -132,20 +127,26 @@ if(CABLE_LIBRARY)
src/science/soilsnow/cbl_surfbv.F90
src/science/soilsnow/cbl_thermal.F90
src/science/soilsnow/cbl_trimb.F90
src/science/landuse/landuse3.F90
src/science/landuse/landuse_constant.F90
src/params/cable_phys_constants_mod.F90
src/params/grid_constants_cbl.F90
src/params/cable_photo_constants_mod.F90
src/params/cable_other_constants_mod.F90
src/params/cable_maths_constants_mod.F90
src/util/cable_runtime_opts_mod.F90
src/util/cable_common.F90
src/coupled/shared/cable_canopy_type_mod.F90
src/coupled/shared/cable_soilsnow_type_mod.F90
src/coupled/shared/cable_soil_type_mod.F90
src/coupled/shared/cable_veg_type_mod.F90
src/util/cable_climate_type_mod.F90
src/util/masks_cbl.F90
src/offline/cable_iovars.F90

# These files should in theory be included in the base library
# build, but the AM3 versions had diverged fairly significantly
# from these. The AM3 versions should be brought in sync with
# the offline versions sooner rather than later.
#src/science/casa-cnp/casa_dimension.F90
#src/science/casa-cnp/casa_phenology.F90
#src/science/casa-cnp/casa_readbiome.F90
#src/science/casa-cnp/casa_variable.F90
)

if(CABLE_LIBRARY_TARGET STREQUAL "access-esm1.6")
Expand All @@ -156,6 +157,16 @@ if(CABLE_LIBRARY)
src/coupled/esm/cable_pft_params_mod.F90
src/coupled/esm/casa_landuse.F90
src/coupled/esm/LAI_canopy_height_cbl.F90
src/coupled/shared/cable_canopy_type_mod.F90
src/coupled/shared/cable_soilsnow_type_mod.F90
src/coupled/shared/cable_soil_type_mod.F90
src/coupled/shared/cable_veg_type_mod.F90
# These had to be removed from the generic library section,
# as AM3 provides a different definition for them
src/science/casa-cnp/casa_dimension.F90
src/science/casa-cnp/casa_phenology.F90
src/science/casa-cnp/casa_readbiome.F90
src/science/casa-cnp/casa_variable.F90
)
if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
add_compile_options(-r8 -i8)
Expand All @@ -164,7 +175,46 @@ if(CABLE_LIBRARY)
else()
message(STATUS "Cannot compile library with unknown compiler")
endif()

elseif(CABLE_LIBRARY_TARGET STREQUAL "access3")
list(APPEND SOURCES
src/coupled/AM3/cable/types/air_type_cbl.F90
src/coupled/AM3/cable/types/balances_type_cbl.F90
src/coupled/AM3/cable/types/bgc_pool_type.F90
src/coupled/AM3/cable/types/cable_define_types.F90
src/coupled/AM3/cable/types/cbl_canopy_type.F90
src/coupled/AM3/cable/types/cbl_cbm_mod.F90
src/coupled/AM3/cable/types/climate_type.F90
src/coupled/AM3/cable/types/met_type_cbl.F90
src/coupled/AM3/cable/types/radiation_type.F90
src/coupled/AM3/cable/types/roughness_type.F90
src/coupled/AM3/cable/types/soil_type_cbl.F90
src/coupled/AM3/cable/types/ssnow_type.F90
src/coupled/AM3/cable/types/sum_flux_type.F90
src/coupled/AM3/cable/types/veg_type.F90
src/coupled/AM3/casa/types/casa_balance_type.F90
src/coupled/AM3/casa/types/casa_biome_type.F90
src/coupled/AM3/casa/types/casa_files_type.F90
src/coupled/AM3/casa/types/casa_flux_type.F90
src/coupled/AM3/casa/types/casa_met_type.F90
src/coupled/AM3/casa/types/casa_phenology_type.F90
src/coupled/AM3/casa/types/casa_pool_type.F90
src/coupled/AM3/casa/types/sum_casa_flux_type.F90
src/coupled/AM3/casa/types/sum_casa_pool_type.F90
src/coupled/AM3/casa/types/casa_variable.F90
src/coupled/AM3/casa/types/phen_variable.F90
src/coupled/AM3/casa/types/casa_dimension.F90
src/coupled/AM3/casa/types/casa_inout.F90
src/coupled/AM3/casa/types/casa_readbiome.F90
src/offline/cable_surface_types.F90
src/coupled/AM3/cable/landuse/casa_ESM15landuse.F90
)
if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
add_compile_options(-r8 -i8)
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
add_compile_options(-fdefault-real-8 -fdefault-integer-8 -fdefault-double-8)
else()
message(STATUS "Cannot compile library with unknown compiler")
endif()
Comment thread
ccarouge marked this conversation as resolved.
else()
message(STATUS "Specified library application does not exist")
endif()
Expand Down
Loading
Loading