Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Track variables fudged in JAC version that need to be revisited #254

Open
penguian opened this issue Aug 19, 2020 · 10 comments
Open

Track variables fudged in JAC version that need to be revisited #254

penguian opened this issue Aug 19, 2020 · 10 comments

Comments

@penguian
Copy link
Collaborator

keyword_keepgit owner:[email protected] type_defect | by [email protected]


Moving to rose-stem testing of fully operational CABLE identifies several variables (which are not actually used or important) that are not initialized properly.

Efficaciously these adopt fudged values - BUT need to be revisited and initialised properly.

These variables are identified in the comments below.


Issue migrated from trac:254 at 2023-11-27 11:33:05 +1100

@penguian
Copy link
Collaborator Author

@[email protected] commented


sin_theta_latitude - "semi-fudged" here to = sin(latitude) HOWEVER - latitude itself is fudged for this single site. UM had sin_theta_latitude available - whereas STANDALONE does not. latitude itself was I think fudged to be EXACTLY the same as the CABLE version, significantly for the purpose of using CABLE's method for calculating zenith angle. Even latitude is not ordinarily available this far down in the model (I think)

@penguian
Copy link
Collaborator Author

@[email protected] commented


Groundwåter scheme initialises these vars. As GW scheme is switched off in JAC these are NaN - which doesn’t get through debug, -fpe0 check. Ideally initialisation PER scheme should exclude these. HACK around is just give them their limiting value.

Index: cable_explicit_driver.F90

+!HACK

+dz_gw (:) = 20.0

+slope_avg(:) = 0.02

+slope_std(:) = .005

+drain_gw(:) = 0.0008

+perm_gw(:) = 3.0e-6

@penguian
Copy link
Collaborator Author

@[email protected] commented


npp_ft_acc = 0.0
Doesn't seem to have any impact on the physical model anyway.
Previously had dims (landpts, ntiles).
In JULES-5.7 seems to also have the dims n_pft_trif as a 3rd dim.

@penguian
Copy link
Collaborator Author

@[email protected] commented


resp_w_ft_acc(:,:) = 0.0

@penguian
Copy link
Collaborator Author

@[email protected] commented


veg_mask - and other masks presumably. fudged by using SAVE attribute in dec - however this problem may indeed be resolved in later versions by fixing the masks in initialisation and passing through args

@penguian
Copy link
Collaborator Author

@[email protected] commented


LAI and canopy height used in JAC version are coming from (ultimately) JULES "_io" version. In part this was legacy from UM global where "_io" version was input from spatial map whereas for CABLE this is a per PFT parameter. Later it was left as such to preserve comparison between models. This does require JAC to call JULES PFT parameter initialisation for both LSMs, while JAC also calls CABLE PFT parameter initialisation for LSM=CABLE. NOTE however that other PFT params are not the same.

From the perspective of that JAC only calls LSM_PFT_parameters (where LSM= either JULES or CABLE) for each respective case, we can make sure for testing purposes of single sites that our LAI in particular, but in general all PFT params match for e.g. Loobos. This highlights two considerations though:

  1. We have to verify this BUT it is expected that for e.g PFT=1 at Loobos does not share the same parameters as PFT=1 at Ampero. i.e. JULES has a unique PFT params file for each site. This is reminiscent of our recent experience where we have now rectified the issue so that CABLE can and does read at leat the PFTs at each site from the met forcing file as recorded at that site

  2. And earlier experience during CM2 development was that there were PFT params initialised from the JULES_pft_params.nml that were either - actually used where:

i)   The associated calculated variable was overwritten by CABLE 

ii)  The associated calculated variable was not relevant to CABLE, but nonetheless its absence lead to model failure 

iii) There was not a corresponding CABLE version of the parameter needed in iii.

iv)  The absence of the JULES parameter caused issue with rose-cylc and meta data checking

I am confident this can be resolved for both versions using only a CABLE_pft_params.nml for CABLE runs, however in the first instance it is far easier to just call JULES_pft_params.nml in other LSMs.

Given its own ticket see - #255

@penguian
Copy link
Collaborator Author

@[email protected] commented


Dismisss um1% - inconsistent with LFRic anyway

@penguian
Copy link
Collaborator Author

@[email protected] commented


What to do with ** first_call **??

@penguian
Copy link
Collaborator Author

penguian commented Sep 2, 2020

@[email protected] commented


Files modified to be consistent with reconciled cable_common, casa_ncdf

cable_climate.F90
cable_phenology.F90
CASAONLY_LUC.F90
casa_cable.F90
casa_inout.F90
pop_io.F90
POPLUC.F90

Files modified to be consistent with new method of obtaining constants

cable_air.F90
cable_canopy.F90
cable_carbon.F90
cable_gw_hydro.F90
cbl_soilsnow_init_special.F90
cbl_soilsnow_main.F90
cbl_soilsnow_subrs.F90

See Ticket #270 (https://trac.nci.org.au/trac/cabyyle/ticket/270#ticket)

Files in the trunk: Removed in the Restructured CABLE

cable_diag.F90:
cable_fFile.F90:
cable_fprint.F90:
cable_PyFprint.F90:

@penguian
Copy link
Collaborator Author

penguian commented Feb 7, 2023

@[email protected] set keywords to keepgit

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

No branches or pull requests

2 participants