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 |
| maggiehendry | Maggie Hendry | Met Office | 2026-08-21 |
8 changes: 4 additions & 4 deletions doc/source/namelists/fire.nml.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
``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 a single namelist called :nml:lst:`JULES_FIRE_WEATHER_INDEX` that sets time-invariant parameters for performing wildfire-related calculations.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that contains switches used to calculate the different fire weather indices available.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with Eleanor's proposed change to the wording


``FIRE_SWITCHES`` namelist members
``JULES_FIRE_WEATHER_INDEX`` namelist members
-----------------------------------

.. nml:namelist:: FIRE_SWITCHES
.. nml:namelist:: JULES_FIRE_WEATHER_INDEX

.. nml:member:: l_fire
.. nml:member:: l_fire_weather_index

:type: logical
:default: F
Expand Down
2 changes: 1 addition & 1 deletion etc/fcm-make/make-river.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ extract.path-incl[river] = $extract_path_incl \
src/control/imogen/imgn_vars_mod.F90 \
src/control/shared/jules_radiation_mod.F90 \
src/params/imogen/imogen_constants.F90 \
src/science/fire/fire_mod.F90 \
src/science/fire/fire_weather_index/fire_mod.F90 \
src/util/shared/metstats/metstats_mod.F90 \
#...............................................................................
# and allocate_river_arrays
Expand Down
116 changes: 58 additions & 58 deletions rose-meta/jules-standalone/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
Expand Up @@ -665,64 +665,6 @@ length=:
type=integer
url=https://metoffice.github.io/jules/latest/namelists/cable_surface_types.nml.html#CABLE_SURFACE_TYPES::urban_cable

[namelist:fire_switches]
compulsory=true
description=Switches for controlling activation of the fire module
ns=namelist/JULES Science Settings/fire_switches
sort-key=16
title=Fire options
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#namelist-FIRE_SWITCHES

[namelist:fire_switches=canadian_flag]
compulsory=true
description=Switch for Canadian Fire Weather Index (FWI)
sort-key=04
trigger=namelist:fire_switches=canadian_hemi_opt: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::canadian_flag

[namelist:fire_switches=canadian_hemi_opt]
compulsory=true
description=If TRUE, apply 6-month offset to S-hemisphere month-dependent parameters
sort-key=05
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::canadian_hemi_opt

[namelist:fire_switches=l_fire]
compulsory=true
description=Switch to enable the fire module
sort-key=01
trigger=namelist:fire_switches=mcarthur_flag: .true.;
=namelist:fire_switches=mcarthur_opt: .true.;
=namelist:fire_switches=canadian_flag: .true.;
=namelist:fire_switches=nesterov_flag: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::l_fire

[namelist:fire_switches=mcarthur_flag]
compulsory=true
description=Switch for McArthur Forest Fire Danger Index (FFDI)
sort-key=02
trigger=namelist:fire_switches=mcarthur_opt: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::mcarthur_flag

[namelist:fire_switches=mcarthur_opt]
compulsory=true
description=Method for soil moisture deficit in McArthur FFDI
sort-key=03
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::mcarthur_opt
value-titles=Model value,Fixed at 120 mm
values=1,2
widget[rose-config-edit]=cylc8_compat.ComboBoxValueWidget

[namelist:fire_switches=nesterov_flag]
compulsory=true
description=Switch for Nesterov Index
sort-key=06
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#FIRE_SWITCHES::nesterov_flag

[namelist:imogen_anlg_vals_list]
compulsory=true
ns=namelist/IMOGEN/GCM Analogue configuration
Expand Down Expand Up @@ -2056,6 +1998,64 @@ sort-key=13
type=real
url=https://metoffice.github.io/jules/latest/namelists/drive.nml.html#JULES_DRIVE::z1_uv_in

[namelist:jules_fire_weather_index]
compulsory=true
description=Switches for controlling activation of the fire module
ns=namelist/JULES Science Settings/jules_fire_weather_index
sort-key=16
title=Fire Weather Index options
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#namelist-JULES_FIRE_WEATHER_INDEX

