CABLE-LSM / CABLE-Trac-archive

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

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

Open penguian opened 3 years ago

penguian commented 3 years ago

keyword_keepgit owner:jxs599@nci.org.au type_defect | by srb001@csiro.au


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 commented 3 years ago

@jxs599@nci.org.au 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 commented 3 years ago

@jxs599@nci.org.au 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 commented 3 years ago

@jxs599@nci.org.au 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 commented 3 years ago

@jxs599@nci.org.au commented


resp_w_ft_acc(:,:) = 0.0

penguian commented 3 years ago

@jxs599@nci.org.au 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 commented 3 years ago

@jxs599@nci.org.au 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 commented 3 years ago

@jxs599@nci.org.au commented


Dismisss um1% - inconsistent with LFRic anyway

penguian commented 3 years ago

@jxs599@nci.org.au commented


What to do with first_call ??

penguian commented 3 years ago

@jxs599@nci.org.au 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 commented 1 year ago

@ccc561@nci.org.au set keywords to keepgit