CABLE-LSM / CABLE

Home to the CABLE land surface model and its documentation
https://cable.readthedocs.io/en/latest/
Other
12 stars 6 forks source link

Add initialisation routine for offline drivers #440

Closed SeanBryan51 closed 2 weeks ago

SeanBryan51 commented 3 weeks ago

Whilst looking into merging the MPI master and worker drivers (#358), @micaeljtoliveira and I have identified that the model initialisation logic is duplicated across all drivers (serial and MPI master/worker). This change adds a preliminary initialisation routine to remove code duplication and improve code clarity across each of the drivers. The remaining initialisation code in the offline drivers will be moved to this routine in later pull requests to clean up the drivers further.

Checklist


📚 Documentation preview 📚: https://cable--440.org.readthedocs.build/en/440/

SeanBryan51 commented 2 weeks ago

Testing with benchcab fluxsite -v shows this branch bitwise reproduces model outputs from the main branch:

PBS log file:

2024-11-07 12:29:39,954 - INFO - benchcab.benchcab.py:369 - Running comparison tasks...
2024-11-07 12:29:39,977 - INFO - benchcab.benchcab.py:370 - tasks: 168 (models: 2, sites: 42, science configurations: 4)
2024-11-07 12:32:37,432 - INFO - benchcab.benchcab.py:381 - 0 failed, 168 passed

Benchcab version: 4.1.0

config.yaml:

realisations:
  - repo:
      git:
        branch: main
  - repo:
      git:
        branch: 425-offline-driver-initialisation-refactor

modules: [
  intel-compiler/2021.1.1,
  netcdf/4.7.4,
  openmpi/4.1.0
]