[namelist:jules_fire_weather_index=canadian_flag]
compulsory=true
description=Switch for Canadian Fire Weather Index (FWI)
sort-key=04
trigger=namelist:jules_fire_weather_index=canadian_hemi_opt: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::canadian_flag

[namelist:jules_fire_weather_index=canadian_hemi_opt]
compulsory=true
description=If TRUE, apply 6-month offset to S-hemisphere month-dependent parameters
sort-key=05
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::canadian_hemi_opt

[namelist:jules_fire_weather_index=l_fire_weather_index]
compulsory=true
description=Switch to enable the fire module
sort-key=01
trigger=namelist:jules_fire_weather_index=mcarthur_flag: .true.;
=namelist:jules_fire_weather_index=mcarthur_opt: .true.;
=namelist:jules_fire_weather_index=canadian_flag: .true.;
=namelist:jules_fire_weather_index=nesterov_flag: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::l_fire_weather_index

[namelist:jules_fire_weather_index=mcarthur_flag]
compulsory=true
description=Switch for McArthur Forest Fire Danger Index (FFDI)
sort-key=02
trigger=namelist:jules_fire_weather_index=mcarthur_opt: .true.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::mcarthur_flag

[namelist:jules_fire_weather_index=mcarthur_opt]
compulsory=true
description=Method for soil moisture deficit in McArthur FFDI
sort-key=03
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::mcarthur_opt
value-titles=Model value,Fixed at 120 mm
values=1,2
widget[rose-config-edit]=cylc8_compat.ComboBoxValueWidget

[namelist:jules_fire_weather_index=nesterov_flag]
compulsory=true
description=Switch for Nesterov Index
sort-key=06
type=logical
url=https://metoffice.github.io/jules/latest/namelists/fire.nml.html#JULES_FIRE_WEATHER_INDEX::nesterov_flag

[namelist:jules_flake]
compulsory=true
description=Configuration of the FLake model, only required if l_flake_model=true
Expand Down
21 changes: 16 additions & 5 deletions rose-meta/jules-standalone/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,26 @@
from .version81_82 import *


class vnYY_txxxx(MacroUpgrade):
class vn82_t141(MacroUpgrade):

"""Upgrade macro from JULES by Author"""
"""Upgrade macro from JULES by Maggie Hendry"""

BEFORE_TAG = "vnY.Y"
AFTER_TAG = "vnY.Y_txxxx"
BEFORE_TAG = "vn8.2"
AFTER_TAG = "vn8.2_t141"

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

# Add settings
self.rename_setting(config, ["namelist:fire_switches"],
["namelist:jules_fire_weather_index"])
self.rename_setting(config, ["namelist:jules_fire_weather_index",
"l_fire"],
["namelist:jules_fire_weather_index",
"l_fire_weather_index"])

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

return config, self.reports
4 changes: 2 additions & 2 deletions rose-stem/app/fab_jules/bin/gfortran_10_plus_rivers.json
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@
"/src/science/params/trif_mod.F90",
"/src/science/params/pftparm_mod.F90",
"/src/science/params/ecosse_param_mod.F90",
"/src/science/fire/fire_mod.F90",
"/src/science/fire/fire_weather_index/fire_mod.F90",
"/src/science/surface/sf_diags_mod.F90",
"/src/science/params/urban_param_mod.F90",
"/src/params/imogen/imogen_time.F90",
Expand Down Expand Up @@ -241,4 +241,4 @@
"-fopenmp",
"-Wl,--rpath=/data/apps/spack/opt/linux-rhel9-zen2/gcc-12.2.0/netcdf-fortran-4.6.1-3bu2pvjyujppdgn446jxste4k7vq6xay/lib"
]
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont think this is an actual change

