Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a6a7fbd
Proposed changes: change type of duplicated namelist, add test with
ukmo-juan-castillo Jan 28, 2026
b4df63e
Issue #192: add empty upgrade macro
ukmo-juan-castillo Jan 29, 2026
cdbeaf2
Issue 192: modifications agreed with the lfric team
ukmo-juan-castillo Jan 29, 2026
d7fe894
Issue #192: fix missing brackets; fix update macro
ukmo-juan-castillo Jan 29, 2026
4acd070
Issue #192: add name to contributor list, correct error message
ukmo-juan-castillo Jan 30, 2026
41df24c
Issue #192: changes suggested by the reviewer
ukmo-juan-castillo Jan 30, 2026
cf37023
Issue 192: update partitioning namelist in lfric2lfric
ukmo-juan-castillo Jan 30, 2026
6ea37ae
Revert previous change, intended for another branch
ukmo-juan-castillo Jan 30, 2026
d2f32d2
Minor, aesthetic changes
ukmo-juan-castillo Feb 19, 2026
eb7c0a1
Merge branch 'main' into lfric2lfric_multi_CPU
ukmo-juan-castillo Feb 19, 2026
f0526d2
Update tests and KGOs
ukmo-juan-castillo Feb 19, 2026
792985c
Remove KGOs no longer used
ukmo-juan-castillo Feb 19, 2026
18026b7
Remove more KGOs no longer used
ukmo-juan-castillo Feb 19, 2026
4ee7122
Issue 192: update partitioning namelist in lfric2lfric
ukmo-juan-castillo Jan 30, 2026
e5ac5f5
Revert previous change, intended for another branch
ukmo-juan-castillo Jan 30, 2026
0d6d952
Following reviewer's instructions, remove new rose stem tests
ukmo-juan-castillo Feb 25, 2026
480729d
Merge branch 'main' into lfric2lfric_multi_CPU
ukmo-juan-castillo Feb 25, 2026
532e842
Remove test in nci site as requested by the reviewer
ukmo-juan-castillo Feb 25, 2026
a98a405
Set site tests as recommended by reviewer
ukmo-juan-castillo Feb 25, 2026
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
4 changes: 2 additions & 2 deletions applications/lfric2lfric/example/configuration.nml
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ coord_order = 1,
/

&partitioning
mesh_type = 'destination',
mesh_target = 'destination',
partitioner = 'cubedsphere',
panel_decomposition = 'auto',
/

&partitioning
mesh_type = 'source',
mesh_target = 'source',
partitioner = 'cubedsphere',
panel_decomposition = 'auto',
/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,15 +234,17 @@ type=character

[namelist:partitioning]
duplicate=true
!instance_key_member=mesh_type
!instance_key_member=mesh_target

[namelist:partitioning=mesh_type]
[namelist:partitioning=mesh_target]
compulsory=true
description=The purpose of the mesh
!enumeration=true
help=The mesh can be used to perform a LFRic forecast (Dynamics),
=or to describe the source and the destination grids in
=the lfric2lfric regridding program.
help=In the lfric2lfric program, this variable indicates the
=mesh for which the described partitioning is taking place.
=
=The only valid values of this variable in lfric2lfric
=are 'source' to indicate the source grid, and 'destination'
=to indicate the destination grid.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
help=In the lfric2lfric program, this variable indicates the
=mesh for which the described partitioning is taking place.
=
=The only valid values of this variable in lfric2lfric
=are 'source' to indicate the source grid, and 'destination'
=to indicate the destination grid.
help=The designation of the mesh to which this
=partitioning profile is to be applied.
=
=Recognised designations are:
= * 'source'
= * 'destination'

ns=namelist/lfric2lfric/configuration
value-titles=Dynamics, Source, Destination
values='dynamics', 'source', 'destination'
!string_length=default
type=character
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,10 @@ def __repr__(self):

