Skip to content

Conversation

@JhanSrbinovsky
Copy link
Collaborator

@JhanSrbinovsky JhanSrbinovsky commented Oct 13, 2025

CABLE

Thank you for submitting a pull request to the CABLE Project.

Description

It might be beneficial to have these all in one place. Given a few trivial changes that really should go into the ESM side, and retained here (e.g referencing cable_serial replacing cable_driver) - comparing this branch to the ESM1.6 branch there are ZERO differences.

merging branches representative of #622 #623 #624

Fixes #619 #628

Type of change

Please delete options that are not relevant.

  • [NA] Bug fix
  • [NA] New or updated documentation

Checklist

  • The new content is accessible and located in the appropriate section
  • I have checked that links are valid and point to the intended content
  • I have checked my code/text and corrected any misspellings

Testing

  • Are the changes bitwise-compatible with the main branch? If working on an optional feature, are the results bitwise-compatible when this feature is off? If yes, copy benchcab output showing successful completion of the bitwise compatibility tests or equivalent results below this line.

bench_cab config.yaml

realisations:
  - repo:
      git:
        branch: main

  - repo:
     git:
       branch: CABLEupdatesFromESM16-merge1and2

fluxsite:
   experiment: five-site-test

benchmark_cable_qsub.sh.o152947997

2025-10-21 11:55:03,905 - INFO - benchcab.benchcab.py:390 - 0 failed, 20 passed

  • Are the changes non bitwise-compatible with the main branch because of a bug fix or a feature being newly implemented or improved? If yes, add the link to the modelevaluation.org analysis versus the main branch or equivalent results below this line.

Please add a reviewer when ready for review.


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

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

revert this

@JhanSrbinovsky
Copy link
Collaborator Author

