Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ rose-meta/**/version*.py @james-bruten-mo
rose-meta/jules-shared/**/HEAD/rose-meta.conf @maggiehendry
rose-meta/jules-standalone/HEAD/rose-meta.conf @maggiehendry
rose-meta/jules-um/HEAD/rose-meta.conf @maggiehendry
rose-meta/jules-lfric/HEAD/rose-meta.conf @maggiehendry
rose-stem/ @james-bruten-mo
etc/ @MetOffice/ssdteam
**/science/river_routing/ @maggiehendry
Expand Down
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Code Reviewer: <!-- CR id, filled by SSD -->
- [ ] Comments have been included that aid undertanding and enhance the
readability of the code
- [ ] My changes generate no new warnings
- [ ] If editing `rose-meta/jules-shared` then have you supplied a linked UM PR?
- [ ] If editing `rose-meta/jules-shared` then have you supplied a linked UM and LFRic Apps PR?

## Testing

Expand Down
2 changes: 1 addition & 1 deletion dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ jules:

SimSys_Scripts:
source: git@github.com:MetOffice/SimSys_Scripts.git
ref: 2026.03.1
ref: 87bd2f5d9a25b7cafd695cdddc478b012d00774d
179 changes: 179 additions & 0 deletions rose-meta/jules-lfric/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
###############################################################################
# This is the LFRic flavour of the JULES metadata
###############################################################################
# This should only contain:
# * Import statements from jules-shared.
# * LFRic specific amendments to the imported metadata.
# The majority of the metadata should be under rose-meta/jules-shared.
#
# This file is imported by jules-lsm in the LFRic apps repository.
#
# Please see jules:wiki:SharingJULESmetadata

import=jules-shared/jules-hydrology/HEAD
=jules-shared/jules-nvegparm/HEAD
=jules-shared/jules-pftparm/HEAD
=jules-shared/jules-radiation/HEAD
=jules-shared/jules-sea-seaice/HEAD
=jules-shared/jules-snow/HEAD
=jules-shared/jules-soil/HEAD
=jules-shared/jules-surface/HEAD
=jules-shared/jules-surface-types/HEAD
=jules-shared/jules-urban/HEAD
=jules-shared/jules-vegetation/HEAD

[namelist:jules_hydrology=l_hydrology]
trigger=namelist:jules_hydrology=l_var_rainfrac: .true.;

[namelist:jules_model_environment_lfric]
compulsory=true
description=Not all JULES options are available in all environments in which JULES is run e.g. standalone,
=UM, LFRic (LIS, MONC, CABLE). The model environment is specified here so that options that are
=unavailable can be made inaccessible via the metadata and thus will not appear in the gui.
ns=namelist/JULES Science Settings/jules_model_environment
sort-key=01
title=Model environment interface
url=http://jules-lsm.github.io/latest/namelists/model_environment.nml.html#namelist-JULES_MODEL_ENVIRONMENT

[namelist:jules_model_environment_lfric=l_jules_parent]
compulsory=true
description=Switch to identify the environment in which JULES is being run.
=No science code is associated with this switch, only what science options are available.
=THIS HAS TO BE LFRIC SPECIFIC FOR NOW AS A RESULT OF THE WAY THAT
=LFRIC COUPLED PROCESSES NAMELIST FILES.
!enumeration=true
fail-if=this != "'lfric'"; # This should indicate that LFRic is the parent model.
trigger=namelist:jules_surface=l_elev_land_ice: 'not_lfric';
=namelist:jules_surface=l_elev_lw_down: 'not_lfric';
=namelist:jules_surface=l_flake_model: 'not_lfric';
=namelist:jules_surface=l_point_data: 'not_lfric';
value-titles=LFRic
values='lfric'

[namelist:jules_radiation=fixed_sea_albedo]
description=If using i_sea_alb_method='fixed', the global value of albedo to use.

[namelist:jules_radiation=i_sea_alb_method]
trigger=namelist:jules_radiation=l_sea_alb_var_chl: 'jin';
=namelist:jules_radiation=fixed_sea_albedo: 'fixed';
value-titles=Barker and Li 1995,Jin et al. 2011,Fixed global value
values='barker','jin','fixed'

[namelist:jules_radiation=l_albedo_obs]
trigger=namelist:files=albedo_vis_ancil_path: .true. ;
=namelist:files=albedo_nir_ancil_path: .true. ;
=namelist:jules_nvegparm=albsnf_nvgu_io: .true.;
=namelist:jules_nvegparm=albsnf_nvgl_io: .true.;