"""
Copy this template and complete to add your macro

class vnXX_txxx(MacroUpgrade):
# Upgrade macro for <TICKET> by <Author>

BEFORE_TAG = "vnX.X"
AFTER_TAG = "vnX.X_txxx"

def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
Expand All @@ -43,5 +40,26 @@ def upgrade(self, config, meta_config=None):
# Commands From: rose-meta/lfric-lfric_atm
"""Set segmentation size for Gregory-Rowntree convection kernel"""
self.add_setting(config, ["namelist:physics", "conv_gr_segment"], "16")
return config, self.reports


class vn30_t192(MacroUpgrade):
"""Upgrade macro for ticket #192 by Juan M. Castillo."""

BEFORE_TAG = "vn3.0_t99"
AFTER_TAG = "vn3.0_t192"

def upgrade(self, config, meta_config=None):
# Commands From: rose-meta/lfric-lfric2lfric
self.rename_setting(
config,
["namelist:partitioning(source)", "mesh_type"],
["namelist:partitioning(source)", "mesh_target"],
)
self.rename_setting(
config,
["namelist:partitioning(destination)", "mesh_type"],
["namelist:partitioning(destination)", "mesh_target"],
)

return config, self.reports
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,23 @@ subroutine init_mesh( configuration, &
! Extract and check configuration variables
!============================================================================
! Read partitioning namelist for source and destination meshes
if (.not. configuration%namelist_exists('partitioning', 'source')) then
write( log_scratch_space, '(A)' ) &
'Partitioning parameters for the source mesh were not found, '// &
'please specify a partitioning namelist with mesh_target=source.'
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
'Partitioning parameters for the source mesh were not found, '// &
'please specify a partitioning namelist with mesh_target=source.'
'Source mesh partitioning namelist (partitioning:source) not found.'

If the code cannot find the required partitioning profile namelist, then that is all it should state, the code doesn't know why it can't be found, so it cannot suggest a solution. For example, if this error message was given for Marks problem, he would have checked the namelist file which was not at fault. This message also would have to be updated if a different key instance member was used.

The Rose metadata is enough for the user to be able to check their configuration settings.

call log_event(log_scratch_space, log_level_error)
end if
src_partitioning_nml => configuration%get_namelist('partitioning', &
'source')
call src_partitioning_nml%get_value( 'generate_inner_halos', &
generate_inner_halos(src) )

if (.not. configuration%namelist_exists('partitioning', 'destination')) then
write( log_scratch_space, '(A)' ) &
'Partitioning parameters for the source mesh were not found, '// &
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
'Partitioning parameters for the source mesh were not found, '// &
'Destination mesh partitioning namelist (partitioning:destination) not found.'

As before, the code doesn't know why the namelist is not found. Also the error message still referred to the source mesh.

'please specify a partitioning namelist with mesh_target=destination.'
call log_event(log_scratch_space, log_level_error)
end if
dst_partitioning_nml => configuration%get_namelist('partitioning', &
'destination')
call dst_partitioning_nml%get_value( 'generate_inner_halos', &
Expand Down
4 changes: 2 additions & 2 deletions rose-stem/app/lfric2lfric/rose-app.conf
Original file line number Diff line number Diff line change
Expand Up @@ -808,15 +808,15 @@ wavelength=0

[namelist:partitioning(destination)]
generate_inner_halos=.false.
mesh_type='destination'
mesh_target='destination'
panel_decomposition='auto'
!!panel_xproc=0
!!panel_yproc=0
partitioner='cubedsphere'

[namelist:partitioning(source)]
generate_inner_halos=.false.
mesh_type='source'
mesh_target='source'
panel_decomposition='auto'
!!panel_xproc=0
!!panel_yproc=0
Expand Down
3 changes: 3 additions & 0 deletions rose-stem/site/common/lfric2lfric/tasks_lfric2lfric.cylc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"src_mesh": "",
"src_name": "",
"src_type": "",
"mpi_parts": 4,
}) %}

