diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 1954477ef..e7a8a1b72 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -10,3 +10,4 @@ | 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 | +| tom-j-h | Tom Hill | Met Office | 2026-01-14 | diff --git a/applications/jedi_lfric_tests/source/jedi_id_tlm_tests.f90 b/applications/jedi_lfric_tests/source/jedi_id_tlm_tests.f90 index ed8b0db66..d410965f2 100644 --- a/applications/jedi_lfric_tests/source/jedi_id_tlm_tests.f90 +++ b/applications/jedi_lfric_tests/source/jedi_id_tlm_tests.f90 @@ -194,10 +194,10 @@ program jedi_id_tlm_tests ! Apply the Adjoint dot product test: == ! Evaluate dot product of increments I11 and I21 - dot_product_1 = increment_11%dot_product_with(increment_21) + dot_product_1 = real(increment_11%dot_product_with(increment_21), r_def) ! Evaluate dot product of increments I12 and I22 - dot_product_2 = increment_12%dot_product_with(increment_22) + dot_product_2 = real(increment_12%dot_product_with(increment_22), r_def) ! == ! The two dot products should be nearly identical. The tolerance is diff --git a/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90 b/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90 index da7f0342b..c141c3d85 100644 --- a/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90 +++ b/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90 @@ -148,7 +148,7 @@ program jedi_tlm_tests end if ! Compute - dot_product_1 = inc%scaled_dot_product_with_itself() + dot_product_1 = real(inc%scaled_dot_product_with_itself(), r_def) ! Propagate via AD model call linear_model%forecastAD( inc, forecast_length ) @@ -158,7 +158,7 @@ program jedi_tlm_tests end if ! Compute - dot_product_2 = inc%dot_product_with(inc_initial) + dot_product_2 = real(inc%dot_product_with(inc_initial), r_def) ! The two dot products should be nearly identical. The tolerance is included ! due to differences in order of operations and solver non-convergence. diff --git a/interfaces/jedi_lfric_interface/source/field/atlas_field_interface_mod.F90 b/interfaces/jedi_lfric_interface/source/field/atlas_field_interface_mod.F90 index c630b998d..d1715d984 100644 --- a/interfaces/jedi_lfric_interface/source/field/atlas_field_interface_mod.F90 +++ b/interfaces/jedi_lfric_interface/source/field/atlas_field_interface_mod.F90 @@ -46,7 +46,7 @@ module atlas_field_interface_mod use field_mod, only : field_type, field_proxy_type use field_parent_mod, only : field_parent_type use fs_continuity_mod, only : W3, Wtheta, name_from_functionspace - use constants_mod, only : i_def, str_def, l_def + use constants_mod, only : i_def, str_def, l_def, r_def implicit none @@ -394,7 +394,7 @@ subroutine copy_to_lfric( self, return_code ) atlas_ij = self%map_horizontal(ij) lfric_ij = (ij-1)*n_vertical_lfric field_proxy%data(lfric_ij+lfric_kstart:lfric_ij+n_vertical_lfric) & - = self%atlas_data(atlas_kstart:atlas_kend:atlas_kdirection,atlas_ij) + = real(self%atlas_data(atlas_kstart:atlas_kend:atlas_kdirection,atlas_ij), r_def) end do ! Fill missing data if required @@ -410,7 +410,7 @@ subroutine copy_to_lfric( self, return_code ) atlas_ij = self%map_horizontal(ij) lfric_ij = (ij-1)*n_vertical_lfric field_proxy%data(lfric_ij+1) & - = self%atlas_data(atlas_kstart,atlas_ij) + = real(self%atlas_data(atlas_kstart,atlas_ij), r_def) end do end if @@ -466,7 +466,7 @@ subroutine copy_from_lfric_ad(self) lfric_ij = (ij-1)*n_vertical_lfric field_proxy%data(lfric_ij+lfric_kstart:lfric_ij+n_vertical_lfric) & = field_proxy%data(lfric_ij+lfric_kstart:lfric_ij+n_vertical_lfric) & - + self%atlas_data(atlas_kstart:atlas_kend:atlas_kdirection,atlas_ij) + + real(self%atlas_data(atlas_kstart:atlas_kend:atlas_kdirection,atlas_ij), r_def) end do ! Initialise out of scope variable to zero