From c69c16d4867ec403282edee3e76ad6d0fcd8b49e Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:25:23 +0000 Subject: [PATCH 1/9] migrate fixes --- dependencies.yaml | 4 ++-- .../source/algorithm/skeb_main_alg_mod.x90 | 2 +- .../source/algorithm/spt_main_alg_mod.x90 | 2 +- .../source/algorithm/stph_fp_main_alg_mod.x90 | 12 ++++++++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dependencies.yaml b/dependencies.yaml index caab3648..c2b3d12a 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: 2025.12.1 + source: git@github.com:tommbendall/lfric_core.git + ref: TBendall/FixW0WthFilter moci: source: git@github.com:MetOffice/moci.git diff --git a/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 index b49ad7f8..1a10fbad 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 @@ -379,7 +379,7 @@ module skeb_main_alg_mod !!!!!! 1.b call stph_fp_main to create forcing pattern for SKEB call stph_fp_main_alg(skeb_level_bottom-1_i_def, skeb_level_top-1_i_def, & - stph_n_min, stph_n_max, stph_spectral_dim, & + 1, stph_n_min, stph_n_max, stph_spectral_dim, & skeb_alpha, skeb_power_law, & skeb_spectral_coeffc, skeb_spectral_coeffs, & fp_skeb) diff --git a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 index 0f61d126..b613cc20 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 @@ -284,7 +284,7 @@ module spt_main_alg_mod call invoke( setval_c(fp_spt, 0.0_r_def)) ! Create forcing pattern for SPT - call stph_fp_main_alg(spt_level_bottom, spt_level_top, & + call stph_fp_main_alg(spt_level_bottom, spt_level_top, 0, & 1, stph_n_max, stph_spectral_dim, & spt_alpha, spt_power_law, & spt_spectral_coeffc, spt_spectral_coeffs, & diff --git a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 index c0a1f2ff..b4811aff 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 @@ -47,6 +47,9 @@ module stph_fp_main_alg_mod !>@param[in] level_bottom Bottom level of the stochastic scheme !>@param[in] level_top Top level of the stochastic scheme + !>@param[in] level_offset Level offset, allowing this to be + !! applied to W3 and Wtheta fields. + !! Set 0 Wtheta, 1 for W3. !>@param[in] wavenumber_min Minimum wavenumber applied to build the FP !>@param[in] wavenumber_max Maximum wavenumber applied to build the FP !>@param[in] spectral_dim Dimension of spectral coeffients arrays @@ -79,8 +82,8 @@ module stph_fp_main_alg_mod !!!! Arguments ! Scalars with scheme levels, wavenumbers and spectral dimensions - integer(kind=i_def), intent(in) :: level_bottom, level_top, & - wavenumber_min, wavenumber_max, & + integer(kind=i_def), intent(in) :: level_bottom, level_top, level_offset, & + wavenumber_min, wavenumber_max, & spectral_dim ! spectral coefficients power law and decorrelation @@ -151,12 +154,13 @@ module stph_fp_main_alg_mod my_phi_stph = ATAN2(spectral_coeffs(n_row+m), & spectral_coeffc(n_row+m)) ! Max shift ranges from 0 <-> pi for wavenos 1 <-> wavenumber_max - my_phishft_stph = (wavenumber_max - max(n,m)) * pi / (wavenumber_max-1) + my_phishft_stph = (wavenumber_max - max(n,m)) * pi & + / (wavenumber_max - wavenumber_min) do k = level_bottom, level_top ! Apply vertical scaling Level 1 = no change -> 12km Level = max change (=pi) - kr = (domain_height*eta_theta_levels(k))/12.0e3_r_def + kr = (domain_height*eta_theta_levels(k + lev_offset))/12.0e3_r_def ! Create coeff with phase shift coeffc_phase(k, n_row+m) = my_coeff_rad * cos(my_phi_stph + & From 455d79d56cd574a07bf9e8b0b55c954b00501cd0 Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 15 Jan 2026 17:25:26 +0000 Subject: [PATCH 2/9] fix typo --- .../source/algorithm/stph_fp_main_alg_mod.x90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 index b4811aff..7fd850c4 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 @@ -160,7 +160,7 @@ module stph_fp_main_alg_mod do k = level_bottom, level_top ! Apply vertical scaling Level 1 = no change -> 12km Level = max change (=pi) - kr = (domain_height*eta_theta_levels(k + lev_offset))/12.0e3_r_def + kr = (domain_height*eta_theta_levels(k + level_offset))/12.0e3_r_def ! Create coeff with phase shift coeffc_phase(k, n_row+m) = my_coeff_rad * cos(my_phi_stph + & From 751155eadf8e639c605aa8d73ab09ad10396f501 Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 15 Jan 2026 17:42:17 +0000 Subject: [PATCH 3/9] sign the contributors list yet again --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index da42a74b..26a421e3 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -5,3 +5,4 @@ | james-bruten-mo | James Bruten | Met Office | 2025-12-09 | | jennyhickson | Jenny Hickson | Met Office | 2025-12-10 | | mo-marqh | mark Hedley | Met Office | 2025-12-11 | +| tommbendall | Thomas Bendall | Met Office | 2025-01-15 | From 2f8c2e6f2d6cbaad1561914597ae6c0b7f11abcd Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 15 Jan 2026 17:53:24 +0000 Subject: [PATCH 4/9] another silly fix --- .../source/algorithm/stph_fp_main_alg_mod.x90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 index 7fd850c4..bb67d17d 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 @@ -59,10 +59,10 @@ module stph_fp_main_alg_mod !>@param[in,out] spectral_coeffs Imaginary Spectral coefficients !>@param[i,out] fp Forcing pattern - subroutine stph_fp_main_alg(level_bottom, level_top, & - wavenumber_min, wavenumber_max, & - spectral_dim, alpha, power_law, & - spectral_coeffc, spectral_coeffs, & + subroutine stph_fp_main_alg(level_bottom, level_top, level_offset, & + wavenumber_min, wavenumber_max, & + spectral_dim, alpha, power_law, & + spectral_coeffc, spectral_coeffs, & fp) ! TO DO after PSyclone ticket 1312 From 51b132e27a1576ab426f8cff19a169a1305fcd41 Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Fri, 16 Jan 2026 13:36:07 +0000 Subject: [PATCH 5/9] copy over KGOs --- ..._clim_gal9-C12_azspice_gnu_fast-debug-32bit.txt | 14 +++++++------- ..._gal9_chem-C12_azspice_gnu_fast-debug-32bit.txt | 14 +++++++------- ...atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ..._clim_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ...im_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ..._clim_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ...im_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ...im_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ...lim_gal9_chem-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ..._gal9_chem_1T-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- ..._gal9_chem_2T-C12_ex1a_cce_fast-debug-32bit.txt | 14 +++++++------- 11 files changed, 77 insertions(+), 77 deletions(-) diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9-C12_azspice_gnu_fast-debug-32bit.txt index ebbf5d1b..5e29cd18 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D66411 -Inner product checksum theta = 518E95C2 -Inner product checksum u = 6AF4A509 -Inner product checksum mr1 = 3FD1977C -Inner product checksum mr2 = 375C8794 -Inner product checksum mr3 = 3534A85C -Inner product checksum mr4 = 36B9C166 +Inner product checksum rho = 46D66391 +Inner product checksum theta = 518E960E +Inner product checksum u = 6AF41D3E +Inner product checksum mr1 = 3FD1EF1A +Inner product checksum mr2 = 3744B62D +Inner product checksum mr3 = 353557CA +Inner product checksum mr4 = 36C14665 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_chem-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_chem-C12_azspice_gnu_fast-debug-32bit.txt index 208bf5b6..48dbd372 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_chem-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_chem-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D66282 -Inner product checksum theta = 518E9697 -Inner product checksum u = 6AF4EDB0 -Inner product checksum mr1 = 3FD1A816 -Inner product checksum mr2 = 372DA48E -Inner product checksum mr3 = 355FEEE4 -Inner product checksum mr4 = 36BADA78 +Inner product checksum rho = 46D66988 +Inner product checksum theta = 518E9953 +Inner product checksum u = 6AF43368 +Inner product checksum mr1 = 3FD1683B +Inner product checksum mr2 = 3745B57B +Inner product checksum mr3 = 352B1260 +Inner product checksum mr4 = 36B980D2 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt index 0d6784f4..1cdf2d76 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D6652A -Inner product checksum theta = 518E93EC -Inner product checksum u = 6AF54A1D -Inner product checksum mr1 = 3FD199FC -Inner product checksum mr2 = 373A4F06 -Inner product checksum mr3 = 35526759 -Inner product checksum mr4 = 36CD3F45 +Inner product checksum rho = 46D6654E +Inner product checksum theta = 518E92A4 +Inner product checksum u = 6AF61ED5 +Inner product checksum mr1 = 3FD1D7F4 +Inner product checksum mr2 = 373D2894 +Inner product checksum mr3 = 354A0F92 +Inner product checksum mr4 = 36C033B4 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt index cdce4e3c..ad34ada8 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D65056 -Inner product checksum theta = 51925277 -Inner product checksum u = 6B2213D6 -Inner product checksum mr1 = 3FCF401D -Inner product checksum mr2 = 3723DA1E -Inner product checksum mr3 = 353FBE95 -Inner product checksum mr4 = 369202EA +Inner product checksum rho = 46D64EC9 +Inner product checksum theta = 51925235 +Inner product checksum u = 6B21E18C +Inner product checksum mr1 = 3FCF590B +Inner product checksum mr2 = 37287735 +Inner product checksum mr3 = 3538B55A +Inner product checksum mr4 = 36B2F572 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt index ef7de318..2ab9803f 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D65CA4 -Inner product checksum theta = 5399FF37 -Inner product checksum u = 6B12F9D3 -Inner product checksum mr1 = 41CC35F8 -Inner product checksum mr2 = 3964700B -Inner product checksum mr3 = 37C885DA -Inner product checksum mr4 = 393CC0EB +Inner product checksum rho = 48D65C72 +Inner product checksum theta = 5399FF3A +Inner product checksum u = 6B12FBEA +Inner product checksum mr1 = 41CC3576 +Inner product checksum mr2 = 3967A439 +Inner product checksum mr3 = 37C304A7 +Inner product checksum mr4 = 3940CDC7 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt index fc5094f0..36052d5c 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D65029 -Inner product checksum theta = 51925282 -Inner product checksum u = 6B222646 -Inner product checksum mr1 = 3FCF441A -Inner product checksum mr2 = 373420D6 -Inner product checksum mr3 = 353B5108 -Inner product checksum mr4 = 369534B7 +Inner product checksum rho = 46D64F18 +Inner product checksum theta = 51925206 +Inner product checksum u = 6B21EEF5 +Inner product checksum mr1 = 3FCF4050 +Inner product checksum mr2 = 37532624 +Inner product checksum mr3 = 3537ACEB +Inner product checksum mr4 = 369CB401 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt index 9985fc72..7769758e 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D65C9E -Inner product checksum theta = 5399FF36 -Inner product checksum u = 6B12F9E6 -Inner product checksum mr1 = 41CC34F5 -Inner product checksum mr2 = 39628562 -Inner product checksum mr3 = 37CADBE8 -Inner product checksum mr4 = 393CFC10 +Inner product checksum rho = 48D65C64 +Inner product checksum theta = 5399FF3D +Inner product checksum u = 6B12FBE8 +Inner product checksum mr1 = 41CC35EE +Inner product checksum mr2 = 39665FD3 +Inner product checksum mr3 = 37C5CAC2 +Inner product checksum mr4 = 3940CE5A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt index f9b384e6..ad73e880 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D65C98 -Inner product checksum theta = 5399FF37 -Inner product checksum u = 6B12FA76 -Inner product checksum mr1 = 41CC32D9 -Inner product checksum mr2 = 396638BD -Inner product checksum mr3 = 37CAADA4 -Inner product checksum mr4 = 393EB70D +Inner product checksum rho = 48D65C6C +Inner product checksum theta = 5399FF3A +Inner product checksum u = 6B12FC64 +Inner product checksum mr1 = 41CC350A +Inner product checksum mr2 = 39664DB9 +Inner product checksum mr3 = 37C0EC20 +Inner product checksum mr4 = 394121CC Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem-C12_ex1a_cce_fast-debug-32bit.txt index 9508e0ab..3b50de38 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D66780 -Inner product checksum theta = 518E9690 -Inner product checksum u = 6AF50DE9 -Inner product checksum mr1 = 3FD15B81 -Inner product checksum mr2 = 37581AA6 -Inner product checksum mr3 = 355FE797 -Inner product checksum mr4 = 36D86CA0 +Inner product checksum rho = 46D6651C +Inner product checksum theta = 518E911A +Inner product checksum u = 6AF6B692 +Inner product checksum mr1 = 3FD1AA6E +Inner product checksum mr2 = 374E6452 +Inner product checksum mr3 = 35374226 +Inner product checksum mr4 = 36CAD2D2 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_1T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_1T-C12_ex1a_cce_fast-debug-32bit.txt index 3a5681d4..20952d01 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_1T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_1T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D6516E -Inner product checksum theta = 519250DF -Inner product checksum u = 6B22BA14 -Inner product checksum mr1 = 3FCF2C92 -Inner product checksum mr2 = 3737929A -Inner product checksum mr3 = 35357886 -Inner product checksum mr4 = 36A9CD80 +Inner product checksum rho = 46D64E5B +Inner product checksum theta = 51925086 +Inner product checksum u = 6B228DC3 +Inner product checksum mr1 = 3FCF67FD +Inner product checksum mr2 = 37390858 +Inner product checksum mr3 = 3548209F +Inner product checksum mr4 = 36B280B6 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_2T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_2T-C12_ex1a_cce_fast-debug-32bit.txt index da48a4be..9095fea6 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_2T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_chem_2T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D65134 -Inner product checksum theta = 5192506E -Inner product checksum u = 6B22D6CD -Inner product checksum mr1 = 3FCF4DA0 -Inner product checksum mr2 = 3736B1D8 -Inner product checksum mr3 = 353E60FE -Inner product checksum mr4 = 36A0052E +Inner product checksum rho = 46D64DA0 +Inner product checksum theta = 519250B4 +Inner product checksum u = 6B2268C8 +Inner product checksum mr1 = 3FCF6324 +Inner product checksum mr2 = 37350051 +Inner product checksum mr3 = 353CED64 +Inner product checksum mr4 = 36A91426 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 From 6e8f1065aa61f1da36e00eec40f6935da148d1fc Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 29 Jan 2026 13:49:10 +0000 Subject: [PATCH 6/9] improve comments and clarity around SKEB and SPT levels --- .../um-stochastic_physics/HEAD/rose-meta.conf | 31 +++++++++++-------- .../source/algorithm/skeb_main_alg_mod.x90 | 12 ++++--- .../source/algorithm/spt_main_alg_mod.x90 | 12 ++++--- .../source/algorithm/stph_fp_main_alg_mod.x90 | 9 ++++-- 4 files changed, 40 insertions(+), 24 deletions(-) diff --git a/interfaces/physics_schemes_interface/rose-meta/um-stochastic_physics/HEAD/rose-meta.conf b/interfaces/physics_schemes_interface/rose-meta/um-stochastic_physics/HEAD/rose-meta.conf index c01f31b6..957c94aa 100644 --- a/interfaces/physics_schemes_interface/rose-meta/um-stochastic_physics/HEAD/rose-meta.conf +++ b/interfaces/physics_schemes_interface/rose-meta/um-stochastic_physics/HEAD/rose-meta.conf @@ -827,7 +827,8 @@ values='fd','fe' [namelist:stochastic_physics=skeb_level_bottom] compulsory=true description=Bottom level of SKEB calculations -help=Bottom level of SKEB calculations - model level a little above surface +help=The bottom pressure-level at which SKEB is active. + =A value of 1 corresponds to the lowest level of the model. ns=namelist/Science/Stochastic Physics/SKEB range=2:60 sort-key=Panel-A3a @@ -845,7 +846,7 @@ type=integer [namelist:stochastic_physics=skeb_level_top] compulsory=true description=Top level of SKEB calculations -help=Top level of SKEB calculations - model level at or just above tropopause +help=If the model has N layers, a value of N would correspond to the top layer. ns=namelist/Science/Stochastic Physics/SKEB range=30:200 sort-key=Panel-A3b @@ -963,12 +964,14 @@ type=integer [namelist:stochastic_physics=spt_level_bottom] compulsory=true -description=Bottom level where SPT is active - =See Help panel for details -help=Bottom level wehre SPT perturbations are applied. - =Though, the tapering at this level is 0 so effectively - =SPT perturbations start one level above, see help-panel - = of spt_level_begin_tapering_bottom. +description=Bottom level at which SPT is active +help=The bottom theta-level at which SPT perturbations are applied. + =A value of 0 would correspond to the surface, so a value of 2 means that + =perturbations are applied from the third theta-level and above. + =Note that the perturbations are actually tapered, so that at the level + =specified here the perturbations will still be 0, and SPT perturbations + =effectively start at one level above this specified value. + =For more information, see help-panel of spt_level_begin_tapering_bottom. ns=namelist/Science/Stochastic Physics/SPT range=2:60 sort-key=Panel-A6a @@ -976,12 +979,14 @@ type=integer [namelist:stochastic_physics=spt_level_top] compulsory=true -description=Top level where SPT is active - =See Help panel for details -help=Top level where SPT perturbations are applied. +description=Top level at which SPT is active +help=The top theta-level at which SPT perturbations are applied. + =If the model has N layers, a value of N would correspond to the top + =boundary. Note that the perturbations are actually tapered, so that at the + =level specified here the perturbations will still be 0, and SPT + =perturbations effectively start at one level below this specified value. =Though, the tapering at this level is 0 so effectively - =SPT perturbations start one level below, see help-panel - = of spt_level_begin_tapering_top. + =For more information, see help-panel of spt_level_begin_tapering_top. ns=namelist/Science/Stochastic Physics/SPT range=30:200 sort-key=Panel-A6d diff --git a/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 index 1a10fbad..886acb2a 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/skeb_main_alg_mod.x90 @@ -296,6 +296,10 @@ module skeb_main_alg_mod ! Iterators in for loops integer(i_def) :: m, n, n_row, stencil_extent + ! SKEB calculations are performed at cell centres (W3 points). To index the + ! "eta_theta_levels" array correctly at these points, set offset to 1 + integer(kind=i_def), parameter :: lev_offset = 1 + !!!!!!!!!! END OF VARIABLE DEFINITION, START OF CODE !!!!!!!!!! if ( subroutine_timers ) call timer("skeb_main_alg") @@ -378,10 +382,10 @@ module skeb_main_alg_mod end if !!!!!! 1.b call stph_fp_main to create forcing pattern for SKEB - call stph_fp_main_alg(skeb_level_bottom-1_i_def, skeb_level_top-1_i_def, & - 1, stph_n_min, stph_n_max, stph_spectral_dim, & - skeb_alpha, skeb_power_law, & - skeb_spectral_coeffc, skeb_spectral_coeffs, & + call stph_fp_main_alg(skeb_level_bottom-1_i_def, skeb_level_top-1_i_def, & + lev_offset, stph_n_min, stph_n_max, stph_spectral_dim, & + skeb_alpha, skeb_power_law, & + skeb_spectral_coeffc, skeb_spectral_coeffs, & fp_skeb) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 index b613cc20..b6cd6196 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 @@ -223,6 +223,10 @@ module spt_main_alg_mod ! iterators in for loops integer(i_def) :: n,n_row, m + ! SPT calculations are performed at theta-levels (Wtheta points). To index the + ! "eta_theta_levels" array correctly at these points, set offset to 0 + integer(kind=i_def), parameter :: lev_offset = 0 + if ( subroutine_timers ) call timer("spt_main_alg") !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -284,10 +288,10 @@ module spt_main_alg_mod call invoke( setval_c(fp_spt, 0.0_r_def)) ! Create forcing pattern for SPT - call stph_fp_main_alg(spt_level_bottom, spt_level_top, 0, & - 1, stph_n_max, stph_spectral_dim, & - spt_alpha, spt_power_law, & - spt_spectral_coeffc, spt_spectral_coeffs, & + call stph_fp_main_alg(spt_level_bottom, spt_level_top, lev_offset, & + 1, stph_n_max, stph_spectral_dim, & + spt_alpha, spt_power_law, & + spt_spectral_coeffc, spt_spectral_coeffs, & fp_spt) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 index bb67d17d..2c1c66cf 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/stph_fp_main_alg_mod.x90 @@ -47,9 +47,12 @@ module stph_fp_main_alg_mod !>@param[in] level_bottom Bottom level of the stochastic scheme !>@param[in] level_top Top level of the stochastic scheme - !>@param[in] level_offset Level offset, allowing this to be - !! applied to W3 and Wtheta fields. - !! Set 0 Wtheta, 1 for W3. + !>@param[in] level_offset Level offset. This routine can be + !! applied at W3 and Wtheta points, + !! but both implementations index + !! from the same "eta_theta_levels" + !! array, so need an offset to index + !! correctly. Set 0 Wtheta, 1 for W3 !>@param[in] wavenumber_min Minimum wavenumber applied to build the FP !>@param[in] wavenumber_max Maximum wavenumber applied to build the FP !>@param[in] spectral_dim Dimension of spectral coeffients arrays From a534d8d9b7785ab3f701941c0c94aaeea856d1be Mon Sep 17 00:00:00 2001 From: cameronbateman-mo Date: Wed, 4 Feb 2026 11:24:39 +0000 Subject: [PATCH 7/9] removed entry from contributors file --- CONTRIBUTORS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index b6e42028..34ea8360 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -23,5 +23,4 @@ | andrewcoughtrie | Andrew Coughtrie | Met Office | 2026-01-28 | | tommbendall | Thomas Bendall | Met Office | 2026-01-13 | | mo-jmanners | James Manners | Met Office | 2026-01-14 | -| maggiehendry | Maggie Hendry | Met Office | 2026-01-29 | -| tommbendall | Thomas Bendall | Met Office | 2025-01-15 | \ No newline at end of file +| maggiehendry | Maggie Hendry | Met Office | 2026-01-29 | \ No newline at end of file From 1310db27300b33cd5c85a537c7487f582ae674d1 Mon Sep 17 00:00:00 2001 From: cameronbateman-mo Date: Thu, 5 Feb 2026 11:29:31 +0000 Subject: [PATCH 8/9] update dependencies file --- CONTRIBUTORS.md | 52 ++++++++++++++++++++++++----------------------- dependencies.yaml | 5 ++--- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 34ea8360..030a8327 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,26 +1,28 @@ # Contributors -| GitHub user | Real Name | Affiliation | Date | -| --------------- | ------------------ | -------------------------------- | ---------- | -| james-bruten-mo | James Bruten | Met Office | 2025-12-09 | -| jedbakerMO | Jed Baker | Met Office | 2025-12-29 | -| jennyhickson | Jenny Hickson | Met Office | 2025-12-10 | -| mike-hobson | Mike Hobson | Met Office | 2025-12-17 | -| mo-marqh | mark Hedley | Met Office | 2025-12-11 | -| yaswant | Yaswant Pradhan | Met Office | 2025-12-16 | -| oakleybrunt | Oakley Brunt | Met Office | 2025-12-19 | -| harry-shepherd | Harry Shepherd | Met Office | 2026-01-08 | -| DrTVockerodtMO | Terence Vockerodt | Met Office | 2026-01-08 | -| ricky-lv426 | Ricky Olivier | University of Exeter | 2026-01-12 | -| MetBenjaminWent | Benjamin Went | Met Office | 2026-01-15 | -| timgraham-Met | Tim Graham | Met Office | 2026-01-15 | -| mcdalvi | Mohit Dalvi | Met Office | 2026-01-15 | -| mo-alistairp | Alistair Pirrie | Met Office | 2026-01-19 | -| jasonjunweilyu | Junwei (Jason) Lyu | Bureau of Meteorology, Australia | 2025-12-17 | -| EdHone | Ed Hone | Met Office | 2026-01-26 | -| tom-j-h | Tom Hill | Met Office | 2026-01-27 | -| alanjhewitt | Alan J Hewitt | Met Office | 2026-01-28 | -| mo-lottieturner | Lottie Turner | Met Office | 2026-01-27 | -| andrewcoughtrie | Andrew Coughtrie | Met Office | 2026-01-28 | -| tommbendall | Thomas Bendall | Met Office | 2026-01-13 | -| mo-jmanners | James Manners | Met Office | 2026-01-14 | -| maggiehendry | Maggie Hendry | Met Office | 2026-01-29 | \ No newline at end of file +| GitHub user | Real Name | Affiliation | Date | +| ---------------- | ------------------ | -------------------------------- | ---------- | +| james-bruten-mo | James Bruten | Met Office | 2025-12-09 | +| jedbakerMO | Jed Baker | Met Office | 2025-12-29 | +| jennyhickson | Jenny Hickson | Met Office | 2025-12-10 | +| mike-hobson | Mike Hobson | Met Office | 2025-12-17 | +| mo-marqh | mark Hedley | Met Office | 2025-12-11 | +| yaswant | Yaswant Pradhan | Met Office | 2025-12-16 | +| oakleybrunt | Oakley Brunt | Met Office | 2025-12-19 | +| harry-shepherd | Harry Shepherd | Met Office | 2026-01-08 | +| DrTVockerodtMO | Terence Vockerodt | Met Office | 2026-01-08 | +| ricky-lv426 | Ricky Olivier | University of Exeter | 2026-01-12 | +| MetBenjaminWent | Benjamin Went | Met Office | 2026-01-15 | +| timgraham-Met | Tim Graham | Met Office | 2026-01-15 | +| mcdalvi | Mohit Dalvi | Met Office | 2026-01-15 | +| mo-alistairp | Alistair Pirrie | Met Office | 2026-01-19 | +| jasonjunweilyu | Junwei (Jason) Lyu | Bureau of Meteorology, Australia | 2025-12-17 | +| EdHone | Ed Hone | Met Office | 2026-01-26 | +| tom-j-h | Tom Hill | Met Office | 2026-01-27 | +| alanjhewitt | Alan J Hewitt | Met Office | 2026-01-28 | +| mo-lottieturner | Lottie Turner | Met Office | 2026-01-27 | +| andrewcoughtrie | Andrew Coughtrie | Met Office | 2026-01-28 | +| tommbendall | Thomas Bendall | Met Office | 2026-01-13 | +| mo-jmanners | James Manners | Met Office | 2026-01-14 | +| maggiehendry | Maggie Hendry | Met Office | 2026-01-29 | +| stevemullerworth | Steve Mullerworth | Met Office | 2026-01-28 | +| jameskent-metoffice | James Kent | Met Office | 2026-01-21 | \ No newline at end of file diff --git a/dependencies.yaml b/dependencies.yaml index a0d6f09a..57e16cfc 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -26,12 +26,11 @@ jules: ref: 69aaf4d8e5dcf4e0134aac006b183e591aeb94d7 lfric_apps: - source: ref: lfric_core: - source: git@github.com:tommbendall/lfric_core.git - ref: TBendall/FixW0WthFilter + source: cazld00001N:/home/users/cameron.bateman/code-reviews/lfric_core + ref: b71dd878b642a04a2142bc63db0b0e142177cc46 moci: source: git@github.com:MetOffice/moci.git From 3127850214368dbb04de545204fed53167e9e49a Mon Sep 17 00:00:00 2001 From: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> Date: Thu, 5 Feb 2026 16:34:51 +0000 Subject: [PATCH 9/9] remove old subroutine_timers call, not sure how the merge got this wrong --- .../source/algorithm/spt_main_alg_mod.x90 | 1 - 1 file changed, 1 deletion(-) diff --git a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 index 5b0a8ce3..abacd9da 100644 --- a/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 +++ b/interfaces/physics_schemes_interface/source/algorithm/spt_main_alg_mod.x90 @@ -233,7 +233,6 @@ module spt_main_alg_mod ! "eta_theta_levels" array correctly at these points, set offset to 0 integer(kind=i_def), parameter :: lev_offset = 0 - if ( subroutine_timers ) call timer("spt_main_alg") ! Timestepping_config_mod scalar (for PSyclone to know data type) real(kind=r_second) :: timestepping_config_mod_dt