Skip to content
Open
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 CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
| yaswant | Yaswant Pradhan | Met Office | 2026-06-30 |
| doucla | Douglas Clark | UKCEH | 2026-07-03 |
| james-bruten-mo | James Bruten | Met Office | 2026-07-09 |
| eleanorgb | Eleanor Burke | Met Office | 2026-08-24 |
108 changes: 107 additions & 1 deletion doc/source/namelists/fire.nml.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
``fire.nml``
===================

This file contains a single namelist called :nml:lst:`FIRE_SWITCHES` that sets time-invariant parameters for performing wildfire-related calculations.
This file contains two namelists one called :nml:lst:`JULES_FIRE_WEATHER_INDEX` that contains switches used to calculate the different fire weather indices available. The second namelist is for parameters associated with the inferno fire model called :nml:lst:`JULES_INFERNO`

``FIRE_SWITCHES`` namelist members
-----------------------------------
Expand Down Expand Up @@ -57,3 +57,109 @@ This file contains a single namelist called :nml:lst:`FIRE_SWITCHES` that sets t
:default: F

Switch for calculating the Nesterov Index.


``JULES_INFERNO`` namelist members
-----------------------------------

.. nml:member:: z_burn_max

:type: real
:default: 0.2

Parameter controlling the depth to which fire burns soil litter carbon in metres. At depths shallower than this value, the fire can burn soil carbon in the two litter pools (dpm and rpm). If z_burn_max falls within a layer only a proportion of the soil carbon is burnt. Only used with layered soil carbon scheme (:nml:mem:`JULES_SOIL_BIOGEOCHEM::l_layeredc` = TRUE) and fire (either :nml:mem:`JULES_VEGETATION::l_trif_fire` or :nml:mem:`JULES_VEGETATION::l_inferno` or both). In reality the burn depth varies so please check whether the default value of 0.2 is suitable for your application.

.. nml:member:: flam_sm_func

:type: integer
:permitted: 1, 2
:default: 1

Switch used to define the function used to parameterise the relationship between soil moisture and flammability

1. A linear relationship which has a flammability of 0 at saturation and 1 when soil is completely dry.

2. An exponential relationship controlled by :nml:mem:`flam_sm_low` and :nml:mem:`flam_sm_up`

.. nml:member:: flam_sm_low

:type: real
:default: 0.0

Soil moisture below which flammability is 1.0. Expressed as a fraction of saturation. Only used if :nml:mem:`flam_sm_func` = 2.

.. nml:member:: flam_sm_up

:type: real
:default: 2.4

Exponential decay parameter for relationship between soil moisture and flammability. Only used if :nml:mem:`flam_sm_func` = 2.

.. nml:member:: flam_rhum_low

:type: real
:default: 10.0

Lower relative humidity threshold for relationship between relative humidity and flammability below which value of function is 1.0. Expressed as a percentage.

.. nml:member:: flam_rhum_up

:type: real
:default: 90.0

Upper relative humidity threshold for relationship between relative humidity and flammability above which value of function is 0.0. Expressed as a percentage.

.. nml:member:: flam_rain_const

:type: real
:default: 14929920000.0

An exponential decay factor that defines the relationship between flammability and rainfall.
In order to recreate the relationship hardwired into JULES version 8.2 and lower this value
should be set to 14929920000.0. However, this is not the relationship that
was documented by Mangeon et al. (2016). If you want the Mangeon et al. relationship
then this value should be 172800.0.
If you want to remove the dependence of flammability on rainfall then this value should be set to 0.0.

.. seealso::
References:

* Mangeon, S., Voulgarakis, A., Gilham, R., Harper, A., Sitch, S., and Folberth, G.: INFERNO: a fire and emissions scheme for the UK Met Office’s Unified Model, Geosci. Model Dev., 9, 2685-2700, https://doi.org/10.5194/gmd-9-2685-2016, 2016.

.. nml:member:: flam_fuel_low

:type: real
:default: 0.02

.. nml:member:: flam_fuel_up
:type: real
:default: 0.2

.. nml:member:: ccdpm_min

:type: real
:default: 0.8

Minimum DPM soil carbon pool combustion completeness fraction.

.. nml:member:: ccdpm_max

:type: real
:default: 1.0

Maximum DPM soil carbon pool combustion completeness fraction.