[namelist:jules_radiation=l_sea_alb_var_chl]
trigger=namelist:files=sea_ancil_path: .true. ;

[namelist:jules_snow=can_clump]
fail-if=len(this) != namelist:jules_surface_types=npft; # A value must be given for each PFT
=all(this == 0) and any(namelist:jules_snow=cansnowpft == '.true.'); # Results in floating point exception if 0. Only used if can_model = 4 (JULES default), cansnowpft = TRUE on that tile and l_embedded_snow = TRUE (LFRic default).

[namelist:jules_snow=cansnowpft]
compulsory=true
length=5

[namelist:jules_snow=i_basal_melting_opt]
values='none','instant'

[namelist:jules_snow=i_grain_growth_opt]
values='marshall','taillandier'

[namelist:jules_snow=i_relayer_opt]
values='original','inverse'

[namelist:jules_surface=all_tiles]
values='off','on'

[namelist:jules_surface=anthrop_heat_option]
fail-if=this != "'dukes'"; # The DUKES fixed annual cycle is the only currently available option in LFRic
trigger=namelist:jules_surface=anthrop_heat_mean: 'flanner';
values='dukes','flanner'

[namelist:jules_surface=cor_mo_iter]
trigger=namelist:jules_surface=beta_cnv_bl: 'improved';
value-titles=Limit Obukhov length in low winds,
=Improve initial guess (preferred)
values='lim_oblen','improved'

[namelist:jules_surface=fd_hill_option]
value-titles=capped low hill
values='capped_lowhill'

[namelist:jules_surface=fd_stability_dep]
value-titles=Off,Surface Ri
values='none','surf_ri'

[namelist:jules_surface=formdrag]
fail-if=
trigger=namelist:jules_surface=orog_drag_param: 'eff_z0','dist_drag';
=namelist:jules_surface=fd_stability_dep: 'eff_z0','dist_drag';
=namelist:jules_surface=fd_hill_option: 'dist_drag';
values='none','eff_z0','dist_drag'

[namelist:jules_surface=i_modiscopt]
fail-if=
value-titles=On
values='on'

[namelist:jules_surface=iscrntdiag]
fail-if=
value-titles=Decoupled with transitional effects
values='decoupled_trans'

[namelist:jules_surface=l_elev_land_ice]
fail-if=
trigger=

[namelist:jules_surface=l_flake_model]
trigger=

[namelist:jules_surface=l_urban2t]
trigger=namelist:jules_surface_types=urban_canyon: .true.;
=namelist:jules_surface_types=urban_roof: .true.;
=namelist:jules_surface_types=urban: .false.;
=namelist:jules_urban: .true.;
=namelist:jules_urban=anthrop_heat_scale: .true.;
=namelist:files=urban_ancil_path: .true.;
=namelist:stochastic_physics=rp_lsfc_z0_urban_mult: .true.;

[namelist:jules_surface=l_vary_z0m_soil]
fail-if=
trigger=namelist:files=soil_rough_ancil_path: .true. ;

[namelist:jules_surface=srf_ex_cnv_gust]
fail-if=
trigger=
type=logical

[namelist:jules_vegetation=can_rad_mod]
values='one','four','five','six'

[namelist:jules_vegetation=l_spec_veg_z0]
trigger=namelist:jules_pftparm=z0v_io: .true.;
=namelist:stochastic_physics=rp_lsfc_z0v: .true.;
=namelist:stochastic_physics=rp_lsfc_z0v_max: .true.;
=namelist:stochastic_physics=rp_lsfc_z0v_min: .true.;

# Dummy page to force sort order for JULES Science Settings
[namespace:science]
ns=namelist/JULES Science Settings
sort-key=Section-A12b

# Dummy page to force sort order for Snow other parameters
[namespace:snow_other]
ns=namelist/JULES Science Settings/jules_snow/Other parameters
sort-key=02

# Dummy page to force sort order for Snow radiation parameters
[namespace:snow_radiation]
ns=namelist/JULES Science Settings/jules_snow/Radiation parameters
sort-key=01

# Dummy page to force sort order for JULES Surface Types
[namespace:surface_types]
ns=namelist/JULES Surface Types
sort-key=Section-A12a
Loading