2 changes: 1 addition & 1 deletion rose-stem/app/fab_jules/bin/intel_rivers.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
"/src/science/params/trif_mod.F90",
"/src/science/params/pftparm_mod.F90",
"/src/science/params/ecosse_param_mod.F90",
"/src/science/fire/fire_mod.F90",
"/src/science/fire/fire_weather_index/fire_mod.F90",
"/src/science/surface/sf_diags_mod.F90",
"/src/science/params/urban_param_mod.F90",
"/src/params/imogen/imogen_time.F90",
Expand Down
4 changes: 2 additions & 2 deletions src/control/shared/surf_couple_extra_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ SUBROUTINE surf_couple_extra( &
USE atm_step_local, ONLY: dim_cs1
#else
!Modules specific to JULES
USE fire_mod, ONLY: fire_prog, fire_diag, l_fire
USE fire_mod, ONLY: fire_prog, fire_diag, l_fire_weather_index

USE metstats_mod, ONLY: metstats_prog, l_metstats

Expand Down Expand Up @@ -1027,7 +1027,7 @@ SUBROUTINE surf_couple_extra( &
END IF

!Fire (standalone only)
IF ( l_fire ) THEN
IF ( l_fire_weather_index ) THEN
!Calculate the gridbox mean soil moisture
smc_gb = soiltiles_to_gbm(progs%smc_soilt, ainfo)
CALL fire_timestep(metstats_prog, smc_gb, fire_prog, fire_diag, &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
! which you should have received as part of this distribution.
! *****************************COPYRIGHT**************************************

MODULE init_fire_mod
MODULE init_fire_weather_index_mod

IMPLICIT NONE

CONTAINS

SUBROUTINE init_fire(nml_dir,land_index)
SUBROUTINE init_fire_weather_index(nml_dir,land_index)

USE io_constants, ONLY: namelist_unit

USE string_utils_mod, ONLY: to_string

USE logging_mod, ONLY: log_info,log_fatal

USE fire_mod, ONLY: fire_cntl, l_fire
USE fire_mod, ONLY: fire_cntl, l_fire_weather_index

USE fire_allocate_mod,ONLY: fire_allocate

Expand Down Expand Up @@ -48,44 +48,45 @@ SUBROUTINE init_fire(nml_dir,land_index)
LOGICAL :: canadian_hemi_opt = .FALSE.
INTEGER :: mcarthur_opt = imdi

CHARACTER(LEN=*), PARAMETER :: RoutineName='INIT_FIRE_WEATHER_INDEX'

!-----------------------------------------------------------------------------
! Definition of the fire_Switches namelist
! Definition of the jules_fire_weather_index namelist
!-----------------------------------------------------------------------------
NAMELIST / fire_switches/ l_fire, mcarthur_flag, mcarthur_opt, &
canadian_flag, canadian_hemi_opt, &
NAMELIST /jules_fire_weather_index/ l_fire_weather_index, mcarthur_flag, &
mcarthur_opt, canadian_flag, canadian_hemi_opt, &
nesterov_flag
!-----------------------------------------------------------------------------

!-----------------------------------------------------------------------------
! Read the namelist
!-----------------------------------------------------------------------------

! Open the fire namelist file
! Open the fire namelist file
OPEN(namelist_unit, FILE=(TRIM(nml_dir) // '/' // 'fire.nml'), &
STATUS='old', POSITION='rewind', ACTION='read', IOSTAT = ERROR)
IF ( ERROR /= 0 ) &
CALL log_fatal("init_fire", &
"Error opening namelist file fire.nml " // &
CALL log_fatal(RoutineName, "Error opening namelist file fire.nml " // &
"(IOSTAT=" // TRIM(to_string(ERROR)) // ")")


! There is one namelist to read from this file
CALL log_info("init_fire", "Reading FIRE_SWITCHES namelist...")
READ(namelist_unit, NML = fire_switches, IOSTAT = ERROR)
CALL log_info(RoutineName, "Reading JULES_FIRE_WEATHER_INDEX namelist...")
READ(namelist_unit, NML = jules_fire_weather_index, IOSTAT = ERROR)
IF ( ERROR /= 0 ) &
CALL log_fatal("init_fire", &
"Error reading namelist fire_SWITCHES " // &
CALL log_fatal(RoutineName, &
"Error reading namelist jules_fire_weather_index " // &
"(IOSTAT=" // TRIM(to_string(ERROR)) // ")")

! Close the namelist file
CLOSE(namelist_unit, IOSTAT = ERROR)
IF ( ERROR /= 0 ) &
CALL log_fatal("init_fire", &
CALL log_fatal(RoutineName, &
"Error closing namelist file fire.nml " // &
"(IOSTAT=" // TRIM(to_string(ERROR)) // ")")

! If not running fire, we can bail
IF ( .NOT. l_fire ) RETURN
IF ( .NOT. l_fire_weather_index ) RETURN

! Copy across namelist variables to the fire_cntl structure
fire_cntl%canadian%flag = canadian_flag
Expand All @@ -105,6 +106,6 @@ SUBROUTINE init_fire(nml_dir,land_index)

RETURN

END SUBROUTINE init_fire
END MODULE init_fire_mod
END SUBROUTINE init_fire_weather_index
END MODULE init_fire_weather_index_mod
#endif
4 changes: 2 additions & 2 deletions src/initialisation/standalone/init_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ SUBROUTINE init(nml_dir, crop_vars_data, crop_vars, &
USE jules_science_fixes_mod, ONLY: init_science_fixes
USE init_irrigation_mod, ONLY: init_irrigation
USE init_urban_mod, ONLY: init_urban
USE init_fire_mod, ONLY: init_fire
USE init_fire_weather_index_mod, ONLY: init_fire_weather_index
USE init_imogen_mod, ONLY: init_imogen
USE init_prescribed_data_mod, ONLY: init_prescribed_data
USE init_vars_tmp_mod, ONLY: init_vars_tmp
Expand Down Expand Up @@ -372,7 +372,7 @@ SUBROUTINE init(nml_dir, crop_vars_data, crop_vars, &
CALL init_params(nml_dir,progs,land_pts,nsurft,nnpft,npft,nmasst,ntype)

! Initialise fire module
CALL init_fire(nml_dir,ainfo%land_index)
CALL init_fire_weather_index(nml_dir,ainfo%land_index)

! Contains allocation of progs_data%seed_rain - hence passing in the data type
CALL init_drive(nml_dir,ainfo,progs_data)
Expand Down
4 changes: 2 additions & 2 deletions src/io/dump/required_vars_for_configuration_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ SUBROUTINE required_vars_for_configuration(nvars, identifiers, &

USE jules_soil_mod, ONLY: l_bedrock, sm_levels, l_tile_soil

USE fire_mod, ONLY: fire_cntl, l_fire
USE fire_mod, ONLY: fire_cntl, l_fire_weather_index

USE metstats_mod, ONLY: metstats_flag, l_metstats

Expand Down Expand Up @@ -368,7 +368,7 @@ SUBROUTINE required_vars_for_configuration(nvars, identifiers, &
!-----------------------------------------------------------------------------
! Add fire prognostic variables if switched on
!-----------------------------------------------------------------------------
IF ( l_fire ) THEN
IF ( l_fire_weather_index ) THEN
IF (fire_cntl%mcarthur%flag) THEN
CALL add_to_list( 'fire_mcarthur_r_dr', nvars, identifiers )
CALL add_to_list( 'fire_mcarthur_n_dr', nvars, identifiers )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SUBROUTINE fire_init()

! < Module imports >
USE metstats_mod, ONLY: metstats_flag
USE fire_mod, ONLY: fire_cntl, l_fire
USE fire_mod, ONLY: fire_cntl, l_fire_weather_index

USE jules_soil_mod, ONLY: zsmc !Depth of layer for soil moisture diag (m)

Expand Down Expand Up @@ -50,7 +50,7 @@ SUBROUTINE fire_init()
! ------------------------------------------
! Activate the required metstats

IF (l_fire) THEN
IF (l_fire_weather_index) THEN

IF (fire_cntl%mcarthur%flag .OR. fire_cntl%nesterov%flag) THEN
metstats_flag%prec_tot_00h = .TRUE.
Expand Down Expand Up @@ -89,7 +89,7 @@ SUBROUTINE fire_init()

!Nothing to do for nesterov

END IF !l_fire
END IF !l_fire_weather_index

IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_out,zhook_handle)
RETURN
Expand Down
Loading
Loading