.. nml:member:: ccrpm_min

:type: real
:default: 0.0

Minimum RPM soil carbon pool combustion completeness fraction.


.. nml:member:: ccrpm_max

:type: real
:default: 0.2

Maximum RPM soil carbon pool combustion completeness fraction.
7 changes: 0 additions & 7 deletions doc/source/namelists/jules_soil_biogeochem.nml.rst
Original file line number Diff line number Diff line change
Expand Up @@ -259,13 +259,6 @@ If using the ECOSSE soil model, most soil parameters are read from a separate fi
Parameter controlling the rate of re-filling of the available inorganic nitrogen pool (1/360 days). This parameter determines how quickly the inorganic nitrogen reaches the roots after the roots uptake from the soil around them. This should be quicker than the turnover rate of inorganic nitrogen. In addition, it has to be small compared with the triffid timestep (360/triffid_period) otherwise the available inorganic nitrogen becomes unstable. Hence the choice of the default value 5. Only used with layered soil carbon and nitrogen scheme (:nml:mem:`l_layeredc` = TRUE and :nml:mem:`JULES_VEGETATION::l_nitrogen` = TRUE). When :nml:mem:`JULES_VEGETATION::l_trif_eq` = TRUE or :nml:mem:`JULES_SOIL_BIOGEOCHEM::diff_n_pft` is greater than (0.5 * 360 / :nml:mem:`JULES_VEGETATION::triffid_period`) then all of the inorganic nitrogen pool is deemed to be available.


.. nml:member:: z_burn_max

:type: real
:default: 0.2

Parameter controlling the depth to which fire burns soil litter carbon in metres. At depths shallower than this value, the fire can burn soil carbon in the two litter pools (dpm and rpm). If z_burn_max falls within a layer only a proportion of the soil carbon is burnt. Only used with layered soil carbon scheme (:nml:mem:`l_layeredc` = TRUE) and fire (either :nml:mem:`JULES_VEGETATION::l_trif_fire` or :nml:mem:`JULES_VEGETATION::l_inferno` or both). In reality the burn depth varies so please check whether the default value of 0.2 is suitable for your application.


.. nml:group:: Parameters for the 4-pool- or ECOSSE-based models (only used if :nml:mem:`soil_bgc_model` = 2 or 3):

Expand Down
16 changes: 16 additions & 0 deletions doc/source/namelists/triffid_params.nml.rst
Original file line number Diff line number Diff line change
Expand Up @@ -178,3 +178,19 @@ This namelist is used to read PFT parameters that are only needed by the dynamic

.. note:: :nml:mem:`lai_min_io` must be set such that PFT height at :nml:mem:`lai_min_io` <= :nml:mem:`harvest_ht_io`, otherwise JULES will not start (the required value will be shown in error output).

.. nml:member:: fireveg_c_to_atmos_io

:type: real(npft)
:default: None

Only used if :nml:mem:`JULES_VEGETATION::l_trif_fire` = TRUE.

Fraction of burnt carbon that goes to the atmosphere as CO2 instead of in the soil.
Based on mean whole-plant mortality factor from Li et al (2012) table 2.

.. seealso::
References:

* Li, F., Zeng, X. D., and Levis, S.: A process-based fire parameterization
of intermediate complexity in a Dynamic Global Vegetation Model, Biogeosciences,
9, 2761-2780, https://doi.org/10.5194/bg-9-2761-2012, 2012.
114 changes: 114 additions & 0 deletions rose-meta/jules-shared/jules-inferno/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
[namelist:jules_inferno]
compulsory=true
description=Options for inferno fire parametrisations
ns=namelist/JULES Science Settings/jules_inferno
sort-key=Section-A12p
title=Fire options
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html

[namelist:jules_inferno=ccdpm_max]
compulsory=true
description=Maximum fraction of DPM consumed by fire
range=0.0:1.0
sort-key=Panel-J06
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::ccdpm_max

[namelist:jules_inferno=ccdpm_min]
compulsory=true
description=Minimum fraction of DPM consumed by fire
range=0.0:1.0
sort-key=Panel-J05
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::ccdpm_min

[namelist:jules_inferno=ccrpm_max]
compulsory=true
description=Maximum fraction of RPM consumed by fire
range=0.0:1.0
sort-key=Panel-J08
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::ccrpm_max

