CABLE-LSM / CABLE-Trac-archive

Archive CABLE Trac contents as issues
Other
0 stars 0 forks source link

Test: adjusting use of trigger masks in albedo code #333

Closed penguian closed 1 year ago

penguian commented 2 years ago

keyword_albedo_JAC_keepgit owner:jxs599@nci.org.au resolution_fixed type_JAC readiness | by inh599


Preparing CABLE for JAC: albedo section

CABLE evaluates the effective albedo/effective surface reflectances (4-band) differently according to whether the surface is vegetated and/or sunlit&vegetated. In ACCESS and JAC there has been a long standing issue that the downwelling shortwave (i.e. whether the surface is sunlit or not) is not known until after the albedo is known. In ACCESS1.3, ESM1.5 and CM2 this issue was bypassed by substituting JULES albedos for CABLE's on the first time step. In JAC this method will not be possible/accepted by UMST.

Here we seek to test whether we can avoid the problem by not requiring the sunlit mask when evaluating the albedo. This should avoid the need for information about the shortwave radaition before it is available inside JAC and ACCESS. In practice we propose to evaluate the effective reflectances for vegetation under all circumstances i.e. outside their bounds of applicability but then only used within the sunlit&vegetated case.

In offline mode all variables that depend on the sunlit mask are not used elsewhere outside the equivalent mask in CABLE so this should not cause an issue. However in ACCESS, 2 of the variables that depend on the sunlit mask feed into the UM radiation scheme - so this change would change results. The code has been developed to allow backwards compatibility with the ESM (by retaining extra subroutine arguments).


Issue migrated from trac:333 at 2023-11-27 11:41:42 +1100

penguian commented 2 years ago

@inh599@nci.org.au changed milestone from 6. Report to 3. Implementation

penguian commented 2 years ago

@inh599@nci.org.au commented


First attempt at required code is at https://trac.nci.org.au/trac/cable/browser/branches/Users/inh599/albedo_masks_Ticket333

This comprises two sections 1) a renaming of the mask variables in the init_radiation() and albedo() modules and 2) a change in the masks passed to these routines from cbl_offline_model_driver().

Section 1 is purely cosmetic/comments - but included to avoid confusion in the future. Section 2 implements the change desired (removing the need for the sunlit masks in code that will be called from surf_couple_radiation in JAC). Note that while implemented in the offline code these changes are not strictly necessary - unless we wish to keep the sync between CABLE offline and JAC. Additional work will be necessary to (re)write the interface code in JAC (assuming this approach is successful).

These changes appear to be bitwise reproducible in testing so far (against 6 fluxnet sites) - progressing to testing across wider range of sites under benchcab.

Code in the coupled model (ESM) directory has been left untouched and should function as before these changes.

penguian commented 2 years ago

@inh599@nci.org.au commented


Running revision 8866 through the benchcab system indicates that the revised branch is bitwise reproducible to the trunk across 170 FLUXNET site, 4 science configurations and 16 variables.

results from a full run at revision @886 - 2022-06-01\

this is to test the use of different masks in the albedo code\

NB benchcab updated and only science configurations assessed.\

last number is maximum absolute difference between trunk and test branch for that site.\

0 of 170 AR-SLu_2010-2010_FLUXNET2015_Met 0.0\ 1 of 170 AT-Neu_2002-2012_FLUXNET2015_Met 0.0\ 2 of 170 AU-ASM_2011-2017_OzFlux_Met 0.0\ 3 of 170 AU-Cow_2010-2015_OzFlux_Met 0.0\ 4 of 170 AU-Cpr_2011-2017_OzFlux_Met 0.0\ 5 of 170 AU-Ctr_2010-2017_OzFlux_Met 0.0\ \ 167 of 170 US-Wkg_2005-2014_FLUXNET2015_Met 0.0\ 168 of 170 ZA-Kru_2000-2002_FLUXNET2015_Met 0.0\ 169 of 170 ZM-Mon_2008-2008_FLUXNET2015_Met 0.0\ All sites/variables have passed is True

Notes on implementation: For backwards compatibility - the ESM1.5 should retain the use of {veg_mask, sunlit_mask, sunlit_veg_mask} in the call to albedo() from cable_rad_driver, and in the calls to init_radiation() and albedo() from cable_cbm.

Testing with {veg_mask, veg_mask, veg_mask} in those three calls will provide a test of whether these proposed changes impact the coupled model significantly.

CABLE offline (at the trunk) can be run with either {veg_mask, sunlit_mask, sunlit_veg_mask} or {veg_mask, veg_mask, veg_mask} in the calls to init_radiation() and albedo() from cbl_model_offline_driver.

JAC will need {veg_mask, veg_mask, veg_mask} in the calls to init_radiation() and albedo() when called under surf_couple_radiation. For consistency JAC may prefer to use the same arguments in the corresponding calls under surf_couple_explicit and surf_couple_implicit.

This assessment has also demonstrated that, at the moment, the sunlit_mask is not used by CABLE. Ideally this variable would be removed from the code base prior to submission.

penguian commented 2 years ago

@inh599@nci.org.au uploaded file JAC-albedo-r8868.pdf (229.2 KiB)

further description of problem, solution and implementation

penguian commented 2 years ago

@inh599@nci.org.au changed status from assigned to new

penguian commented 2 years ago

@inh599@nci.org.au changed owner from inh599 to jhan

penguian commented 2 years ago

@inh599@nci.org.au changed milestone from 3. Implementation to 2. Submission

penguian commented 2 years ago

@inh599@nci.org.au commented


Further description in attached document.

Global offline runs have not been conducted.

Implementation in JAC code not attempted yet but should be straight forward.

Some short runs within the coupled model are needed to assess how big the impact could be.

Ticket 333 can, and should, go in alongside https://trac.nci.org.au/trac/cable/ticket/331

penguian commented 1 year ago

@jxs599@nci.org.au changed status from new to closed

penguian commented 1 year ago

@jxs599@nci.org.au set resolution to fixed

penguian commented 1 year ago

@jxs599@nci.org.au changed milestone from 2. Submission to 1. Closed

penguian commented 1 year ago

@ccc561@nci.org.au changed keywords from albedo JAC to albedo JAC keepgit