diff --git a/applications/lfric2lfric/source/driver/lfric2lfric_driver_mod.F90 b/applications/lfric2lfric/source/driver/lfric2lfric_driver_mod.F90
index e02dd5580..216b048b6 100644
--- a/applications/lfric2lfric/source/driver/lfric2lfric_driver_mod.F90
+++ b/applications/lfric2lfric/source/driver/lfric2lfric_driver_mod.F90
@@ -33,6 +33,7 @@ module lfric2lfric_driver_mod
use lfric2lfric_config_mod, only: mode_ics, mode_lbc
use lfric2lfric_infrastructure_mod, only: initialise_infrastructure, &
context_dst, context_src, &
+ context_lbc, &
source_collection_name, &
target_collection_name
use lfric2lfric_regrid_mod, only: lfric2lfric_regrid
@@ -153,7 +154,7 @@ subroutine run( modeldb, oasis_clock )
is_running = modeldb%clock%tick()
- call modeldb%io_contexts%get_io_context(context_dst, io_context)
+ call modeldb%io_contexts%get_io_context(context_lbc, io_context)
call io_context%set_current()
call advance(io_context, modeldb%clock)
diff --git a/applications/lfric2lfric/source/initialisation/lfric2lfric_file_init_mod.f90 b/applications/lfric2lfric/source/initialisation/lfric2lfric_file_init_mod.f90
index 10adc1eb6..5a10c23f7 100644
--- a/applications/lfric2lfric/source/initialisation/lfric2lfric_file_init_mod.f90
+++ b/applications/lfric2lfric/source/initialisation/lfric2lfric_file_init_mod.f90
@@ -33,7 +33,8 @@ module lfric2lfric_file_init_mod
implicit none
private
- public :: init_lfric2lfric_src_files, init_lfric2lfric_dst_files
+ public :: init_lfric2lfric_src_files, init_lfric2lfric_dst_files, &
+ init_lfric2lfric_lbc_files
contains
@@ -151,14 +152,6 @@ subroutine init_lfric2lfric_dst_files( files_list, modeldb )
io_mode=FILE_MODE_WRITE, &
freq=checkpoint_frequency ) )
end if
- else if (mode == mode_lbc) then
- ! Setup lbc writing context information
- call files_list%insert_item( &
- lfric_xios_file_type( "lfric2lfric_lbc", &
- xios_id="lfric_lbc_write", &
- io_mode=FILE_MODE_WRITE, &
- operation=OPERATION_TIMESERIES, &
- freq=diagnostic_frequency ) )
endif
! Setup orography ancillary file
@@ -176,4 +169,31 @@ subroutine init_lfric2lfric_dst_files( files_list, modeldb )
end subroutine init_lfric2lfric_dst_files
+ !> @brief Sets up lbc I/O configuration.
+ !> @details Initialises the file list for the lbc I/O context, using
+ !! the checkpoint_stem_name extracted from the `files` namelist.
+ !> @param [out] files_list The list of I/O files.
+ !> @param [in,out] modeldb Required by init_io.
+ subroutine init_lfric2lfric_lbc_files( files_list, modeldb )
+
+ implicit none
+
+ type(linked_list_type), intent(out) :: files_list
+ type(modeldb_type), optional, intent(inout) :: modeldb
+
+
+ if( use_xios_io ) then
+
+ ! Setup lbc writing context information
+ call files_list%insert_item( &
+ lfric_xios_file_type( "lfric2lfric_lbc", &
+ xios_id="lfric_lbc_write", &
+ io_mode=FILE_MODE_WRITE, &
+ operation=OPERATION_TIMESERIES, &
+ freq=diagnostic_frequency ) )
+
+ endif
+
+ end subroutine init_lfric2lfric_lbc_files
+
end module lfric2lfric_file_init_mod
diff --git a/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90 b/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
index 83f7f6c1f..280cb5454 100644
--- a/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
+++ b/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
@@ -14,7 +14,6 @@ module lfric2lfric_infrastructure_mod
use add_mesh_map_mod, only: assign_mesh_maps
use blend_orography_alg_mod, only: blend_orography
- use check_configuration_mod, only: get_required_stencil_depth
use constants_mod, only: str_def, r_def, i_def, l_def, r_second
use create_mesh_mod, only: create_extrusion, &
create_mesh
@@ -38,8 +37,6 @@ module lfric2lfric_infrastructure_mod
um_L120_99t_21s_40km_extrusion_type, &
um_L140_122t_18s_40km_extrusion_type, &
um_L70_50t_20s_80km_extrusion_type
- use sci_geometric_constants_mod, only: get_chi_inventory, &
- get_panel_id_inventory
use init_altitude_mod, only: init_altitude
use inventory_by_mesh_mod, only: inventory_by_mesh_type
use io_context_mod, only: callback_clock_arg
@@ -49,7 +46,8 @@ module lfric2lfric_infrastructure_mod
use log_mod, only: log_event, &
log_scratch_space, &
log_level_error, &
- log_level_debug
+ log_level_debug, &
+ log_level_info
use mesh_mod, only: mesh_type
use mesh_collection_mod, only: mesh_collection
use model_clock_mod, only: model_clock_type
@@ -68,7 +66,8 @@ module lfric2lfric_infrastructure_mod
use lfric2lfric_init_mesh_mod, only: init_mesh
use lfric2lfric_check_conf_mod, only: lfric2lfric_check_configuration
use lfric2lfric_file_init_mod, only: init_lfric2lfric_dst_files, &
- init_lfric2lfric_src_files
+ init_lfric2lfric_src_files, &
+ init_lfric2lfric_lbc_files
use lfric2lfric_init_mod, only: init_lfric2lfric
use lfric2lfric_init_coupler_mod,only: lfric2lfric_init_coupler_src, &
lfric2lfric_init_coupler_dst, &
@@ -109,6 +108,7 @@ module lfric2lfric_infrastructure_mod
! Source and destination XIOS context names
character(len=*), public, parameter :: context_dst = "lfric2lfric_destination"
character(len=*), public, parameter :: context_src = "lfric2lfric_source"
+ character(len=*), public, parameter :: context_lbc = "lfric2lfric_boundaries"
! Source and destination field collection names
character(len=*), public, parameter :: source_collection_name = "source_fields"
@@ -152,6 +152,8 @@ contains
type(mesh_type), pointer :: twod_mesh_src
type(mesh_type), pointer :: mesh_dst
type(mesh_type), pointer :: twod_mesh_dst
+ type(mesh_type), pointer :: mesh_lbc
+ type(mesh_type), pointer :: twod_mesh_lbc
type(mesh_type), pointer :: orography_twod_mesh
type(mesh_type), pointer :: orography_mesh
@@ -166,10 +168,10 @@ contains
type(namelist_type), pointer :: finite_element_nml
! Namelist parameters
- character(len=str_def) :: mesh_names(2)
- character(len=str_def), allocatable :: twod_names(:)
- character(len=str_def) :: start_dump_filename
- character(len=str_def) :: source_file_lbc
+ character(len=str_def), allocatable :: mesh_names(:)
+ character(len=str_def), allocatable :: twod_names(:)
+ character(len=str_def) :: start_dump_filename
+ character(len=str_def) :: source_file_lbc
! lfric2lfric namelist parameters
integer(kind=i_def) :: stencil_depth(1)
@@ -188,8 +190,9 @@ contains
integer(kind=i_def) :: i
integer(kind=i_def), parameter :: one_layer = 1_i_def
- integer(kind=i_def), parameter :: dst = 1
- integer(kind=i_def), parameter :: src = 2
+ integer(kind=i_def), parameter :: src = 1
+ integer(kind=i_def), parameter :: dst = 2
+ integer(kind=i_def), parameter :: lbc = 3
type(coupling_type), pointer :: coupling_ptr
type(field_collection_type), pointer :: cpl_snd_2d
@@ -208,8 +211,10 @@ contains
! Source context pointer and temporary context for setup
type(lfric_xios_context_type) :: tmp_io_context_src
+ type(lfric_xios_context_type) :: tmp_io_context_lbc
type(lfric_xios_context_type), pointer :: io_context_src
type(lfric_xios_context_type), pointer :: io_context_dst
+ type(lfric_xios_context_type), pointer :: io_context_lbc
type(linked_list_type), pointer :: file_list
@@ -230,10 +235,28 @@ contains
! Check lfric2lfric configuration settings are allowed
call lfric2lfric_check_configuration( lfric2lfric_nml )
- call lfric2lfric_nml%get_value( 'mode', mode )
call lfric2lfric_nml%get_value( 'regrid_method', regrid_method )
- call lfric2lfric_nml%get_value( 'destination_mesh_name', &
- mesh_names(dst) )
+ call lfric2lfric_nml%get_value( 'mode', mode )
+
+ if (mode == mode_ics) then
+ allocate(mesh_names(2))
+ call lfric2lfric_nml%get_value( 'destination_mesh_name', &
+ mesh_names(dst) )
+ else if (mode == mode_lbc) then
+ allocate(mesh_names(3))
+ call lfric2lfric_nml%get_value( 'destination_mesh_name', &
+ mesh_names(lbc) )
+ ! The name of the destination mesh is the name of the lbc mesh
+ ! without the suffix '-lbc'
+ i = index(mesh_names(lbc), '-lbc', .true.)
+ if (i > 0) then
+ mesh_names(dst) = mesh_names(lbc)(:i-1)
+ else
+ mesh_names(dst) = mesh_names(lbc)
+ end if
+ call log_event('JMCS Mesh name: ' // mesh_names(dst), &
+ log_level_info)
+ end if
call lfric2lfric_nml%get_value( 'source_mesh_name', &
mesh_names(src) )
call lfric2lfric_nml%get_value( 'source_geometry', source_geometry )
@@ -349,6 +372,10 @@ contains
twod_mesh_src => mesh_collection%get_mesh(trim(twod_names(src)))
mesh_dst => mesh_collection%get_mesh(trim(mesh_names(dst)))
twod_mesh_dst => mesh_collection%get_mesh(trim(twod_names(dst)))
+ if (mode == mode_lbc) then
+ mesh_lbc => mesh_collection%get_mesh(trim(mesh_names(lbc)))
+ twod_mesh_lbc => mesh_collection%get_mesh(trim(twod_names(lbc)))
+ end if
! Log this change
call log_event('Source mesh set to: ' // mesh_names(src), &
@@ -359,6 +386,12 @@ contains
log_level_debug)
call log_event('Destination 2D mesh set to: ' // twod_names(dst), &
log_level_debug)
+ if (mode == mode_lbc) then
+ call log_event('LBC mesh set to: ' // mesh_names(lbc), &
+ log_level_debug)
+ call log_event('LBC 2D mesh set to: ' // twod_names(lbc), &
+ log_level_debug)
+ end if
!=======================================================================
! Setup I/O system
@@ -458,6 +491,37 @@ contains
call init_altitude( orography_twod_mesh, surface_altitude_src )
end if
+ if (mode == mode_lbc) then
+ !-----------------------------------------------------------------------
+ ! Create the IO context for lbc files
+ !-----------------------------------------------------------------------
+ ! Because the source lbc are not the same as the 'prime mesh', we have
+ ! to initialise the lbc context manually with the desired mesh
+
+ ! Add the lbc context to modeldb and return a pointer to it
+ call tmp_io_context_lbc%initialise(context_lbc)
+ call modeldb%io_contexts%add_context(tmp_io_context_lbc)
+ call modeldb%io_contexts%get_io_context(context_lbc, io_context_lbc)
+
+ ! Get the file list of context and populate
+ file_list => io_context_lbc%get_filelist()
+ call init_lfric2lfric_lbc_files( file_list, modeldb )
+
+ ! Get panel_id and chi from correct mesh
+ call chi_inventory%get_field_array(mesh_lbc, chi)
+ call panel_id_inventory%get_field(mesh_lbc, panel_id)
+
+ ! Using correct chi and panel_id, initialise xios context for lbc mesh
+ nullify( before_close )
+ call io_context_lbc%initialise_xios_context( modeldb%mpi%get_comm(), &
+ chi, &
+ panel_id, &
+ modeldb%clock, &
+ modeldb%calendar, &
+ before_close )
+ call io_context_src%set_current()
+ end if
+
!=======================================================================
! Create and initialise prognostic fields
!=======================================================================
@@ -468,10 +532,10 @@ contains
target_collection_name, mesh_dst, twod_mesh_dst )
else if (mode == mode_lbc) then
call lfric2lfric_nml%get_value( 'source_file_lbc', source_file_lbc )
- call init_lfric2lfric( modeldb, context_src, context_dst, &
+ call init_lfric2lfric( modeldb, context_src, context_lbc, &
source_file_lbc, mode, &
source_collection_name, mesh_src, twod_mesh_src, &
- target_collection_name, mesh_dst, twod_mesh_dst )
+ target_collection_name, mesh_lbc, twod_mesh_lbc )
end if
!=======================================================================
@@ -493,9 +557,15 @@ contains
element_order_h, element_order_v, &
modeldb)
! Destination fields
- call lfric2lfric_init_coupler_dst(twod_mesh_dst, "coupling_dst", &
- element_order_h, element_order_v, &
- modeldb)
+ if (mode == mode_ics) then
+ call lfric2lfric_init_coupler_dst(twod_mesh_dst, "coupling_dst", &
+ element_order_h, element_order_v, &
+ modeldb)
+ else if (mode == mode_lbc) then
+ call lfric2lfric_init_coupler_dst(twod_mesh_lbc, "coupling_dst", &
+ element_order_h, element_order_v, &
+ modeldb)
+ end if
! Finish coupling definition
call lfric2lfric_end_coupler_init(modeldb, "coupling")
diff --git a/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90 b/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
index 3b20a554e..1b332c242 100644
--- a/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
+++ b/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
@@ -38,22 +38,27 @@ module lfric2lfric_init_mesh_mod
log_level_error, &
log_level_debug
use namelist_collection_mod, only: namelist_collection_type
+ use namelist_item_mod, only: namelist_item_type
use namelist_mod, only: namelist_type
- use panel_decomposition_mod, only: panel_decomposition_type
- use partition_mod, only: partitioner_interface
+ use panel_decomposition_mod, only: lfric2lfric_lbc_decomposition_type, &
+ panel_decomposition_type
+ use partitioning_config_mod, only: panel_decomposition_auto
+ use partition_mod, only: partitioner_lfric2lfric_lbc, &
+ partitioner_interface
use runtime_partition_mod, only: mesh_cubedsphere, &
mesh_planar, &
+ mesh_lfric2lfric_lbc, &
create_local_mesh_maps, &
create_local_mesh
use runtime_partition_lfric_mod, only: get_partition_parameters
- use global_mesh_collection_mod, only: global_mesh_collection
! Lfric2lfric modules
use lfric2lfric_config_mod, only: regrid_method_map, &
source_geometry_spherical, &
destination_geometry_spherical, &
source_topology_fully_periodic, &
- destination_topology_fully_periodic
+ destination_topology_fully_periodic, &
+ mode_ics, mode_lbc
implicit none
@@ -96,7 +101,7 @@ subroutine init_mesh( configuration, &
integer(kind=i_def), intent(in) :: local_rank
integer(kind=i_def), intent(in) :: total_ranks
- character(len=*), intent(in) :: mesh_names(2)
+ character(len=*), intent(in) :: mesh_names(:)
class(extrusion_type), intent(in) :: extrusion
integer(kind=i_def), intent(in) :: stencil_depths_in(:)
integer(kind=i_def), intent(in) :: regrid_method
@@ -104,8 +109,9 @@ subroutine init_mesh( configuration, &
! Parameters
character(len=9), parameter :: routine_name = 'init_mesh'
- integer(kind=i_def), parameter :: dst = 1
- integer(kind=i_def), parameter :: src = 2
+ integer(kind=i_def), parameter :: src = 1
+ integer(kind=i_def), parameter :: dst = 2
+ integer(kind=i_def), parameter :: lbc = 3
! Namelist variables
type(namelist_type), pointer :: lfric2lfric_nml => null()
@@ -121,18 +127,22 @@ subroutine init_mesh( configuration, &
character(len=str_max_filename) :: meshfile_prefix(2)
integer(kind=i_def) :: geometry(2)
integer(kind=i_def) :: topology(2)
- integer(kind=i_def) :: mesh_selection(2)
+ integer(kind=i_def) :: mesh_selection(3)
+ integer(kind=i_def) :: mode
+ logical(kind=l_def) :: read_lbc_mesh
! Local variables
integer(kind=i_def) :: i
character(len=str_max_filename) :: mesh_file(2)
- integer(kind=i_def) :: stencil_depths(2)
+ integer(kind=i_def) :: stencil_depths(size(mesh_names))
procedure(partitioner_interface), pointer :: partitioner_src => null()
procedure(partitioner_interface), pointer :: partitioner_dst => null()
+ procedure(partitioner_interface), pointer :: partitioner_lbc => null()
class(panel_decomposition_type), allocatable :: decomposition_src, &
- decomposition_dst
+ decomposition_dst, &
+ decomposition_lbc
!============================================================================
@@ -166,6 +176,7 @@ subroutine init_mesh( configuration, &
geometry(src) )
call lfric2lfric_nml%get_value( 'source_topology', &
topology(src) )
+ call lfric2lfric_nml%get_value( 'mode', mode )
if ( regrid_method == regrid_method_map .and. &
trim(meshfile_prefix(src)) /= trim(meshfile_prefix(dst)) ) then
@@ -177,12 +188,12 @@ subroutine init_mesh( configuration, &
end if
! Set up stencil depths
- if ( size(stencil_depths) == 1 ) then
+ if ( size(stencil_depths_in) == 1 ) then
! Single stencil depth specified, apply to all meshes
do i = 1, size(mesh_names)
stencil_depths(i) = stencil_depths_in(1)
end do
- else if ( size(stencil_depths) == size(mesh_names) ) then
+ else if ( size(stencil_depths_in) == size(mesh_names) ) then
! Stencil depths specified per mesh
stencil_depths(:) = stencil_depths_in(:)
else
@@ -192,6 +203,13 @@ subroutine init_mesh( configuration, &
call log_event(log_scratch_space, log_level_error)
end if
+ ! Decide if a lbc mesh has to be set up
+ read_lbc_mesh = .false.
+ if (mode == mode_lbc) then
+ if (mesh_names(lbc) /= mesh_names(dst)) then
+ read_lbc_mesh = .true.
+ end if
+ end if
!===========================================================================
! Create local mesh objects:
@@ -237,7 +255,11 @@ subroutine init_mesh( configuration, &
if (mesh_file(dst) == mesh_file(src)) then
call load_local_mesh( mesh_file(dst), mesh_names )
else
- call load_local_mesh( mesh_file(dst), mesh_names(dst) )
+ if (read_lbc_mesh) then
+ call load_local_mesh( mesh_file(dst), mesh_names(dst:lbc) )
+ else
+ call load_local_mesh( mesh_file(dst), mesh_names(dst) )
+ end if
call log_event( 'Using pre-partitioned mesh file:', log_level_info )
call log_event( ' '//trim(mesh_file(src)), log_level_info )
@@ -289,6 +311,15 @@ subroutine init_mesh( configuration, &
call log_event( "Setting up planar partition mesh(es)", &
log_level_debug )
end if
+ if (mode == mode_lbc) then
+ if (mesh_names(lbc) == mesh_names(dst)) then
+ mesh_selection(lbc) = mesh_selection(dst)
+ else
+ mesh_selection(lbc) = mesh_lfric2lfric_lbc
+ end if
+ call log_event( "Setting up planar lbc partition mesh(es)", &
+ log_level_debug )
+ end if
call log_event( "Setting up partition mesh(es)", log_level_info )
write(mesh_file(src),'(A)') trim(meshfile_prefix(src)) // '.nc'
@@ -302,6 +333,13 @@ subroutine init_mesh( configuration, &
decomposition_src, &
partitioner_src )
+ if (read_lbc_mesh) then
+ decomposition_lbc = lfric2lfric_lbc_decomposition_type()
+ partitioner_lbc => partitioner_lfric2lfric_lbc
+ call log_event( "Using lfric2lfric lbc mesh partitioner ", &
+ log_level_debug )
+ end if
+
call get_partition_parameters( dst_partitioning_nml, &
mesh_selection(dst), &
total_ranks, &
@@ -313,7 +351,11 @@ subroutine init_mesh( configuration, &
if (mesh_file(dst) == mesh_file(src)) then
call load_global_mesh( mesh_file(dst), mesh_names )
else
- call load_global_mesh( mesh_file(dst), mesh_names(dst) )
+ if (read_lbc_mesh) then
+ call load_global_mesh( mesh_file(dst), mesh_names(dst:lbc) )
+ else
+ call load_global_mesh( mesh_file(dst), mesh_names(dst) )
+ end if
call load_global_mesh( mesh_file(src), mesh_names(src) )
endif
@@ -326,6 +368,15 @@ subroutine init_mesh( configuration, &
generate_inner_halos(dst), &
partitioner_dst )
+ if (read_lbc_mesh) then
+ call create_local_mesh( mesh_names(lbc:lbc), &
+ local_rank, total_ranks, &
+ decomposition_lbc, &
+ stencil_depths, &
+ generate_inner_halos(dst), &
+ partitioner_lbc )
+ end if
+
call create_local_mesh( mesh_names(src:src), &
local_rank, total_ranks, &
decomposition_src, &
diff --git a/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf b/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
index e068d8a6e..c74154fd4 100644
--- a/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
+++ b/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
@@ -645,7 +645,8 @@ description=Global mesh panel partitioning.
help=For parallel computing, the 2D global mesh is divided up into partitions.
=Each process rank runs an instance of the model on one partition. The
=partition decompostion is specified on a `per panel` basis.
- =i.e. The cubedsphere has six panels; the planar mesh has one panel.
+ =i.e. The cubedsphere has six panels; the planar and lfric2lfric lbc meshes
+ =have one panel.
ns=namelist/Model/Mesh/Partitioning
sort-key=Section-A02
diff --git a/dependencies.yaml b/dependencies.yaml
index 8455aefc4..0b4ca63c8 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -30,8 +30,8 @@ lfric_apps:
ref:
lfric_core:
- source: git@github.com:MetOffice/lfric_core.git
- ref: 2026.03.1
+ source: git@github.com:ukmo-juan-castillo/lfric_core.git
+ ref: 4f271ed371a9eb46254dd71050c3adfeee4ba0e2
moci:
source: git@github.com:MetOffice/moci.git
diff --git a/rose-stem/app/lfric2lfric/file/iodef_lbc.xml b/rose-stem/app/lfric2lfric/file/iodef_lbc.xml
index 3d2e14bd0..591717e21 100644
--- a/rose-stem/app/lfric2lfric/file/iodef_lbc.xml
+++ b/rose-stem/app/lfric2lfric/file/iodef_lbc.xml
@@ -44,6 +44,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -56,14 +76,6 @@
-
-
-
-
-
-
-
-
diff --git a/rose-stem/app/lfric2lfric/opt/rose-app-lbc_mesh.conf b/rose-stem/app/lfric2lfric/opt/rose-app-lbc_mesh.conf
new file mode 100644
index 000000000..b2ff57e86
--- /dev/null
+++ b/rose-stem/app/lfric2lfric/opt/rose-app-lbc_mesh.conf
@@ -0,0 +1,21 @@
+[env]
+RESTART_STOP=2
+
+[file:iodef.xml]
+source=$ROSE_SUITE_DIR/app/lfric2lfric/file/iodef_lbc.xml
+
+[file:source_file_lbc.nc]
+mode=auto
+source=$BIG_DATA_DIR/lfric2lfric/lfric_gal_diagnostics.nc
+
+[namelist:lfric2lfric]
+destination_mesh_name='dynamics-lbc'
+mode='lbc'
+source_file_lbc='source_file_lbc'
+source_mesh_name='C12'
+
+[namelist:time]
+timestep_end='2'
+
+[namelist:timestepping]
+dt=64800.0
diff --git a/rose-stem/app/lfric2lfric/opt/rose-app-suite_controlled.conf b/rose-stem/app/lfric2lfric/opt/rose-app-suite_controlled.conf
index eceb8d060..4952cb522 100644
--- a/rose-stem/app/lfric2lfric/opt/rose-app-suite_controlled.conf
+++ b/rose-stem/app/lfric2lfric/opt/rose-app-suite_controlled.conf
@@ -30,7 +30,6 @@ panel_xproc=${XPROC}
panel_yproc=${YPROC}
[namelist:partitioning(source)]
-panel_decomposition='${PANEL_DECOMP}'
panel_xproc=${XPROC}
panel_yproc=${YPROC}
diff --git a/rose-stem/site/common/lfric2lfric/tasks_lfric2lfric.cylc b/rose-stem/site/common/lfric2lfric/tasks_lfric2lfric.cylc
index b68dc1efc..7c622a087 100644
--- a/rose-stem/site/common/lfric2lfric/tasks_lfric2lfric.cylc
+++ b/rose-stem/site/common/lfric2lfric/tasks_lfric2lfric.cylc
@@ -111,11 +111,23 @@
{% elif task_ns.conf_name == "oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc" %}
- {# dst_name will need to change to "dynamics-lbc" when lbc meshes can be read #}
{% do task_dict.update({
"opt_confs": ["clim_gal9_ral_seuk","oasis","lbc"],
"resolution": "C12_C16_lam",
"dst_mesh": "seuk_MG",
+ "dst_name": "dynamics",
+ "dst_type": "regional",
+ "src_mesh": "C24_C12",
+ "src_name": "C12",
+ "src_type": "global",
+ }) %}
+
+{% elif task_ns.conf_name == "oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_mesh" %}
+
+ {% do task_dict.update({
+ "opt_confs": ["clim_gal9_ral_seuk","oasis","lbc_mesh"],
+ "resolution": "C12_C16_lam",
+ "dst_mesh": "seuk_MG",
"dst_name": "dynamics-lbc",
"dst_type": "regional",
"src_mesh": "C24_C12",
diff --git a/rose-stem/site/meto/groups/groups_lfric2lfric.cylc b/rose-stem/site/meto/groups/groups_lfric2lfric.cylc
index eca0b1d27..ed396baa2 100644
--- a/rose-stem/site/meto/groups/groups_lfric2lfric.cylc
+++ b/rose-stem/site/meto/groups/groups_lfric2lfric.cylc
@@ -15,6 +15,7 @@
"lfric2lfric_oasis_clim_gal9-C24_C12_azspice_gnu_fast-debug-64bit",
"lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam_azspice_gnu_fast-debug-64bit",
"lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_azspice_gnu_fast-debug-64bit",
+ "lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_mesh_azspice_gnu_fast-debug-64bit",
"lfric2lfric_azspice_canned",
],
"lfric2lfric_azspice_extra": [
@@ -43,6 +44,7 @@
"lfric2lfric_oasis_clim_gal9-C24_C12_ex1a_cce_fast-debug-64bit",
"lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam_ex1a_cce_fast-debug-64bit",
"lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_ex1a_cce_fast-debug-64bit",
+ "lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_mesh_ex1a_cce_fast-debug-64bit",
"lfric2lfric_ex1a_canned",
],
"lfric2lfric_ex1a_extra": [