[namelist:jules_inferno=ccrpm_min]
compulsory=true
description=Minimum fraction of RPM consumed by fire
range=0.0:1.0
sort-key=Panel-J07
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::ccrpm_min

[namelist:jules_inferno=flam_fuel_low]
compulsory=true
description=Lower fuel load threshold for flammability
range=0.0:
sort-key=Panel-J12
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_fuel_low

[namelist:jules_inferno=flam_fuel_up]
compulsory=true
description=Upper fuel load threshold for flammability
range=0.0:1.0
sort-key=Panel-J13
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_fuel_up

[namelist:jules_inferno=flam_rain_const]
compulsory=true
description=Rainfall flammability scaling constant
range=0.0:
sort-key=Panel-J14
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_rain_const

[namelist:jules_inferno=flam_rhum_low]
compulsory=true
description=Lower relative humidity threshold for relationship between relative humidity and flammability
range=0.0:100.0
sort-key=Panel-J09
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_rhum_low

[namelist:jules_inferno=flam_rhum_up]
compulsory=true
description=Upper relative humidity threshold for relationship between relative humidity and flammability
range=0.0:100.0
sort-key=Panel-J10
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_rhum_up

[namelist:jules_inferno=flam_sm_func]
compulsory=true
description=Function relating soil moisture to flammability 1=linear, 2=exponential
sort-key=Panel-J11
trigger=namelist:jules_inferno=flam_sm_low: 2;
=namelist:jules_inferno=flam_sm_up: 2;
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_sm_func
value-titles=(1) linear,
=(2) exponential
values=1,2

[namelist:jules_inferno=flam_sm_low]
compulsory=true
description=Soil moisture below which flammability is 1.0
range=0.0:1.0
sort-key=Panel-J11b
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_sm_low

[namelist:jules_inferno=flam_sm_up]
compulsory=true
description=Exponential decay parameter for relationship between soil moisture and flammability
range=0.0:10.0
sort-key=Panel-J11c
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::flam_sm_up

[namelist:jules_inferno=z_burn_max]
compulsory=true
description=Maximum burn depth for soil - soil carbon is burned above this level
range=0.0:10.0
sort-key=Panel-J04
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_inferno.nml.html#JULES_INFERNO::z_burn_max
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ compulsory=true
description=Use interactive fire linked to INFERNO including interactive fire emissions.
fail-if=this == '.true.' and (namelist:jules_vegetation=l_trif_eq == '.true.');
sort-key=Panel-I02c
trigger=namelist:jules_pftparm=fire_mort_io: .true.
trigger=namelist:jules_pftparm=fire_mort_io: .true.;
=namelist:jules_triffid=fireveg_c_to_atmos_io: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/jules_vegetation.nml.html#JULES_VEGETATION::l_trif_fire

Expand Down
23 changes: 13 additions & 10 deletions rose-meta/jules-standalone/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Please see jules:wiki:SharingJULESmetadata

import=jules-shared/jules-hydrology/HEAD
import=jules-shared/jules-inferno/HEAD
=jules-shared/jules-hydrology/HEAD
=jules-shared/jules-model-environment/HEAD
=jules-shared/jules-nvegparm/HEAD
=jules-shared/jules-pftparm/HEAD
Expand Down Expand Up @@ -5004,7 +5005,7 @@ sort-key=b
trigger=namelist:jules_soil_biogeochem=tau_resp: .true.;
=namelist:jules_soil_biogeochem=l_label_frac_cs: .true.;
=namelist:jules_soil_biogeochem=diff_n_pft: .true.;
=namelist:jules_soil_biogeochem=z_burn_max: .true.;
=namelist:jules_inferno=z_burn_max: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/jules_soil_biogeochem.nml.html#JULES_SOIL_BIOGEOCHEM::l_layeredc

Expand Down Expand Up @@ -5203,14 +5204,6 @@ sort-key=b2
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_soil_biogeochem.nml.html#JULES_SOIL_BIOGEOCHEM::tau_resp

[namelist:jules_soil_biogeochem=z_burn_max]
compulsory=true
description=Maximum burn depth for soil - soil carbon is burned above this level
range=0.0:10.0
sort-key=b2
type=real
url=https://metoffice.github.io/jules/latest/namelists/jules_soil_biogeochem.nml.html#JULES_SOIL_BIOGEOCHEM::z_burn_max