It might be easier to split this further into the 80% of updates that are not going to change anything, and then do the others - perhaps one at a time even - and get approval from the science module leader (even though they don't really exist yet). What do you think @Whyborn @ccarouge

Copy link
Contributor

@Whyborn Whyborn left a comment

Choose a reason for hiding this comment

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

I've left a bunch of requests, almost all are just formatting. A couple about giving variables more descriptive names


phen%phase = 2

Copy link
Contributor

Choose a reason for hiding this comment

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

Remove whitespace

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ive aligned the multiple lines of the WHERE condition but then returned to the LOOP indentation level. Do you really want to change this?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yea, lines with nothing in them should be empty of everything including whitespace I think. Mostly due to many editors doing this by default, and causing annoying diffs in later commits

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

so you mean the empty lines - like this?

@Whyborn
Copy link
Contributor

Whyborn commented Oct 13, 2025

@JhanSrbinovsky which changes do you expect to make a science difference? Are these changes already part of this PR or are you yet to include them?

@JhanSrbinovsky
Copy link
Collaborator Author

@Whyborn they are already here, and noted so, in "files changed" - but Im thinking I'll just do more than one PR. Even if the consequential changes are held up we'll be much closer.

@Whyborn
Copy link
Contributor

Whyborn commented Oct 13, 2025

I can't see how either would lead to changes. For the first change you noted, adding of the aust_mesic and aust_xeric to the list of tiles, this would not lead to any change (although the downstream changes of adding these to various sections in the code could if we had a gridinfo file with non-zero fractions in these tiles, which I'm quite sure we don't). The removal of mlogmax is not an issue as it is not referred to anywhere in the offline code except for the line you removed

@JhanSrbinovsky JhanSrbinovsky self-assigned this Oct 13, 2025
@JhanSrbinovsky
Copy link
Collaborator Author

5 site bench_cab test fails. I'm hoping it will show no change. There does appear to be a bunch of data there, but then all of a sudden it thinks it is somewhere else and says it can't find the config.yaml

Any ideas @Whyborn ?

/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/bin/benchcab fluxsite-run-tasks --config=config.yaml Traceback (most recent call last): File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/bin/benchcab", line 10, in <module> sys.exit(main()) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/main.py", line 45, in main parse_and_dispatch(parser, app) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/main.py", line 35, in parse_and_dispatch func(**args) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/benchcab.py", line 348, in fluxsite_run_tasks config = self._get_config(config_path) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/benchcab.py", line 152, in _get_config self._config = read_config(config_path) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/config.py", line 170, in read_config config = read_config_file(config_path) File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/site-packages/benchcab/config.py", line 144, in read_config_file with Path.open(Path(config_path), "r", encoding="utf-8") as file: File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-24.07/lib/python3.10/pathlib.py", line 1119, in open return self._accessor.open(self, mode, buffering, encoding, errors, FileNotFoundError: [Errno 2] No such file or directory: 'config.yaml'

@Whyborn
Copy link
Contributor

Whyborn commented Oct 17, 2025

I might pass this on to @SeanBryan51 or @abhaasgoyal as the benchcab experts, but it looks like you're missing a config file?

@har917
Copy link
Collaborator

har917 commented Oct 17, 2025

@JhanSrbinovsky I think hh5 is defunct now - you have to update to use xp65. There was a notification a while ago on the hive about this

@JhanSrbinovsky
Copy link
Collaborator Author

@JhanSrbinovsky I think hh5 is defunct now - you have to update to use xp65. There was a notification a while ago on the hive about this

I vaguely remember this - ok - I think I've sorted it now

@JhanSrbinovsky
Copy link
Collaborator Author

I spoke too soon. I've updated to using xp65, but same error. I dot think it is looking for my config.yaml, although it already successfully read this to successfully build the branches I specified. @SeanBryan51 or @abhaasgoyal

@SeanBryan51
Copy link
Collaborator

I spoke too soon. I've updated to using xp65, but same error. I dot think it is looking for my config.yaml, although it already successfully read this to successfully build the branches I specified. @SeanBryan51 or @abhaasgoyal

Hi @JhanSrbinovsky, sorry to hear you are having issues! It would be helpful for us if you created an issue describing the commands you ran and the errors produced from benchcab

@JhanSrbinovsky
Copy link
Collaborator Author

Thanks Sean,

Here is some additional info. The straight outta the box config.yaml doesn't help, same error. But maybe problem is that it isn't even from this repo anymore. This is from a year ago or more.

gadi:bench_example> gitbr

I cloned from

git@github.com:CABLE-LSM/benchcab.git

and trying again.

@JhanSrbinovsky
Copy link
Collaborator Author

bench_cab config.yaml

realisations:
  - repo:
      git:
        branch: main

  - repo:
     git:
       branch: CABLEupdatesFromESM16-merge1and2

fluxsite:
   experiment: five-site-test

benchmark_cable_qsub.sh.o152947997

2025-10-21 11:55:03,905 - INFO - benchcab.benchcab.py:390 - 0 failed, 20 passed

@Whyborn @ccarouge

Copy link
Contributor

@Whyborn Whyborn left a comment

Choose a reason for hiding this comment

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

Still have a couple of comments, on stuff I remarked upon before

LAI_pft_temp(i,n) = MAX( 0.99*CLAI_thresh, LAI_pft(i,n) )
HGT_pft_temp(i,n) = MAX( 0.1, HGT_pft(i,n) )
! Apply correction to vegetated types only
IF ( n <= aust_xeric ) THEN
Copy link
Contributor

@Whyborn Whyborn Oct 21, 2025

Choose a reason for hiding this comment

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

@JhanSrbinovsky I don't think this is resolved- if you think it's not worth making this change, that's fine, but I get the impression from your comment there's meant to be a change here (changing aust_xeric to something which conveys this is the last vegetated tile)?

@Whyborn @JhanSrbinovsky Realistically this aust_xeric should be an npft - i.e. the number of vegetated PFTs.

Copy link
Contributor

Choose a reason for hiding this comment

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

Where have they been moved to? I'm guessing this climate type has to do with climate-based phenology, do the benchcab runs test this (@ccarouge)?

@Whyborn
Copy link
Contributor

Whyborn commented Oct 21, 2025

Looks good to me. Did you upload the benchcab results to MEorg? Did the bug fixes lead to any noticeable difference in results?

@JhanSrbinovsky
Copy link
Collaborator Author

I thought that line I posted was a summary of all 20 jobs where:

2025-10-21 11:54:43,392 - INFO - comparison.comparison.py:73 - Success: files US-Whs_2008-2014_FLUXNET2015_Met_R0_S1_out.nc US-Whs_2008-2014_FLUXNET2015_Met_R1_S1_out.nc are identical
2025-10-21 11:54:44,384 - INFO - comparison.comparison.py:73 - Success: files US-Whs_2008-2014_FLUXNET2015_Met_R0_S0_out.nc US-Whs_2008-2014_FLUXNET2015_Met_R1_S0_out.nc are identical
2025-10-21 11:54:45,756 - INFO - comparison.comparison.py:73 - Success: files AU-Tum_2002-2017_OzFlux_Met_R0_S1_out.nc AU-Tum_2002-2017_OzFlux_Met_R1_S1_out.nc are identical
2025-10-21 11:54:45,864 - INFO - comparison.comparison.py:73 - Success: files AU-Tum_2002-2017_OzFlux_Met_R0_S3_out.nc AU-Tum_2002-2017_OzFlux_Met_R1_S3_out.nc are identical
2025-10-21 11:54:45,877 - INFO - comparison.comparison.py:73 - Success: files AU-Tum_2002-2017_OzFlux_Met_R0_S2_out.nc AU-Tum_2002-2017_OzFlux_Met_R1_S2_out.nc are identical
2025-10-21 11:54:46,116 - INFO - comparison.comparison.py:73 - Success: files AU-Tum_2002-2017_OzFlux_Met_R0_S0_out.nc AU-Tum_2002-2017_OzFlux_Met_R1_S0_out.nc are identical
2025-10-21 11:54:55,646 - INFO - comparison.comparison.py:73 - Success: files US-Var_2001-2014_FLUXNET2015_Met_R0_S0_out.nc US-Var_2001-2014_FLUXNET2015_Met_R1_S0_out.nc are identical
2025-10-21 11:54:55,830 - INFO - comparison.comparison.py:73 - Success: files US-Var_2001-2014_FLUXNET2015_Met_R0_S1_out.nc US-Var_2001-2014_FLUXNET2015_Met_R1_S1_out.nc are identical
2025-10-21 11:54:55,906 - INFO - comparison.comparison.py:73 - Success: files US-Var_2001-2014_FLUXNET2015_Met_R0_S3_out.nc US-Var_2001-2014_FLUXNET2015_Met_R1_S3_out.nc are identical
2025-10-21 11:54:56,116 - INFO - comparison.comparison.py:73 - Success: files US-Var_2001-2014_FLUXNET2015_Met_R0_S2_out.nc US-Var_2001-2014_FLUXNET2015_Met_R1_S2_out.nc are identical
2025-10-21 11:54:56,413 - INFO - comparison.comparison.py:73 - Success: files AU-How_2003-2017_OzFlux_Met_R0_S2_out.nc AU-How_2003-2017_OzFlux_Met_R1_S2_out.nc are identical
2025-10-21 11:54:57,549 - INFO - comparison.comparison.py:73 - Success: files AU-How_2003-2017_OzFlux_Met_R0_S0_out.nc AU-How_2003-2017_OzFlux_Met_R1_S0_out.nc are identical
2025-10-21 11:54:59,207 - INFO - comparison.comparison.py:73 - Success: files AU-How_2003-2017_OzFlux_Met_R0_S3_out.nc AU-How_2003-2017_OzFlux_Met_R1_S3_out.nc are identical
2025-10-21 11:54:59,219 - INFO - comparison.comparison.py:73 - Success: files AU-How_2003-2017_OzFlux_Met_R0_S1_out.nc AU-How_2003-2017_OzFlux_Met_R1_S1_out.nc are identical
2025-10-21 11:55:00,529 - INFO - comparison.comparison.py:73 - Success: files US-Whs_2008-2014_FLUXNET2015_Met_R0_S2_out.nc US-Whs_2008-2014_FLUXNET2015_Met_R1_S2_out.nc are identical
2025-10-21 11:55:01,278 - INFO - comparison.comparison.py:73 - Success: files US-Whs_2008-2014_FLUXNET2015_Met_R0_S3_out.nc US-Whs_2008-2014_FLUXNET2015_Met_R1_S3_out.nc are identical
2025-10-21 11:55:03,756 - INFO - comparison.comparison.py:73 - Success: files FI-Hyy_1996-2014_FLUXNET2015_Met_R0_S2_out.nc FI-Hyy_1996-2014_FLUXNET2015_Met_R1_S2_out.nc are identical
2025-10-21 11:55:03,809 - INFO - comparison.comparison.py:73 - Success: files FI-Hyy_1996-2014_FLUXNET2015_Met_R0_S0_out.nc FI-Hyy_1996-2014_FLUXNET2015_Met_R1_S0_out.nc are identical
2025-10-21 11:55:03,841 - INFO - comparison.comparison.py:73 - Success: files FI-Hyy_1996-2014_FLUXNET2015_Met_R0_S3_out.nc FI-Hyy_1996-2014_FLUXNET2015_Met_R1_S3_out.nc are identical
2025-10-21 11:55:03,876 - INFO - comparison.comparison.py:73 - Success: files FI-Hyy_1996-2014_FLUXNET2015_Met_R0_S1_out.nc FI-Hyy_1996-2014_FLUXNET2015_Met_R1_S1_out.nc are identical

so because they are identical I didn't post to ME.org - however I have never had great success with doing this. Last time I tried we ere on the verge of being to upload directly from GADI. Hs that happened? @Whyborn

@Whyborn
Copy link
Contributor

Whyborn commented Oct 22, 2025

The changes to xpleafx_coef didn't make any difference? Good (?) news I guess

@Whyborn Whyborn marked this pull request as ready for review October 22, 2025 01:12
@Whyborn Whyborn self-requested a review October 22, 2025 01:12
@JhanSrbinovsky
Copy link
Collaborator Author

happy news. I've looked at the several remaining differences we've created on this side that MIGHT have to go back to t he ESM1.6 and it doesn't look like there are any. Mostly they are comments, the offending #def which is taken care of in the lib. The biggest difference is substituting npft for aust_xeric. The conclusion being that we can swap in the library for the official control.

In a meting this morning we discussed removing xnslope etc in a casa routine and updating the lookup table. This can be our first update to the lib perhaps. Maybe build a lib, we'll build an ESM1.6 executable and test this against an Oct-X run. Then we'll tentatively make the switch?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Divergence between CABLE versions in ESM1.6 and CABLE:main

6 participants