{% elif task_ns.conf_name == "oasis_ral_seuk-C32_lam_MG" %}
Expand Down Expand Up @@ -81,6 +82,7 @@
"src_mesh": "",
"src_name": "",
"src_type": "",
"mpi_parts": 6,
}) %}

{% elif task_ns.conf_name == "oasis_clim_gal9-C24_C12" %}
Expand All @@ -94,6 +96,7 @@
"src_mesh": "C24_C12",
"src_name": "C12",
"src_type": "global",
"mpi_parts": 6,
}) %}

{% elif task_ns.conf_name == "oasis_clim_gal9_C12-ral_seuk_C16_lam" %}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Inner product checksum zh = 41EC942AC03AF332
Inner product checksum rho = 40FA7F5C1F732D71
Inner product checksum theta = 4252B9378905BFA5
Inner product checksum zh = 41EC942AC03AF31C
Inner product checksum rho = 40FA7F5C1F732DD0
Inner product checksum theta = 4252B9378905BF6B
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Inner product checksum zh = 41ECDF73332019EF
Inner product checksum rho = 40FAC5EEBDF23EBB
Inner product checksum theta = 4252EB3465F61645
Inner product checksum zh = 41ECDF7333201A1E
Inner product checksum rho = 40FAC5EEBDF2402D
Inner product checksum theta = 4252EB3465F61725
Original file line number Diff line number Diff line change
@@ -1,118 +1,118 @@
Inner product checksum conv_prog_dtheta = 0
Inner product checksum snow_soot = 0
Inner product checksum unfrozen_soil_moisture = 40A0563B1151C132
Inner product checksum sea_ice_temperature = 444C5AFF93A5F16B
Inner product checksum unfrozen_soil_moisture = 40A0383F38C169AB
Inner product checksum sea_ice_temperature = 444C5AFF93A5F15E
Inner product checksum m_g = 0
Inner product checksum lbc_m_g = 0
Inner product checksum m_ci = 3E1390C1077A3A5D
Inner product checksum m_ci = 3E1390C1077A3A53
Inner product checksum lbc_m_ci = 0
Inner product checksum frozen_fraction = 4075B1ADEE0C6525
Inner product checksum lw_up_toa_rts = 419098FDC526486B
Inner product checksum m_cl = 3EAAB54FD22D59C6
Inner product checksum frozen_fraction = 407228D6CCCD0FB5
Inner product checksum lw_up_toa_rts = 419098FDC526486A
Inner product checksum m_cl = 3EAAB54FD22D59AF
Inner product checksum lbc_m_cl = 0
Inner product checksum conv_prog_precip = 0
Inner product checksum tile_snow_mass = 443A39E7BCFDE106
Inner product checksum n_snow_layers = 443A39FEDBD17564
Inner product checksum tile_snow_mass = 443797EF91BF6053
Inner product checksum n_snow_layers = 443797FF89834EBB
Inner product checksum horizon_aspect = 0
Inner product checksum soil_moist_sat = 7FF0000000000000
Inner product checksum lw_up_toa_rtsi = 416FAC7209B088EF
Inner product checksum lw_up_toa_rtsi = 416FAC7209B088E9
Inner product checksum acc_sol_bc = 0
Inner product checksum lw_up_tile_rts = 41C28987BDD836EC
Inner product checksum lw_up_tile_rts = 41C24DA76F40DADD
Inner product checksum u = 0
Inner product checksum lbc_u = 0
Inner product checksum ccw = 0
Inner product checksum tile_canopy_water = 443A39FEDBCA7733
Inner product checksum tile_canopy_water = 443797FF897912D3
Inner product checksum sw_up_toa_rts = 0
Inner product checksum m_r = 3E73F28B7E39E169
Inner product checksum m_r = 3E73F28B7E39E166
Inner product checksum lbc_m_r = 0
Inner product checksum lit_fraction_rts = 0
Inner product checksum tile_snow_rgrain = 443A39FEA5A417EB
Inner product checksum tile_snow_rgrain = 443797FF4DD10105
Inner product checksum m_s = 0
Inner product checksum lbc_m_s = 0
Inner product checksum soil_moist_crit = 7FF0000000000000
Inner product checksum lw_heating_rate_rts = 3F12F4B0E3E638E7
Inner product checksum lw_up_tile_rtsi = 41920E8314D3E49D
Inner product checksum m_v = 3FF28510ABFC385A
Inner product checksum lw_heating_rate_rts = 3F10D84EBF75D093
Inner product checksum lw_up_tile_rtsi = 4191D206AA086831
Inner product checksum m_v = 3FF28510ABFC3818
Inner product checksum lbc_m_v = 0
Inner product checksum sw_up_toa_rtsi = 0
Inner product checksum snow_layer_ice_mass = 444C09F336217838
Inner product checksum soil_moisture = 41C1A92CF9A23675
Inner product checksum tile_temperature = 443A39FDB80E4E3A
Inner product checksum snow_layer_ice_mass = 4457AF7A5064FFE9
Inner product checksum soil_moisture = 41C03D84A3614BDF
Inner product checksum tile_temperature = 443797FE52509E26
Inner product checksum sw_up_tile_rts = 0
Inner product checksum sw_direct_toa_rts = 0
Inner product checksum snow_layer_temp = 444C09FD29EB28A8
Inner product checksum soil_roughness = 3F50C6F7617A915F
Inner product checksum zh = 4198376093F116FA
Inner product checksum lw_heating_rate_rtsi = 42B6DAF07B26C6DA
Inner product checksum a_sat_frac = 4067EF6A9F0CFE61
Inner product checksum snow_layer_temp = 4457AF7EDF6C8650
Inner product checksum soil_roughness = 3F50C6F7617A9156
Inner product checksum zh = 4198376093F116FC
Inner product checksum lw_heating_rate_rtsi = 42B6DAF2287EBDE0
Inner product checksum a_sat_frac = 4067EF6A9F0CFE57
Inner product checksum sw_heating_rate_rts = 0
Inner product checksum sw_up_tile_rtsi = 0
Inner product checksum sw_direct_toa_rtsi = 0
Inner product checksum rho = 40E727EC608D56C5
Inner product checksum rho = 40E727EC608D56C8
Inner product checksum lbc_rho = 0
Inner product checksum n_acc_sol = 0
Inner product checksum snow_layer_rgrain = 444C09FEC81C14C8
Inner product checksum c_sat_frac = 407D62B17B477F5E
Inner product checksum snow_layer_rgrain = 4457AF7F6D3CE748
Inner product checksum c_sat_frac = 407D62B17B477F5B
Inner product checksum ageofair = 0
Inner product checksum boundary_u_driving = 0
Inner product checksum soil_suction_sat = 7FF0000000000000
Inner product checksum silhouette_area_orog = 3F906E761C4C51A4
Inner product checksum silhouette_area_orog = 3F906E761C4C51A8
Inner product checksum cos_zenith_angle_rts = 0
Inner product checksum soil_temperature = 443123FFA7593792
Inner product checksum screen_temperature = 4473C37F9D4BBA74
Inner product checksum peak_to_trough_orog = 41026B6BF51EF8AF
Inner product checksum sw_heating_rate_rtsi = 42B6DD2C806D9054
Inner product checksum snowpack_density = 443A39FE2207A9BF
Inner product checksum soil_temperature = 443011FFA46F5114
Inner product checksum screen_temperature = 447379DF8B8D3789
Inner product checksum peak_to_trough_orog = 41026B6BF51EF8A9
Inner product checksum sw_heating_rate_rtsi = 42B6DD2E2CF7DB84
Inner product checksum snowpack_density = 443797FEC9D88253
Inner product checksum soil_moist_wilt = 7FF0000000000000
Inner product checksum theta = 42069729B9240A4A
Inner product checksum lbc_theta = 0
Inner product checksum lw_up_surf_rts = 41A127FBF79616B0
Inner product checksum a_wet_frac = 40527B54E34DA3F2
Inner product checksum lw_up_surf_rts = 41A127FBF79616AC
Inner product checksum a_wet_frac = 40527B54E34DA3F6
Inner product checksum acc_sol_du = 0
Inner product checksum stellar_irradiance_rts = 0
Inner product checksum snow_under_canopy = 443A39FEDBD17564
Inner product checksum c_wet_frac = 4077780FAB02BC5C
Inner product checksum snow_under_canopy = 443797FF89834EBB
Inner product checksum c_wet_frac = 4077780FAB02BC5D
Inner product checksum ait_sol_bc = 0
Inner product checksum acc_sol_om = 0
Inner product checksum lw_up_surf_rtsi = 4170CB64FE0AC151
Inner product checksum lw_up_surf_rtsi = 4170CB64FE0AC159
Inner product checksum sw_up_surf_rts = 0
Inner product checksum sw_up_blue_tile_rts = 0
Inner product checksum leaf_area_index = 7FF0000000000000
Inner product checksum snow_layer_liq_mass = 444C09FF3D043062
Inner product checksum snow_layer_liq_mass = 4457AF7F967C45D5
Inner product checksum cor_sol_bc = 0
Inner product checksum lw_down_surf_rts = 41961C6F10E9A433
Inner product checksum exner = 40E77B745607A805
Inner product checksum lw_down_surf_rts = 41961C6F10E9A439
Inner product checksum exner = 40E77B745607A7B7
Inner product checksum lbc_exner = 0
Inner product checksum sw_up_surf_rtsi = 0
Inner product checksum sw_direct_surf_rts = 0
Inner product checksum sw_up_blue_tile_rtsi = 0
Inner product checksum wvar = 40A91F95234DEC6D
Inner product checksum wetness_under_soil = 441857FFA492342A
Inner product checksum wvar = 40A8626BBEA4B4AE
Inner product checksum wetness_under_soil = 441857FFA492342B
Inner product checksum acc_sol_ss = 0
Inner product checksum sd_orog = 40CA0AA0BF28D234
Inner product checksum sd_orog = 40CA0AA0BF28D23A
Inner product checksum soil_albedo = 7FF0000000000000
Inner product checksum time_since_transition = 4414FBFE7610B6F3
Inner product checksum lw_down_surf_rtsi = 413A3B9C45CC7F6A
Inner product checksum time_since_transition = 4414FBFE7610B74B
Inner product checksum lw_down_surf_rtsi = 413A3B9C45CC7F76
Inner product checksum acc_sol_su = 0
Inner product checksum n_ait_sol = 0
Inner product checksum sw_down_surf_rts = 0
Inner product checksum stellar_eqn_of_time_rts = 3FEA0E536CB43C50
Inner product checksum stellar_eqn_of_time_rts = 3FEA0E536CB43C44
Inner product checksum sw_direct_surf_rtsi = 0
Inner product checksum chloro_sea = 3E1759841C224B59
Inner product checksum ozone = 3E9FEE5EFBFB39C4
Inner product checksum chloro_sea = 3E1759841C224B62
Inner product checksum ozone = 3E9A81A83D26518A
Inner product checksum clapp_horn_b = 7FF0000000000000
Inner product checksum sw_down_surf_rtsi = 0
Inner product checksum n_cor_sol = 0
Inner product checksum area_fraction = 4077A40F41638617
Inner product checksum snow_layer_thickness = 444C09FF3D043062
Inner product checksum area_fraction = 4073D10E643252E3
Inner product checksum snow_layer_thickness = 4457AF7F967C45D5
Inner product checksum conv_rain = 0
Inner product checksum slope_angle = 0
Inner product checksum ait_sol_om = 0
Inner product checksum water_table = 441857FFA4668697
Inner product checksum water_table = 441857FFA4668695
Inner product checksum cor_sol_du = 0
Inner product checksum sw_direct_blue_surf_rts = 0
Inner product checksum cor_sol_om = 0
Inner product checksum soil_sat_frac = 441857FFA4A2EB11
Inner product checksum soil_sat_frac = 441857FFA4A2EB10
Inner product checksum sw_down_blue_surf_rts = 0
Inner product checksum sw_direct_blue_surf_rtsi = 0
Inner product checksum ait_sol_su = 0
Expand All @@ -121,28 +121,28 @@ Inner product checksum soil_cond_sat = 7FF0000000000000
Inner product checksum frozen_soil_moisture = 0
Inner product checksum cor_sol_ss = 0
Inner product checksum canopy_height = 7FF0000000000000
Inner product checksum bulk_fraction = 4077A40F41638617
Inner product checksum tile_fraction = 4078582D6A7AB05C
Inner product checksum bulk_fraction = 4073D10E643252E3
Inner product checksum tile_fraction = 40789FE2C6F635E7
Inner product checksum cor_sol_su = 0
Inner product checksum sea_ice_thickness = 7FF0000000000000
Inner product checksum sin_stellar_declination_rts = 405A7A1D5CCC09B4
Inner product checksum sin_stellar_declination_rts = 405A7A1D5CCC09BA
Inner product checksum slope_aspect = 0
Inner product checksum grad_xx_orog = 3E845FF5EBED903B
Inner product checksum snow_depth = 443A39FEDBD17564
Inner product checksum grad_xx_orog = 3E845FF5EBED9040
Inner product checksum snow_depth = 443797FF89834EBB
Inner product checksum boundary_u_diff = 0
Inner product checksum grad_xy_orog = 3E46A45807A5777B
Inner product checksum grad_yy_orog = 3E72843F6D98C78C
Inner product checksum orographic_correction_rts = 408FFFFF87650F88
Inner product checksum grad_xy_orog = 3E46A45807A57776
Inner product checksum grad_yy_orog = 3E72843F6D98C78F
Inner product checksum orographic_correction_rts = 408FFFFF87650F87
Inner product checksum skyview = 0
Inner product checksum soil_thermal_cap = 7FF0000000000000
Inner product checksum conv_snow = 0
Inner product checksum horizon_angle = 0
Inner product checksum z0msea = 4065692F5E6E9F1B
Inner product checksum z0msea = 4065692F5E6E9F24
Inner product checksum cca = 0
Inner product checksum conv_prog_dmv = 0
Inner product checksum tile_lw_grey_albedo = 40294F555DBD37CF
Inner product checksum tile_lw_grey_albedo = 40296D99BE3307E6
Inner product checksum mean_topog_index = 7FF0000000000000
Inner product checksum liquid_fraction = 403E673D3DD0D399
Inner product checksum liquid_fraction = 4039C851CB10ED70
Inner product checksum dd_mf_cb = 0
Inner product checksum soil_thermal_cond = 7FF0000000000000
Inner product checksum surface_conductance = 441857FFA4A50B33
Inner product checksum surface_conductance = 441857FFA4A50B32
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Inner product checksum zh = 41EC942AC03A5271
Inner product checksum rho = 40FA7F5C1F732DAC
Inner product checksum theta = 4252B937890592AE
Inner product checksum zh = 41EC942AC03A5274
Inner product checksum rho = 40FA7F5C1F732DE9
Inner product checksum theta = 4252B937890592A2
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Inner product checksum zh = 41ECDF7333201A20
Inner product checksum rho = 40FAC5EEBDF24024
Inner product checksum rho = 40FAC5EEBDF24045
Inner product checksum theta = 4252EB3465F61708
Loading