[namelist:jules_soil_ecosse]
compulsory=true
ns=namelist/JULES Science Settings/jules_soil_ecosse
Expand Down Expand Up @@ -6241,6 +6234,16 @@ length=:
type=real
url=https://metoffice.github.io/jules/latest/namelists/triffid_params.nml.htm#JULES_TRIFFID::dpm_rpm_ratio_io

[namelist:jules_triffid=fireveg_c_to_atmos_io]
compulsory=true
description=Fraction of burnt carbon that goes to the atmosphere as CO2 instead of in the soil.
fail-if=len(this) != namelist:jules_surface_types=npft
length=:
ns=namelist/JULES Science Settings/jules_pftparm/Other parameters
range=0:1
type=real
url=https://metoffice.github.io/jules/latest/namelists/triffid_params.nml.html#JULES_TRIFFID::fireveg_c_to_atmos_io

[namelist:jules_triffid=g_area_io]
compulsory=true
description=Disturbance rate (/360days)
Expand Down
40 changes: 35 additions & 5 deletions rose-meta/jules-standalone/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,45 @@
from .version81_82 import *


class vnYY_txxxx(MacroUpgrade):

"""Upgrade macro from JULES by Author"""
class vn82_t61(MacroUpgrade):

BEFORE_TAG = "vnY.Y"
AFTER_TAG = "vnY.Y_txxxx"
"""Upgrade macro from JULES by Eleanor Burke"""

BEFORE_TAG = "vn8.2"
AFTER_TAG = "vn8.2_t61"

def upgrade(self, config, meta_config=None):
"""Upgrade a JULES runtime app configuration."""

# Add settings
self.add_setting(config, ["namelist:jules_inferno"])

source = self.get_setting_value(config, ["file:fire.nml","source"])
source = source.replace("namelist:fire_switches",
"namelist:fire_switches namelist:jules_inferno")
self.change_setting_value(config, ["file:fire.nml","source"], source)

z_burn_max = self.get_setting_value(config, ["namelist:jules_soil_biogeochem", "z_burn_max"])
self.add_setting(config,
["namelist:jules_inferno", "z_burn_max"], z_burn_max)
self.remove_setting(config, ["namelist:jules_soil_biogeochem", "z_burn_max"])

self.add_setting(config, ["namelist:jules_inferno", "ccdpm_min"], "0.8")
self.add_setting(config, ["namelist:jules_inferno", "ccdpm_max"], "1.0")
self.add_setting(config, ["namelist:jules_inferno", "ccrpm_min"], "0.0")
self.add_setting(config, ["namelist:jules_inferno", "ccrpm_max"], "0.2")

self.add_setting(config, ["namelist:jules_inferno", "flam_rhum_low"], "10.0")
self.add_setting(config, ["namelist:jules_inferno", "flam_rhum_up"], "90.0")
self.add_setting(config, ["namelist:jules_inferno", "flam_sm_low"], "0.0")
self.add_setting(config, ["namelist:jules_inferno", "flam_sm_up"], "2.4")
self.add_setting(config, ["namelist:jules_inferno", "flam_fuel_low"], "0.02")
self.add_setting(config, ["namelist:jules_inferno", "flam_fuel_up"], "0.2")
self.add_setting(config, ["namelist:jules_inferno", "flam_rain_const"], "14929920000.0")
self.add_setting(config, ["namelist:jules_inferno", "flam_sm_func"], "1")

npft = int(self.get_setting_value(config, ["namelist:jules_surface_types", "npft"]))
self.add_setting(
config, ["namelist:jules_triffid", "fireveg_c_to_atmos_io"], ",".join(["0.13"] * npft))

return config, self.reports
3 changes: 2 additions & 1 deletion rose-meta/jules-um/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
# Please see jules:wiki:SharingJULESmetadata
###############################################################################

import=jules-shared/jules-hydrology/HEAD
import=jules-shared/jules-inferno/HEAD
=jules-shared/jules-hydrology/HEAD
=jules-shared/jules-model-environment/HEAD
=jules-shared/jules-nvegparm/HEAD
=jules-shared/jules-pftparm/HEAD
Expand Down
Loading
Loading