From fc6443e98b2375e8831c74e9cc5aa774c95fe658 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Thu, 8 Jan 2026 14:52:46 +0000 Subject: [PATCH 01/34] Copy across solve improvements from old branch --- .../solver/mixed_operator_alg_mod.x90 | 67 ++- .../mixed_schur_preconditioner_alg_mod.x90 | 22 +- .../solver/pressure_operator_alg_mod.x90 | 4 +- .../assemble_w2h_from_w2hb_kernel_mod.F90 | 100 ++++ .../apply_split_mixed_operator_kernel_mod.F90 | 550 ++++++++++++++++++ .../opt_apply_variable_hx_kernel_mod.F90 | 45 +- .../solver/schur_backsub_kernel_mod.F90 | 12 +- 7 files changed, 766 insertions(+), 34 deletions(-) create mode 100644 science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 create mode 100644 science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index 72454b17..1680eceb 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -116,13 +116,11 @@ contains use limited_area_constants_mod, only: get_mask_r_solver use sci_enforce_bc_kernel_mod, only: enforce_bc_kernel_type use function_space_mod, only: function_space_type - use fs_continuity_mod, only: W2, W2h, W2v, W3, Wtheta + use fs_continuity_mod, only: W2, W2h, W2v, W3, Wtheta, W2Hbroken use function_space_collection_mod, only: function_space_collection use apply_mixed_lu_operator_kernel_mod, & only: apply_mixed_lu_operator_kernel_type - use apply_mixed_operator_kernel_mod, & - only: apply_mixed_operator_kernel_type use apply_elim_mixed_lp_operator_kernel_mod, & only: apply_elim_mixed_lp_operator_kernel_type use matrix_vector_kernel_mod, & @@ -131,7 +129,12 @@ contains only: dg_inc_matrix_vector_kernel_type use apply_mixed_operator_kernel_mod, & only: apply_mixed_operator_kernel_type - + use apply_split_mixed_operator_kernel_mod, & + only: apply_u_mixed_operator_kernel_type, & + apply_w_mixed_operator_kernel_type, & + apply_wp_mixed_operator_kernel_type, & + apply_p_mixed_operator_kernel_type + use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_kernel_type implicit none class(mixed_operator_type), intent(inout) :: self @@ -148,7 +151,8 @@ contains m2_diag type(r_solver_field_type) :: x_uvw, y_uvw type(function_space_type), pointer :: u_fs, & - t_fs + t_fs, & + w2hb_fs integer(i_def) :: p_h, p_v type(r_solver_field_type), pointer :: w2_mask, & w3_mask @@ -173,7 +177,9 @@ contains type(integer_field_type), pointer :: face_selector_ew type(integer_field_type), pointer :: face_selector_ns - if ( subroutine_timers ) call timer('mixed_operator') + type(r_solver_field_type) :: y_uv_broken + + if ( subroutine_timers ) call timer('mixed_solver.operator') ! Extract mesh ID select type (y) @@ -256,13 +262,46 @@ contains case ( eliminate_variables_discrete ) q32_op => get_eliminated_q32() if ( optimised_operator ) then - call invoke( name="apply_mixed_operator_new", & - setval_c( yvec_uv, 0.0_r_solver ), & - apply_mixed_operator_kernel_type( yvec_uv, yvec_w, yvec_p, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - mm_vel, p2theta, div_star, m2_diag, & - m3_exner_star, q32_op, p3theta ) ) + if ( .false. ) then + call invoke( name="apply_mixed_operator_new", & + setval_c( yvec_uv, 0.0_r_solver ), & + apply_mixed_operator_kernel_type( yvec_uv, yvec_w, yvec_p, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + mm_vel, p2theta, div_star, m2_diag, & + m3_exner_star, q32_op, p3theta ) ) + else + + ! Create broken y_uv + w2hb_fs => function_space_collection%get_fs(mesh, 0, 0, W2Hbroken) + call y_uv_broken%initialise( w2hb_fs ) + if ( .false. ) then + call invoke( name="apply_split_mixed_operator", & + apply_u_mixed_operator_kernel_type( y_uv_broken, & + xvec_uv, xvec_w, xvec_p, & + mm_vel, div_star, m2_diag ), & + apply_w_mixed_operator_kernel_type( yvec_w, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + mm_vel, p2theta, div_star, m2_diag ), & + apply_p_mixed_operator_kernel_type( yvec_p, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + m3_exner_star, q32_op, p3theta ) ) + else + call invoke( name="apply_split_mixed_operator2", & + apply_u_mixed_operator_kernel_type( y_uv_broken, & + xvec_uv, xvec_w, xvec_p, & + mm_vel, div_star, m2_diag ), & + apply_wp_mixed_operator_kernel_type( yvec_w, yvec_p, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + mm_vel, p2theta, div_star, m2_diag, & + m3_exner_star, q32_op, p3theta ) ) + end if + call invoke( setval_c( yvec_uv, 0.0_r_solver ), & + assemble_w2h_from_w2hb_kernel_type(yvec_uv, y_uv_broken) ) + end if else ! Create theta' field t_fs => function_space_collection%get_fs( mesh, p_h, p_v, Wtheta ) @@ -359,7 +398,7 @@ contains call log_event(log_scratch_space, LOG_LEVEL_ERROR) end select - if ( subroutine_timers ) call timer('mixed_operator') + if ( subroutine_timers ) call timer('mixed_solver.operator') end subroutine apply_mixed_operator diff --git a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 index e9f613b8..f67af532 100644 --- a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 @@ -249,7 +249,7 @@ contains class(abstract_vector_type), intent(in) :: x class(abstract_vector_type), intent(inout) :: y - if ( subroutine_timers ) call timer('mixed_schur_preconditioner_alg') + if ( subroutine_timers ) call timer('mixed_solver.schur_precon') select type(x) type is(r_solver_field_vector_type) @@ -260,7 +260,7 @@ contains ! STEP 2: Solve Helmholtz system ! Krylov solver to obtain pressure increment - if ( subroutine_timers ) call timer('mixed_schur solve') + if ( subroutine_timers ) call timer('schur_precon.pressure_solver') ! Set initial guess to pressure incremenet to 0 call self%pressure_x%set_scalar(0.0_r_def) @@ -269,7 +269,7 @@ contains call log_event('Schur preconditioner pressure solve:', LOG_LEVEL_DEBUG) call self%pressure_solver%apply(self%pressure_x, self%pressure_b) - if ( subroutine_timers ) call timer('mixed_schur solve') + if ( subroutine_timers ) call timer('schur_precon.pressure_solver') ! STEP 3: Back substitute to obtain other fields call self%back_substitute(y) @@ -285,7 +285,7 @@ contains call log_event(log_scratch_space, LOG_LEVEL_ERROR) end select - if ( subroutine_timers ) call timer('mixed_schur_preconditioner_alg') + if ( subroutine_timers ) call timer('mixed_solver.schur_precon') end subroutine apply_mixed_schur_preconditioner @@ -337,7 +337,7 @@ contains type(integer_field_type), pointer :: face_selector_ew type(integer_field_type), pointer :: face_selector_ns - if ( subroutine_timers ) call timer('mixed_schur rhs') + if ( subroutine_timers ) call timer('schur_precon.rhs') rhs => self%pressure_b%get_field_from_position(1) @@ -414,7 +414,7 @@ contains call invoke( inc_X_times_Y(rhs, h_diag) ) end if - if ( subroutine_timers ) call timer('mixed_schur rhs') + if ( subroutine_timers ) call timer('schur_precon.rhs') end subroutine build_pressure_rhs @@ -452,8 +452,8 @@ contains exner_inc type(r_solver_field_type), target :: dummy_field - - if ( subroutine_timers ) call timer('Schur back substitute') + type(r_solver_field_type), target :: uvw_norm + if ( subroutine_timers ) call timer('schur_precon.back_sub') exner_inc => self%pressure_x%get_field_from_position(1) @@ -475,11 +475,13 @@ contains call dummy_field%initialise( vector_space = self%rhs_u%get_function_space() ) w2_mask => dummy_field end if + call uvw_norm%initialise( vector_space = self%rhs_u%get_function_space() ) call invoke( name = "compute_split_increments", & + X_times_Y(uvw_norm, u_normalisation, Hb_lumped_inv), & setval_c(state_uv, 0.0_r_solver), & schur_backsub_kernel_type( state_uv, state_w, self%rhs_u, & exner_inc, div_star, & - u_normalisation, Hb_lumped_inv, & + uvw_norm, & limited_area, w2_mask ) ) else call u_inc%initialise( vector_space = self%rhs_u%get_function_space() ) @@ -502,7 +504,7 @@ contains state_p => state%get_field_from_position(isol_p) call invoke( setval_X(state_p, exner_inc) ) - if ( subroutine_timers ) call timer('Schur back substitute') + if ( subroutine_timers ) call timer('schur_precon.back_sub') end subroutine back_substitute diff --git a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 index cbc33df0..abdbb61a 100644 --- a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 @@ -166,7 +166,7 @@ contains integer(kind=i_def) :: mesh_id logical(kind=l_def) :: lam_mesh - if ( subroutine_timers ) call timer('helmholtz lhs') + if ( subroutine_timers ) call timer('pressure_solver.helmholtz_lhs') select type (x) type is (r_solver_field_vector_type) @@ -241,7 +241,7 @@ contains nullify( w3_mask, w2_mask ) end if nullify( x_vec, y_vec ) - if ( subroutine_timers ) call timer('helmholtz lhs') + if ( subroutine_timers ) call timer('pressure_solver.helmholtz_lhs') class default diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 new file mode 100644 index 00000000..09fe7fa5 --- /dev/null +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -0,0 +1,100 @@ +!----------------------------------------------------------------------------- +! (c) Crown copyright 2022 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- +!> @brief Maps a field from W2 broken to W2. +!> @details "Unbreaks" a W2 field by averaging values on either side of +!> broken facets. +!> This kernel only works for the lowest-order elements. +module assemble_w2h_from_w2hb_kernel_mod + + use argument_mod, only : arg_type, & + GH_FIELD, GH_REAL, & + GH_READ, GH_INC, & + CELL_COLUMN + use constants_mod, only : r_solver, i_def + use fs_continuity_mod, only : W2h, W2broken + use kernel_mod, only : kernel_type + use reference_element_mod, only : N, E, S, W, T, B + + implicit none + + private + + !--------------------------------------------------------------------------- + ! Public types + !--------------------------------------------------------------------------- + !> The type declaration for the kernel. Contains the metadata needed by the + !> Psy layer. + !> + type, public, extends(kernel_type) :: assemble_w2h_from_w2hb_kernel_type + private + type(arg_type) :: meta_args(2) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_INC, W2h), & + arg_type(GH_FIELD, GH_REAL, GH_READ, W2broken) & + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: assemble_w2h_from_w2hb_code + end type + + !--------------------------------------------------------------------------- + ! Contained functions/subroutines + !--------------------------------------------------------------------------- + public :: assemble_w2h_from_w2hb_code + +contains + +!> @brief Converts a broken W2 field into a continuous W2 field +!> +!> @param[in] nlayers Number of layers in the mesh +!> @param[in,out] field_w2 Field in the W2 space to be returned. +!> @param[in] field_w2_broken Original field in W2 broken to be used. +!> @param[in] rmultiplicity_w2 Reciprocal of nodal multiplicity field for W2 +!> @param[in] ndf_w2 Number of degrees of freedom per cell for W2 +!> @param[in] undf_w2 Number of (local) unique degrees of freedom for W2 +!> @param[in] map_w2 Dofmap for the cell at the base of the column for W2 +!> @param[in] ndf_w2_broken Number of degrees of freedom per cell for W2 broken +!> @param[in] undf_w2_broken Number of (local) unique degrees of freedom for W2 broken +!> @param[in] map_w2_broken Dofmap for the cell at the base of the column for W2 broken +subroutine assemble_w2h_from_w2hb_code( nlayers, & + field_w2, & + field_w2_broken, & + ndf_w2, & + undf_w2, & + map_w2, & + ndf_w2_broken, & + undf_w2_broken, & + map_w2_broken & + ) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: nlayers + integer(kind=i_def), intent(in) :: ndf_w2_broken, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2_broken, undf_w2 + integer(kind=i_def), dimension(ndf_w2_broken), intent(in) :: map_w2_broken + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + + real(kind=r_solver), dimension(undf_w2), intent(inout) :: field_w2 + real(kind=r_solver), dimension(undf_w2_broken), intent(in) :: field_w2_broken + + ! Internal variables + integer(kind=i_def) :: df, k + + ! Loop over horizontal W2 DoFs + ! Contribution from broken field is based on multiplicity + do df = 1, ndf_w2 + ! Loop over layers of mesh + do k = 0, nlayers - 1 + field_w2(map_w2(df)+k) = field_w2(map_w2(df)+k) & + + field_w2_broken(map_w2_broken(df)+k) + + end do + end do + +end subroutine assemble_w2h_from_w2hb_code + +end module assemble_w2h_from_w2hb_kernel_mod diff --git a/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 new file mode 100644 index 00000000..1e7a1656 --- /dev/null +++ b/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 @@ -0,0 +1,550 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2024 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +!> @brief Compute the LHS of the semi-implicit system: +!! (lhs_uv, lhs_w) = norm_u*(Mu*u - P2t*t - grad*p), +!! lhs_p = M3p*p - P3t*t + Q32*u, +!! with t = -Mt^(-1) * Pt2*u +module apply_split_mixed_operator_kernel_mod + +use argument_mod, only : arg_type, & + GH_FIELD, GH_OPERATOR, & + GH_READ, GH_INC, & + GH_WRITE, & + GH_REAL, CELL_COLUMN +use constants_mod, only : r_solver, i_def +use kernel_mod, only : kernel_type +use fs_continuity_mod, only : W2, W3, Wtheta, W2h, W2v, W2broken + +implicit none +private + +!------------------------------------------------------------------------------- +! Public types +!------------------------------------------------------------------------------- + +type, public, extends(kernel_type) :: apply_u_mixed_operator_kernel_type + private + type(arg_type) :: meta_args(7) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2broken), & ! lhs_uv + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_u_mixed_operator_code +end type +type, public, extends(kernel_type) :: apply_w_mixed_operator_kernel_type + private + type(arg_type) :: meta_args(10) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_w + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 + arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, Wtheta), & ! P2theta + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_w_mixed_operator_code +end type +type, public, extends(kernel_type) :: apply_p_mixed_operator_kernel_type + private + type(arg_type) :: meta_args(9) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W3), & ! lhs_p + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 + arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W3), & ! m3p + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W2), & ! q32 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, Wtheta) & ! p3t + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_p_mixed_operator_code +end type +type, public, extends(kernel_type) :: apply_wp_mixed_operator_kernel_type + private + type(arg_type) :: meta_args(14) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_w + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W3), & ! lhs_p + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 + arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, Wtheta), & ! P2theta + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! norm_u + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W3), & ! m3p + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W2), & ! q32 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, Wtheta) & ! p3t + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_wp_mixed_operator_code +end type + +!------------------------------------------------------------------------------- +! Contained functions/subroutines +!------------------------------------------------------------------------------- +public :: apply_u_mixed_operator_code +public :: apply_w_mixed_operator_code +public :: apply_p_mixed_operator_code +public :: apply_wp_mixed_operator_code + +contains + +!> @brief Compute the LHS of the semi-implicit system +!> @param[in] cell Horizontal cell index +!> @param[in] nlayers Number of layers +!> @param[in,out] lhs_uv Mixed operator applied to the horizontal momentum equation +!> @param[in,out] lhs_w Mixed operator applied to the vertical momentum equation +!> @param[in,out] lhs_p Mixed operator applied to the equation of state +!> @param[in] wind_uv Horizontal wind field +!> @param[in] wind_w Vertical wind field +!> @param[in] exner Exner pressure field +!> @param[in] ncell0 Total number of cells for the pt2 operator +!> @param[in] pt2 Projection operator from W2 to Wtheta +!> @param[in] mt_lumped_inv Lumped inverse mass matrix for the Wtheta space +!> @param[in] ncell1 Total number of cells for the mu_cd operator +!> @param[in] mu_cd Generalised mass matrix for the momentum equation +!> @param[in] ncell2 Total number of cells for the p2t operator +!> @param[in] p2t Generalised projection matrix from Wtheta to W2 +!> @param[in] ncell3 Total number of cells for the grad operator +!> @param[in] grad Generalised gradient operator for the momentum equation +!> @param[in] norm_u Normalisation field for the momentum equation +!> @param[in] ncell4 Total number of cells for the m3p operator +!> @param[in] m3p Weighted mass matrix for the W3 space +!> @param[in] ncell5 Total number of cells for the q32 operator +!> @param[in] q32 Projection operator from W2 to W3 +!> @param[in] ncell6 Total number of cells for the p3t operator +!> @param[in] p3t Projection operator from W2 to Wtheta +!> @param[in] ndf_w2h Number of degrees of freedom per cell for the horizontal wind space +!> @param[in] undf_w2h Unique number of degrees of freedom for the horizontal wind space +!> @param[in] map_w2h Dofmap for the cell at the base of the column for the horizontal wind space +!> @param[in] ndf_w2v Number of degrees of freedom per cell for the vertical wind space +!> @param[in] undf_w2v Unique number of degrees of freedom for the vertical wind space +!> @param[in] map_w2v Dofmap for the cell at the base of the column for the vertical wind space +!> @param[in] ndf_w3 Norm_umber of degrees of freedom per cell for the pressure space +!> @param[in] ndf_w3 Unique number of degrees of freedom for the pressure space +!> @param[in] map_w3 Dofmap for the cell at the base of the column for the pressure space +!> @param[in] undf_wt Number of degrees of freedom per cell for the potential +!! temperature space +!> @param[in] undf_wt Unique number of degrees of freedom for the potential +!! temperature space +!> @param[in] map_wt Dofmap for the cell at the base of the column for the +!! potential temperature space +!> @param[in] ndf_w2 Number of degrees of freedom per cell for the wind space +!> @param[in] undf_w2 Unique number of degrees of freedom for the wind space +!> @param[in] map_w2 Dofmap for the cell at the base of the column for the wind space + +subroutine apply_u_mixed_operator_code(cell, & + nlayers, & + lhs_uv, & + wind_uv, wind_w, exner, & + ncell1, mu_cd, & + ncell3, grad, & + norm_u, & + ndf_w2hb, undf_w2hb, map_w2hb, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_w2, undf_w2, map_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell1, ncell3 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2hb, ndf_w2hb + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2hb), intent(in) :: map_w2hb + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w2hb), intent(inout) :: lhs_uv + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd + real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad + + ! Internal variables + integer(kind=i_def) :: df, df2, ij, & + nm1, iw3, & + iw2, iw2h + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + + ! LHS UV + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = - norm_u(iw2:iw2+nm1) & + *grad(ij:ij+nm1, df, 1)*exner(iw3:iw3+nm1) + end do + do df2 = 1, ndf_w2h + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, df, df2)*wind_uv(map_w2h(df2):map_w2h(df)+nm1) + end do + end do + do df2 = 1, ndf_w2v + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, df, ndf_w2h+df2)*wind_w(map_w2v(df2):map_w2v(df)+nm1) + end do + end do + +end subroutine apply_u_mixed_operator_code + +subroutine apply_w_mixed_operator_code(cell, & + nlayers, & + lhs_w, & + wind_uv, wind_w, exner, & + ncell0, pt2, & + mt_lumped_inv, & + ncell1, mu_cd, & + ncell2, P2t, & + ncell3, grad, & + norm_u, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w3, undf_w3, map_w3, & + ndf_wt, undf_wt, map_wt, & + ndf_w2, undf_w2, map_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell0, ncell1, ncell2, ncell3 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_wt, ndf_wt + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w2v), intent(inout) :: lhs_w + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 + real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd + real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_wt), intent(in) :: p2t + real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad + + ! Internal variables + integer(kind=i_def) :: df, df2, ij, & + nm1, iw3, iwt, & + iw2, iw2h, iw2v + real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e + real(kind=r_solver), dimension(0:nlayers) :: t_col + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + iwt = map_wt(1) + + ! Create the element velocity field + do df = 1, ndf_w2h + iw2h = map_w2h(df) + u_e(:,df) = wind_uv(iw2h:iw2h+nm1) + end do + do df = 1, ndf_w2v + iw2v = map_w2v(df) + u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) + end do + + ! Compute t for the column + t_col(:) = 0.0_r_solver + do df = 1, ndf_w2 + t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) + t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) + end do + t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) + + ! LHS W + iw2v = map_w2v(1) + lhs_w(iw2v:iw2v+nlayers) = 0.0_r_solver + + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)*( & + - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & + - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & + - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) + + end do + do df2 = 1, ndf_w2 + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, ndf_w2h+df, df2)*u_e(:,df2) + + end do + end do + ! Set BC for lhs_w + lhs_w(map_w2v(1)) = 0.0_r_solver + lhs_w(map_w2v(2)+nlayers-1) = 0.0_r_solver + +end subroutine apply_w_mixed_operator_code + +subroutine apply_p_mixed_operator_code(cell, & + nlayers, & + lhs_p, & + wind_uv, wind_w, exner, & + ncell0, pt2, & + mt_lumped_inv, & + ncell4, m3p, & + ncell5, q32, & + ncell6, p3t, & + ndf_w3, undf_w3, map_w3, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_wt, undf_wt, map_wt, & + ndf_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell0 + integer(kind=i_def), intent(in) :: ncell4, ncell5, ncell6 + integer(kind=i_def), intent(in) :: ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_wt, ndf_wt + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w3), intent(inout) :: lhs_p + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 + real(kind=r_solver), dimension(ncell4, ndf_w3, ndf_w3), intent(in) :: m3p + real(kind=r_solver), dimension(ncell5, ndf_w3, ndf_w2), intent(in) :: q32 + real(kind=r_solver), dimension(ncell6, ndf_w3, ndf_wt), intent(in) :: p3t + + ! Internal variables + integer(kind=i_def) :: df, ij, & + nm1, iw3, iwt, & + iw2h, iw2v + real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e + real(kind=r_solver), dimension(0:nlayers) :: t_col + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + iwt = map_wt(1) + + ! Create the element velocity field + do df = 1, ndf_w2h + iw2h = map_w2h(df) + u_e(:,df) = wind_uv(iw2h:iw2h+nm1) + end do + do df = 1, ndf_w2v + iw2v = map_w2v(df) + u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) + end do + + ! Compute t for the column + t_col(:) = 0.0_r_solver + do df = 1, ndf_w2 + t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) + t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) + end do + t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) + + ! LHS P + lhs_p(iw3:iw3+nm1) = m3p(ij:ij+nm1, 1, 1)*exner(iw3:iw3+nm1) & + - p3t(ij:ij+nm1, 1, 1)*t_col(0:nm1) & + - p3t(ij:ij+nm1, 1, 2)*t_col(1:nm1+1) + do df = 1, ndf_w2 + lhs_p(iw3:iw3+nm1) = lhs_p(iw3:iw3+nm1) + q32(ij:ij+nm1, 1, df)*u_e(:,df) + end do + +end subroutine apply_p_mixed_operator_code + +subroutine apply_wp_mixed_operator_code(cell, & + nlayers, & + lhs_w, & + lhs_p, & + wind_uv, wind_w, exner, & + ncell0, pt2, & + mt_lumped_inv, & + ncell1, mu_cd, & + ncell2, P2t, & + ncell3, grad, & + norm_u, & + ncell4, m3p, & + ncell5, q32, & + ncell6, p3t, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_wt, undf_wt, map_wt, & + ndf_w2, undf_w2, map_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell0, ncell1, ncell2, ncell3 + integer(kind=i_def), intent(in) :: ncell4, ncell5, ncell6 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_wt, ndf_wt + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w2v), intent(inout) :: lhs_w + real(kind=r_solver), dimension(undf_w3), intent(inout) :: lhs_p + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 + real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd + real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_wt), intent(in) :: p2t + real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad + real(kind=r_solver), dimension(ncell4, ndf_w3, ndf_w3), intent(in) :: m3p + real(kind=r_solver), dimension(ncell5, ndf_w3, ndf_w2), intent(in) :: q32 + real(kind=r_solver), dimension(ncell6, ndf_w3, ndf_wt), intent(in) :: p3t + + ! Internal variables + integer(kind=i_def) :: df, df2, ij, & + nm1, iw3, iwt, & + iw2, iw2h, iw2v + real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e + real(kind=r_solver), dimension(0:nlayers) :: t_col + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + iwt = map_wt(1) + + ! Create the element velocity field + do df = 1, ndf_w2h + iw2h = map_w2h(df) + u_e(:,df) = wind_uv(iw2h:iw2h+nm1) + end do + do df = 1, ndf_w2v + iw2v = map_w2v(df) + u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) + end do + + ! Compute t for the column + t_col(:) = 0.0_r_solver + do df = 1, ndf_w2 + t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) + t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) + end do + t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) + + ! LHS W + iw2v = map_w2v(1) + lhs_w(iw2v:iw2v+nlayers) = 0.0_r_solver + + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)*( & + - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & + - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & + - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) + + end do + do df2 = 1, ndf_w2 + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, ndf_w2h+df, df2)*u_e(:,df2) + + end do + end do + ! Set BC for lhs_w + lhs_w(map_w2v(1)) = 0.0_r_solver + lhs_w(map_w2v(2)+nlayers-1) = 0.0_r_solver + + ! LHS P + lhs_p(iw3:iw3+nm1) = m3p(ij:ij+nm1, 1, 1)*exner(iw3:iw3+nm1) & + - p3t(ij:ij+nm1, 1, 1)*t_col(0:nm1) & + - p3t(ij:ij+nm1, 1, 2)*t_col(1:nm1+1) + do df = 1, ndf_w2 + lhs_p(iw3:iw3+nm1) = lhs_p(iw3:iw3+nm1) + q32(ij:ij+nm1, 1, df)*u_e(:,df) + end do + +end subroutine apply_wp_mixed_operator_code + +end module apply_split_mixed_operator_kernel_mod diff --git a/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 b/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 index 1b525436..941f88de 100644 --- a/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 @@ -266,7 +266,7 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & real(kind=r_single), dimension(ncell_3d_4,1,1), intent(in) :: m3 ! Internal variables - integer(kind=i_def) :: k, ik + integer(kind=i_def) :: k, ik, df, nl real(kind=r_single), dimension(2) :: t_e real(kind=r_single) :: div_u real(kind=r_single), dimension(0:nlayers-1) :: t_e1_vec, t_e2_vec @@ -280,10 +280,51 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & integer(kind=i_def) :: map_wt1 integer(kind=i_def) :: map_wt2 + real(kind=r_single), dimension(0:nlayers-1,ndf_w2) :: u_col + real(kind=r_single), dimension(0:nlayers-1,2) :: t_col + ! Compute D * u + P3t * Mt^-1 * ( Pt2 * u ) ! Hard wired optimisation for desired configuration (p=0 elements with pt2 ! only acting on vertical components of u ) + if ( .true. ) then + + nl = nlayers-1 + ik = (cell-1)*nlayers + 1 + + do df = 1, ndf_w2 + u_col(:,df) = x(map_w2(df):map_w2(df)+nl) + end do + + t_col(0,1) = mt_inv(map_wt(1)) * p3t(ik,1,1) & + *(pt2(ik,1,5)*u_col(0,5) + pt2(ik,1,6)*u_col(0,6)) + t_col(0,2) = mt_inv(map_wt(2)) * p3t(ik,1,2) & + *(pt2(ik,2,5)*u_col(0,5) + pt2(ik+1,1,5)*u_col(1,5) & + + pt2(ik,2,6)*u_col(0,6) + pt2(ik+1,1,6)*u_col(1,6)) + + t_col(1:nl-1,1) = mt_inv(map_wt(1)+1:map_wt(1)+nl-1) * p3t(ik+1:ik+nl-1,1,1) & + *(pt2(ik+1:ik+nl-1,1,5)*u_col(1:nl-1,5) + pt2(ik:ik+nl-2,2,5)*u_col(0:nl-2,5) & + + pt2(ik+1:ik+nl-1,1,6)*u_col(1:nl-1,6) + pt2(ik:ik+nl-2,2,6)*u_col(0:nl-2,6)) + t_col(1:nl-1,2) = mt_inv(map_wt(2)+1:map_wt(2)+nl-1) * p3t(ik+1:ik+nl-1,1,2) & + *(pt2(ik+1:ik+nl-1,2,5)*u_col(1:nl-1,5) + pt2(ik+2:ik+nl,1,5)*u_col(2:nl,5) & + + pt2(ik+1:ik+nl-1,2,6)*u_col(1:nl-1,6) + pt2(ik+2:ik+nl,1,6)*u_col(2:nl,6)) + + t_col(nl,1) = mt_inv(map_wt(1)+nl) * p3t(ik+nl,1,1) & + *(pt2(ik+nl,1,5)*u_col(nl,5) + pt2(ik+nl-1,2,5)*u_col(nl-1,5) & + + pt2(ik+nl,1,6)*u_col(nl,6) + pt2(ik+nl-1,2,6)*u_col(nl-1,6)) + t_col(nl,2) = mt_inv(map_wt(2)+nl) * p3t(ik+nl,1,2) & + *(pt2(ik+nl,2,5)*u_col(nl,5) + pt2(ik+nl,2,6)*u_col(nl,6)) + + lhs(map_w3(1):map_w3(1)+nl) = rhs_p(map_w3(1):map_w3(1)+nl) & + + m3(ik:ik+nl,1,1)*pressure(map_w3(1):map_w3(1)+nl) & + + sgn*(t_col(:,1) + t_col(:,2)) + do df = 1, ndf_w2 + lhs(map_w3(1):map_w3(1)+nl) = lhs(map_w3(1):map_w3(1)+nl) & + + sgn*div(ik:ik+nl,1,df)*u_col(:,df) + end do + + else + map_w21 = map_w2(1) map_w22 = map_w2(2) map_w23 = map_w2(3) @@ -345,6 +386,8 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & lhs(map_w31+k) = m3(ik,1,1)*pressure(map_w31+k) & + sgn*(div_u + (t_e(1) + t_e(2))) + rhs_p(map_w3(1)+k) + end if + end subroutine opt_apply_variable_hx_code_r_single end module opt_apply_variable_hx_kernel_mod diff --git a/science/gungho/source/kernel/solver/schur_backsub_kernel_mod.F90 b/science/gungho/source/kernel/solver/schur_backsub_kernel_mod.F90 index 84fd4ebc..07d97535 100644 --- a/science/gungho/source/kernel/solver/schur_backsub_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/schur_backsub_kernel_mod.F90 @@ -28,14 +28,13 @@ module schur_backsub_kernel_mod ! Kernel metadata for PSyclone type, public, extends(kernel_type) :: schur_backsub_kernel_type private - type(arg_type) :: meta_args(9) = (/ & + type(arg_type) :: meta_args(8) = (/ & arg_type(GH_FIELD, GH_REAL, GH_INC, W2h), & ! lhs_h arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_v arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! rhs arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner_inc arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! div arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! norm - arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! Hb_inv arg_type(GH_SCALAR, GH_LOGICAL, GH_READ), & ! lam arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! mask /) @@ -90,7 +89,6 @@ subroutine schur_backsub_code(cell, & ncell_3d, & div, & norm, & - Hb_inv, & lam, mask, & ndfh, undfh, maph, & ndfv, undfv, mapv, & @@ -117,7 +115,6 @@ subroutine schur_backsub_code(cell, & real(kind=r_solver), dimension(undfv), intent(inout) :: lhs_v real(kind=r_solver), dimension(ncell_3d,ndf1,ndf2), intent(in) :: div real(kind=r_solver), dimension(undf1), intent(in) :: norm - real(kind=r_solver), dimension(undf1), intent(in) :: Hb_inv real(kind=r_solver), dimension(undf1), intent(in) :: rhs real(kind=r_solver), dimension(undf1), intent(in) :: mask @@ -131,10 +128,11 @@ subroutine schur_backsub_code(cell, & do df = 1, ndfh ih = maph(df) i1 = map1(df) + lhs_h(ih:ih+nl) = lhs_h(ih:ih+nl) + 0.5_r_solver*rhs(i1:i1+nl) do df2 = 1, ndf2 i2 = map2(df2) - lhs_h(ih:ih+nl) = lhs_h(ih:ih+nl) + 0.5_r_solver*rhs(i1:i1+nl) & - + div(ij:ij+nl, df, df2)*exner_inc(i2:i2+nl)*norm(i1:i1+nl)*Hb_inv(i1:i1+nl) + lhs_h(ih:ih+nl) = lhs_h(ih:ih+nl) & + + div(ij:ij+nl, df, df2)*exner_inc(i2:i2+nl)*norm(i1:i1+nl) end do end do @@ -149,7 +147,7 @@ subroutine schur_backsub_code(cell, & do df2 = 1, ndf2 i2 = map2(df2) lhs_v(iv:iv+nl) = lhs_v(iv:iv+nl) & - + div(ij:ij+nl, ndfh + df, df2)*exner_inc(i2:i2+nl)*norm(i1:i1+nl)*Hb_inv(i1:i1+nl) + + div(ij:ij+nl, ndfh + df, df2)*exner_inc(i2:i2+nl)*norm(i1:i1+nl) end do end do From 071212628f5aa85899ffcfb122742b9a92a5c86a Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 9 Jan 2026 11:58:13 +0000 Subject: [PATCH 02/34] Addition of unit tests --- .../site/meto/groups/groups_lfric_atm.cylc | 3 + .../apply_split_mixed_operator_kernel_mod.F90 | 14 ++--- .../assemble_w2h_from_w2hb_kernel_mod_test.pf | 63 +++++++++++++++++++ ...ly_split_mixed_operator_kernel_mod_test.pf | 63 +++++++++++++++++++ 4 files changed, 136 insertions(+), 7 deletions(-) create mode 100644 science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf create mode 100644 science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf diff --git a/rose-stem/site/meto/groups/groups_lfric_atm.cylc b/rose-stem/site/meto/groups/groups_lfric_atm.cylc index 44467096..36a507ce 100644 --- a/rose-stem/site/meto/groups/groups_lfric_atm.cylc +++ b/rose-stem/site/meto/groups/groups_lfric_atm.cylc @@ -9,6 +9,9 @@ {# Azspice Test Groups #} {# ###################################################################### #} {% do site_groups.update({ + "lfric_atm_solver": [ + "lfric_atm_nwp_gal9-C224_MG_ex1a_cce_production-32bit", + ], "lfric_atm_nwp_azspice_developer": [ "lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit", "lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit", diff --git a/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 index 1e7a1656..d9e11b27 100644 --- a/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 @@ -28,14 +28,14 @@ module apply_split_mixed_operator_kernel_mod type, public, extends(kernel_type) :: apply_u_mixed_operator_kernel_type private - type(arg_type) :: meta_args(7) = (/ & + type(arg_type) :: meta_args(7) = (/ & arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2broken), & ! lhs_uv - arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' - arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' - arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad - arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u /) integer :: operates_on = CELL_COLUMN contains diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf new file mode 100644 index 00000000..7ef5d6b1 --- /dev/null +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -0,0 +1,63 @@ +!----------------------------------------------------------------------------- +! (c) Crown copyright 2026 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +module assemble_w2h_from_w2hb_kernel_mod_test + + use contants_mod, only: i_def, r_solver + use funit + + implicit none + + private + + public :: test_all + +contains + + @test + subroutine test_all() + + use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_code + + implicit none + + integer(kind=i_def), parameter :: nlayers = 1 + integer(kind=i_def), parameter :: ndf_w2_broken = 4 + integer(kind=i_def), parameter :: ndf_w2 = 4 + integer(kind=i_def), parameter :: undf_w2_broken = 4*nlayers + integer(kind=i_def), parameter :: undf_w2 = 4*nlayers + integer(kind=i_def), dimension(ndf_w2_broken) :: map_w2_broken + integer(kind=i_def), dimension(ndf_w2) :: map_w2 + + real(kind=r_solver), parameter :: tol = 1.0e-6_r_def + + real(kind=r_solver), dimension(undf_w2) :: field_w2, answer + real(kind=r_solver), dimension(undf_w2_broken) :: field_w2_broken + + map_w2_broken = (/1, 2, 3, 4/) + map_w2 = map_w2_broken + + field_w2 = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) + field_w2_broken = field_w2 + answer = field_w2 + field_w2_broken + + call assemble_w2h_from_w2hb_code( nlayers, & + field_w2, & + field_w2_broken, & + ndf_w2, & + undf_w2, & + map_w2, & + ndf_w2_broken, & + undf_w2_broken, & + map_w2_broken & + ) + + @assertEqual( answer, field_w2, tol ) + + end subroutine test_all + +end module assemble_w2h_from_w2hb_kernel_mod_test + diff --git a/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf new file mode 100644 index 00000000..7ef5d6b1 --- /dev/null +++ b/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf @@ -0,0 +1,63 @@ +!----------------------------------------------------------------------------- +! (c) Crown copyright 2026 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +module assemble_w2h_from_w2hb_kernel_mod_test + + use contants_mod, only: i_def, r_solver + use funit + + implicit none + + private + + public :: test_all + +contains + + @test + subroutine test_all() + + use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_code + + implicit none + + integer(kind=i_def), parameter :: nlayers = 1 + integer(kind=i_def), parameter :: ndf_w2_broken = 4 + integer(kind=i_def), parameter :: ndf_w2 = 4 + integer(kind=i_def), parameter :: undf_w2_broken = 4*nlayers + integer(kind=i_def), parameter :: undf_w2 = 4*nlayers + integer(kind=i_def), dimension(ndf_w2_broken) :: map_w2_broken + integer(kind=i_def), dimension(ndf_w2) :: map_w2 + + real(kind=r_solver), parameter :: tol = 1.0e-6_r_def + + real(kind=r_solver), dimension(undf_w2) :: field_w2, answer + real(kind=r_solver), dimension(undf_w2_broken) :: field_w2_broken + + map_w2_broken = (/1, 2, 3, 4/) + map_w2 = map_w2_broken + + field_w2 = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) + field_w2_broken = field_w2 + answer = field_w2 + field_w2_broken + + call assemble_w2h_from_w2hb_code( nlayers, & + field_w2, & + field_w2_broken, & + ndf_w2, & + undf_w2, & + map_w2, & + ndf_w2_broken, & + undf_w2_broken, & + map_w2_broken & + ) + + @assertEqual( answer, field_w2, tol ) + + end subroutine test_all + +end module assemble_w2h_from_w2hb_kernel_mod_test + From e880cffe1849ed43e53fc64ee536ffef55cc403c Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 9 Jan 2026 11:59:05 +0000 Subject: [PATCH 03/34] missing update from last commit --- .../assemble_w2h_from_w2hb_kernel_mod.F90 | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index 09fe7fa5..e0e0f256 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (c) Crown copyright 2022 Met Office. All rights reserved. +! (c) Crown copyright 2026 Met Office. All rights reserved. ! The file LICENCE, distributed with this code, contains details of the terms ! under which the code may be used. !----------------------------------------------------------------------------- @@ -59,15 +59,15 @@ module assemble_w2h_from_w2hb_kernel_mod !> @param[in] undf_w2_broken Number of (local) unique degrees of freedom for W2 broken !> @param[in] map_w2_broken Dofmap for the cell at the base of the column for W2 broken subroutine assemble_w2h_from_w2hb_code( nlayers, & - field_w2, & - field_w2_broken, & - ndf_w2, & - undf_w2, & - map_w2, & - ndf_w2_broken, & - undf_w2_broken, & - map_w2_broken & - ) + field_w2, & + field_w2_broken, & + ndf_w2, & + undf_w2, & + map_w2, & + ndf_w2_broken, & + undf_w2_broken, & + map_w2_broken & + ) implicit none @@ -78,8 +78,8 @@ subroutine assemble_w2h_from_w2hb_code( nlayers, & integer(kind=i_def), dimension(ndf_w2_broken), intent(in) :: map_w2_broken integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 - real(kind=r_solver), dimension(undf_w2), intent(inout) :: field_w2 - real(kind=r_solver), dimension(undf_w2_broken), intent(in) :: field_w2_broken + real(kind=r_solver), dimension(undf_w2), intent(inout) :: field_w2 + real(kind=r_solver), dimension(undf_w2_broken), intent(in) :: field_w2_broken ! Internal variables integer(kind=i_def) :: df, k From fb330789fc3aeaf93ecf074b2d8d75238c5bccbe Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 13 Jan 2026 15:52:57 +0000 Subject: [PATCH 04/34] Add C896 test to group --- rose-stem/site/meto/groups/groups_lfric_atm.cylc | 1 + 1 file changed, 1 insertion(+) diff --git a/rose-stem/site/meto/groups/groups_lfric_atm.cylc b/rose-stem/site/meto/groups/groups_lfric_atm.cylc index 36a507ce..74410c08 100644 --- a/rose-stem/site/meto/groups/groups_lfric_atm.cylc +++ b/rose-stem/site/meto/groups/groups_lfric_atm.cylc @@ -11,6 +11,7 @@ {% do site_groups.update({ "lfric_atm_solver": [ "lfric_atm_nwp_gal9-C224_MG_ex1a_cce_production-32bit", + "lfric_atm_nwp_gal9-C896_MG_ex1a_cce_production-32bit", ], "lfric_atm_nwp_azspice_developer": [ "lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit", From 67fd8d2d5a0afee874062f0ebccca92cd794879d Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Wed, 14 Jan 2026 13:28:09 +0000 Subject: [PATCH 05/34] First tidy up of new solve code --- build/local_build.py | 5 +- .../solver/mixed_operator_alg_mod.x90 | 40 +- .../apply_mixed_u_operator_kernel_mod.F90 | 157 +++++ .../apply_mixed_wp_operator_kernel_mod.F90 | 225 +++++++ .../apply_split_mixed_operator_kernel_mod.F90 | 550 ------------------ 5 files changed, 395 insertions(+), 582 deletions(-) create mode 100644 science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 create mode 100644 science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 delete mode 100644 science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 diff --git a/build/local_build.py b/build/local_build.py index 2c9d445e..c79b9e09 100755 --- a/build/local_build.py +++ b/build/local_build.py @@ -82,14 +82,11 @@ def determine_project_path(project, root_dir): ) -def clone_dependency(values, temp_dep): +def clone_dependency(source, ref, temp_dep): """ Clone the physics dependencies into a temporary directory """ - source = values["source"] - ref = values["ref"] - commands = ( f"git -C {temp_dep} init", f"git -C {temp_dep} remote add origin {source}", diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index 1680eceb..c0c31245 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -129,11 +129,10 @@ contains only: dg_inc_matrix_vector_kernel_type use apply_mixed_operator_kernel_mod, & only: apply_mixed_operator_kernel_type - use apply_split_mixed_operator_kernel_mod, & - only: apply_u_mixed_operator_kernel_type, & - apply_w_mixed_operator_kernel_type, & - apply_wp_mixed_operator_kernel_type, & - apply_p_mixed_operator_kernel_type + use apply_mixed_u_operator_kernel_mod, & + only: apply_mixed_u_operator_kernel_type + use apply_mixed_wp_operator_kernel_mod, & + only: apply_mixed_wp_operator_kernel_type use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_kernel_type implicit none @@ -275,32 +274,17 @@ contains ! Create broken y_uv w2hb_fs => function_space_collection%get_fs(mesh, 0, 0, W2Hbroken) call y_uv_broken%initialise( w2hb_fs ) - if ( .false. ) then call invoke( name="apply_split_mixed_operator", & - apply_u_mixed_operator_kernel_type( y_uv_broken, & + apply_mixed_u_operator_kernel_type( y_uv_broken, & xvec_uv, xvec_w, xvec_p, & mm_vel, div_star, m2_diag ), & - apply_w_mixed_operator_kernel_type( yvec_w, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - mm_vel, p2theta, div_star, m2_diag ), & - apply_p_mixed_operator_kernel_type( yvec_p, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - m3_exner_star, q32_op, p3theta ) ) - else - call invoke( name="apply_split_mixed_operator2", & - apply_u_mixed_operator_kernel_type( y_uv_broken, & - xvec_uv, xvec_w, xvec_p, & - mm_vel, div_star, m2_diag ), & - apply_wp_mixed_operator_kernel_type( yvec_w, yvec_p, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - mm_vel, p2theta, div_star, m2_diag, & - m3_exner_star, q32_op, p3theta ) ) - end if - call invoke( setval_c( yvec_uv, 0.0_r_solver ), & - assemble_w2h_from_w2hb_kernel_type(yvec_uv, y_uv_broken) ) + setval_c( yvec_uv, 0.0_r_solver ), & + assemble_w2h_from_w2hb_kernel_type(yvec_uv, y_uv_broken), & + apply_mixed_wp_operator_kernel_type( yvec_w, yvec_p, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + mm_vel, p2theta, div_star, m2_diag, & + m3_exner_star, q32_op, p3theta ) ) end if else ! Create theta' field diff --git a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 new file mode 100644 index 00000000..a68f78d8 --- /dev/null +++ b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 @@ -0,0 +1,157 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2024 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +!> @brief Compute the LHS of the semi-implicit system for the horizontal velocity: +!! lhs_uv = norm_u*(Mu*u - P2t*t - grad*p), +!! with t = -Mt^(-1) * Pt2*u +module apply_mixed_u_operator_kernel_mod + +use argument_mod, only : arg_type, & + GH_FIELD, GH_OPERATOR, & + GH_READ, & + GH_WRITE, & + GH_REAL, CELL_COLUMN +use constants_mod, only : r_solver, i_def +use kernel_mod, only : kernel_type +use fs_continuity_mod, only : W2, W3, W2h, W2v, W2broken + +implicit none +private + +!------------------------------------------------------------------------------- +! Public types +!------------------------------------------------------------------------------- + +type, public, extends(kernel_type) :: apply_mixed_u_operator_kernel_type + private + type(arg_type) :: meta_args(7) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2broken), & ! lhs_uv + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_mixed_u_operator_code +end type + +!------------------------------------------------------------------------------- +! Contained functions/subroutines +!------------------------------------------------------------------------------- +public :: apply_mixed_u_operator_code + +contains + +!> @brief Compute the LHS of the semi-implicit system +!> @param[in] cell Horizontal cell index +!> @param[in] nlayers Number of layers +!> @param[in,out] lhs_uv Mixed operator applied to the horizontal momentum equation +!> @param[in] wind_uv Horizontal wind field +!> @param[in] wind_w Vertical wind field +!> @param[in] exner Exner pressure field +!> @param[in] ncell1 Total number of cells for the mu_cd operator +!> @param[in] mu_cd Generalised mass matrix for the momentum equation +!> @param[in] ncell2 Total number of cells for the grad operator +!> @param[in] grad Generalised gradient operator for the momentum equation +!> @param[in] norm_u Normalisation field for the momentum equation +!> @param[in] ndf_w2hb number of degrees of freedom per cell for the broken horizontal wind space +!> @param[in] undf_w2hb unique number of degrees of freedom for the broken horizontal wind space +!> @param[in] map_w2hb dofmap for the cell at the base of the column for the broken horizontal wind space +!> @param[in] ndf_w2h number of degrees of freedom per cell for the horizontal wind space +!> @param[in] undf_w2h unique number of degrees of freedom for the horizontal wind space +!> @param[in] map_w2h dofmap for the cell at the base of the column for the horizontal wind space +!> @param[in] ndf_w2v Number of degrees of freedom per cell for the vertical wind space +!> @param[in] undf_w2v Unique number of degrees of freedom for the vertical wind space +!> @param[in] map_w2v Dofmap for the cell at the base of the column for the vertical wind space +!> @param[in] ndf_w3 Norm_umber of degrees of freedom per cell for the pressure space +!> @param[in] ndf_w3 Unique number of degrees of freedom for the pressure space +!> @param[in] map_w3 Dofmap for the cell at the base of the column for the pressure space +!> @param[in] ndf_w2 Number of degrees of freedom per cell for the 3d wind space +!> @param[in] undf_w2 Unique number of degrees of freedom for the 3d wind space +!> @param[in] map_w2 Dofmap for the cell at the base of the column for the 3d wind space + +subroutine apply_mixed_u_operator_code(cell, & + nlayers, & + lhs_uv, & + wind_uv, wind_w, exner, & + ncell1, mu_cd, & + ncell2, grad, & + norm_u, & + ndf_w2hb, undf_w2hb, map_w2hb, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_w2, undf_w2, map_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell1, ncell2 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2hb, ndf_w2hb + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2hb), intent(in) :: map_w2hb + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w2hb), intent(inout) :: lhs_uv + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd + real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_w3), intent(in) :: grad + + ! Internal variables + integer(kind=i_def) :: df, df2, ij, & + nm1, iw3, & + iw2, iw2h + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + + ! LHS UV + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = - norm_u(iw2:iw2+nm1) & + *grad(ij:ij+nm1, df, 1)*exner(iw3:iw3+nm1) + end do + do df2 = 1, ndf_w2h + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, df, df2)*wind_uv(map_w2h(df2):map_w2h(df)+nm1) + end do + end do + do df2 = 1, ndf_w2v + do df = 1, ndf_w2h + iw2h = map_w2hb(df) + iw2 = map_w2(df) + lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, df, ndf_w2h+df2)*wind_w(map_w2v(df2):map_w2v(df)+nm1) + end do + end do + +end subroutine apply_mixed_u_operator_code + +end module apply_mixed_u_operator_kernel_mod diff --git a/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 new file mode 100644 index 00000000..a5b0b152 --- /dev/null +++ b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 @@ -0,0 +1,225 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2024 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +!> @brief Compute the LHS of the semi-implicit system for the +!! vertical velocity and pressure equations: +!! (lhs_w) = norm_u*(Mu*u - P2t*t - grad*p), +!! lhs_p = M3p*p - P3t*t + Q32*u, +!! with t = -Mt^(-1) * Pt2*u +module apply_mixed_wp_operator_kernel_mod + +use argument_mod, only : arg_type, & + GH_FIELD, GH_OPERATOR, & + GH_READ, & + GH_WRITE, & + GH_REAL, CELL_COLUMN +use constants_mod, only : r_solver, i_def +use kernel_mod, only : kernel_type +use fs_continuity_mod, only : W2, W3, Wtheta, W2h, W2v + +implicit none +private + +!------------------------------------------------------------------------------- +! Public types +!------------------------------------------------------------------------------- +type, public, extends(kernel_type) :: apply_mixed_wp_operator_kernel_type + private + type(arg_type) :: meta_args(14) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_w + arg_type(GH_FIELD, GH_REAL, GH_WRITE, W3), & ! lhs_p + arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' + arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' + arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' + arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 + arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, Wtheta), & ! P2theta + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad + arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! norm_u + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W3), & ! m3p + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W2), & ! q32 + arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, Wtheta) & ! p3t + /) + integer :: operates_on = CELL_COLUMN + contains + procedure, nopass :: apply_mixed_wp_operator_code +end type + +!------------------------------------------------------------------------------- +! Contained functions/subroutines +!------------------------------------------------------------------------------- +public :: apply_mixed_wp_operator_code + +contains + +!> @brief Compute the LHS of the semi-implicit system +!> @param[in] cell Horizontal cell index +!> @param[in] nlayers Number of layers +!> @param[in,out] lhs_w Mixed operator applied to the vertical momentum equation +!> @param[in,out] lhs_p Mixed operator applied to the equation of state +!> @param[in] wind_uv Horizontal wind field +!> @param[in] wind_w Vertical wind field +!> @param[in] exner Exner pressure field +!> @param[in] ncell0 Total number of cells for the pt2 operator +!> @param[in] pt2 Projection operator from W2 to Wtheta +!> @param[in] mt_lumped_inv Lumped inverse mass matrix for the Wtheta space +!> @param[in] ncell1 Total number of cells for the mu_cd operator +!> @param[in] mu_cd Generalised mass matrix for the momentum equation +!> @param[in] ncell2 Total number of cells for the p2t operator +!> @param[in] p2t Generalised projection matrix from Wtheta to W2 +!> @param[in] ncell3 Total number of cells for the grad operator +!> @param[in] grad Generalised gradient operator for the momentum equation +!> @param[in] norm_u Normalisation field for the momentum equation +!> @param[in] ncell4 Total number of cells for the m3p operator +!> @param[in] m3p Weighted mass matrix for the W3 space +!> @param[in] ncell5 Total number of cells for the q32 operator +!> @param[in] q32 Projection operator from W2 to W3 +!> @param[in] ncell6 Total number of cells for the p3t operator +!> @param[in] p3t Projection operator from W2 to Wtheta +!> @param[in] ndf_w2v Number of degrees of freedom per cell for the vertical wind space +!> @param[in] undf_w2v Unique number of degrees of freedom for the vertical wind space +!> @param[in] map_w2v Dofmap for the cell at the base of the column for the vertical wind space +!> @param[in] ndf_w3 Norm_umber of degrees of freedom per cell for the pressure space +!> @param[in] ndf_w3 Unique number of degrees of freedom for the pressure space +!> @param[in] map_w3 Dofmap for the cell at the base of the column for the pressure space +!> @param[in] ndf_w2h Number of degrees of freedom per cell for the horizontal wind space +!> @param[in] undf_w2h Unique number of degrees of freedom for the horizontal wind space +!> @param[in] map_w2h Dofmap for the cell at the base of the column for the horizontal wind space +!> @param[in] undf_wt Number of degrees of freedom per cell for the potential +!! temperature space +!> @param[in] undf_wt Unique number of degrees of freedom for the potential +!! temperature space +!> @param[in] map_wt Dofmap for the cell at the base of the column for the +!! potential temperature space +!> @param[in] ndf_w2 Number of degrees of freedom per cell for the wind space +!> @param[in] undf_w2 Unique number of degrees of freedom for the wind space +!> @param[in] map_w2 Dofmap for the cell at the base of the column for the wind space +subroutine apply_mixed_wp_operator_code(cell, & + nlayers, & + lhs_w, & + lhs_p, & + wind_uv, wind_w, exner, & + ncell0, pt2, & + mt_lumped_inv, & + ncell1, mu_cd, & + ncell2, P2t, & + ncell3, grad, & + norm_u, & + ncell4, m3p, & + ncell5, q32, & + ncell6, p3t, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_wt, undf_wt, map_wt, & + ndf_w2, undf_w2, map_w2) + + implicit none + + ! Arguments + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell0, ncell1, ncell2, ncell3 + integer(kind=i_def), intent(in) :: ncell4, ncell5, ncell6 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_wt, ndf_wt + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + + ! Fields + real(kind=r_solver), dimension(undf_w2v), intent(inout) :: lhs_w + real(kind=r_solver), dimension(undf_w3), intent(inout) :: lhs_p + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + + ! Operators + real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 + real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd + real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_wt), intent(in) :: p2t + real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad + real(kind=r_solver), dimension(ncell4, ndf_w3, ndf_w3), intent(in) :: m3p + real(kind=r_solver), dimension(ncell5, ndf_w3, ndf_w2), intent(in) :: q32 + real(kind=r_solver), dimension(ncell6, ndf_w3, ndf_wt), intent(in) :: p3t + + ! Internal variables + integer(kind=i_def) :: df, df2, ij, & + nm1, iw3, iwt, & + iw2, iw2h, iw2v + real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e + real(kind=r_solver), dimension(0:nlayers) :: t_col + + ! Set up some useful shorthands for indices + ij = (cell-1)*nlayers + 1 + nm1 = nlayers-1 + iw3 = map_w3(1) + iwt = map_wt(1) + + ! Create the element velocity field + do df = 1, ndf_w2h + iw2h = map_w2h(df) + u_e(:,df) = wind_uv(iw2h:iw2h+nm1) + end do + do df = 1, ndf_w2v + iw2v = map_w2v(df) + u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) + end do + + ! Compute t for the column + t_col(:) = 0.0_r_solver + do df = 1, ndf_w2 + t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) + t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) + end do + t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) + + ! LHS W + iw2v = map_w2v(1) + lhs_w(iw2v:iw2v+nlayers) = 0.0_r_solver + + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)*( & + - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & + - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & + - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) + + end do + do df2 = 1, ndf_w2 + do df = 1, ndf_w2v + iw2v = map_w2v(df) + iw2 = map_w2(ndf_w2h+df) + lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + + norm_u(iw2:iw2+nm1)* & + mu_cd(ij:ij+nm1, ndf_w2h+df, df2)*u_e(:,df2) + + end do + end do + ! Set BC for lhs_w + lhs_w(map_w2v(1)) = 0.0_r_solver + lhs_w(map_w2v(2)+nlayers-1) = 0.0_r_solver + + ! LHS P + lhs_p(iw3:iw3+nm1) = m3p(ij:ij+nm1, 1, 1)*exner(iw3:iw3+nm1) & + - p3t(ij:ij+nm1, 1, 1)*t_col(0:nm1) & + - p3t(ij:ij+nm1, 1, 2)*t_col(1:nm1+1) + do df = 1, ndf_w2 + lhs_p(iw3:iw3+nm1) = lhs_p(iw3:iw3+nm1) + q32(ij:ij+nm1, 1, df)*u_e(:,df) + end do + +end subroutine apply_mixed_wp_operator_code + +end module apply_mixed_wp_operator_kernel_mod diff --git a/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 deleted file mode 100644 index d9e11b27..00000000 --- a/science/gungho/source/kernel/solver/apply_split_mixed_operator_kernel_mod.F90 +++ /dev/null @@ -1,550 +0,0 @@ -!----------------------------------------------------------------------------- -! (C) Crown copyright 2024 Met Office. All rights reserved. -! The file LICENCE, distributed with this code, contains details of the terms -! under which the code may be used. -!----------------------------------------------------------------------------- - -!> @brief Compute the LHS of the semi-implicit system: -!! (lhs_uv, lhs_w) = norm_u*(Mu*u - P2t*t - grad*p), -!! lhs_p = M3p*p - P3t*t + Q32*u, -!! with t = -Mt^(-1) * Pt2*u -module apply_split_mixed_operator_kernel_mod - -use argument_mod, only : arg_type, & - GH_FIELD, GH_OPERATOR, & - GH_READ, GH_INC, & - GH_WRITE, & - GH_REAL, CELL_COLUMN -use constants_mod, only : r_solver, i_def -use kernel_mod, only : kernel_type -use fs_continuity_mod, only : W2, W3, Wtheta, W2h, W2v, W2broken - -implicit none -private - -!------------------------------------------------------------------------------- -! Public types -!------------------------------------------------------------------------------- - -type, public, extends(kernel_type) :: apply_u_mixed_operator_kernel_type - private - type(arg_type) :: meta_args(7) = (/ & - arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2broken), & ! lhs_uv - arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' - arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' - arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad - arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u - /) - integer :: operates_on = CELL_COLUMN - contains - procedure, nopass :: apply_u_mixed_operator_code -end type -type, public, extends(kernel_type) :: apply_w_mixed_operator_kernel_type - private - type(arg_type) :: meta_args(10) = (/ & - arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_w - arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' - arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' - arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' - arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 - arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, Wtheta), & ! P2theta - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad - arg_type(GH_FIELD, GH_REAL, GH_READ, W2) & ! norm_u - /) - integer :: operates_on = CELL_COLUMN - contains - procedure, nopass :: apply_w_mixed_operator_code -end type -type, public, extends(kernel_type) :: apply_p_mixed_operator_kernel_type - private - type(arg_type) :: meta_args(9) = (/ & - arg_type(GH_FIELD, GH_REAL, GH_WRITE, W3), & ! lhs_p - arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' - arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' - arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' - arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 - arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W3), & ! m3p - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W2), & ! q32 - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, Wtheta) & ! p3t - /) - integer :: operates_on = CELL_COLUMN - contains - procedure, nopass :: apply_p_mixed_operator_code -end type -type, public, extends(kernel_type) :: apply_wp_mixed_operator_kernel_type - private - type(arg_type) :: meta_args(14) = (/ & - arg_type(GH_FIELD, GH_REAL, GH_WRITE, W2v), & ! lhs_w - arg_type(GH_FIELD, GH_REAL, GH_WRITE, W3), & ! lhs_p - arg_type(GH_FIELD, GH_REAL, GH_READ, W2h), & ! uv' - arg_type(GH_FIELD, GH_REAL, GH_READ, W2v), & ! w' - arg_type(GH_FIELD, GH_REAL, GH_READ, W3), & ! exner' - arg_type(GH_OPERATOR, GH_REAL, GH_READ, Wtheta, W2), & ! Ptheta2 - arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), & ! Mtheta^-1 - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W2), & ! Mu^{c,d} - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, Wtheta), & ! P2theta - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W2, W3), & ! grad - arg_type(GH_FIELD, GH_REAL, GH_READ, W2), & ! norm_u - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W3), & ! m3p - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, W2), & ! q32 - arg_type(GH_OPERATOR, GH_REAL, GH_READ, W3, Wtheta) & ! p3t - /) - integer :: operates_on = CELL_COLUMN - contains - procedure, nopass :: apply_wp_mixed_operator_code -end type - -!------------------------------------------------------------------------------- -! Contained functions/subroutines -!------------------------------------------------------------------------------- -public :: apply_u_mixed_operator_code -public :: apply_w_mixed_operator_code -public :: apply_p_mixed_operator_code -public :: apply_wp_mixed_operator_code - -contains - -!> @brief Compute the LHS of the semi-implicit system -!> @param[in] cell Horizontal cell index -!> @param[in] nlayers Number of layers -!> @param[in,out] lhs_uv Mixed operator applied to the horizontal momentum equation -!> @param[in,out] lhs_w Mixed operator applied to the vertical momentum equation -!> @param[in,out] lhs_p Mixed operator applied to the equation of state -!> @param[in] wind_uv Horizontal wind field -!> @param[in] wind_w Vertical wind field -!> @param[in] exner Exner pressure field -!> @param[in] ncell0 Total number of cells for the pt2 operator -!> @param[in] pt2 Projection operator from W2 to Wtheta -!> @param[in] mt_lumped_inv Lumped inverse mass matrix for the Wtheta space -!> @param[in] ncell1 Total number of cells for the mu_cd operator -!> @param[in] mu_cd Generalised mass matrix for the momentum equation -!> @param[in] ncell2 Total number of cells for the p2t operator -!> @param[in] p2t Generalised projection matrix from Wtheta to W2 -!> @param[in] ncell3 Total number of cells for the grad operator -!> @param[in] grad Generalised gradient operator for the momentum equation -!> @param[in] norm_u Normalisation field for the momentum equation -!> @param[in] ncell4 Total number of cells for the m3p operator -!> @param[in] m3p Weighted mass matrix for the W3 space -!> @param[in] ncell5 Total number of cells for the q32 operator -!> @param[in] q32 Projection operator from W2 to W3 -!> @param[in] ncell6 Total number of cells for the p3t operator -!> @param[in] p3t Projection operator from W2 to Wtheta -!> @param[in] ndf_w2h Number of degrees of freedom per cell for the horizontal wind space -!> @param[in] undf_w2h Unique number of degrees of freedom for the horizontal wind space -!> @param[in] map_w2h Dofmap for the cell at the base of the column for the horizontal wind space -!> @param[in] ndf_w2v Number of degrees of freedom per cell for the vertical wind space -!> @param[in] undf_w2v Unique number of degrees of freedom for the vertical wind space -!> @param[in] map_w2v Dofmap for the cell at the base of the column for the vertical wind space -!> @param[in] ndf_w3 Norm_umber of degrees of freedom per cell for the pressure space -!> @param[in] ndf_w3 Unique number of degrees of freedom for the pressure space -!> @param[in] map_w3 Dofmap for the cell at the base of the column for the pressure space -!> @param[in] undf_wt Number of degrees of freedom per cell for the potential -!! temperature space -!> @param[in] undf_wt Unique number of degrees of freedom for the potential -!! temperature space -!> @param[in] map_wt Dofmap for the cell at the base of the column for the -!! potential temperature space -!> @param[in] ndf_w2 Number of degrees of freedom per cell for the wind space -!> @param[in] undf_w2 Unique number of degrees of freedom for the wind space -!> @param[in] map_w2 Dofmap for the cell at the base of the column for the wind space - -subroutine apply_u_mixed_operator_code(cell, & - nlayers, & - lhs_uv, & - wind_uv, wind_w, exner, & - ncell1, mu_cd, & - ncell3, grad, & - norm_u, & - ndf_w2hb, undf_w2hb, map_w2hb, & - ndf_w2h, undf_w2h, map_w2h, & - ndf_w2v, undf_w2v, map_w2v, & - ndf_w3, undf_w3, map_w3, & - ndf_w2, undf_w2, map_w2) - - implicit none - - ! Arguments - integer(kind=i_def), intent(in) :: cell, nlayers - integer(kind=i_def), intent(in) :: ncell1, ncell3 - integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h - integer(kind=i_def), intent(in) :: undf_w2hb, ndf_w2hb - integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v - integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 - integer(kind=i_def), dimension(ndf_w2hb), intent(in) :: map_w2hb - integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v - integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 - integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 - - ! Fields - real(kind=r_solver), dimension(undf_w2hb), intent(inout) :: lhs_uv - real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv - real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w - real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u - real(kind=r_solver), dimension(undf_w3), intent(in) :: exner - - ! Operators - real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd - real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad - - ! Internal variables - integer(kind=i_def) :: df, df2, ij, & - nm1, iw3, & - iw2, iw2h - - ! Set up some useful shorthands for indices - ij = (cell-1)*nlayers + 1 - nm1 = nlayers-1 - iw3 = map_w3(1) - - ! LHS UV - do df = 1, ndf_w2h - iw2h = map_w2hb(df) - iw2 = map_w2(df) - lhs_uv(iw2h:iw2h+nm1) = - norm_u(iw2:iw2+nm1) & - *grad(ij:ij+nm1, df, 1)*exner(iw3:iw3+nm1) - end do - do df2 = 1, ndf_w2h - do df = 1, ndf_w2h - iw2h = map_w2hb(df) - iw2 = map_w2(df) - lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & - + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, df, df2)*wind_uv(map_w2h(df2):map_w2h(df)+nm1) - end do - end do - do df2 = 1, ndf_w2v - do df = 1, ndf_w2h - iw2h = map_w2hb(df) - iw2 = map_w2(df) - lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & - + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, df, ndf_w2h+df2)*wind_w(map_w2v(df2):map_w2v(df)+nm1) - end do - end do - -end subroutine apply_u_mixed_operator_code - -subroutine apply_w_mixed_operator_code(cell, & - nlayers, & - lhs_w, & - wind_uv, wind_w, exner, & - ncell0, pt2, & - mt_lumped_inv, & - ncell1, mu_cd, & - ncell2, P2t, & - ncell3, grad, & - norm_u, & - ndf_w2v, undf_w2v, map_w2v, & - ndf_w2h, undf_w2h, map_w2h, & - ndf_w3, undf_w3, map_w3, & - ndf_wt, undf_wt, map_wt, & - ndf_w2, undf_w2, map_w2) - - implicit none - - ! Arguments - integer(kind=i_def), intent(in) :: cell, nlayers - integer(kind=i_def), intent(in) :: ncell0, ncell1, ncell2, ncell3 - integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h - integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v - integer(kind=i_def), intent(in) :: undf_wt, ndf_wt - integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 - integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v - integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 - integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt - integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 - - ! Fields - real(kind=r_solver), dimension(undf_w2v), intent(inout) :: lhs_w - real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv - real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w - real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u - real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv - real(kind=r_solver), dimension(undf_w3), intent(in) :: exner - - ! Operators - real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 - real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd - real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_wt), intent(in) :: p2t - real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad - - ! Internal variables - integer(kind=i_def) :: df, df2, ij, & - nm1, iw3, iwt, & - iw2, iw2h, iw2v - real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e - real(kind=r_solver), dimension(0:nlayers) :: t_col - - ! Set up some useful shorthands for indices - ij = (cell-1)*nlayers + 1 - nm1 = nlayers-1 - iw3 = map_w3(1) - iwt = map_wt(1) - - ! Create the element velocity field - do df = 1, ndf_w2h - iw2h = map_w2h(df) - u_e(:,df) = wind_uv(iw2h:iw2h+nm1) - end do - do df = 1, ndf_w2v - iw2v = map_w2v(df) - u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) - end do - - ! Compute t for the column - t_col(:) = 0.0_r_solver - do df = 1, ndf_w2 - t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) - t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) - end do - t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) - - ! LHS W - iw2v = map_w2v(1) - lhs_w(iw2v:iw2v+nlayers) = 0.0_r_solver - - do df = 1, ndf_w2v - iw2v = map_w2v(df) - iw2 = map_w2(ndf_w2h+df) - lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & - + norm_u(iw2:iw2+nm1)*( & - - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & - - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & - - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) - - end do - do df2 = 1, ndf_w2 - do df = 1, ndf_w2v - iw2v = map_w2v(df) - iw2 = map_w2(ndf_w2h+df) - lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & - + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, ndf_w2h+df, df2)*u_e(:,df2) - - end do - end do - ! Set BC for lhs_w - lhs_w(map_w2v(1)) = 0.0_r_solver - lhs_w(map_w2v(2)+nlayers-1) = 0.0_r_solver - -end subroutine apply_w_mixed_operator_code - -subroutine apply_p_mixed_operator_code(cell, & - nlayers, & - lhs_p, & - wind_uv, wind_w, exner, & - ncell0, pt2, & - mt_lumped_inv, & - ncell4, m3p, & - ncell5, q32, & - ncell6, p3t, & - ndf_w3, undf_w3, map_w3, & - ndf_w2h, undf_w2h, map_w2h, & - ndf_w2v, undf_w2v, map_w2v, & - ndf_wt, undf_wt, map_wt, & - ndf_w2) - - implicit none - - ! Arguments - integer(kind=i_def), intent(in) :: cell, nlayers - integer(kind=i_def), intent(in) :: ncell0 - integer(kind=i_def), intent(in) :: ncell4, ncell5, ncell6 - integer(kind=i_def), intent(in) :: ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h - integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v - integer(kind=i_def), intent(in) :: undf_wt, ndf_wt - integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 - integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v - integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt - integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 - - ! Fields - real(kind=r_solver), dimension(undf_w3), intent(inout) :: lhs_p - real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv - real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w - real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv - real(kind=r_solver), dimension(undf_w3), intent(in) :: exner - - ! Operators - real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 - real(kind=r_solver), dimension(ncell4, ndf_w3, ndf_w3), intent(in) :: m3p - real(kind=r_solver), dimension(ncell5, ndf_w3, ndf_w2), intent(in) :: q32 - real(kind=r_solver), dimension(ncell6, ndf_w3, ndf_wt), intent(in) :: p3t - - ! Internal variables - integer(kind=i_def) :: df, ij, & - nm1, iw3, iwt, & - iw2h, iw2v - real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e - real(kind=r_solver), dimension(0:nlayers) :: t_col - - ! Set up some useful shorthands for indices - ij = (cell-1)*nlayers + 1 - nm1 = nlayers-1 - iw3 = map_w3(1) - iwt = map_wt(1) - - ! Create the element velocity field - do df = 1, ndf_w2h - iw2h = map_w2h(df) - u_e(:,df) = wind_uv(iw2h:iw2h+nm1) - end do - do df = 1, ndf_w2v - iw2v = map_w2v(df) - u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) - end do - - ! Compute t for the column - t_col(:) = 0.0_r_solver - do df = 1, ndf_w2 - t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) - t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) - end do - t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) - - ! LHS P - lhs_p(iw3:iw3+nm1) = m3p(ij:ij+nm1, 1, 1)*exner(iw3:iw3+nm1) & - - p3t(ij:ij+nm1, 1, 1)*t_col(0:nm1) & - - p3t(ij:ij+nm1, 1, 2)*t_col(1:nm1+1) - do df = 1, ndf_w2 - lhs_p(iw3:iw3+nm1) = lhs_p(iw3:iw3+nm1) + q32(ij:ij+nm1, 1, df)*u_e(:,df) - end do - -end subroutine apply_p_mixed_operator_code - -subroutine apply_wp_mixed_operator_code(cell, & - nlayers, & - lhs_w, & - lhs_p, & - wind_uv, wind_w, exner, & - ncell0, pt2, & - mt_lumped_inv, & - ncell1, mu_cd, & - ncell2, P2t, & - ncell3, grad, & - norm_u, & - ncell4, m3p, & - ncell5, q32, & - ncell6, p3t, & - ndf_w2v, undf_w2v, map_w2v, & - ndf_w3, undf_w3, map_w3, & - ndf_w2h, undf_w2h, map_w2h, & - ndf_wt, undf_wt, map_wt, & - ndf_w2, undf_w2, map_w2) - - implicit none - - ! Arguments - integer(kind=i_def), intent(in) :: cell, nlayers - integer(kind=i_def), intent(in) :: ncell0, ncell1, ncell2, ncell3 - integer(kind=i_def), intent(in) :: ncell4, ncell5, ncell6 - integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h - integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v - integer(kind=i_def), intent(in) :: undf_wt, ndf_wt - integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 - integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v - integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 - integer(kind=i_def), dimension(ndf_wt), intent(in) :: map_wt - integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 - - ! Fields - real(kind=r_solver), dimension(undf_w2v), intent(inout) :: lhs_w - real(kind=r_solver), dimension(undf_w3), intent(inout) :: lhs_p - real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv - real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w - real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u - real(kind=r_solver), dimension(undf_wt), intent(in) :: mt_lumped_inv - real(kind=r_solver), dimension(undf_w3), intent(in) :: exner - - ! Operators - real(kind=r_solver), dimension(ncell0, ndf_wt, ndf_w2), intent(in) :: pt2 - real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd - real(kind=r_solver), dimension(ncell2, ndf_w2, ndf_wt), intent(in) :: p2t - real(kind=r_solver), dimension(ncell3, ndf_w2, ndf_w3), intent(in) :: grad - real(kind=r_solver), dimension(ncell4, ndf_w3, ndf_w3), intent(in) :: m3p - real(kind=r_solver), dimension(ncell5, ndf_w3, ndf_w2), intent(in) :: q32 - real(kind=r_solver), dimension(ncell6, ndf_w3, ndf_wt), intent(in) :: p3t - - ! Internal variables - integer(kind=i_def) :: df, df2, ij, & - nm1, iw3, iwt, & - iw2, iw2h, iw2v - real(kind=r_solver), dimension(0:nlayers-1,ndf_w2) :: u_e - real(kind=r_solver), dimension(0:nlayers) :: t_col - - ! Set up some useful shorthands for indices - ij = (cell-1)*nlayers + 1 - nm1 = nlayers-1 - iw3 = map_w3(1) - iwt = map_wt(1) - - ! Create the element velocity field - do df = 1, ndf_w2h - iw2h = map_w2h(df) - u_e(:,df) = wind_uv(iw2h:iw2h+nm1) - end do - do df = 1, ndf_w2v - iw2v = map_w2v(df) - u_e(:,ndf_w2h+df) = wind_w(iw2v:iw2v+nm1) - end do - - ! Compute t for the column - t_col(:) = 0.0_r_solver - do df = 1, ndf_w2 - t_col(0:nm1) = t_col(0:nm1) - pt2(ij:ij+nm1, 1, df)*u_e(:,df) - t_col(1:nm1+1) = t_col(1:nm1+1) - pt2(ij:ij+nm1, 2, df)*u_e(:,df) - end do - t_col(:) = t_col(:) * mt_lumped_inv(iwt:iwt+1+nm1) - - ! LHS W - iw2v = map_w2v(1) - lhs_w(iw2v:iw2v+nlayers) = 0.0_r_solver - - do df = 1, ndf_w2v - iw2v = map_w2v(df) - iw2 = map_w2(ndf_w2h+df) - lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & - + norm_u(iw2:iw2+nm1)*( & - - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & - - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & - - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) - - end do - do df2 = 1, ndf_w2 - do df = 1, ndf_w2v - iw2v = map_w2v(df) - iw2 = map_w2(ndf_w2h+df) - lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & - + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, ndf_w2h+df, df2)*u_e(:,df2) - - end do - end do - ! Set BC for lhs_w - lhs_w(map_w2v(1)) = 0.0_r_solver - lhs_w(map_w2v(2)+nlayers-1) = 0.0_r_solver - - ! LHS P - lhs_p(iw3:iw3+nm1) = m3p(ij:ij+nm1, 1, 1)*exner(iw3:iw3+nm1) & - - p3t(ij:ij+nm1, 1, 1)*t_col(0:nm1) & - - p3t(ij:ij+nm1, 1, 2)*t_col(1:nm1+1) - do df = 1, ndf_w2 - lhs_p(iw3:iw3+nm1) = lhs_p(iw3:iw3+nm1) + q32(ij:ij+nm1, 1, df)*u_e(:,df) - end do - -end subroutine apply_wp_mixed_operator_code - -end module apply_split_mixed_operator_kernel_mod From f5dcdfa5b62dc7bb12bf0877d74b0424684618da Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Wed, 14 Jan 2026 21:24:52 +0000 Subject: [PATCH 06/34] Added unit tests for operator kernels --- .../apply_mixed_u_operator_kernel_mod_test.pf | 103 ++++++++++++ ...apply_mixed_wp_operator_kernel_mod_test.pf | 149 ++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf create mode 100644 science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf new file mode 100644 index 00000000..7a3dddaf --- /dev/null +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf @@ -0,0 +1,103 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2024 Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +!----------------------------------------------------------------------------- + +!> Test the mixed operator of the semi-implicit lhs +module apply_mixed_u_operator_kernel_mod_test + + use constants_mod, only : i_def, r_solver + use funit + + implicit none + + private + public :: test_all + +contains + + @test( ) + subroutine test_all( ) + + use apply_mixed_u_operator_kernel_mod, only : apply_mixed_u_operator_code + + implicit none + + real(r_solver), parameter :: tol = 1.0e-12_r_solver + + ! Mesh + integer(i_def), parameter :: nlayers = 1 + integer(i_def), parameter :: cell = 1 + integer(i_def), parameter :: ncell = 1 + + ! Spaces + integer(i_def), parameter :: ndf_w2h = 2 + integer(i_def), parameter :: ndf_w2v = 2 + integer(i_def), parameter :: ndf_w2 = ndf_w2h+ndf_w2v + integer(i_def), parameter :: ndf_w3 = 1 + integer(i_def), parameter :: undf_w2h = ndf_w2h*nlayers + integer(i_def), parameter :: undf_w2v = nlayers + 1 + integer(i_def), parameter :: undf_w2 = undf_w2h + undf_w2v + integer(i_def), parameter :: undf_w3 = ndf_w3*nlayers + + ! Maps + integer(i_def), dimension(ndf_w2h) :: map_w2h + integer(i_def), dimension(ndf_w2v) :: map_w2v + integer(i_def), dimension(ndf_w2) :: map_w2 + integer(i_def), dimension(ndf_w3) :: map_w3 + + ! Operators + real(r_solver), dimension(ndf_w2, ndf_w2, ncell) :: Mu + real(r_solver), dimension(ndf_w2, ndf_w3, ncell) :: Grad + + ! Fields + real(r_solver), dimension(undf_w2) :: Nu, u + real(r_solver), dimension(undf_w2h) :: Luv, uv + real(r_solver), dimension(undf_w2v) :: w + real(r_solver), dimension(undf_w3) :: p + + integer(i_def) :: df + real(r_solver) :: answer + + map_w2h = (/ 1_i_def, 1_i_def + nlayers /) + map_w2v = (/ 1_i_def, 2_i_def /) + map_w2 = (/ 1_i_def, 1_i_def + nlayers, 1_i_def + 2*nlayers, 2_i_def + 2*nlayers /) + map_w3 = (/ 1_i_def /) + + ! Set up operators + Mu = 0.0_r_solver + do df = 1,ndf_w2 + Mu(df,df,1) = real(df,r_solver) + Grad(df,1,1) = (-1.0_r_solver)**df + end do + + ! Set up the fields + uv = (/ 0.0_r_solver, 1.0_r_solver /) + w = (/ 3.0_r_solver, -2.0_r_solver /) + p = (/ 1.2_r_solver /) + Nu = 2.0_r_solver + Luv = 0.0_r_solver + + ! Compute: (L_uv) = Nu*(Mu*u - Grad*p) + call apply_mixed_u_operator_code(cell, & + nlayers, & + Luv, & + uv, w, p, & + ncell, Mu, & + ncell, Grad, & + Nu, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_wt, undf_wt, map_wt, & + ndf_w2, undf_w2, map_w2) + do df = 1,ndf_w2h + answer = Nu(df)*(Mu(df,df,1)*uv(df) - Grad(df,1,1)*p(1)) + @assertEqual(answer, Luv(df), tol) + end do + + end subroutine test_all + +end module apply_mixed_u_operator_kernel_mod_test diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf new file mode 100644 index 00000000..36b4b5f7 --- /dev/null +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf @@ -0,0 +1,149 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2024 Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +!----------------------------------------------------------------------------- + +!> Test the mixed operator of the semi-implicit lhs +module apply_mixed_wp_operator_kernel_mod_test + + use constants_mod, only : i_def, r_solver + use funit + + implicit none + + private + public :: test_all + +contains + + @test( ) + subroutine test_all( ) + + use apply_mixed_wp_operator_kernel_mod, only : apply_mixed_wp_operator_code + + implicit none + + real(r_solver), parameter :: tol = 1.0e-12_r_solver + + ! Mesh + integer(i_def), parameter :: nlayers = 3 + integer(i_def), parameter :: cell = 1 + integer(i_def), parameter :: ncell = nlayers + + ! Spaces + integer(i_def), parameter :: ndf_w2h = 2 + integer(i_def), parameter :: ndf_w2v = 2 + integer(i_def), parameter :: ndf_w2 = ndf_w2h+ndf_w2v + integer(i_def), parameter :: ndf_wt = 2 + integer(i_def), parameter :: ndf_w3 = 1 + integer(i_def), parameter :: undf_w2h = ndf_w2h*nlayers + integer(i_def), parameter :: undf_w2v = nlayers + 1 + integer(i_def), parameter :: undf_w2 = undf_w2h + undf_w2v + integer(i_def), parameter :: undf_wt = nlayers + 1 + integer(i_def), parameter :: undf_w3 = ndf_w3*nlayers + + ! Maps + integer(i_def), dimension(ndf_w2h) :: map_w2h + integer(i_def), dimension(ndf_w2v) :: map_w2v + integer(i_def), dimension(ndf_w2) :: map_w2 + integer(i_def), dimension(ndf_wt) :: map_wt + integer(i_def), dimension(ndf_w3) :: map_w3 + + ! Operators + real(r_solver), dimension(ndf_w2, ndf_w2, ncell) :: Mu + real(r_solver), dimension(ndf_w2, ndf_wt, ncell) :: P2t + real(r_solver), dimension(ndf_w2, ndf_w3, ncell) :: Grad + real(r_solver), dimension(ndf_wt, ndf_w2, ncell) :: Pt2 + real(r_solver), dimension(ndf_w3, ndf_w3, ncell) :: M3p + real(r_solver), dimension(ndf_w3, ndf_wt, ncell) :: P3t + real(r_solver), dimension(ndf_w3, ndf_w2, ncell) :: Q32 + + ! Fields + real(r_solver), dimension(undf_w2) :: Nu, u + real(r_solver), dimension(undf_w2h) :: uv + real(r_solver), dimension(undf_w2v) :: Lw, w + real(r_solver), dimension(undf_wt) :: invMt + real(r_solver), dimension(undf_w3) :: p, Lp + real(r_solver), dimension(undf_wt) :: t + + integer(i_def) :: df, dfv + real(r_solver) :: answer + + map_w2h = (/ 1_i_def, 1_i_def + nlayers /) + map_w2v = (/ 1_i_def, 2_i_def /) + map_w2 = (/ 1_i_def, 1_i_def + nlayers, 1_i_def + 2*nlayers, 2_i_def + 2*nlayers /) + map_wt = (/ 1_i_def, 2_i_def /) + map_w3 = (/ 1_i_def /) + + ! Set up operators + Mu = 0.0_r_solver + + do df = 1,ndf_w2 + Mu(df,df,:) = real(df,r_solver) + Grad(df,1,:) = (-1.0_r_solver)**df + end do + + P2t(:,:,:) = 0.0_r_solver + P2t(3:4,:,:) = 0.5_r_solver + Pt2 = 0.0_r_solver + Pt2(1,3,:) = 7.0_r_solver + Pt2(2,4,:) = 9.0_r_solver + M3p = 0.5_r_solver + Q32 = 3.0_r_solver + P3t = 5.0_r_solver + + ! Set up the fields + do k = 1, nlayers + uv(k) = 0.0_r_solver + uv(k+nlayers) = 1.0_r_solver + end do + w = (/0.0_r_solver, 3.0_r_solver, -2.0_r_solver, 0.0_r_solver /) + p(:) = 1.2_r_solver + Nu(:) = 2.0_r_solver + invMt(:) = 0.25_r_solver + + ! Compute: (L_uv, L_w) = Nu*(Mu*u - Proj*t - Grad*p) + ! L_p = M3p*p - P3t*t + Q32*u + ! with t = -Mt^-1 * Pt2*u + call apply_mixed_wp_operator_code(cell, & + nlayers, & + Lw, Lp, & + uv, w, p, & + ncell, Pt2, & + invMt, & + ncell, Mu, & + ncell, P2t, & + ncell, Grad, & + Nu, & + ncell, M3p, & + ncell, Q32, & + ncell, P3t, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_wt, undf_wt, map_wt, & + ndf_w2, undf_w2, map_w2) + t(:) = 0.0_r_solver + do df = 1, nlayers + t(df) = t(df) - invMt(df)*Pt2(1,3,df)*w(df) + t(df+1) = - invMt(df)*Pt2(2,4,df)*w(df+1) + end do + + k = 2 + do dfv = 1,ndf_w2v + df = ndf_w2h+dfv + answer = Nu(df+k)*(Mu(df,df,k)*uv(df) - sum(P2t(df,:,k)*t(:)) - Grad(df,1,k)*p(1+k)) + @assertEqual(answer, Lw(dfv+k), tol) + end do + + @assertEqual(0.0_r_solver, Lw(1), tol) + @assertEqual(0.0_r_solver, Lw(nlayers+1), tol) + + u = (/ uv(1), uv(4), w(1), w(2) /) + answer = M3p(1,1,1)*p(1) - sum(P3t(1,:,1)*t(1:2)) + sum(Q32(1,:,1)*u(1:4)) + @assertEqual(answer, Lp(1), tol) + + end subroutine test_all + +end module apply_mixed_wp_operator_kernel_mod_test From 587abb21b709735e7db833bdfffed67d40e7495c Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 16 Jan 2026 14:08:52 +0000 Subject: [PATCH 07/34] Updates to unit tests --- .../assemble_w2h_from_w2hb_kernel_mod.F90 | 61 +++++----- .../assemble_w2h_from_w2hb_kernel_mod_test.pf | 106 +++++++++++------- .../solver/schur_backsub_kernel_mod_test.pf | 6 +- 3 files changed, 94 insertions(+), 79 deletions(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index e0e0f256..032ddeae 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -3,8 +3,8 @@ ! The file LICENCE, distributed with this code, contains details of the terms ! under which the code may be used. !----------------------------------------------------------------------------- -!> @brief Maps a field from W2 broken to W2. -!> @details "Unbreaks" a W2 field by averaging values on either side of +!> @brief Maps a field from W2h broken to W2h. +!> @details "Unbreaks" a W2h field by averaging values on either side of !> broken facets. !> This kernel only works for the lowest-order elements. module assemble_w2h_from_w2hb_kernel_mod @@ -46,52 +46,49 @@ module assemble_w2h_from_w2hb_kernel_mod contains -!> @brief Converts a broken W2 field into a continuous W2 field +!> @brief Converts a broken W2h field into a continuous W2h field !> !> @param[in] nlayers Number of layers in the mesh -!> @param[in,out] field_w2 Field in the W2 space to be returned. -!> @param[in] field_w2_broken Original field in W2 broken to be used. -!> @param[in] rmultiplicity_w2 Reciprocal of nodal multiplicity field for W2 -!> @param[in] ndf_w2 Number of degrees of freedom per cell for W2 -!> @param[in] undf_w2 Number of (local) unique degrees of freedom for W2 -!> @param[in] map_w2 Dofmap for the cell at the base of the column for W2 -!> @param[in] ndf_w2_broken Number of degrees of freedom per cell for W2 broken -!> @param[in] undf_w2_broken Number of (local) unique degrees of freedom for W2 broken -!> @param[in] map_w2_broken Dofmap for the cell at the base of the column for W2 broken +!> @param[in,out] field_w2h Field in the W2h space to be returned. +!> @param[in] field_w2h_broken Original field in W2h broken to be used. +!> @param[in] ndf_w2h Number of degrees of freedom per cell for W2h +!> @param[in] undf_w2h Number of (local) unique degrees of freedom for W2h +!> @param[in] map_w2h Dofmap for the cell at the base of the column for W2h +!> @param[in] ndf_w2h_broken Number of degrees of freedom per cell for W2h broken +!> @param[in] undf_w2h_broken Number of (local) unique degrees of freedom for W2h broken +!> @param[in] map_w2h_broken Dofmap for the cell at the base of the column for W2h broken subroutine assemble_w2h_from_w2hb_code( nlayers, & - field_w2, & - field_w2_broken, & - ndf_w2, & - undf_w2, & - map_w2, & - ndf_w2_broken, & - undf_w2_broken, & - map_w2_broken & + field_w2h, & + field_w2h_broken, & + ndf_w2h, & + undf_w2h, & + map_w2h, & + ndf_w2h_broken, & + undf_w2h_broken, & + map_w2h_broken & ) implicit none ! Arguments integer(kind=i_def), intent(in) :: nlayers - integer(kind=i_def), intent(in) :: ndf_w2_broken, ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2_broken, undf_w2 - integer(kind=i_def), dimension(ndf_w2_broken), intent(in) :: map_w2_broken - integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), intent(in) :: ndf_w2h_broken, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2h_broken, undf_w2h + integer(kind=i_def), dimension(ndf_w2h_broken), intent(in) :: map_w2h_broken + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - real(kind=r_solver), dimension(undf_w2), intent(inout) :: field_w2 - real(kind=r_solver), dimension(undf_w2_broken), intent(in) :: field_w2_broken + real(kind=r_solver), dimension(undf_w2h), intent(inout) :: field_w2h + real(kind=r_solver), dimension(undf_w2h_broken), intent(in) :: field_w2h_broken ! Internal variables integer(kind=i_def) :: df, k - ! Loop over horizontal W2 DoFs - ! Contribution from broken field is based on multiplicity - do df = 1, ndf_w2 + ! Loop over horizontal W2h DoFs + do df = 1, ndf_w2h ! Loop over layers of mesh do k = 0, nlayers - 1 - field_w2(map_w2(df)+k) = field_w2(map_w2(df)+k) & - + field_w2_broken(map_w2_broken(df)+k) - + field_w2h(map_w2h(df)+k) = field_w2h(map_w2h(df)+k) & + + field_w2h_broken(map_w2h_broken(df)+k) end do end do diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index 7ef5d6b1..b674ef7a 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -1,63 +1,83 @@ !----------------------------------------------------------------------------- -! (c) Crown copyright 2026 Met Office. All rights reserved. -! The file LICENCE, distributed with this code, contains details of the terms -! under which the code may be used. +! Copyright (c) 2017, Met Office, on behalf of HMSO and Queen's Printer +! For further details please refer to the file LICENCE.original which you +! should have received as part of this distribution. !----------------------------------------------------------------------------- -module assemble_w2h_from_w2hb_kernel_mod_test +!> Test the assembly of a W2h field from a W2hb field +!> +module assemble_w2h_from_w2hb_mod_test - use contants_mod, only: i_def, r_solver + use constants_mod, only : i_def, r_solver use funit implicit none private - public :: test_all contains - @test - subroutine test_all() + @Test + subroutine test_all( ) - use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_code + use assemble_w2h_from_w2hb_mod, only: assemble_w2h_from_w2hb_code implicit none - integer(kind=i_def), parameter :: nlayers = 1 - integer(kind=i_def), parameter :: ndf_w2_broken = 4 - integer(kind=i_def), parameter :: ndf_w2 = 4 - integer(kind=i_def), parameter :: undf_w2_broken = 4*nlayers - integer(kind=i_def), parameter :: undf_w2 = 4*nlayers - integer(kind=i_def), dimension(ndf_w2_broken) :: map_w2_broken - integer(kind=i_def), dimension(ndf_w2) :: map_w2 - - real(kind=r_solver), parameter :: tol = 1.0e-6_r_def - - real(kind=r_solver), dimension(undf_w2) :: field_w2, answer - real(kind=r_solver), dimension(undf_w2_broken) :: field_w2_broken - - map_w2_broken = (/1, 2, 3, 4/) - map_w2 = map_w2_broken - - field_w2 = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) - field_w2_broken = field_w2 - answer = field_w2 + field_w2_broken - - call assemble_w2h_from_w2hb_code( nlayers, & - field_w2, & - field_w2_broken, & - ndf_w2, & - undf_w2, & - map_w2, & - ndf_w2_broken, & - undf_w2_broken, & - map_w2_broken & - ) - - @assertEqual( answer, field_w2, tol ) + real(r_solver), parameter :: tol = 1.0e-6_r_solver + + integer(i_def), parameter :: ncells = 2 + integer(i_def), parameter :: nlayers = 1 + integer(i_def), parameter :: ndf_w2h = 2 + integer(i_def), parameter :: undf_w2h = ndf_w2h*nlayers + integer(i_def), parameter :: ndf_w2hb = 2 + integer(i_def), parameter :: undf_w2hb = ndf_w2hb*nlayers*ncells + + integer(i_def), dimension( ndf_w2h, ncells ) :: map_w2h + integer(i_def), dimension( ndf_w2hb, ncells ) :: map_w2hb + + real(r_solver), dimension( undf_w2h ) :: field_w2h + real(r_solver), dimension( undf_w2hb ) :: field_w2hb + real(r_solver), dimension( undf_w2h ) :: answer + + ! Assume a biperiodic mesh with two cells + ! Locations of W2 dofs + ! |---|---| + ! 1 2 1 + ! |---|---| + map_w2h(:,1) = (/ 1, nlayers+1 /) + map_w2h(:,2) = (/ nlayers+1, 1 /) + ! + ! Locations of W2b dofs + ! |---|---| + ! |1 2|3 4| + ! |---|---| + map_w2hb(:,1) = (/ 1, nlayers+1 /) + map_w2hb(:,2) = (/ 2*nlayers+1, 3*nlayers+1 /) + + field_w2h = (/ 3.0_r_solver, 4.0_r_solver /) + + field_w2hb = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) + + + call assemble_w2h_from_w2hb_code( nlayers, & + field_w2h, & + field_w2hb, & + ndf_w2h, & + undf_w2h, & + map_w2h, & + ndf_w2hb, & + undf_w2hb, & + map_w2hb & + ) + + ! field_w2h should equal it's initial value plus the two + ! adjacent w2hb values + answer = (/ 6.0_r_solver, 11.0_r_solver /) + + @assertEqual(answer, field_w2h, tol) end subroutine test_all -end module assemble_w2h_from_w2hb_kernel_mod_test - +end module assemble_w2h_from_w2hb_mod_test diff --git a/science/gungho/unit-test/kernel/solver/schur_backsub_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/schur_backsub_kernel_mod_test.pf index fcbb7509..dfd8397d 100644 --- a/science/gungho/unit-test/kernel/solver/schur_backsub_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/schur_backsub_kernel_mod_test.pf @@ -50,7 +50,7 @@ contains real(r_solver), dimension(ncell, ndf_w2, ndf_w3) :: Grad ! Fields - real(r_solver), dimension(undf_w2) :: rhs, mask, z, y + real(r_solver), dimension(undf_w2) :: rhs, mask, y real(r_solver), dimension(undf_w2h) :: Luv real(r_solver), dimension(undf_w2v) :: Lw real(r_solver), dimension(undf_w3) :: x @@ -73,7 +73,6 @@ contains ! Set up the fields y = (/ 0.0_r_solver, 1.0_r_solver, 3.0_r_solver, -2.0_r_solver /) - z = (/ 2.4_r_solver, 0.4_r_solver, 7.3_r_solver, 1.2_r_solver /) x = (/ 1.2_r_solver /) rhs = (/ 6.3_r_solver, 6.7_r_solver, 4.2_r_solver, 7.5_r_solver /) Luv = 0.0_r_solver @@ -87,7 +86,6 @@ contains ncell, & Grad, & y, & - z, & lam, mask, & ndf_w2h, undf_w2h, map_w2h, & ndf_w2v, undf_w2v, map_w2v, & @@ -95,7 +93,7 @@ contains ndf_w3, undf_w3, map_w3 ) do df = 1, ndf_w2h - answer = mask(df)*( 0.5_r_solver*rhs(df) + y(df)*z(df)*grad(1,df,1)*x(1)) + answer = mask(df)*( 0.5_r_solver*rhs(df) + y(df)*grad(1,df,1)*x(1)) @assertEqual(answer, Luv(df), tol) end do From 5dce45880ef69bd1c531208613437d9a06635b92 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 16 Jan 2026 14:45:57 +0000 Subject: [PATCH 08/34] Remove change to variable hx --- .../opt_apply_variable_hx_kernel_mod.F90 | 45 +------------------ 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 b/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 index 941f88de..1b525436 100644 --- a/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/opt_apply_variable_hx_kernel_mod.F90 @@ -266,7 +266,7 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & real(kind=r_single), dimension(ncell_3d_4,1,1), intent(in) :: m3 ! Internal variables - integer(kind=i_def) :: k, ik, df, nl + integer(kind=i_def) :: k, ik real(kind=r_single), dimension(2) :: t_e real(kind=r_single) :: div_u real(kind=r_single), dimension(0:nlayers-1) :: t_e1_vec, t_e2_vec @@ -280,51 +280,10 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & integer(kind=i_def) :: map_wt1 integer(kind=i_def) :: map_wt2 - real(kind=r_single), dimension(0:nlayers-1,ndf_w2) :: u_col - real(kind=r_single), dimension(0:nlayers-1,2) :: t_col - ! Compute D * u + P3t * Mt^-1 * ( Pt2 * u ) ! Hard wired optimisation for desired configuration (p=0 elements with pt2 ! only acting on vertical components of u ) - if ( .true. ) then - - nl = nlayers-1 - ik = (cell-1)*nlayers + 1 - - do df = 1, ndf_w2 - u_col(:,df) = x(map_w2(df):map_w2(df)+nl) - end do - - t_col(0,1) = mt_inv(map_wt(1)) * p3t(ik,1,1) & - *(pt2(ik,1,5)*u_col(0,5) + pt2(ik,1,6)*u_col(0,6)) - t_col(0,2) = mt_inv(map_wt(2)) * p3t(ik,1,2) & - *(pt2(ik,2,5)*u_col(0,5) + pt2(ik+1,1,5)*u_col(1,5) & - + pt2(ik,2,6)*u_col(0,6) + pt2(ik+1,1,6)*u_col(1,6)) - - t_col(1:nl-1,1) = mt_inv(map_wt(1)+1:map_wt(1)+nl-1) * p3t(ik+1:ik+nl-1,1,1) & - *(pt2(ik+1:ik+nl-1,1,5)*u_col(1:nl-1,5) + pt2(ik:ik+nl-2,2,5)*u_col(0:nl-2,5) & - + pt2(ik+1:ik+nl-1,1,6)*u_col(1:nl-1,6) + pt2(ik:ik+nl-2,2,6)*u_col(0:nl-2,6)) - t_col(1:nl-1,2) = mt_inv(map_wt(2)+1:map_wt(2)+nl-1) * p3t(ik+1:ik+nl-1,1,2) & - *(pt2(ik+1:ik+nl-1,2,5)*u_col(1:nl-1,5) + pt2(ik+2:ik+nl,1,5)*u_col(2:nl,5) & - + pt2(ik+1:ik+nl-1,2,6)*u_col(1:nl-1,6) + pt2(ik+2:ik+nl,1,6)*u_col(2:nl,6)) - - t_col(nl,1) = mt_inv(map_wt(1)+nl) * p3t(ik+nl,1,1) & - *(pt2(ik+nl,1,5)*u_col(nl,5) + pt2(ik+nl-1,2,5)*u_col(nl-1,5) & - + pt2(ik+nl,1,6)*u_col(nl,6) + pt2(ik+nl-1,2,6)*u_col(nl-1,6)) - t_col(nl,2) = mt_inv(map_wt(2)+nl) * p3t(ik+nl,1,2) & - *(pt2(ik+nl,2,5)*u_col(nl,5) + pt2(ik+nl,2,6)*u_col(nl,6)) - - lhs(map_w3(1):map_w3(1)+nl) = rhs_p(map_w3(1):map_w3(1)+nl) & - + m3(ik:ik+nl,1,1)*pressure(map_w3(1):map_w3(1)+nl) & - + sgn*(t_col(:,1) + t_col(:,2)) - do df = 1, ndf_w2 - lhs(map_w3(1):map_w3(1)+nl) = lhs(map_w3(1):map_w3(1)+nl) & - + sgn*div(ik:ik+nl,1,df)*u_col(:,df) - end do - - else - map_w21 = map_w2(1) map_w22 = map_w2(2) map_w23 = map_w2(3) @@ -386,8 +345,6 @@ subroutine opt_apply_variable_hx_code_r_single(cell, & lhs(map_w31+k) = m3(ik,1,1)*pressure(map_w31+k) & + sgn*(div_u + (t_e(1) + t_e(2))) + rhs_p(map_w3(1)+k) - end if - end subroutine opt_apply_variable_hx_code_r_single end module opt_apply_variable_hx_kernel_mod From 214df6a2807c1032b1179c01f6dd7b5b9f3d914f Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Mon, 19 Jan 2026 10:07:45 +0000 Subject: [PATCH 09/34] mod to unit test --- .../core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index b674ef7a..86c98434 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -6,7 +6,7 @@ !> Test the assembly of a W2h field from a W2hb field !> -module assemble_w2h_from_w2hb_mod_test +module assemble_w2h_from_w2hb_kernel_mod_test use constants_mod, only : i_def, r_solver use funit @@ -80,4 +80,4 @@ contains end subroutine test_all -end module assemble_w2h_from_w2hb_mod_test +end module assemble_w2h_from_w2hb_kernel_mod_test From b667e6872b2495cf29dd4d0fdc9141006aa3c8cf Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 20 Jan 2026 11:15:41 +0000 Subject: [PATCH 10/34] Remove unused code and add comments --- .../solver/mixed_operator_alg_mod.x90 | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index c0c31245..c30a148d 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -127,8 +127,6 @@ contains only: matrix_vector_kernel_type use dg_inc_matrix_vector_kernel_mod, & only: dg_inc_matrix_vector_kernel_type - use apply_mixed_operator_kernel_mod, & - only: apply_mixed_operator_kernel_type use apply_mixed_u_operator_kernel_mod, & only: apply_mixed_u_operator_kernel_type use apply_mixed_wp_operator_kernel_mod, & @@ -261,31 +259,31 @@ contains case ( eliminate_variables_discrete ) q32_op => get_eliminated_q32() if ( optimised_operator ) then - if ( .false. ) then - call invoke( name="apply_mixed_operator_new", & - setval_c( yvec_uv, 0.0_r_solver ), & - apply_mixed_operator_kernel_type( yvec_uv, yvec_w, yvec_p, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - mm_vel, p2theta, div_star, m2_diag, & - m3_exner_star, q32_op, p3theta ) ) - else - - ! Create broken y_uv - w2hb_fs => function_space_collection%get_fs(mesh, 0, 0, W2Hbroken) - call y_uv_broken%initialise( w2hb_fs ) - call invoke( name="apply_split_mixed_operator", & - apply_mixed_u_operator_kernel_type( y_uv_broken, & - xvec_uv, xvec_w, xvec_p, & - mm_vel, div_star, m2_diag ), & - setval_c( yvec_uv, 0.0_r_solver ), & - assemble_w2h_from_w2hb_kernel_type(yvec_uv, y_uv_broken), & - apply_mixed_wp_operator_kernel_type( yvec_w, yvec_p, & - xvec_uv, xvec_w, xvec_p, & - ptheta2, mt_lumped_inv, & - mm_vel, p2theta, div_star, m2_diag, & - m3_exner_star, q32_op, p3theta ) ) - end if + ! Compute the lhs of mixed operator in two steps: + ! The first step computes the horizontal wind lhs (yvec_uv), this is done in the broken W2 + ! space to avoid having to halo exchange the input fields. After computation of + ! the broken W2 lhs the continuous W2 lhs is computed which only requires a single + ! halo exchange. + ! The second step computes the vertical wind (yvec_w) & pressure (yvec_p) lhs, since these + ! are horizontally discontinuous fields then there are no further halo exchanges required. + ! Alternatively this code could be computed in a single kernel + ! (apply_mixed_operator_kernel_type), however this appears to have poorer cache usage, + ! resulting in an increased computation time + + ! Create broken y_uv + w2hb_fs => function_space_collection%get_fs(mesh, 0, 0, W2Hbroken) + call y_uv_broken%initialise( w2hb_fs ) + call invoke( name="apply_split_mixed_operator", & + apply_mixed_u_operator_kernel_type( y_uv_broken, & + xvec_uv, xvec_w, xvec_p, & + mm_vel, div_star, m2_diag ), & + setval_c( yvec_uv, 0.0_r_solver ), & + assemble_w2h_from_w2hb_kernel_type(yvec_uv, y_uv_broken), & + apply_mixed_wp_operator_kernel_type( yvec_w, yvec_p, & + xvec_uv, xvec_w, xvec_p, & + ptheta2, mt_lumped_inv, & + mm_vel, p2theta, div_star, m2_diag, & + m3_exner_star, q32_op, p3theta ) ) else ! Create theta' field t_fs => function_space_collection%get_fs( mesh, p_h, p_v, Wtheta ) From 40640945e6ebd0e9008a03380032809dace7467f Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 20 Jan 2026 11:26:25 +0000 Subject: [PATCH 11/34] remove unused test --- ...ly_split_mixed_operator_kernel_mod_test.pf | 63 ------------------- 1 file changed, 63 deletions(-) delete mode 100644 science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf diff --git a/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf deleted file mode 100644 index 7ef5d6b1..00000000 --- a/science/gungho/unit-test/kernel/solver/apply_split_mixed_operator_kernel_mod_test.pf +++ /dev/null @@ -1,63 +0,0 @@ -!----------------------------------------------------------------------------- -! (c) Crown copyright 2026 Met Office. All rights reserved. -! The file LICENCE, distributed with this code, contains details of the terms -! under which the code may be used. -!----------------------------------------------------------------------------- - -module assemble_w2h_from_w2hb_kernel_mod_test - - use contants_mod, only: i_def, r_solver - use funit - - implicit none - - private - - public :: test_all - -contains - - @test - subroutine test_all() - - use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_code - - implicit none - - integer(kind=i_def), parameter :: nlayers = 1 - integer(kind=i_def), parameter :: ndf_w2_broken = 4 - integer(kind=i_def), parameter :: ndf_w2 = 4 - integer(kind=i_def), parameter :: undf_w2_broken = 4*nlayers - integer(kind=i_def), parameter :: undf_w2 = 4*nlayers - integer(kind=i_def), dimension(ndf_w2_broken) :: map_w2_broken - integer(kind=i_def), dimension(ndf_w2) :: map_w2 - - real(kind=r_solver), parameter :: tol = 1.0e-6_r_def - - real(kind=r_solver), dimension(undf_w2) :: field_w2, answer - real(kind=r_solver), dimension(undf_w2_broken) :: field_w2_broken - - map_w2_broken = (/1, 2, 3, 4/) - map_w2 = map_w2_broken - - field_w2 = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) - field_w2_broken = field_w2 - answer = field_w2 + field_w2_broken - - call assemble_w2h_from_w2hb_code( nlayers, & - field_w2, & - field_w2_broken, & - ndf_w2, & - undf_w2, & - map_w2, & - ndf_w2_broken, & - undf_w2_broken, & - map_w2_broken & - ) - - @assertEqual( answer, field_w2, tol ) - - end subroutine test_all - -end module assemble_w2h_from_w2hb_kernel_mod_test - From 01c8c2ca122f60532601265a9fe86675a1413129 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 20 Jan 2026 12:59:34 +0000 Subject: [PATCH 12/34] Fixes for unit tests --- .../apply_mixed_u_operator_kernel_mod.F90 | 52 +++++++++---------- .../assemble_w2h_from_w2hb_kernel_mod_test.pf | 2 +- .../apply_mixed_u_operator_kernel_mod_test.pf | 1 - ...apply_mixed_wp_operator_kernel_mod_test.pf | 7 +-- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 index a68f78d8..03c11120 100644 --- a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 @@ -76,41 +76,41 @@ module apply_mixed_u_operator_kernel_mod !> @param[in] undf_w2 Unique number of degrees of freedom for the 3d wind space !> @param[in] map_w2 Dofmap for the cell at the base of the column for the 3d wind space -subroutine apply_mixed_u_operator_code(cell, & - nlayers, & - lhs_uv, & - wind_uv, wind_w, exner, & - ncell1, mu_cd, & - ncell2, grad, & - norm_u, & +subroutine apply_mixed_u_operator_code(cell, & + nlayers, & + lhs_uv, & + wind_uv, wind_w, exner, & + ncell1, mu_cd, & + ncell2, grad, & + norm_u, & ndf_w2hb, undf_w2hb, map_w2hb, & - ndf_w2h, undf_w2h, map_w2h, & - ndf_w2v, undf_w2v, map_w2v, & - ndf_w3, undf_w3, map_w3, & + ndf_w2h, undf_w2h, map_w2h, & + ndf_w2v, undf_w2v, map_w2v, & + ndf_w3, undf_w3, map_w3, & ndf_w2, undf_w2, map_w2) implicit none ! Arguments - integer(kind=i_def), intent(in) :: cell, nlayers - integer(kind=i_def), intent(in) :: ncell1, ncell2 - integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 - integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h - integer(kind=i_def), intent(in) :: undf_w2hb, ndf_w2hb - integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v - integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 + integer(kind=i_def), intent(in) :: cell, nlayers + integer(kind=i_def), intent(in) :: ncell1, ncell2 + integer(kind=i_def), intent(in) :: undf_w2, ndf_w2 + integer(kind=i_def), intent(in) :: undf_w2h, ndf_w2h + integer(kind=i_def), intent(in) :: undf_w2hb, ndf_w2hb + integer(kind=i_def), intent(in) :: undf_w2v, ndf_w2v + integer(kind=i_def), intent(in) :: undf_w3, ndf_w3 integer(kind=i_def), dimension(ndf_w2hb), intent(in) :: map_w2hb - integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h - integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v - integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 - integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 + integer(kind=i_def), dimension(ndf_w2h), intent(in) :: map_w2h + integer(kind=i_def), dimension(ndf_w2v), intent(in) :: map_w2v + integer(kind=i_def), dimension(ndf_w2), intent(in) :: map_w2 + integer(kind=i_def), dimension(ndf_w3), intent(in) :: map_w3 ! Fields real(kind=r_solver), dimension(undf_w2hb), intent(inout) :: lhs_uv - real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv - real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w - real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u - real(kind=r_solver), dimension(undf_w3), intent(in) :: exner + real(kind=r_solver), dimension(undf_w2h), intent(in) :: wind_uv + real(kind=r_solver), dimension(undf_w2v), intent(in) :: wind_w + real(kind=r_solver), dimension(undf_w2), intent(in) :: norm_u + real(kind=r_solver), dimension(undf_w3), intent(in) :: exner ! Operators real(kind=r_solver), dimension(ncell1, ndf_w2, ndf_w2), intent(in) :: mu_cd @@ -139,7 +139,7 @@ subroutine apply_mixed_u_operator_code(cell, & iw2 = map_w2(df) lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, df, df2)*wind_uv(map_w2h(df2):map_w2h(df)+nm1) + mu_cd(ij:ij+nm1, df, df2)*wind_uv(map_w2h(df2):map_w2h(df2)+nm1) end do end do do df2 = 1, ndf_w2v diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index 86c98434..0535e524 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -21,7 +21,7 @@ contains @Test subroutine test_all( ) - use assemble_w2h_from_w2hb_mod, only: assemble_w2h_from_w2hb_code + use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_code implicit none diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf index 7a3dddaf..e7216c24 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf @@ -91,7 +91,6 @@ contains ndf_w2h, undf_w2h, map_w2h, & ndf_w2v, undf_w2v, map_w2v, & ndf_w3, undf_w3, map_w3, & - ndf_wt, undf_wt, map_wt, & ndf_w2, undf_w2, map_w2) do df = 1,ndf_w2h answer = Nu(df)*(Mu(df,df,1)*uv(df) - Grad(df,1,1)*p(1)) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf index 36b4b5f7..bba6b841 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf @@ -60,14 +60,15 @@ contains real(r_solver), dimension(ndf_w3, ndf_w2, ncell) :: Q32 ! Fields - real(r_solver), dimension(undf_w2) :: Nu, u + real(r_solver), dimension(undf_w2) :: Nu real(r_solver), dimension(undf_w2h) :: uv real(r_solver), dimension(undf_w2v) :: Lw, w real(r_solver), dimension(undf_wt) :: invMt real(r_solver), dimension(undf_w3) :: p, Lp real(r_solver), dimension(undf_wt) :: t + real(r_solver), dimension(ndf_w2) :: u - integer(i_def) :: df, dfv + integer(i_def) :: df, dfv, k real(r_solver) :: answer map_w2h = (/ 1_i_def, 1_i_def + nlayers /) @@ -133,7 +134,7 @@ contains k = 2 do dfv = 1,ndf_w2v df = ndf_w2h+dfv - answer = Nu(df+k)*(Mu(df,df,k)*uv(df) - sum(P2t(df,:,k)*t(:)) - Grad(df,1,k)*p(1+k)) + answer = Nu(df+k)*(Mu(df,df,k)*uv(df) - sum(P2t(df,:,k)*t(3:4)) - Grad(df,1,k)*p(1+k)) @assertEqual(answer, Lw(dfv+k), tol) end do From 883de67b81afb461665ab7c73d95c65df6ff139a Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Thu, 22 Jan 2026 15:36:27 +0000 Subject: [PATCH 13/34] Fix to unit tests and KGO updates --- ...2000x2000_azspice_gnu_fast-debug-64bit.txt | 6 +- ...ic-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...1-C24s_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...C24_MG_op_azspice_gnu_fast-debug-64bit.txt | 6 +- ...G_azspice_gnu_fast-debug-64bit-rtran32.txt | 6 +- ...rt-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...0-100x100_azspice_gnu_fast-debug-64bit.txt | 6 +- ...00-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...og-C48_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...01-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...er-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...ke-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...ez-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...in-C48_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...0x8-10x10_azspice_gnu_fast-debug-64bit.txt | 8 +-- ...0x8-10x10_azspice_gnu_fast-debug-64bit.txt | 8 +-- ...br-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...C24_MG_op_azspice_gnu_fast-debug-64bit.txt | 6 +- ...G_azspice_gnu_fast-debug-64bit-rtran32.txt | 6 +- ...96_MG_lam_azspice_gnu_fast-debug-64bit.txt | 6 +- ...am_rotate_azspice_gnu_fast-debug-64bit.txt | 6 +- ...8-500x500_azspice_gnu_fast-debug-64bit.txt | 6 +- ...1000x1000_azspice_gnu_fast-debug-64bit.txt | 6 +- ...inear-C12_azspice_gnu_fast-debug-64bit.txt | 2 +- ...er-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...1000x2000_azspice_gnu_fast-debug-64bit.txt | 6 +- ...8-200x200_azspice_gnu_fast-debug-64bit.txt | 6 +- ...4-200x200_azspice_gnu_fast-debug-64bit.txt | 6 +- ...200x50_op_azspice_gnu_fast-debug-64bit.txt | 6 +- ...0_azspice_gnu_fast-debug-64bit-rtran32.txt | 6 +- ...th-C24_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...4s_rot_MG_azspice_gnu_fast-debug-64bit.txt | 6 +- ...x8-2000x2000_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...linic-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...alt1-C24s_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...t2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...-alt3-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...-pert-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...0x10-100x100_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...ip200-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...lorog-C48_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...ip301-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...piter-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...-like-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...uarez-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...omain-C48_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...P100x8-10x10_ex1a_gnu_fast-debug-64bit.txt | 8 +-- ...P100x8-10x10_ex1a_gnu_fast-debug-64bit.txt | 8 +-- ...l_sbr-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...t2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...4_MG_ex1a_gnu_fast-debug-64bit-rtran32.txt | 6 +- ...m-n96_MG_lam_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...G_lam_rotate_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...00x8-500x500_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...x4-1000x1000_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...r-linear-C12_ex1a_gnu_fast-debug-64bit.txt | 2 +- ...piter-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...x8-1000x2000_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...56x8-200x200_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...56x4-200x200_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...16-200x50_op_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...56x8-200x200_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...earth-C24_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...-C24s_rot_MG_ex1a_gnu_fast-debug-64bit.txt | 6 +- ...inear-C12_azspice_gnu_fast-debug-64bit.txt | 2 +- ...inear-C12_azspice_gnu_full-debug-64bit.txt | 2 +- ..._gal9-C12_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...fault-C12_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...lt-C12_op_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...r-linear-C12_ex1a_cce_fast-debug-64bit.txt | 2 +- ...nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt | 14 ++--- ..._default-C12_ex1a_cce_fast-debug-64bit.txt | 14 ++--- ...fault-C12_op_ex1a_cce_fast-debug-64bit.txt | 14 ++--- ...lanet-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...1214b-C12_azspice_gnu_fast-debug-32bit.txt | 4 +- ..._gal9-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ..._chem-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...9458b-C24_azspice_gnu_fast-debug-32bit.txt | 6 +- ...casim-C12_azspice_gnu_fast-debug-32bit.txt | 18 +++--- ...coma9-C12_azspice_gnu_fast-debug-32bit.txt | 16 ++--- ...h_dev-C12_azspice_gnu_fast-debug-32bit.txt | 16 ++--- ..._gal9-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ..._gal9-C12_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...l9-C48_MG_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...-pert-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...ro-C48_MG_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...l9_da-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...debug-C12_azspice_gnu_full-debug-32bit.txt | 12 ++-- ...ug-C48_MG_azspice_gnu_full-debug-32bit.txt | 12 ++-- ...9_eda-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ..._jada-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...9_mol-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...short-C12_azspice_gnu_fast-debug-32bit.txt | 14 ++--- ...3-seuk_MG_azspice_gnu_fast-debug-32bit.txt | 16 ++--- ...s-seuk_MG_azspice_gnu_fast-debug-32bit.txt | 16 ++--- ...l-seuk_MG_azspice_gnu_fast-debug-32bit.txt | 16 ++--- ...0x1500_MG_azspice_gnu_fast-debug-32bit.txt | 12 ++-- ...n1-C48_MG_azspice_gnu_fast-debug-32bit.txt | 4 +- ...uaplanet-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._gj1214b-C12_ex1a_cce_fast-debug-32bit.txt | 4 +- ...lim_gal9-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...l9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...l9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 12 ++-- ...l9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 12 ++-- ...al9_chem-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._chem_1T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._chem_2T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...1500x1500_MG_ex1a_cce_fast-debug-32bit.txt | 12 ++-- ...d209458b-C24_ex1a_cce_fast-debug-32bit.txt | 6 +- ...wp_casim-C12_ex1a_cce_fast-debug-32bit.txt | 18 +++--- ...wp_coma9-C12_ex1a_cce_fast-debug-32bit.txt | 16 ++--- ...orph_dev-C12_ex1a_cce_fast-debug-32bit.txt | 16 ++--- ...morph_tb-C12_ex1a_cce_fast-debug-32bit.txt | 16 ++--- ...nwp_gal9-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt | 14 ++--- ..._gal9-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...al9-pert-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ..._aero-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...eaded-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...eaded-C48_MG_ex1a_gnu_fast-debug-32bit.txt | 14 ++--- ..._gal9_da-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...l9_debug-C12_ex1a_cce_full-debug-32bit.txt | 12 ++-- ...debug-C48_MG_ex1a_cce_full-debug-32bit.txt | 14 ++--- ...gal9_eda-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...eda_jada-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...gal9_mol-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...oukca_1T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...ca_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...oukca_2T-C12_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...ca_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...ca_2T-C48_MG_ex1a_cce_full-debug-32bit.txt | 14 ++--- ...ca_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...l9_short-C12_ex1a_cce_fast-debug-32bit.txt | 12 ++-- ...ral3-seuk_MG_ex1a_cce_fast-debug-32bit.txt | 16 ++--- ..._ens-seuk_MG_ex1a_cce_fast-debug-32bit.txt | 14 ++--- ...xmol-seuk_MG_ex1a_cce_fast-debug-32bit.txt | 10 ++-- ...1500x1500_MG_ex1a_cce_fast-debug-32bit.txt | 12 ++-- ..._ben1-C48_MG_ex1a_cce_fast-debug-32bit.txt | 6 +- ...nwp_gal9-C48_ex1a_cce_fast-debug-64bit.txt | 14 ++--- ...ip301-C24_azspice_gnu_fast-debug-64bit.txt | 6 +- ...l9-C12_MG_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...om-C12_MG_azspice_gnu_fast-debug-64bit.txt | 14 ++--- ...licit-C12_azspice_gnu_fast-debug-64bit.txt | 6 +- ...dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt | 6 +- ..._gal9-C12_MG_ex1a_gnu_fast-debug-64bit.txt | 14 ++--- ...andom-C12_MG_ex1a_gnu_fast-debug-64bit.txt | 14 ++--- ...implicit-C12_ex1a_gnu_fast-debug-64bit.txt | 6 +- .../solver/mixed_operator_alg_mod.x90 | 2 +- .../apply_mixed_u_operator_kernel_mod.F90 | 2 +- .../apply_mixed_wp_operator_kernel_mod.F90 | 2 +- .../assemble_w2h_from_w2hb_kernel_mod_test.pf | 27 +++++---- ...apply_mixed_wp_operator_kernel_mod_test.pf | 60 ++++++++++--------- 154 files changed, 779 insertions(+), 770 deletions(-) diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_azspice_gnu_fast-debug-64bit.txt index 02a626e5..e7db1972 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40DAA271B80432F1 -Inner product checksum theta = 42418E8249EA97ED -Inner product checksum u = 43F0A73C14A3943D +Inner product checksum rho = 40DAA271B80432EE +Inner product checksum theta = 42418E8249EA97EC +Inner product checksum u = 43F0A73C14A39422 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-C24_MG_azspice_gnu_fast-debug-64bit.txt index ca1a79dc..52e45dc2 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2F2B2244799D0 -Inner product checksum theta = 4210411A3418E006 -Inner product checksum u = 4501AC432146D718 +Inner product checksum rho = 40E2F2B224670998 +Inner product checksum theta = 4210411A3415238B +Inner product checksum u = 4501AC43237805FE diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt1-C24s_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt1-C24s_MG_azspice_gnu_fast-debug-64bit.txt index 1839f357..849858d0 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt1-C24s_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt1-C24s_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E31B5B7CB337D5 -Inner product checksum theta = 4210461DE3B34870 -Inner product checksum u = 4500F56A544F1F86 +Inner product checksum rho = 40E31B5BE7BD919A +Inner product checksum theta = 4210461DFF525960 +Inner product checksum u = 4500F52EDECFC16C diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt index 061be97c..3b2b948c 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2EB31AEAB0690 -Inner product checksum theta = 42104262EDCF9F78 -Inner product checksum u = 4501DA5CB5DBC24B +Inner product checksum rho = 40E2EB31AEB4C603 +Inner product checksum theta = 42104262EDCEE39B +Inner product checksum u = 4501DA5CB5DBF453 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt index 58c743fc..3ed29f99 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2F34133893AE6 -Inner product checksum theta = 421041C1BC787C3E -Inner product checksum u = 4501D87B2966270E +Inner product checksum rho = 40E2F342C08629AD +Inner product checksum theta = 421041C191162823 +Inner product checksum u = 4501D8905F18DD52 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-pert-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-pert-C24_MG_azspice_gnu_fast-debug-64bit.txt index 6ccaf371..9f18c821 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-pert-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_baroclinic-pert-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2E61079810D0E -Inner product checksum theta = 4210435EB2DDC0F1 -Inner product checksum u = 4501348CFD77EA40 +Inner product checksum rho = 40E2E610798110FE +Inner product checksum theta = 4210435EB2DDB675 +Inner product checksum u = 4501348CFD7333AA diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_azspice_gnu_fast-debug-64bit.txt index 019d1c4b..fd3c666a 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40FE89845A997E06 -Inner product checksum theta = 4210F00A9EEFEDF3 -Inner product checksum u = 42EF4B7C9D6C01D8 +Inner product checksum rho = 40FE89845A99A701 +Inner product checksum theta = 4210F00A9EEFEDA9 +Inner product checksum u = 42EF4B7C9D609EB3 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200-C24_MG_azspice_gnu_fast-debug-64bit.txt index 64287df9..0b0b0c4b 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E8E802280ABCF8 -Inner product checksum theta = 4204E59A63CB78B4 -Inner product checksum u = 4391E522B368BE24 +Inner product checksum rho = 40E8E802280ABD04 +Inner product checksum theta = 4204E59A63CB78B5 +Inner product checksum u = 4391E522B345D96A diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200_realorog-C48_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200_realorog-C48_MG_azspice_gnu_fast-debug-64bit.txt index 0872d11c..2a87de99 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200_realorog-C48_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip200_realorog-C48_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41094B0D90339E0A -Inner product checksum theta = 4224DF77B2266354 -Inner product checksum u = 438852006BE9E2CD +Inner product checksum rho = 41094B0D90339E11 +Inner product checksum theta = 4224DF77B226634E +Inner product checksum u = 438852006BBF0069 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip301-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip301-C24_MG_azspice_gnu_fast-debug-64bit.txt index 81c9f650..90f688cf 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip301-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_dcmip301-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D3FF37BCAE739E -Inner product checksum theta = 41EC4ACBE79A8587 -Inner product checksum u = 44176CD1D18E18FC +Inner product checksum rho = 40D3FF37BCAE7397 +Inner product checksum theta = 41EC4ACBE79A8479 +Inner product checksum u = 44176CD1D18E2AF5 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_deep-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_deep-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt index 862dd9a4..7117f8d3 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_deep-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_deep-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EEEF2D423E478C -Inner product checksum theta = 42E4D05A8BCEE836 -Inner product checksum u = 475B46A9C47FB04E +Inner product checksum rho = 40EEEF2D423E47BE +Inner product checksum theta = 42E4D05A8BCEE09F +Inner product checksum u = 475B46A9C47FC79A diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_earth-like-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_earth-like-C24_MG_azspice_gnu_fast-debug-64bit.txt index b151550e..41856d80 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_earth-like-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_earth-like-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D56C9EE61BBD77 -Inner product checksum theta = 42198C1850B2D34C -Inner product checksum u = 44E3B95E1E2FF310 +Inner product checksum rho = 40D56C9EE61BC3C6 +Inner product checksum theta = 42198C1850B2D755 +Inner product checksum u = 44E3B95E1E224412 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_held-suarez-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_held-suarez-C24_MG_azspice_gnu_fast-debug-64bit.txt index 703cb92c..a4e540f2 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_held-suarez-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_held-suarez-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E34359B7C75475 -Inner product checksum theta = 421168C83D5BA43A -Inner product checksum u = 45082CCFC2F9E7D0 +Inner product checksum rho = 40E34359B8C1F51B +Inner product checksum theta = 421168C83D475CC1 +Inner product checksum u = 45082CCFCF94E9A7 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_lfric-real-domain-C48_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_lfric-real-domain-C48_MG_azspice_gnu_fast-debug-64bit.txt index ef2d843f..8ef5f287 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_lfric-real-domain-C48_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_lfric-real-domain-C48_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 4122BD52DCC8006A -Inner product checksum theta = 4240B2570BC700C9 -Inner product checksum u = 44F9DB80026D577A +Inner product checksum rho = 4122BD52DCC8C879 +Inner product checksum theta = 4240B2570BC6116F +Inner product checksum u = 44F9DB80028C7ED8 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt index 3a9e384d..02c3f943 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt @@ -1,7 +1,7 @@ -Inner product checksum rho = 41002AB9840956BE -Inner product checksum theta = 4204AB102F77F16E -Inner product checksum u = 42156E231FAF40B2 -Inner product checksum mr1 = 4047451938CF964E +Inner product checksum rho = 41002AB8C8C39016 +Inner product checksum theta = 4204AB102FFEA088 +Inner product checksum u = 42156E16EC9E94D3 +Inner product checksum mr1 = 40474517C0369F04 Inner product checksum mr2 = 0 Inner product checksum mr3 = 0 Inner product checksum mr4 = 0 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt index 072ad5f3..fd6edf7b 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_azspice_gnu_fast-debug-64bit.txt @@ -1,7 +1,7 @@ -Inner product checksum rho = 410029843CDCD5BA -Inner product checksum theta = 4204AB0A9C94010A -Inner product checksum u = 4218421EDC590CAE -Inner product checksum mr1 = 4047C516C5BD62B3 +Inner product checksum rho = 410029831ECEAE7E +Inner product checksum theta = 4204AB0A9B9CB929 +Inner product checksum u = 421842DE12830D66 +Inner product checksum mr1 = 4047C514B4591394 Inner product checksum mr2 = 0 Inner product checksum mr3 = 0 Inner product checksum mr4 = 0 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-C24_MG_azspice_gnu_fast-debug-64bit.txt index f1aede88..2151738e 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030D58C35909BB -Inner product checksum theta = 42475B42A25CA186 -Inner product checksum u = 456062CEF51C1324 +Inner product checksum rho = 41030D58C3582FBC +Inner product checksum theta = 42475B42A261EF2F +Inner product checksum u = 456062CEF51C79C2 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt index 231eb15f..cbe07ff1 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt2-C24_MG_op_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030D6C13692114 -Inner product checksum theta = 42476BF6F9CB0DCA -Inner product checksum u = 4560B547977FC8C4 +Inner product checksum rho = 41030D6C13704D59 +Inner product checksum theta = 42476BF6F9CA5B22 +Inner product checksum u = 4560B5479772DE2C diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt index b1ccd280..b8bba792 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr-alt3-C24_MG_azspice_gnu_fast-debug-64bit-rtran32.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030F18BC7F8C28 -Inner product checksum theta = 42476C6988C931C5 -Inner product checksum u = 4560A0F426171C4B +Inner product checksum rho = 41030F18BA3F41D1 +Inner product checksum theta = 42476C698981F562 +Inner product checksum u = 4560A0F40D52D12B diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_azspice_gnu_fast-debug-64bit.txt index ee57adc9..6e530e5e 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E316DD570F220F -Inner product checksum theta = 420BC551F61B38E2 -Inner product checksum u = 44FD3CA2A85DEBBE +Inner product checksum rho = 40E316DD570E3D6C +Inner product checksum theta = 420BC551F61B3002 +Inner product checksum u = 44FD3CA2A860113C diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_azspice_gnu_fast-debug-64bit.txt index e429b368..daabcd1f 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E3144534D19E42 -Inner product checksum theta = 420BC6A55E4A9D00 -Inner product checksum u = 44FDCE146C2777B3 +Inner product checksum rho = 40E3144534D1406C +Inner product checksum theta = 420BC6A55E4A92B9 +Inner product checksum u = 44FDCE146C254141 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-BiP200x8-500x500_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-BiP200x8-500x500_azspice_gnu_fast-debug-64bit.txt index 5697a881..598f9648 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-BiP200x8-500x500_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-BiP200x8-500x500_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E1E481066A1517 -Inner product checksum theta = 421139232C3CEFAD -Inner product checksum u = 4393A3C2C7771420 +Inner product checksum rho = 40E1E481066A1634 +Inner product checksum theta = 421139232C3CEE2A +Inner product checksum u = 4393A3C2C7769A02 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_azspice_gnu_fast-debug-64bit.txt index ffb0744c..dfe041ef 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40C1E430BB50B842 -Inner product checksum theta = 41F13953C0455668 -Inner product checksum u = 4393B8DB189F0BA8 +Inner product checksum rho = 40C1E430BB50BBFC +Inner product checksum theta = 41F13953C04557DA +Inner product checksum u = 4393B8DB189E9C68 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_semi-implicit-for-linear-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_semi-implicit-for-linear-C12_azspice_gnu_fast-debug-64bit.txt index c420fe8e..3678d4bb 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_semi-implicit-for-linear-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_semi-implicit-for-linear-C12_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ Inner product checksum rho = 40A3EC6A14AC655B Inner product checksum theta = 41BEDEE1880FB475 -Inner product checksum u = 4316BFB1C72C3612 +Inner product checksum u = 4316BFB1C87E4CB4 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_shallow-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_shallow-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt index a4b7337b..80417650 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_shallow-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_shallow-hot-jupiter-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 400CE3D8ABA81BA3 -Inner product checksum theta = 426EFB4062696458 -Inner product checksum u = 46E90B314646D0A4 +Inner product checksum rho = 400CE3D8AB9EE6EF +Inner product checksum theta = 426EFB40626338A1 +Inner product checksum u = 46E90B31492B9E29 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_azspice_gnu_fast-debug-64bit.txt index ffe89fd9..8f9469a3 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40CBD086E89B5CBC -Inner product checksum theta = 41E3A4D10A00A1F3 -Inner product checksum u = 4400A7C1E614149E +Inner product checksum rho = 40CBD086E89B5CB8 +Inner product checksum theta = 41E3A4D10A00A1E5 +Inner product checksum u = 4400A7C1E6141466 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-BiP256x8-200x200_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-BiP256x8-200x200_azspice_gnu_fast-debug-64bit.txt index a9509981..f9a3053f 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-BiP256x8-200x200_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-BiP256x8-200x200_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EA1721E2B197EA -Inner product checksum theta = 41F69B200F92D0F4 -Inner product checksum u = 432D54F6E8799F07 +Inner product checksum rho = 40EA1721E2B1BCD4 +Inner product checksum theta = 41F69B200F927E56 +Inner product checksum u = 432D54F6E82B741E diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_azspice_gnu_fast-debug-64bit.txt index bc0ca551..b3ad8201 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40DA171CE530F4BE -Inner product checksum theta = 41E69B0DAB767A1C -Inner product checksum u = 431CEA8125082548 +Inner product checksum rho = 40DA171CE3E1C133 +Inner product checksum theta = 41E69B0DAEB5A2EC +Inner product checksum u = 431CEA80FFBD7029 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_azspice_gnu_fast-debug-64bit.txt index 1b24646b..e2553efc 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40FA16E969D70AC8 -Inner product checksum theta = 42069BF1BB714707 -Inner product checksum u = 42FFC30F4E941145 +Inner product checksum rho = 40FA16E969D9ADBC +Inner product checksum theta = 42069BF1BB6B3AAE +Inner product checksum u = 42FFC30F50D36E92 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_azspice_gnu_fast-debug-64bit-rtran32.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_azspice_gnu_fast-debug-64bit-rtran32.txt index 00c69e3b..741150fb 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_azspice_gnu_fast-debug-64bit-rtran32.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_azspice_gnu_fast-debug-64bit-rtran32.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EA1719B7A85796 -Inner product checksum theta = 41F69B1F274ACBE8 -Inner product checksum u = 432E6914CA3F2AB7 +Inner product checksum rho = 40EA1719B3F807A5 +Inner product checksum theta = 41F69B1F286ED724 +Inner product checksum u = 432E691969346DF4 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24_MG_azspice_gnu_fast-debug-64bit.txt index 34c6e565..5a588b8b 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D4230A146F2CC0 -Inner product checksum theta = 421AE83CAB39A57E -Inner product checksum u = 44D53ECE9B74C51B +Inner product checksum rho = 40D4230A14F7CACC +Inner product checksum theta = 421AE83CAB36075A +Inner product checksum u = 44D53EDC44848518 diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_azspice_gnu_fast-debug-64bit.txt index 8513b330..63000feb 100644 --- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D3B0E5F5D41340 -Inner product checksum theta = 421AFAE9E4BE5D88 -Inner product checksum u = 44D4479F148C12A2 +Inner product checksum rho = 40D3B0E733059B5F +Inner product checksum theta = 421AFAE91B891446 +Inner product checksum u = 44D443EF8CB08882 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_ex1a_gnu_fast-debug-64bit.txt index e527b8df..e7db1972 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_agnesi_hyd_cart-BiP120x8-2000x2000_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40DAA271B80432F0 -Inner product checksum theta = 42418E8249EA97ED -Inner product checksum u = 43F0A73C14A3943C +Inner product checksum rho = 40DAA271B80432EE +Inner product checksum theta = 42418E8249EA97EC +Inner product checksum u = 43F0A73C14A39422 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 1b949d92..8c67e23f 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2F2B22483EA3D -Inner product checksum theta = 4210411A3410C3C7 -Inner product checksum u = 4501AC432284CD82 +Inner product checksum rho = 40E2F2B2246A07FD +Inner product checksum theta = 4210411A34141D34 +Inner product checksum u = 4501AC432220ABA1 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt1-C24s_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt1-C24s_MG_ex1a_gnu_fast-debug-64bit.txt index 09869fdd..9926f562 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt1-C24s_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt1-C24s_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E31B4D10BF0DA0 -Inner product checksum theta = 4210461F9BB0AAAE -Inner product checksum u = 4500F4E3AE6CD8D8 +Inner product checksum rho = 40E31B57FB56C28B +Inner product checksum theta = 4210461EBD1C09DD +Inner product checksum u = 4500F50E9B2378D6 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt index 6ffb8119..2cadd1d6 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2EB31AEB7AC54 -Inner product checksum theta = 42104262EDCE8094 -Inner product checksum u = 4501DA5CB6E76460 +Inner product checksum rho = 40E2EB31AE95DD26 +Inner product checksum theta = 42104262EDD1A3D6 +Inner product checksum u = 4501DA5CB56AC4C4 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt3-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt3-C24_MG_ex1a_gnu_fast-debug-64bit.txt index dcdf764c..70e360c3 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt3-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-alt3-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2F3443865F0C8 -Inner product checksum theta = 421041C0A40F716F -Inner product checksum u = 4501D87BC37CB1BA +Inner product checksum rho = 40E2F344387CD754 +Inner product checksum theta = 421041C0A40ECB7E +Inner product checksum u = 4501D87BC56E88BD diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-pert-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-pert-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 4ddcb7e1..52c76bce 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-pert-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_baroclinic-pert-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E2E61079810B7E -Inner product checksum theta = 4210435EB2DDAEFC -Inner product checksum u = 4501348CFD711AFA +Inner product checksum rho = 40E2E6107980FD66 +Inner product checksum theta = 4210435EB2DDA492 +Inner product checksum u = 4501348CFD745E06 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_ex1a_gnu_fast-debug-64bit.txt index a33fd4a1..cf12c4bb 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_bryan_fritsch-dry-BiP200x10-100x100_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40FE89845A997E06 -Inner product checksum theta = 4210F00A9EEFEDF3 -Inner product checksum u = 42EF4B7C9D6C01D9 +Inner product checksum rho = 40FE89845A99A702 +Inner product checksum theta = 4210F00A9EEFEDA9 +Inner product checksum u = 42EF4B7C9D609EB4 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200-C24_MG_ex1a_gnu_fast-debug-64bit.txt index a449fc5d..4a3c842e 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E8E802280ABCFA -Inner product checksum theta = 4204E59A63CB78B2 -Inner product checksum u = 4391E522B31489D4 +Inner product checksum rho = 40E8E802280ABCFD +Inner product checksum theta = 4204E59A63CB78BA +Inner product checksum u = 4391E522B3045453 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200_realorog-C48_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200_realorog-C48_MG_ex1a_gnu_fast-debug-64bit.txt index a4fa9f02..1bc5bbad 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200_realorog-C48_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip200_realorog-C48_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41094B0D90339E14 -Inner product checksum theta = 4224DF77B226634F -Inner product checksum u = 438852006BFEBBA6 +Inner product checksum rho = 41094B0D90339E0A +Inner product checksum theta = 4224DF77B226635A +Inner product checksum u = 438852006C521A1B diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip301-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip301-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 317fe4b7..ca4b35a8 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip301-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_dcmip301-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D3FF37BCAE7576 -Inner product checksum theta = 41EC4ACBE79A8562 -Inner product checksum u = 44176CD1D18E1C00 +Inner product checksum rho = 40D3FF37BCAE768E +Inner product checksum theta = 41EC4ACBE79A813C +Inner product checksum u = 44176CD1D18E1F8D diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_deep-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_deep-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt index abd06784..a5ca42ec 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_deep-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_deep-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EEEF2D423E47A9 -Inner product checksum theta = 42E4D05A8BCEE302 -Inner product checksum u = 475B46A9C47FC6D6 +Inner product checksum rho = 40EEEF2D423E47B8 +Inner product checksum theta = 42E4D05A8BCEE409 +Inner product checksum u = 475B46A9C47FAE45 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_earth-like-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_earth-like-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 4ef335a9..23e2af56 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_earth-like-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_earth-like-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D56C9EE61BC02A -Inner product checksum theta = 42198C1850B2D284 -Inner product checksum u = 44E3B95E1E476DC8 +Inner product checksum rho = 40D56C9EE61BC316 +Inner product checksum theta = 42198C1850B2D534 +Inner product checksum u = 44E3B95E1E3659CE diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_held-suarez-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_held-suarez-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 75bfdf0c..4c22bf94 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_held-suarez-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_held-suarez-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E34359B80C5804 -Inner product checksum theta = 421168C83D4A79F3 -Inner product checksum u = 45082CCFCECDD575 +Inner product checksum rho = 40E34359BE60DD69 +Inner product checksum theta = 421168C83C59A6DF +Inner product checksum u = 45082CD01E2731A4 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_lfric-real-domain-C48_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_lfric-real-domain-C48_MG_ex1a_gnu_fast-debug-64bit.txt index 9a03afb2..56de6557 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_lfric-real-domain-C48_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_lfric-real-domain-C48_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 4122BD52DCC6D87A -Inner product checksum theta = 4240B2570BC5F2DA -Inner product checksum u = 44F9DB8002644CBC +Inner product checksum rho = 4122BD52DCC9E6EB +Inner product checksum theta = 4240B2570BC5E580 +Inner product checksum u = 44F9DB8002ADEC3D diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt index 3a9e384d..02c3f943 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-lam-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt @@ -1,7 +1,7 @@ -Inner product checksum rho = 41002AB9840956BE -Inner product checksum theta = 4204AB102F77F16E -Inner product checksum u = 42156E231FAF40B2 -Inner product checksum mr1 = 4047451938CF964E +Inner product checksum rho = 41002AB8C8C39016 +Inner product checksum theta = 4204AB102FFEA088 +Inner product checksum u = 42156E16EC9E94D3 +Inner product checksum mr1 = 40474517C0369F04 Inner product checksum mr2 = 0 Inner product checksum mr3 = 0 Inner product checksum mr4 = 0 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt index 072ad5f3..fd6edf7b 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_robert-moist-smag-BiP100x8-10x10_ex1a_gnu_fast-debug-64bit.txt @@ -1,7 +1,7 @@ -Inner product checksum rho = 410029843CDCD5BA -Inner product checksum theta = 4204AB0A9C94010A -Inner product checksum u = 4218421EDC590CAE -Inner product checksum mr1 = 4047C516C5BD62B3 +Inner product checksum rho = 410029831ECEAE7E +Inner product checksum theta = 4204AB0A9B9CB929 +Inner product checksum u = 421842DE12830D66 +Inner product checksum mr1 = 4047C514B4591394 Inner product checksum mr2 = 0 Inner product checksum mr3 = 0 Inner product checksum mr4 = 0 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 7e1dfb2b..fa464e67 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030D58C358841C -Inner product checksum theta = 42475B42A25BD24C -Inner product checksum u = 456062CEF51ADA01 +Inner product checksum rho = 41030D58C3590812 +Inner product checksum theta = 42475B42A25E97B8 +Inner product checksum u = 456062CEF51D4871 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt index 087fd2fa..75ce9ee2 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt2-C24_MG_op_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030D6C136C4726 -Inner product checksum theta = 42476BF6F9C9E065 -Inner product checksum u = 4560B547977B120F +Inner product checksum rho = 41030D6C1370FF70 +Inner product checksum theta = 42476BF6F9CAD9BF +Inner product checksum u = 4560B54797698F24 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt3-C24_MG_ex1a_gnu_fast-debug-64bit-rtran32.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt3-C24_MG_ex1a_gnu_fast-debug-64bit-rtran32.txt index e42f3205..d3d96a11 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt3-C24_MG_ex1a_gnu_fast-debug-64bit-rtran32.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr-alt3-C24_MG_ex1a_gnu_fast-debug-64bit-rtran32.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 41030F18B9FB67A0 -Inner product checksum theta = 42476C698DF698DD -Inner product checksum u = 4560A0F3DA7365AC +Inner product checksum rho = 41030F18BA556EED +Inner product checksum theta = 42476C6985EDD5A2 +Inner product checksum u = 4560A0F4FB952ACD diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_ex1a_gnu_fast-debug-64bit.txt index 2d5e3b17..23aaf00d 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E316DD570F67E7 -Inner product checksum theta = 420BC551F61B2ADE -Inner product checksum u = 44FD3CA2A85A5D90 +Inner product checksum rho = 40E316DD570E5057 +Inner product checksum theta = 420BC551F61B391B +Inner product checksum u = 44FD3CA2A85EC12A diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_ex1a_gnu_fast-debug-64bit.txt index 30022c66..75ecd5a6 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_sbr_lam-n96_MG_lam_rotate_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E3144534D22EC1 -Inner product checksum theta = 420BC6A55E4A8238 -Inner product checksum u = 44FDCE146C25FF50 +Inner product checksum rho = 40E3144534D209FF +Inner product checksum theta = 420BC6A55E4A954D +Inner product checksum u = 44FDCE146C249D82 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-BiP200x8-500x500_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-BiP200x8-500x500_ex1a_gnu_fast-debug-64bit.txt index 5697a881..598f9648 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-BiP200x8-500x500_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-BiP200x8-500x500_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40E1E481066A1517 -Inner product checksum theta = 421139232C3CEFAD -Inner product checksum u = 4393A3C2C7771420 +Inner product checksum rho = 40E1E481066A1634 +Inner product checksum theta = 421139232C3CEE2A +Inner product checksum u = 4393A3C2C7769A02 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_ex1a_gnu_fast-debug-64bit.txt index 41bb50bf..e491f081 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_schar_cart-alt2-BiP100x4-1000x1000_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40C1E430BB50BA06 -Inner product checksum theta = 41F13953C045589C -Inner product checksum u = 4393B8DB189D9133 +Inner product checksum rho = 40C1E430BB50BDF6 +Inner product checksum theta = 41F13953C0455813 +Inner product checksum u = 4393B8DB18A0189C diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_semi-implicit-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_semi-implicit-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt index 9ca59662..92e047db 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_semi-implicit-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_semi-implicit-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ Inner product checksum rho = 40A3EC6A14AC655D Inner product checksum theta = 41BEDEE1880FB475 -Inner product checksum u = 4316BFB1C7362BEB +Inner product checksum u = 4316BFB1C87E4218 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_shallow-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_shallow-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 41512921..1251a6b1 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_shallow-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_shallow-hot-jupiter-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 400CE3D8ABB2DD00 -Inner product checksum theta = 426EFB40626F1444 -Inner product checksum u = 46E90B314334D653 +Inner product checksum rho = 400CE3D8ABA24B4C +Inner product checksum theta = 426EFB406264FDD6 +Inner product checksum u = 46E90B3147CFEAB5 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_ex1a_gnu_fast-debug-64bit.txt index ffe89fd9..8f9469a3 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p0-BiP300x8-1000x2000_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40CBD086E89B5CBC -Inner product checksum theta = 41E3A4D10A00A1F3 -Inner product checksum u = 4400A7C1E614149E +Inner product checksum rho = 40CBD086E89B5CB8 +Inner product checksum theta = 41E3A4D10A00A1E5 +Inner product checksum u = 4400A7C1E6141466 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt index dd7d16fd..4c68af9d 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EA1721E2B197EB -Inner product checksum theta = 41F69B200F92D0F4 -Inner product checksum u = 432D54F6E8799F07 +Inner product checksum rho = 40EA1721E2B1BCD4 +Inner product checksum theta = 41F69B200F927E57 +Inner product checksum u = 432D54F6E82B741E diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_ex1a_gnu_fast-debug-64bit.txt index fa2891bb..7c43065c 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt1-BiP256x4-200x200_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40DA171CE5311E97 -Inner product checksum theta = 41E69B0DAB753A8E -Inner product checksum u = 431CEA812598E8B0 +Inner product checksum rho = 40DA171CE319AA16 +Inner product checksum theta = 41E69B0DB0A24402 +Inner product checksum u = 431CEA80F2E391C8 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_ex1a_gnu_fast-debug-64bit.txt index 22f2c444..64502ae9 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt2-BiP256x16-200x50_op_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40FA16E969D797DC -Inner product checksum theta = 42069BF1BB703F6A -Inner product checksum u = 42FFC30F4ED2B428 +Inner product checksum rho = 40FA16E969D78B0B +Inner product checksum theta = 42069BF1BB70B7A9 +Inner product checksum u = 42FFC30F4F0FCDA2 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt index 075d391f..bc0f86a1 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_straka_200m-alt3-BiP256x8-200x200_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40EA171A18309116 -Inner product checksum theta = 41F69B1D66F906CB -Inner product checksum u = 432E68AADCDE17B3 +Inner product checksum rho = 40EA171A18307190 +Inner product checksum theta = 41F69B1D66F943A0 +Inner product checksum u = 432E68AADC8D5EF8 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24_MG_ex1a_gnu_fast-debug-64bit.txt index 0692e436..063436cf 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D4230A14F81BCE -Inner product checksum theta = 421AE83CAB4D6A4B -Inner product checksum u = 44D53ED7F85D2DAF +Inner product checksum rho = 40D4230A144362E7 +Inner product checksum theta = 421AE83CAB2DCCFC +Inner product checksum u = 44D53ED85AB461F9 diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_ex1a_gnu_fast-debug-64bit.txt index d7a2154e..d602747e 100644 --- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_tidally-locked-earth-C24s_rot_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 40D3B0E614A00984 -Inner product checksum theta = 421AFAEA39674732 -Inner product checksum u = 44D455410D2E2D22 +Inner product checksum rho = 40D3B0E557AF55BF +Inner product checksum theta = 421AFAEA242F6D8A +Inner product checksum u = 44D44AD2F6D81F90 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt index 9fef2e09..76a23cf1 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt @@ -1 +1 @@ -Inner product checksum theta = 41F6D123019100F3 +Inner product checksum theta = 41F6D12301909313 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt index 9fef2e09..76a23cf1 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt @@ -1 +1 @@ -Inner product checksum theta = 41F6D123019100F3 +Inner product checksum theta = 41F6D12301909313 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt index b17a42b7..bff861e6 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3FA7A1197E0CB9A0 -Inner product checksum theta = 4161FFC69BF205C3 -Inner product checksum u = 4569B9484E575B5E -Inner product checksum mr1 = 3F36C0A882D88E66 -Inner product checksum mr2 = 3EEADFD85794EA13 -Inner product checksum mr3 = 3EDFEC0C984D5704 -Inner product checksum mr4 = 3EED3A950512EB1A +Inner product checksum rho = 3FA7A1198D99E366 +Inner product checksum theta = 4161FFC6A6DCB8FD +Inner product checksum u = 4569B94853E33350 +Inner product checksum mr1 = 3F36C0A873360C03 +Inner product checksum mr2 = 3EEADFD8577E7A22 +Inner product checksum mr3 = 3EDFEC0C988675D2 +Inner product checksum mr4 = 3EED3A9504291C4A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_azspice_gnu_fast-debug-64bit.txt index 36256062..ae42d7e8 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3F95A1DDD2EC7839 -Inner product checksum theta = 414000E886CBFB32 -Inner product checksum u = 452CCCFAA0BBF41E -Inner product checksum mr1 = 3F2D2183BE8E5C80 -Inner product checksum mr2 = 3EDF53A45356ADEA -Inner product checksum mr3 = 3ED26AEF2D8453B5 -Inner product checksum mr4 = 3EE009842E269AF6 +Inner product checksum rho = 3F95A1DDD59E7946 +Inner product checksum theta = 414000E883257F15 +Inner product checksum u = 452CCCFAA00A5272 +Inner product checksum mr1 = 3F2D2183C2A7FB6C +Inner product checksum mr2 = 3EDF53A4532E2D93 +Inner product checksum mr3 = 3ED26AEF2D8B4F27 +Inner product checksum mr4 = 3EE009842E1427B0 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_azspice_gnu_fast-debug-64bit.txt index 5ae16e5a..c3a6055e 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3F95A1DF1E431E10 -Inner product checksum theta = 41400115CD2072D9 -Inner product checksum u = 452CCC1C9C56D3B6 -Inner product checksum mr1 = 3F2D21B9057A6428 -Inner product checksum mr2 = 3EDF53C45279F22E -Inner product checksum mr3 = 3ED26AEE8FE0B97C -Inner product checksum mr4 = 3EE009839EC7E10F +Inner product checksum rho = 3F95A1DF21FBE660 +Inner product checksum theta = 41400115CC266A6E +Inner product checksum u = 452CCC1C9C2468E4 +Inner product checksum mr1 = 3F2D21B9039D64C0 +Inner product checksum mr2 = 3EDF53C45236D7E3 +Inner product checksum mr3 = 3ED26AEE8FDF89DA +Inner product checksum mr4 = 3EE009839EC3016E Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt index d3457f77..223d31db 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt @@ -1 +1 @@ -Inner product checksum theta = 41F6D123018FAA92 +Inner product checksum theta = 41F6D123019048BD diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt index db90ee0d..f125f3d3 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3FA7A119D15694EA -Inner product checksum theta = 4161FFC6B41D6C18 -Inner product checksum u = 4569B9484F679FDB -Inner product checksum mr1 = 3F36C0A85083444F -Inner product checksum mr2 = 3EEADFD859B930EE -Inner product checksum mr3 = 3EDFEC0C98392EF7 -Inner product checksum mr4 = 3EED3A95035B479C +Inner product checksum rho = 3FA7A119B4EA8484 +Inner product checksum theta = 4161FFC6A6FEC660 +Inner product checksum u = 4569B94841A92618 +Inner product checksum mr1 = 3F36C0A8465DBFE8 +Inner product checksum mr2 = 3EEADFD8588AB61C +Inner product checksum mr3 = 3EDFEC0C980BBFFC +Inner product checksum mr4 = 3EED3A9504A8D3D4 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_ex1a_cce_fast-debug-64bit.txt index 7dfc5de3..831cb16f 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_ex1a_cce_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3F95A1C504B6A918 -Inner product checksum theta = 413FF942C2E563C0 -Inner product checksum u = 452CCCF6ABE0865F -Inner product checksum mr1 = 3F2D21C8E6687010 -Inner product checksum mr2 = 3EDF53AD2309BABA -Inner product checksum mr3 = 3ED26AEFEBB2B535 -Inner product checksum mr4 = 3EE00982584FBC51 +Inner product checksum rho = 3F95A1C504FFD21B +Inner product checksum theta = 413FF942BFA5F5E7 +Inner product checksum u = 452CCCF6AA954633 +Inner product checksum mr1 = 3F2D21C8E8DE1DD9 +Inner product checksum mr2 = 3EDF53AD2316164A +Inner product checksum mr3 = 3ED26AEFEBB47456 +Inner product checksum mr4 = 3EE00982584B4637 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_ex1a_cce_fast-debug-64bit.txt index f6ca49a1..b5fee1fe 100644 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_tlm_forecast_tl_default-C12_op_ex1a_cce_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3F95A1E1F17F7A09 -Inner product checksum theta = 413FF80D6A5F4BE8 -Inner product checksum u = 452CCB73BB6342D4 -Inner product checksum mr1 = 3F2D21C0C423794A -Inner product checksum mr2 = 3EDF53B78E4C3283 -Inner product checksum mr3 = 3ED26AEF7B3222E8 -Inner product checksum mr4 = 3EE00982FE30ACFA +Inner product checksum rho = 3F95A1E1F13971C9 +Inner product checksum theta = 413FF80D6B7EE2EC +Inner product checksum u = 452CCB73BB6DF2A1 +Inner product checksum mr1 = 3F2D21C0C3BBEB4E +Inner product checksum mr2 = 3EDF53B78E7B8A68 +Inner product checksum mr3 = 3ED26AEF7B2BBCC1 +Inner product checksum mr4 = 3EE00982FE1D2D4A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_aquaplanet-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_aquaplanet-C12_azspice_gnu_fast-debug-32bit.txt index 9b9895e0..cd5f0eee 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_aquaplanet-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_aquaplanet-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 468AD8F2 -Inner product checksum theta = 4FD6898F -Inner product checksum u = 6A4E3AC8 -Inner product checksum mr1 = 3F07FDF4 -Inner product checksum mr2 = 369B4D1C -Inner product checksum mr3 = 3413652A -Inner product checksum mr4 = 368E9398 +Inner product checksum rho = 468AD908 +Inner product checksum theta = 4FD6899A +Inner product checksum u = 6A4E43FD +Inner product checksum mr1 = 3F07FA39 +Inner product checksum mr2 = 369DD5CA +Inner product checksum mr3 = 3410A56C +Inner product checksum mr4 = 368B8C12 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_camembert_case3_gj1214b-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_camembert_case3_gj1214b-C12_azspice_gnu_fast-debug-32bit.txt index dac455d1..ef581175 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_camembert_case3_gj1214b-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_camembert_case3_gj1214b-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,3 +1,3 @@ Inner product checksum rho = 44D95711 -Inner product checksum theta = 5504FC40 -Inner product checksum u = 74276DEB +Inner product checksum theta = 5504FC42 +Inner product checksum u = 74276DEC 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..909a0c74 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 = 46D66580 +Inner product checksum theta = 518E945F +Inner product checksum u = 6AF52378 +Inner product checksum mr1 = 3FD15178 +Inner product checksum mr2 = 373B557E +Inner product checksum mr3 = 356FC10F +Inner product checksum mr4 = 36CF04BA 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..05c79227 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 = 46D65D2E +Inner product checksum theta = 518E9348 +Inner product checksum u = 6AF52323 +Inner product checksum mr1 = 3FD1FE2A +Inner product checksum mr2 = 373C71E1 +Inner product checksum mr3 = 356559C4 +Inner product checksum mr4 = 36BA107A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_hd209458b-C24_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_hd209458b-C24_azspice_gnu_fast-debug-32bit.txt index 28b77bf5..26df4c08 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_hd209458b-C24_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_hd209458b-C24_azspice_gnu_fast-debug-32bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 4798D8B7 -Inner product checksum theta = 5840648A -Inner product checksum u = 79BA7DF0 +Inner product checksum rho = 4798D8B6 +Inner product checksum theta = 5840648C +Inner product checksum u = 79BA7CC6 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_casim-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_casim-C12_azspice_gnu_fast-debug-32bit.txt index e8298690..314b2db9 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_casim-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_casim-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D853A2 -Inner product checksum theta = 518BD97F -Inner product checksum u = 6A8B5D0D -Inner product checksum mr1 = 3FCCB5F5 -Inner product checksum mr2 = 383329FE -Inner product checksum mr3 = 354A12DC -Inner product checksum mr4 = 36D48CC3 -Inner product checksum mr5 = 2C0EBB00 -Inner product checksum mr6 = 354FB8FB +Inner product checksum rho = 46D8577B +Inner product checksum theta = 518BD596 +Inner product checksum u = 6A8AB88F +Inner product checksum mr1 = 3FCD4B0C +Inner product checksum mr2 = 383EA74A +Inner product checksum mr3 = 354C9F0E +Inner product checksum mr4 = 36B096D2 +Inner product checksum mr5 = 2D79AC92 +Inner product checksum mr6 = 354C459D diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_coma9-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_coma9-C12_azspice_gnu_fast-debug-32bit.txt index 575d12f2..171b623b 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_coma9-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_coma9-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D84776 -Inner product checksum theta = 518BD5CA -Inner product checksum u = 6A876EA4 -Inner product checksum mr1 = 3FCFC573 -Inner product checksum mr2 = 37F982D2 -Inner product checksum mr3 = 378F0686 -Inner product checksum mr4 = 37941390 -Inner product checksum mr5 = 36AD80BB +Inner product checksum rho = 46D84536 +Inner product checksum theta = 518BD814 +Inner product checksum u = 6A876154 +Inner product checksum mr1 = 3FCFF44E +Inner product checksum mr2 = 37DEEF0E +Inner product checksum mr3 = 378918A2 +Inner product checksum mr4 = 37943DC7 +Inner product checksum mr5 = 3692F800 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_comorph_dev-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_comorph_dev-C12_azspice_gnu_fast-debug-32bit.txt index 689a0c93..27bb9963 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_comorph_dev-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_comorph_dev-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D833DD -Inner product checksum theta = 518BE345 -Inner product checksum u = 6A861A7A -Inner product checksum mr1 = 3FD12CFE -Inner product checksum mr2 = 37EF6FF7 -Inner product checksum mr3 = 377034CF -Inner product checksum mr4 = 37BA8E17 -Inner product checksum mr5 = 3694BA7A +Inner product checksum rho = 46D83307 +Inner product checksum theta = 518BE0D7 +Inner product checksum u = 6A8617E9 +Inner product checksum mr1 = 3FD0FD18 +Inner product checksum mr2 = 37EA0638 +Inner product checksum mr3 = 37A02448 +Inner product checksum mr4 = 37D33E31 +Inner product checksum mr5 = 36ADE7AE Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit.txt index 066b82f4..77e6410a 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D8395D -Inner product checksum theta = 518BD538 -Inner product checksum u = 6A896534 -Inner product checksum mr1 = 3FD027A8 -Inner product checksum mr2 = 37C25DEC -Inner product checksum mr3 = 35A25CC0 -Inner product checksum mr4 = 371736E2 +Inner product checksum rho = 46D83B84 +Inner product checksum theta = 518BD57B +Inner product checksum u = 6A89A1FD +Inner product checksum mr1 = 3FD0313D +Inner product checksum mr2 = 37C4E32A +Inner product checksum mr3 = 35D1E93C +Inner product checksum mr4 = 372D5F9A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt index b2ad06d1..b2433047 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 40DB07687B63446A -Inner product checksum theta = 42317A99CF4E0BC0 -Inner product checksum u = 45512AE8772F7D84 -Inner product checksum mr1 = 3FFA019FB76BA7A3 -Inner product checksum mr2 = 3EF9206AB8DD06F5 -Inner product checksum mr3 = 3EB3C8E43B077FC8 -Inner product checksum mr4 = 3EE4C554CE5D456C +Inner product checksum rho = 40DB0792F72A3A95 +Inner product checksum theta = 42317AD8AB51BC08 +Inner product checksum u = 4551277EB6F299F1 +Inner product checksum mr1 = 3FFA01EB2555F196 +Inner product checksum mr2 = 3EF9CE7EF44204C5 +Inner product checksum mr3 = 3EB5DF6EE25FBCF2 +Inner product checksum mr4 = 3EE30650A2F30FB6 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C48_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C48_MG_azspice_gnu_fast-debug-32bit.txt index 4c7eed6c..e1115f65 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C48_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-C48_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FD32 -Inner product checksum theta = 5392A6D2 -Inner product checksum u = 6A97B8BA -Inner product checksum mr1 = 41CD0576 -Inner product checksum mr2 = 39CBA1DC -Inner product checksum mr3 = 37B5C87C -Inner product checksum mr4 = 39631544 +Inner product checksum rho = 48D7FD0C +Inner product checksum theta = 5392A6F9 +Inner product checksum u = 6A97B3E4 +Inner product checksum mr1 = 41CD0A53 +Inner product checksum mr2 = 39CB04F3 +Inner product checksum mr3 = 37B4769F +Inner product checksum mr4 = 3963C96C Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-pert-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-pert-C12_azspice_gnu_fast-debug-32bit.txt index f8dff908..d9f88b34 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-pert-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9-pert-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D81310 -Inner product checksum theta = 51944596 -Inner product checksum u = 6B4636E2 -Inner product checksum mr1 = 3FC88E16 -Inner product checksum mr2 = 37A99D46 -Inner product checksum mr3 = 35A2C5C6 -Inner product checksum mr4 = 3788B82C +Inner product checksum rho = 46D8130E +Inner product checksum theta = 51944594 +Inner product checksum u = 6B463715 +Inner product checksum mr1 = 3FC88F89 +Inner product checksum mr2 = 37AA6180 +Inner product checksum mr3 = 35A8B436 +Inner product checksum mr4 = 37896975 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_azspice_gnu_fast-debug-32bit.txt index 35fdec60..cdca94a7 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FDBE -Inner product checksum theta = 5392A6F9 -Inner product checksum u = 6A97B9FA -Inner product checksum mr1 = 41CD0CB2 -Inner product checksum mr2 = 39D05B98 -Inner product checksum mr3 = 37AD4C2E -Inner product checksum mr4 = 395E937D +Inner product checksum rho = 48D7FD97 +Inner product checksum theta = 5392A6EE +Inner product checksum u = 6A97BB26 +Inner product checksum mr1 = 41CD0D24 +Inner product checksum mr2 = 39CFFBF5 +Inner product checksum mr3 = 37A9D700 +Inner product checksum mr4 = 39602F89 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_da-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_da-C12_azspice_gnu_fast-debug-32bit.txt index cd579c1c..f81caafc 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_da-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_da-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D81241 -Inner product checksum theta = 518BD644 -Inner product checksum u = 6A870A8B -Inner product checksum mr1 = 3FD3D730 -Inner product checksum mr2 = 37E1345C -Inner product checksum mr3 = 35A0FF9C -Inner product checksum mr4 = 36DC35A2 +Inner product checksum rho = 46D8120B +Inner product checksum theta = 518BD765 +Inner product checksum u = 6A880019 +Inner product checksum mr1 = 3FD3D91C +Inner product checksum mr2 = 37D635C6 +Inner product checksum mr3 = 35BA85FE +Inner product checksum mr4 = 36D61EA4 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C12_azspice_gnu_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C12_azspice_gnu_full-debug-32bit.txt index e07f6801..d4d8988b 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C12_azspice_gnu_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C12_azspice_gnu_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D80460 +Inner product checksum rho = 46D80462 Inner product checksum theta = 519522B0 -Inner product checksum u = 6AE6775E -Inner product checksum mr1 = 3FC86149 -Inner product checksum mr2 = 37CD2A44 -Inner product checksum mr3 = 351EE925 -Inner product checksum mr4 = 36F072B8 +Inner product checksum u = 6AE67747 +Inner product checksum mr1 = 3FC86157 +Inner product checksum mr2 = 37CC8E10 +Inner product checksum mr3 = 351F215E +Inner product checksum mr4 = 36F045BE Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C48_MG_azspice_gnu_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C48_MG_azspice_gnu_full-debug-32bit.txt index c1993e0b..b1dc76e9 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C48_MG_azspice_gnu_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_debug-C48_MG_azspice_gnu_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D81496 +Inner product checksum rho = 48D81493 Inner product checksum theta = 53952668 -Inner product checksum u = 6AA4D6EE -Inner product checksum mr1 = 41C831AC -Inner product checksum mr2 = 399A2744 -Inner product checksum mr3 = 37789C51 -Inner product checksum mr4 = 39300921 +Inner product checksum u = 6AA4D6E7 +Inner product checksum mr1 = 41C831B2 +Inner product checksum mr2 = 3999D973 +Inner product checksum mr3 = 3777F1A2 +Inner product checksum mr4 = 39302992 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda-C12_azspice_gnu_fast-debug-32bit.txt index 8f87801d..46336098 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D81952 -Inner product checksum theta = 518BAFFF -Inner product checksum u = 6A8C8B79 -Inner product checksum mr1 = 3FD11C39 -Inner product checksum mr2 = 37E724C0 -Inner product checksum mr3 = 359FEF4C -Inner product checksum mr4 = 37074045 +Inner product checksum rho = 46D8174C +Inner product checksum theta = 518BAF7D +Inner product checksum u = 6A8CB0F2 +Inner product checksum mr1 = 3FD11007 +Inner product checksum mr2 = 37DFFC7A +Inner product checksum mr3 = 3599A9C5 +Inner product checksum mr4 = 371AF02B Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda_jada-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda_jada-C12_azspice_gnu_fast-debug-32bit.txt index a5745eb7..cb4e5ac6 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda_jada-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_eda_jada-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D8137D -Inner product checksum theta = 518BD14C -Inner product checksum u = 6A8868AB -Inner product checksum mr1 = 3FD3A9A6 -Inner product checksum mr2 = 37D9892A -Inner product checksum mr3 = 35B50D72 -Inner product checksum mr4 = 37104F46 +Inner product checksum rho = 46D8138B +Inner product checksum theta = 518BD3C8 +Inner product checksum u = 6A87E7C6 +Inner product checksum mr1 = 3FD3BF38 +Inner product checksum mr2 = 37E544CA +Inner product checksum mr3 = 35B81704 +Inner product checksum mr4 = 3722C40E Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_mol-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_mol-C12_azspice_gnu_fast-debug-32bit.txt index 60686d79..3f2bbe6a 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_mol-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_mol-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D85CA4 -Inner product checksum theta = 5193AF09 -Inner product checksum u = 6A862FDC -Inner product checksum mr1 = 3FD02F73 -Inner product checksum mr2 = 37B8193F -Inner product checksum mr3 = 355AA397 -Inner product checksum mr4 = 36FA519C +Inner product checksum rho = 46D86020 +Inner product checksum theta = 5193AFC4 +Inner product checksum u = 6A85F1FD +Inner product checksum mr1 = 3FD01328 +Inner product checksum mr2 = 37AED618 +Inner product checksum mr3 = 35584C0E +Inner product checksum mr4 = 36F592F8 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt index 12acd49a..04d8a244 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D7FBF0 -Inner product checksum theta = 5195577F -Inner product checksum u = 6B246B78 -Inner product checksum mr1 = 3FC85292 -Inner product checksum mr2 = 38201B0A -Inner product checksum mr3 = 356269E7 -Inner product checksum mr4 = 36F6669E +Inner product checksum rho = 46D7FBEE +Inner product checksum theta = 51955780 +Inner product checksum u = 6B246B57 +Inner product checksum mr1 = 3FC8528C +Inner product checksum mr2 = 381FFB3F +Inner product checksum mr3 = 3562D796 +Inner product checksum mr4 = 36F61918 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3-seuk_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3-seuk_MG_azspice_gnu_fast-debug-32bit.txt index f22aad7e..ad73ab7a 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3-seuk_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3-seuk_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 483997CA -Inner product checksum theta = 513548FD -Inner product checksum u = 612F5B34 -Inner product checksum mr1 = 4090F669 -Inner product checksum mr2 = 3589856C -Inner product checksum mr3 = 2FA53E3D -Inner product checksum mr4 = 33F4FD6A -Inner product checksum mr5 = BE7D04E +Inner product checksum rho = 483997C4 +Inner product checksum theta = 513548FF +Inner product checksum u = 612F5B36 +Inner product checksum mr1 = 4090F670 +Inner product checksum mr2 = 359543B6 +Inner product checksum mr3 = 2FA58092 +Inner product checksum mr4 = 33F4FD99 +Inner product checksum mr5 = BE7D07D Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_ens-seuk_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_ens-seuk_MG_azspice_gnu_fast-debug-32bit.txt index 42525bc7..c3b11bd1 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_ens-seuk_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_ens-seuk_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 483999D4 -Inner product checksum theta = 51354858 -Inner product checksum u = 612F6179 -Inner product checksum mr1 = 40916617 -Inner product checksum mr2 = 364FE1DF -Inner product checksum mr3 = 2FABFD16 -Inner product checksum mr4 = 33F4FDB5 -Inner product checksum mr5 = BF2197F +Inner product checksum rho = 483999C2 +Inner product checksum theta = 5135485A +Inner product checksum u = 612F616F +Inner product checksum mr1 = 409165EC +Inner product checksum mr2 = 366C6F75 +Inner product checksum mr3 = 2FABFFAE +Inner product checksum mr4 = 33F4FD90 +Inner product checksum mr5 = BF21A99 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_mixmol-seuk_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_mixmol-seuk_MG_azspice_gnu_fast-debug-32bit.txt index cb46157c..1f0b4f67 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_mixmol-seuk_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_ral3_mixmol-seuk_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48398C72 -Inner product checksum theta = 513542FA -Inner product checksum u = 612EE1BF -Inner product checksum mr1 = 409102F8 -Inner product checksum mr2 = 358C6492 -Inner product checksum mr3 = 300104A8 -Inner product checksum mr4 = 3404ABE7 -Inner product checksum mr5 = C14576D +Inner product checksum rho = 48398C71 +Inner product checksum theta = 513542F8 +Inner product checksum u = 612EE1C3 +Inner product checksum mr1 = 40910315 +Inner product checksum mr2 = 35884762 +Inner product checksum mr3 = 30010462 +Inner product checksum mr4 = 3404ABCD +Inner product checksum mr5 = C145774 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_azspice_gnu_fast-debug-32bit.txt index c8d19057..eb400fbd 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 4830B5EE -Inner product checksum theta = 513FD8B1 -Inner product checksum u = 5F74A875 -Inner product checksum mr1 = 4155D3E1 -Inner product checksum mr2 = 3A38BFC2 -Inner product checksum mr3 = 309DE635 +Inner product checksum rho = 4830B5E1 +Inner product checksum theta = 513FD8D5 +Inner product checksum u = 5F74AC17 +Inner product checksum mr1 = 4155C1CD +Inner product checksum mr2 = 3A40A1C2 +Inner product checksum mr3 = 30A4796F Inner product checksum mr4 = 0 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_thai_ben1-C48_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_thai_ben1-C48_MG_azspice_gnu_fast-debug-32bit.txt index ee291b91..9955bc7e 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_thai_ben1-C48_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_thai_ben1-C48_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,3 +1,3 @@ Inner product checksum rho = 486B4A34 -Inner product checksum theta = 51CABF2E -Inner product checksum u = 63C9D90E +Inner product checksum theta = 51CABF2D +Inner product checksum u = 63C9D988 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_aquaplanet-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_aquaplanet-C12_ex1a_cce_fast-debug-32bit.txt index b262a2e1..ad7edeb1 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_aquaplanet-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_aquaplanet-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 468AD929 -Inner product checksum theta = 4FD6896F -Inner product checksum u = 6A4E3CAD -Inner product checksum mr1 = 3F07F86E -Inner product checksum mr2 = 3694BA68 -Inner product checksum mr3 = 341247CE -Inner product checksum mr4 = 368A0606 +Inner product checksum rho = 468AD921 +Inner product checksum theta = 4FD68975 +Inner product checksum u = 6A4E3DBA +Inner product checksum mr1 = 3F07FF0C +Inner product checksum mr2 = 368E421A +Inner product checksum mr3 = 341D513E +Inner product checksum mr4 = 36902510 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_camembert_case3_gj1214b-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_camembert_case3_gj1214b-C12_ex1a_cce_fast-debug-32bit.txt index 8e17322f..0b7537c5 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_camembert_case3_gj1214b-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_camembert_case3_gj1214b-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,3 +1,3 @@ Inner product checksum rho = 44D9577E -Inner product checksum theta = 5504FC06 -Inner product checksum u = 74276D62 +Inner product checksum theta = 5504FC05 +Inner product checksum u = 74276D36 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..90b91313 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 = 46D65EDC +Inner product checksum theta = 518E9526 +Inner product checksum u = 6AF5C4C6 +Inner product checksum mr1 = 3FD2289A +Inner product checksum mr2 = 373A3F7F +Inner product checksum mr3 = 3553A0A0 +Inner product checksum mr4 = 36E59D4E 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..78704b7a 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 = 46D6501D +Inner product checksum theta = 519252C6 +Inner product checksum u = 6B2200D4 +Inner product checksum mr1 = 3FCF3AA3 +Inner product checksum mr2 = 3727F2C1 +Inner product checksum mr3 = 35395B1C +Inner product checksum mr4 = 36992E9E 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..67607fa4 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 = 48D65CA6 +Inner product checksum theta = 5399FF36 +Inner product checksum u = 6B12F8F0 +Inner product checksum mr1 = 41CC35A4 +Inner product checksum mr2 = 39649791 +Inner product checksum mr3 = 37CC5893 +Inner product checksum mr4 = 393DEC36 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..b4a57ce1 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 = 46D650BB +Inner product checksum theta = 519252BC +Inner product checksum u = 6B220DCE +Inner product checksum mr1 = 3FCF52E3 +Inner product checksum mr2 = 373640DA +Inner product checksum mr3 = 353ACE6C +Inner product checksum mr4 = 3693F583 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..1b4ff706 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 theta = 5399FF39 +Inner product checksum u = 6B12F958 +Inner product checksum mr1 = 41CC34B5 +Inner product checksum mr2 = 39657D99 +Inner product checksum mr3 = 37C64D04 +Inner product checksum mr4 = 393DEDEB 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..2375380d 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 theta = 5399FF38 +Inner product checksum u = 6B12F98B +Inner product checksum mr1 = 41CC3415 +Inner product checksum mr2 = 3966305C +Inner product checksum mr3 = 37CCCC4B +Inner product checksum mr4 = 393E208D 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..5e813f40 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 = 46D6622A +Inner product checksum theta = 518E970E +Inner product checksum u = 6AF50051 +Inner product checksum mr1 = 3FD1F90A +Inner product checksum mr2 = 3744BAE7 +Inner product checksum mr3 = 354CED5C +Inner product checksum mr4 = 36CDB1F9 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..da97809c 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 = 46D65076 +Inner product checksum theta = 5192505B +Inner product checksum u = 6B22B5F4 +Inner product checksum mr1 = 3FCF3414 +Inner product checksum mr2 = 3736ADE2 +Inner product checksum mr3 = 352F3B00 +Inner product checksum mr4 = 36A51F70 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..9661091b 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 = 46D65086 +Inner product checksum theta = 519250F4 +Inner product checksum u = 6B22B1A7 +Inner product checksum mr1 = 3FCF2BC4 +Inner product checksum mr2 = 373558BB +Inner product checksum mr3 = 35313E42 +Inner product checksum mr4 = 369CCA7A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_comp_tran_ref_3d_l120-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_comp_tran_ref_3d_l120-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt index 91bb01bc..9ddea040 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_comp_tran_ref_3d_l120-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_comp_tran_ref_3d_l120-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 489A8317 -Inner product checksum theta = 51BA5074 -Inner product checksum u = 5F1192E8 -Inner product checksum mr1 = 4187BC72 -Inner product checksum mr2 = 3AF9734F -Inner product checksum mr3 = 34BC1253 +Inner product checksum rho = 489A83A0 +Inner product checksum theta = 51BA5067 +Inner product checksum u = 5F1181FC +Inner product checksum mr1 = 4187908C +Inner product checksum mr2 = 3AEF2790 +Inner product checksum mr3 = 34AB3B49 Inner product checksum mr4 = 0 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_hd209458b-C24_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_hd209458b-C24_ex1a_cce_fast-debug-32bit.txt index 9c29598f..169ae87f 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_hd209458b-C24_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_hd209458b-C24_ex1a_cce_fast-debug-32bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 4798D952 -Inner product checksum theta = 58406A9E -Inner product checksum u = 79BA728C +Inner product checksum rho = 4798D953 +Inner product checksum theta = 58406A9C +Inner product checksum u = 79BA70E0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_casim-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_casim-C12_ex1a_cce_fast-debug-32bit.txt index 662dc2b9..196260c7 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_casim-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_casim-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D85840 -Inner product checksum theta = 518BD4F3 -Inner product checksum u = 6A8AA24E -Inner product checksum mr1 = 3FCD72EF -Inner product checksum mr2 = 3831BCA2 -Inner product checksum mr3 = 3568BB56 -Inner product checksum mr4 = 36B357D6 -Inner product checksum mr5 = 2EA4F771 -Inner product checksum mr6 = 35562C6C +Inner product checksum rho = 46D85A52 +Inner product checksum theta = 518BD62F +Inner product checksum u = 6A8A848E +Inner product checksum mr1 = 3FCD5B1C +Inner product checksum mr2 = 38388B22 +Inner product checksum mr3 = 356EAC0B +Inner product checksum mr4 = 36B0F084 +Inner product checksum mr5 = 2F736A70 +Inner product checksum mr6 = 35491D86 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_coma9-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_coma9-C12_ex1a_cce_fast-debug-32bit.txt index 26acfbf0..d7aef0d2 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_coma9-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_coma9-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D8458C -Inner product checksum theta = 518BD62A -Inner product checksum u = 6A87FCF8 -Inner product checksum mr1 = 3FCF951F -Inner product checksum mr2 = 37E6BD02 -Inner product checksum mr3 = 378A7D17 -Inner product checksum mr4 = 3797816D -Inner product checksum mr5 = 36A1EFBC +Inner product checksum rho = 46D8445C +Inner product checksum theta = 518BD422 +Inner product checksum u = 6A8836EB +Inner product checksum mr1 = 3FCFB94E +Inner product checksum mr2 = 37FBBFBB +Inner product checksum mr3 = 3794E1A1 +Inner product checksum mr4 = 379CFA1A +Inner product checksum mr5 = 36A6619C Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_dev-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_dev-C12_ex1a_cce_fast-debug-32bit.txt index 86f1a899..542bd202 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_dev-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_dev-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D832FB -Inner product checksum theta = 518BE422 -Inner product checksum u = 6A85F6E0 -Inner product checksum mr1 = 3FD14346 -Inner product checksum mr2 = 37F2F57E -Inner product checksum mr3 = 3782C0C7 -Inner product checksum mr4 = 37BAC82C -Inner product checksum mr5 = 368F067F +Inner product checksum rho = 46D833A5 +Inner product checksum theta = 518BE15F +Inner product checksum u = 6A85CE76 +Inner product checksum mr1 = 3FD0F429 +Inner product checksum mr2 = 37FB7253 +Inner product checksum mr3 = 37797EC0 +Inner product checksum mr4 = 37C5174F +Inner product checksum mr5 = 36A1124E Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_tb-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_tb-C12_ex1a_cce_fast-debug-32bit.txt index f94eb38a..7b359424 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_tb-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_comorph_tb-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D85410 -Inner product checksum theta = 518BE004 -Inner product checksum u = 6A85218C -Inner product checksum mr1 = 3FCE9E1F -Inner product checksum mr2 = 37E4C939 -Inner product checksum mr3 = 3788C888 -Inner product checksum mr4 = 3742DF88 -Inner product checksum mr5 = 35FA4066 +Inner product checksum rho = 46D85266 +Inner product checksum theta = 518BE002 +Inner product checksum u = 6A853D28 +Inner product checksum mr1 = 3FCE7403 +Inner product checksum mr2 = 37E2C4D8 +Inner product checksum mr3 = 37898536 +Inner product checksum mr4 = 375B4794 +Inner product checksum mr5 = 361FD524 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-32bit.txt index fc8830b5..6a5f6147 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D83A35 -Inner product checksum theta = 518BD5F4 -Inner product checksum u = 6A88CB4D -Inner product checksum mr1 = 3FD02BB9 -Inner product checksum mr2 = 37C9A7CA -Inner product checksum mr3 = 35983707 -Inner product checksum mr4 = 37015E80 +Inner product checksum rho = 46D83A2A +Inner product checksum theta = 518BD40E +Inner product checksum u = 6A88CE3A +Inner product checksum mr1 = 3FD023BE +Inner product checksum mr2 = 37D00594 +Inner product checksum mr3 = 35AA8324 +Inner product checksum mr4 = 3714CAE1 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt index 5442f523..8a8d17ff 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 40DB07BDB335E70F -Inner product checksum theta = 42317B009699D8CA -Inner product checksum u = 45512CE45FA6102C -Inner product checksum mr1 = 3FF9F65BF11FF695 -Inner product checksum mr2 = 3EFA02DB0ABB2DB2 -Inner product checksum mr3 = 3EB4D691E8F904A6 -Inner product checksum mr4 = 3EE1C81A8EF17282 +Inner product checksum rho = 40DB07A3281F0909 +Inner product checksum theta = 42317AAF3B9E9FC9 +Inner product checksum u = 45512E3893BC7412 +Inner product checksum mr1 = 3FF9FC30EF046162 +Inner product checksum mr2 = 3EF77F63BC833D5D +Inner product checksum mr3 = 3EB400D60B5A4AEA +Inner product checksum mr4 = 3EE573655B963CBE Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C48_MG_ex1a_cce_fast-debug-32bit.txt index 145f29b4..0d74469f 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FDF2 -Inner product checksum theta = 5392A6D4 -Inner product checksum u = 6A97C1C8 -Inner product checksum mr1 = 41CD0A6C -Inner product checksum mr2 = 39CA0FC6 -Inner product checksum mr3 = 37B1AE5A -Inner product checksum mr4 = 39608489 +Inner product checksum rho = 48D7FE1E +Inner product checksum theta = 5392A6B8 +Inner product checksum u = 6A97C49A +Inner product checksum mr1 = 41CD06F5 +Inner product checksum mr2 = 39CBC85C +Inner product checksum mr3 = 37A9B504 +Inner product checksum mr4 = 39602A6C Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-pert-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-pert-C12_ex1a_cce_fast-debug-32bit.txt index 964ce3a8..5f115f23 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-pert-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9-pert-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D81330 -Inner product checksum theta = 51944574 -Inner product checksum u = 6B464448 -Inner product checksum mr1 = 3FC884F9 -Inner product checksum mr2 = 379E0A83 -Inner product checksum mr3 = 35A557AC -Inner product checksum mr4 = 378669C2 +Inner product checksum rho = 46D81325 +Inner product checksum theta = 51944572 +Inner product checksum u = 6B463F57 +Inner product checksum mr1 = 3FC88225 +Inner product checksum mr2 = 379D02AA +Inner product checksum mr3 = 35A81C2A +Inner product checksum mr4 = 37894999 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_ex1a_cce_fast-debug-32bit.txt index 8ba35872..43725cdb 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FE7E -Inner product checksum theta = 5392A6C1 -Inner product checksum u = 6A97C698 -Inner product checksum mr1 = 41CD06AC -Inner product checksum mr2 = 39CFBD73 -Inner product checksum mr3 = 37B289D4 -Inner product checksum mr4 = 39620DAE +Inner product checksum rho = 48D7FE9A +Inner product checksum theta = 5392A6D3 +Inner product checksum u = 6A97C1FD +Inner product checksum mr1 = 41CD0B16 +Inner product checksum mr2 = 39CCB690 +Inner product checksum mr3 = 37AC6E7E +Inner product checksum mr4 = 395D893E Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_cce_fast-debug-32bit.txt index ca8c0b00..9eab0201 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FC3E -Inner product checksum theta = 5392A694 -Inner product checksum u = 6A97C224 -Inner product checksum mr1 = 41CCE753 -Inner product checksum mr2 = 39CB0912 -Inner product checksum mr3 = 37AB8D81 -Inner product checksum mr4 = 3972959E +Inner product checksum rho = 48D7FC5D +Inner product checksum theta = 5392A670 +Inner product checksum u = 6A97C4C0 +Inner product checksum mr1 = 41CCDB8C +Inner product checksum mr2 = 39CA7FD1 +Inner product checksum mr3 = 37ABB816 +Inner product checksum mr4 = 396F67BA Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_gnu_fast-debug-32bit.txt index 3c702f83..4d1ae296 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_coarse_aero_threaded-C48_MG_ex1a_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FB4D -Inner product checksum theta = 5392A6BF -Inner product checksum u = 6A97B4CF -Inner product checksum mr1 = 41CCE4CA -Inner product checksum mr2 = 39D1AFCE -Inner product checksum mr3 = 37B349DC -Inner product checksum mr4 = 3976F722 +Inner product checksum rho = 48D7FB59 +Inner product checksum theta = 5392A6A0 +Inner product checksum u = 6A97B6B2 +Inner product checksum mr1 = 41CCDE6A +Inner product checksum mr2 = 39CDB1EC +Inner product checksum mr3 = 37AAE85E +Inner product checksum mr4 = 3973EBB5 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_da-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_da-C12_ex1a_cce_fast-debug-32bit.txt index 534b5702..4da2cbcd 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_da-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_da-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D8145C -Inner product checksum theta = 518BD834 -Inner product checksum u = 6A876B3F -Inner product checksum mr1 = 3FD3B699 -Inner product checksum mr2 = 37DBC694 -Inner product checksum mr3 = 35ACADEE -Inner product checksum mr4 = 36DB4B9D +Inner product checksum rho = 46D81306 +Inner product checksum theta = 518BD806 +Inner product checksum u = 6A871F68 +Inner product checksum mr1 = 3FD3AD84 +Inner product checksum mr2 = 37E1D59F +Inner product checksum mr3 = 35AC2C28 +Inner product checksum mr4 = 36E99384 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C12_ex1a_cce_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C12_ex1a_cce_full-debug-32bit.txt index 72d0bfd8..7e3939c3 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C12_ex1a_cce_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C12_ex1a_cce_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D8046E +Inner product checksum rho = 46D8046D Inner product checksum theta = 519522B0 -Inner product checksum u = 6AE676F3 -Inner product checksum mr1 = 3FC861D0 -Inner product checksum mr2 = 37CF9691 -Inner product checksum mr3 = 351F51C6 -Inner product checksum mr4 = 36EFCBFC +Inner product checksum u = 6AE67718 +Inner product checksum mr1 = 3FC861DE +Inner product checksum mr2 = 37CEDED2 +Inner product checksum mr3 = 3522D049 +Inner product checksum mr4 = 36EFAC8A Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C48_MG_ex1a_cce_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C48_MG_ex1a_cce_full-debug-32bit.txt index 52e4cd78..4d6fc383 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C48_MG_ex1a_cce_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_debug-C48_MG_ex1a_cce_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D81494 -Inner product checksum theta = 53952666 -Inner product checksum u = 6AA4D6C3 -Inner product checksum mr1 = 41C830E0 -Inner product checksum mr2 = 399AC878 -Inner product checksum mr3 = 3778FE37 -Inner product checksum mr4 = 39300070 +Inner product checksum rho = 48D81492 +Inner product checksum theta = 53952667 +Inner product checksum u = 6AA4D6D5 +Inner product checksum mr1 = 41C83113 +Inner product checksum mr2 = 399A1A50 +Inner product checksum mr3 = 3778D98B +Inner product checksum mr4 = 393015BA Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda-C12_ex1a_cce_fast-debug-32bit.txt index 0ffd8dce..3bebb08b 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D818D1 -Inner product checksum theta = 518BB098 -Inner product checksum u = 6A8C9CAB -Inner product checksum mr1 = 3FD11FBB -Inner product checksum mr2 = 37EB0B66 -Inner product checksum mr3 = 35A515BE -Inner product checksum mr4 = 37211D7E +Inner product checksum rho = 46D8197A +Inner product checksum theta = 518BB113 +Inner product checksum u = 6A8D5226 +Inner product checksum mr1 = 3FD10C58 +Inner product checksum mr2 = 37E99C56 +Inner product checksum mr3 = 35945116 +Inner product checksum mr4 = 370C82CC Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda_jada-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda_jada-C12_ex1a_cce_fast-debug-32bit.txt index fb4ac2ce..760f0715 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda_jada-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_eda_jada-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D812C6 -Inner product checksum theta = 518BCF5C -Inner product checksum u = 6A87F7C7 -Inner product checksum mr1 = 3FD3C782 -Inner product checksum mr2 = 37DC7122 -Inner product checksum mr3 = 35A1102A -Inner product checksum mr4 = 36E23FC6 +Inner product checksum rho = 46D81254 +Inner product checksum theta = 518BCF4A +Inner product checksum u = 6A879FEA +Inner product checksum mr1 = 3FD3E972 +Inner product checksum mr2 = 37D2E31F +Inner product checksum mr3 = 35A62688 +Inner product checksum mr4 = 36E7D3E2 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_mol-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_mol-C12_ex1a_cce_fast-debug-32bit.txt index c402287b..5619cee2 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_mol-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_mol-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D85F7F -Inner product checksum theta = 5193AEF6 -Inner product checksum u = 6A863345 -Inner product checksum mr1 = 3FD02DFA -Inner product checksum mr2 = 37B227E9 -Inner product checksum mr3 = 357CB4FC -Inner product checksum mr4 = 3702610A +Inner product checksum rho = 46D85F68 +Inner product checksum theta = 5193AF52 +Inner product checksum u = 6A853724 +Inner product checksum mr1 = 3FD06BE4 +Inner product checksum mr2 = 37A7B5A4 +Inner product checksum mr3 = 352BD873 +Inner product checksum mr4 = 36FC60A6 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C12_ex1a_cce_fast-debug-32bit.txt index b165dd97..1e20e479 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D7F5C0 -Inner product checksum theta = 518E7EC5 -Inner product checksum u = 6B17B016 -Inner product checksum mr1 = 3FCBDA24 -Inner product checksum mr2 = 37AC191C -Inner product checksum mr3 = 34A5112E -Inner product checksum mr4 = 36F76E7F +Inner product checksum rho = 46D7F5B8 +Inner product checksum theta = 518E7EE6 +Inner product checksum u = 6B17A909 +Inner product checksum mr1 = 3FCBC460 +Inner product checksum mr2 = 37BB2AA3 +Inner product checksum mr3 = 34AA1101 +Inner product checksum mr4 = 36FF2FE5 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt index 6332d81a..29fd0d7e 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FC55 -Inner product checksum theta = 5392A699 -Inner product checksum u = 6A97BCCA -Inner product checksum mr1 = 41CCEB20 -Inner product checksum mr2 = 39CA8C2C -Inner product checksum mr3 = 37AC2EF8 -Inner product checksum mr4 = 3971DABC +Inner product checksum rho = 48D7FC2E +Inner product checksum theta = 5392A697 +Inner product checksum u = 6A97BC0A +Inner product checksum mr1 = 41CCF12E +Inner product checksum mr2 = 39CDC1EE +Inner product checksum mr3 = 37B26034 +Inner product checksum mr4 = 39707D94 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C12_ex1a_cce_fast-debug-32bit.txt index 0b7dde6c..4a05fb44 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D7F524 -Inner product checksum theta = 518E7ECC -Inner product checksum u = 6B17AEDA -Inner product checksum mr1 = 3FCBD438 -Inner product checksum mr2 = 37AA82D7 -Inner product checksum mr3 = 34AF63B2 -Inner product checksum mr4 = 37081DCB +Inner product checksum rho = 46D7F514 +Inner product checksum theta = 518E7F52 +Inner product checksum u = 6B17A550 +Inner product checksum mr1 = 3FCBD941 +Inner product checksum mr2 = 37B25614 +Inner product checksum mr3 = 34B4CCFE +Inner product checksum mr4 = 36F8B098 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt index bd551548..fc07be15 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FC40 -Inner product checksum theta = 5392A678 -Inner product checksum u = 6A97B83A -Inner product checksum mr1 = 41CCED01 -Inner product checksum mr2 = 39C8DCE2 -Inner product checksum mr3 = 37ADC3D4 -Inner product checksum mr4 = 39774AE9 +Inner product checksum rho = 48D7FC5B +Inner product checksum theta = 5392A676 +Inner product checksum u = 6A97C419 +Inner product checksum mr1 = 41CCEE42 +Inner product checksum mr2 = 39CB05E2 +Inner product checksum mr3 = 37B49882 +Inner product checksum mr4 = 396FE4CA Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_full-debug-32bit.txt index 77e5ba5f..d3c3b967 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_2T-C48_MG_ex1a_cce_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FB4E -Inner product checksum theta = 5392A6ED -Inner product checksum u = 6A97B55D -Inner product checksum mr1 = 41CCF369 -Inner product checksum mr2 = 39CDEEBC -Inner product checksum mr3 = 37AF72F2 -Inner product checksum mr4 = 3971EA0E +Inner product checksum rho = 48D7FB42 +Inner product checksum theta = 5392A6AE +Inner product checksum u = 6A97BCA0 +Inner product checksum mr1 = 41CCE7D8 +Inner product checksum mr2 = 39CCF492 +Inner product checksum mr3 = 37A9B0E0 +Inner product checksum mr4 = 397164E9 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt index 503edf68..a9ffceea 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_noukca_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D7FC1D -Inner product checksum theta = 5392A6B6 -Inner product checksum u = 6A97C299 -Inner product checksum mr1 = 41CCE778 -Inner product checksum mr2 = 39CA2CF8 -Inner product checksum mr3 = 37A8570C -Inner product checksum mr4 = 397292EC +Inner product checksum rho = 48D7FC4A +Inner product checksum theta = 5392A66A +Inner product checksum u = 6A97BE23 +Inner product checksum mr1 = 41CCE6A6 +Inner product checksum mr2 = 39CB60DC +Inner product checksum mr3 = 37AF065D +Inner product checksum mr4 = 3973921C Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_short-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_short-C12_ex1a_cce_fast-debug-32bit.txt index fc875d1d..c0de85dd 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_short-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_short-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D7FC00 +Inner product checksum rho = 46D7FBFF Inner product checksum theta = 5195576C -Inner product checksum u = 6B246EA5 -Inner product checksum mr1 = 3FC852FF -Inner product checksum mr2 = 381E302C -Inner product checksum mr3 = 35639D20 -Inner product checksum mr4 = 36F6E186 +Inner product checksum u = 6B246E7E +Inner product checksum mr1 = 3FC852F8 +Inner product checksum mr2 = 381E69A0 +Inner product checksum mr3 = 35635AE2 +Inner product checksum mr4 = 36F692F8 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3-seuk_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3-seuk_MG_ex1a_cce_fast-debug-32bit.txt index 1e988593..ea002327 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3-seuk_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3-seuk_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 483997DA -Inner product checksum theta = 5135490A -Inner product checksum u = 612F5E0C -Inner product checksum mr1 = 4090F5EC -Inner product checksum mr2 = 3599E934 -Inner product checksum mr3 = 2FA5315A -Inner product checksum mr4 = 33F4FD4E -Inner product checksum mr5 = BE85FCC +Inner product checksum rho = 483997DD +Inner product checksum theta = 51354909 +Inner product checksum u = 612F5E1A +Inner product checksum mr1 = 4090F5E0 +Inner product checksum mr2 = 3599F730 +Inner product checksum mr3 = 2FA4DCA0 +Inner product checksum mr4 = 33F4FD52 +Inner product checksum mr5 = BE85FAD Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_ens-seuk_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_ens-seuk_MG_ex1a_cce_fast-debug-32bit.txt index 9f0b2b05..ef6e8271 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_ens-seuk_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_ens-seuk_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 483997EC +Inner product checksum rho = 483997EE Inner product checksum theta = 513548FD -Inner product checksum u = 612F5EB9 -Inner product checksum mr1 = 40910DEE -Inner product checksum mr2 = 35DE4A2C -Inner product checksum mr3 = 2FA75F15 -Inner product checksum mr4 = 33F4FFD3 -Inner product checksum mr5 = BE04B38 +Inner product checksum u = 612F5EBE +Inner product checksum mr1 = 40910D22 +Inner product checksum mr2 = 35E8FD0E +Inner product checksum mr3 = 2FA6EF83 +Inner product checksum mr4 = 33F4FFD9 +Inner product checksum mr5 = BE04973 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_mixmol-seuk_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_mixmol-seuk_MG_ex1a_cce_fast-debug-32bit.txt index b3bf8008..5046b144 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_mixmol-seuk_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_ral3_mixmol-seuk_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ Inner product checksum rho = 48398C6A Inner product checksum theta = 51354302 -Inner product checksum u = 612EDCBA -Inner product checksum mr1 = 4091034B -Inner product checksum mr2 = 3592F0C2 -Inner product checksum mr3 = 300105E3 +Inner product checksum u = 612EDCAE +Inner product checksum mr1 = 40910364 +Inner product checksum mr2 = 358EC04E +Inner product checksum mr3 = 300109EF Inner product checksum mr4 = 3404AC1D -Inner product checksum mr5 = C14A22D +Inner product checksum mr5 = C14A229 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt index 9006b202..0c2940df 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_rce-BiP64x64-1500x1500_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 4830B646 -Inner product checksum theta = 513FD832 -Inner product checksum u = 5F74BAEC -Inner product checksum mr1 = 4155B86C -Inner product checksum mr2 = 3A48BCB8 -Inner product checksum mr3 = 30A6CEC1 +Inner product checksum rho = 4830B638 +Inner product checksum theta = 513FD82E +Inner product checksum u = 5F74B787 +Inner product checksum mr1 = 4155BB22 +Inner product checksum mr2 = 3A485851 +Inner product checksum mr3 = 309A8E7D Inner product checksum mr4 = 0 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_thai_ben1-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_thai_ben1-C48_MG_ex1a_cce_fast-debug-32bit.txt index 490974e8..4ac00b60 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_thai_ben1-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_thai_ben1-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 486B4A17 -Inner product checksum theta = 51CABEF0 -Inner product checksum u = 63C9A5FD +Inner product checksum rho = 486B4A14 +Inner product checksum theta = 51CABEF3 +Inner product checksum u = 63C9A3AA diff --git a/rose-stem/site/meto/kgos/lfric_coupled/ex1a/checksum_lfric_coupled_nwp_gal9-C48_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/lfric_coupled/ex1a/checksum_lfric_coupled_nwp_gal9-C48_ex1a_cce_fast-debug-64bit.txt index 0a81215b..72dec3e6 100644 --- a/rose-stem/site/meto/kgos/lfric_coupled/ex1a/checksum_lfric_coupled_nwp_gal9-C48_ex1a_cce_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/lfric_coupled/ex1a/checksum_lfric_coupled_nwp_gal9-C48_ex1a_cce_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 411B540C33AE2137 -Inner product checksum theta = 42735B20484A0071 -Inner product checksum u = 456F43594C8887A8 -Inner product checksum mr1 = 40368412E6CE533E -Inner product checksum mr2 = 3F40052B88481958 -Inner product checksum mr3 = 3F025BCA450F15B7 -Inner product checksum mr4 = 3F366AB08264FA88 +Inner product checksum rho = 411B540B4C35AF6C +Inner product checksum theta = 42735B1B9CFBC29D +Inner product checksum u = 456F439EB89DD0DC +Inner product checksum mr1 = 403684EB8A236F95 +Inner product checksum mr2 = 3F40083F163427EF +Inner product checksum mr3 = 3F0242481B6ACB8C +Inner product checksum mr4 = 3F3648C16F9D0957 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_dcmip301-C24_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_dcmip301-C24_azspice_gnu_fast-debug-64bit.txt index 4148368a..0f33a154 100644 --- a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_dcmip301-C24_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_dcmip301-C24_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 3F20250B4FE9B9EF -Inner product checksum theta = 403305E848D6E311 -Inner product checksum u = 433053B3FA026478 +Inner product checksum rho = 3F20250B4FAD8E66 +Inner product checksum theta = 403305E848A27B96 +Inner product checksum u = 433053B3F9D7B592 diff --git a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9-C12_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9-C12_MG_azspice_gnu_fast-debug-64bit.txt index 6a7be832..03fac37a 100644 --- a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9-C12_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9-C12_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3FA958F0C1D55513 -Inner product checksum theta = 4161FFBE6B89106C -Inner product checksum u = 456A4D0AF00B4480 -Inner product checksum mr1 = 3F3B888F79EB2E18 -Inner product checksum mr2 = 3EEB3109C670AF3C -Inner product checksum mr3 = 3EDFF31B816930A0 -Inner product checksum mr4 = 3EED42827F73DFDC +Inner product checksum rho = 3FA958F0ED2B74CC +Inner product checksum theta = 4161FFBE6FEAEB00 +Inner product checksum u = 456A4D0B8AB05270 +Inner product checksum mr1 = 3F3B888312E450B6 +Inner product checksum mr2 = 3EEB3109B2D95D78 +Inner product checksum mr3 = 3EDFF31B83E6D480 +Inner product checksum mr4 = 3EED42825D43F3EA Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9_random-C12_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9_random-C12_MG_azspice_gnu_fast-debug-64bit.txt index c19cd8f5..75fd63f1 100644 --- a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9_random-C12_MG_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_nwp_gal9_random-C12_MG_azspice_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 40C2C1694FA30DD0 -Inner product checksum theta = 43076DE653AEC2FE -Inner product checksum u = 4697E3FAA368DE1C -Inner product checksum mr1 = 40A1D167F8ADA142 -Inner product checksum mr2 = 40699AF5BDBC4864 -Inner product checksum mr3 = 4069A3412D88D047 -Inner product checksum mr4 = 40697EB0A557078A +Inner product checksum rho = 40C2C16A5CAF13FA +Inner product checksum theta = 43076DE654C33538 +Inner product checksum u = 4697E3FAA9E3EF0B +Inner product checksum mr1 = 40A1D167F8BD70A8 +Inner product checksum mr2 = 40699AF5BDB5081E +Inner product checksum mr3 = 4069A3412D8F3EF4 +Inner product checksum mr4 = 40697EB0A5454AE4 Inner product checksum mr5 = 406997D0C9B8EEFB Inner product checksum mr6 = 40699547929283AC diff --git a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_semi-implicit-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_semi-implicit-C12_azspice_gnu_fast-debug-64bit.txt index f7e9ed39..26185b0b 100644 --- a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_semi-implicit-C12_azspice_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_semi-implicit-C12_azspice_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 3EED280BC778BD3B -Inner product checksum theta = 4012F415A1A3F24B -Inner product checksum u = 43A4936A5FD755CE +Inner product checksum rho = 3EED280BC77910C4 +Inner product checksum theta = 4012F415A1A3DFEB +Inner product checksum u = 43A4936A5FD74DF4 diff --git a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt index a5449d77..04682665 100644 --- a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 3F20250B300C3D30 -Inner product checksum theta = 403305E8470B6A22 -Inner product checksum u = 433053B3A41C6049 +Inner product checksum rho = 3F20250B30185BEB +Inner product checksum theta = 403305E846E612FB +Inner product checksum u = 433053B3A3FD4482 diff --git a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9-C12_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9-C12_MG_ex1a_gnu_fast-debug-64bit.txt index 8839d63b..c4d3d6ed 100644 --- a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9-C12_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9-C12_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 3FA958F09D97D52D -Inner product checksum theta = 4161FFBE7B6B7DE1 -Inner product checksum u = 456A4D0ACAB467CA -Inner product checksum mr1 = 3F3B888D5EA6A45C -Inner product checksum mr2 = 3EEB310977D9678E -Inner product checksum mr3 = 3EDFF31B705B97D8 -Inner product checksum mr4 = 3EED42824B13222B +Inner product checksum rho = 3FA958F0DC8D0EC4 +Inner product checksum theta = 4161FFBE5C18EAEB +Inner product checksum u = 456A4D0B0A3C3938 +Inner product checksum mr1 = 3F3B88899B02242F +Inner product checksum mr2 = 3EEB3109573521B2 +Inner product checksum mr3 = 3EDFF31B76BF0742 +Inner product checksum mr4 = 3EED428258A75197 Inner product checksum mr5 = 0 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9_random-C12_MG_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9_random-C12_MG_ex1a_gnu_fast-debug-64bit.txt index 1fba6989..518e3fb6 100644 --- a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9_random-C12_MG_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_nwp_gal9_random-C12_MG_ex1a_gnu_fast-debug-64bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 40C2C1668AA536C6 -Inner product checksum theta = 43076DE652800BE2 -Inner product checksum u = 4697E3FAA2E5E0C6 -Inner product checksum mr1 = 40A1D167F834C0E0 -Inner product checksum mr2 = 40699AF5BDC7A01E -Inner product checksum mr3 = 4069A3412D91ECF2 -Inner product checksum mr4 = 40697EB0A55E4C2B +Inner product checksum rho = 40C2C16B24935A6A +Inner product checksum theta = 43076DE656E6A9A6 +Inner product checksum u = 4697E3FA90499454 +Inner product checksum mr1 = 40A1D167F7257625 +Inner product checksum mr2 = 40699AF5BDCDF3C6 +Inner product checksum mr3 = 4069A3412D8846D1 +Inner product checksum mr4 = 40697EB0A53D0950 Inner product checksum mr5 = 406997D0C9B8EEFC Inner product checksum mr6 = 40699547929283AD diff --git a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_semi-implicit-C12_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_semi-implicit-C12_ex1a_gnu_fast-debug-64bit.txt index 3906107b..f3118f74 100644 --- a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_semi-implicit-C12_ex1a_gnu_fast-debug-64bit.txt +++ b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_semi-implicit-C12_ex1a_gnu_fast-debug-64bit.txt @@ -1,3 +1,3 @@ -Inner product checksum rho = 3EED280BC779365A -Inner product checksum theta = 4012F415A1A375AE -Inner product checksum u = 43A4936A5FD4C67B +Inner product checksum rho = 3EED280BC7788E7C +Inner product checksum theta = 4012F415A1A479C3 +Inner product checksum u = 43A4936A5FDBA963 diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index c30a148d..10665534 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -267,7 +267,7 @@ contains ! The second step computes the vertical wind (yvec_w) & pressure (yvec_p) lhs, since these ! are horizontally discontinuous fields then there are no further halo exchanges required. ! Alternatively this code could be computed in a single kernel - ! (apply_mixed_operator_kernel_type), however this appears to have poorer cache usage, + ! (apply_mixed_operator_kernel_type), however this appears to have poorer cache usage, ! resulting in an increased computation time ! Create broken y_uv diff --git a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 index 03c11120..dcd4981e 100644 --- a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 @@ -148,7 +148,7 @@ subroutine apply_mixed_u_operator_code(cell, & iw2 = map_w2(df) lhs_uv(iw2h:iw2h+nm1) = lhs_uv(iw2h:iw2h+nm1) & + norm_u(iw2:iw2+nm1)* & - mu_cd(ij:ij+nm1, df, ndf_w2h+df2)*wind_w(map_w2v(df2):map_w2v(df)+nm1) + mu_cd(ij:ij+nm1, df, ndf_w2h+df2)*wind_w(map_w2v(df2):map_w2v(df2)+nm1) end do end do diff --git a/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 index a5b0b152..89fb5172 100644 --- a/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 @@ -193,7 +193,7 @@ subroutine apply_mixed_wp_operator_code(cell, & iw2 = map_w2(ndf_w2h+df) lhs_w(iw2v:iw2v+nm1) = lhs_w(iw2v:iw2v+nm1) & + norm_u(iw2:iw2+nm1)*( & - - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & + - p2t(ij:ij+nm1, ndf_w2h+df, 1)*t_col(0:nm1) & - p2t(ij:ij+nm1, ndf_w2h+df, 2)*t_col(1:nm1+1) & - grad(ij:ij+nm1, ndf_w2h+df, 1)*exner(iw3:iw3+nm1)) diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index 0535e524..7ffa97a7 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -41,6 +41,8 @@ contains real(r_solver), dimension( undf_w2hb ) :: field_w2hb real(r_solver), dimension( undf_w2h ) :: answer + integer(i_def) :: cell + ! Assume a biperiodic mesh with two cells ! Locations of W2 dofs ! |---|---| @@ -60,21 +62,22 @@ contains field_w2hb = (/ 1.0_r_solver, 2.0_r_solver, 3.0_r_solver, 4.0_r_solver /) - - call assemble_w2h_from_w2hb_code( nlayers, & - field_w2h, & - field_w2hb, & - ndf_w2h, & - undf_w2h, & - map_w2h, & - ndf_w2hb, & - undf_w2hb, & - map_w2hb & - ) + do cell = 1, ncells + call assemble_w2h_from_w2hb_code( nlayers, & + field_w2h, & + field_w2hb, & + ndf_w2h, & + undf_w2h, & + map_w2h(:,cell), & + ndf_w2hb, & + undf_w2hb, & + map_w2hb(:,cell) & + ) + end do ! field_w2h should equal it's initial value plus the two ! adjacent w2hb values - answer = (/ 6.0_r_solver, 11.0_r_solver /) + answer = (/ 8.0_r_solver, 9.0_r_solver /) @assertEqual(answer, field_w2h, tol) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf index bba6b841..2fb9451e 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf @@ -51,13 +51,13 @@ contains integer(i_def), dimension(ndf_w3) :: map_w3 ! Operators - real(r_solver), dimension(ndf_w2, ndf_w2, ncell) :: Mu - real(r_solver), dimension(ndf_w2, ndf_wt, ncell) :: P2t - real(r_solver), dimension(ndf_w2, ndf_w3, ncell) :: Grad - real(r_solver), dimension(ndf_wt, ndf_w2, ncell) :: Pt2 - real(r_solver), dimension(ndf_w3, ndf_w3, ncell) :: M3p - real(r_solver), dimension(ndf_w3, ndf_wt, ncell) :: P3t - real(r_solver), dimension(ndf_w3, ndf_w2, ncell) :: Q32 + real(r_solver), dimension(ncell, ndf_w2, ndf_w2) :: Mu + real(r_solver), dimension(ncell, ndf_w2, ndf_wt) :: P2t + real(r_solver), dimension(ncell, ndf_w2, ndf_w3) :: Grad + real(r_solver), dimension(ncell, ndf_wt, ndf_w2) :: Pt2 + real(r_solver), dimension(ncell, ndf_w3, ndf_w3) :: M3p + real(r_solver), dimension(ncell, ndf_w3, ndf_wt) :: P3t + real(r_solver), dimension(ncell, ndf_w3, ndf_w2) :: Q32 ! Fields real(r_solver), dimension(undf_w2) :: Nu @@ -69,7 +69,7 @@ contains real(r_solver), dimension(ndf_w2) :: u integer(i_def) :: df, dfv, k - real(r_solver) :: answer + real(r_solver), dimension(undf_w2v) :: answer map_w2h = (/ 1_i_def, 1_i_def + nlayers /) map_w2v = (/ 1_i_def, 2_i_def /) @@ -81,15 +81,15 @@ contains Mu = 0.0_r_solver do df = 1,ndf_w2 - Mu(df,df,:) = real(df,r_solver) - Grad(df,1,:) = (-1.0_r_solver)**df + Mu(:,df,df) = real(df,r_solver) + Grad(:,df,1) = (-1.0_r_solver)**df end do P2t(:,:,:) = 0.0_r_solver - P2t(3:4,:,:) = 0.5_r_solver + P2t(:,3:4,:) = 0.5_r_solver Pt2 = 0.0_r_solver - Pt2(1,3,:) = 7.0_r_solver - Pt2(2,4,:) = 9.0_r_solver + Pt2(:,1,3) = 7.0_r_solver + Pt2(:,2,4) = 9.0_r_solver M3p = 0.5_r_solver Q32 = 3.0_r_solver P3t = 5.0_r_solver @@ -126,24 +126,30 @@ contains ndf_wt, undf_wt, map_wt, & ndf_w2, undf_w2, map_w2) t(:) = 0.0_r_solver - do df = 1, nlayers - t(df) = t(df) - invMt(df)*Pt2(1,3,df)*w(df) - t(df+1) = - invMt(df)*Pt2(2,4,df)*w(df+1) + do k = 1, nlayers + t(k) = t(k) - Pt2(k,1,3)*w(k) - Pt2(k,1,4)*w(k+1) + t(k+1) = t(k+1) - Pt2(k,2,3)*w(k) - Pt2(k,2,4)*w(k+1) end do - - k = 2 - do dfv = 1,ndf_w2v - df = ndf_w2h+dfv - answer = Nu(df+k)*(Mu(df,df,k)*uv(df) - sum(P2t(df,:,k)*t(3:4)) - Grad(df,1,k)*p(1+k)) - @assertEqual(answer, Lw(dfv+k), tol) + t(:) = invMt(:)*t(:) + + answer(:) = 0.0_r_solver + do k = 0, nlayers - 1 + do dfv = 1,ndf_w2v + u = (/ uv(1+k), uv(4+k), w(1+k), w(2+k) /) + df = ndf_w2h+dfv + answer(map_w2v(dfv)+k) = answer(map_w2v(dfv)+k) & + + Nu(map_w2(df)+k)*(sum(Mu(k+1,df,:)*u) & + - sum(P2t(k+1,df,:)*t(k+1:k+2)) & + - Grad(k+1,df,1)*p(1+k)) + end do end do - - @assertEqual(0.0_r_solver, Lw(1), tol) - @assertEqual(0.0_r_solver, Lw(nlayers+1), tol) + answer(1) = 0.0_r_solver + answer(nlayers+1) = 0.0_r_solver + @assertEqual(answer, Lw, tol) u = (/ uv(1), uv(4), w(1), w(2) /) - answer = M3p(1,1,1)*p(1) - sum(P3t(1,:,1)*t(1:2)) + sum(Q32(1,:,1)*u(1:4)) - @assertEqual(answer, Lp(1), tol) + answer(1) = M3p(1,1,1)*p(1) - sum(P3t(1,1,:)*t(1:2)) + sum(Q32(1,1,:)*u(1:4)) + @assertEqual(answer(1), Lp(1), tol) end subroutine test_all From 59e739d9392d8a6e58414082151f4ffaa9e6fc79 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Thu, 22 Jan 2026 16:08:19 +0000 Subject: [PATCH 14/34] Add to contributers --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d0f7ae14..7645b8bb 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,3 +4,4 @@ | ----------- | --------- | ----------- | ---- | | james-bruten-mo | James Bruten | Met Office | 2025-12-09 | | jennyhickson | Jenny Hickson | Met Office | 2025-12-10 | +| thomasmelvin | Thomas Melvin | Met Office | 2025-01-15 | From 3e13ee3333b04be48e5af13dd76740eac7903289 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 23 Jan 2026 12:04:36 +0000 Subject: [PATCH 15/34] Remove test group --- rose-stem/site/meto/groups/groups_lfric_atm.cylc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rose-stem/site/meto/groups/groups_lfric_atm.cylc b/rose-stem/site/meto/groups/groups_lfric_atm.cylc index 74410c08..44467096 100644 --- a/rose-stem/site/meto/groups/groups_lfric_atm.cylc +++ b/rose-stem/site/meto/groups/groups_lfric_atm.cylc @@ -9,10 +9,6 @@ {# Azspice Test Groups #} {# ###################################################################### #} {% do site_groups.update({ - "lfric_atm_solver": [ - "lfric_atm_nwp_gal9-C224_MG_ex1a_cce_production-32bit", - "lfric_atm_nwp_gal9-C896_MG_ex1a_cce_production-32bit", - ], "lfric_atm_nwp_azspice_developer": [ "lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-32bit", "lfric_atm_nwp_gal9-C12_azspice_gnu_fast-debug-64bit", From 53662d6dea5689ed875044b279b3b519b5be8fea Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 15:52:43 +0000 Subject: [PATCH 16/34] Apply suggestion from @tommbendall Co-authored-by: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> --- build/local_build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/local_build.py b/build/local_build.py index c79b9e09..e37939f7 100755 --- a/build/local_build.py +++ b/build/local_build.py @@ -82,7 +82,7 @@ def determine_project_path(project, root_dir): ) -def clone_dependency(source, ref, temp_dep): +def clone_dependency(values, temp_dep): """ Clone the physics dependencies into a temporary directory """ From 293bdb6ba55e53d5363eb68c423f4df2930ca817 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 15:53:59 +0000 Subject: [PATCH 17/34] Update local_build.py Reverting back to stable version --- build/local_build.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build/local_build.py b/build/local_build.py index e37939f7..98ad3c33 100755 --- a/build/local_build.py +++ b/build/local_build.py @@ -86,6 +86,9 @@ def clone_dependency(values, temp_dep): """ Clone the physics dependencies into a temporary directory """ + + source = values["source"] + ref = values["ref"] commands = ( f"git -C {temp_dep} init", From 3295d6f3959cdc0c2edb414d1aab0d7737916c54 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 15:54:33 +0000 Subject: [PATCH 18/34] Update science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf Co-authored-by: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> --- .../kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf index 2fb9451e..4069a3af 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2024 Met Office. All rights reserved. +! (C) Crown copyright 2026 Met Office. All rights reserved. ! For further details please refer to the file COPYRIGHT.txt ! which you should have received as part of this distribution. !----------------------------------------------------------------------------- From e7d027c33e8ea605f7493765861f70494beff0a9 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 15:54:42 +0000 Subject: [PATCH 19/34] Update science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf Co-authored-by: Thomas Bendall <14180399+tommbendall@users.noreply.github.com> --- .../kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf index e7216c24..6977603d 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2024 Met Office. All rights reserved. +! (C) Crown copyright 2026 Met Office. All rights reserved. ! For further details please refer to the file COPYRIGHT.txt ! which you should have received as part of this distribution. !----------------------------------------------------------------------------- From b275487023639449caa3cceb75b6ebd6be9984eb Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 16:10:56 +0000 Subject: [PATCH 20/34] Updates for sci review --- .../algorithm/solver/mixed_operator_alg_mod.x90 | 4 ++-- .../mixed_schur_preconditioner_alg_mod.x90 | 16 ++++++++-------- .../solver/pressure_operator_alg_mod.x90 | 4 ++-- .../assemble_w2h_from_w2hb_kernel_mod_test.pf | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index 10665534..c5e56560 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -176,7 +176,7 @@ contains type(r_solver_field_type) :: y_uv_broken - if ( subroutine_timers ) call timer('mixed_solver.operator') + if ( subroutine_timers ) call timer('mixed_operator') ! Extract mesh ID select type (y) @@ -380,7 +380,7 @@ contains call log_event(log_scratch_space, LOG_LEVEL_ERROR) end select - if ( subroutine_timers ) call timer('mixed_solver.operator') + if ( subroutine_timers ) call timer('mixed_operator') end subroutine apply_mixed_operator diff --git a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 index f67af532..2657cfd3 100644 --- a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 @@ -249,7 +249,7 @@ contains class(abstract_vector_type), intent(in) :: x class(abstract_vector_type), intent(inout) :: y - if ( subroutine_timers ) call timer('mixed_solver.schur_precon') + if ( subroutine_timers ) call timer('mixed_schur_preconditioner_alg') select type(x) type is(r_solver_field_vector_type) @@ -260,7 +260,7 @@ contains ! STEP 2: Solve Helmholtz system ! Krylov solver to obtain pressure increment - if ( subroutine_timers ) call timer('schur_precon.pressure_solver') + if ( subroutine_timers ) call timer('mixed_schur_solve') ! Set initial guess to pressure incremenet to 0 call self%pressure_x%set_scalar(0.0_r_def) @@ -269,7 +269,7 @@ contains call log_event('Schur preconditioner pressure solve:', LOG_LEVEL_DEBUG) call self%pressure_solver%apply(self%pressure_x, self%pressure_b) - if ( subroutine_timers ) call timer('schur_precon.pressure_solver') + if ( subroutine_timers ) call timer('mxed_schur_solve') ! STEP 3: Back substitute to obtain other fields call self%back_substitute(y) @@ -285,7 +285,7 @@ contains call log_event(log_scratch_space, LOG_LEVEL_ERROR) end select - if ( subroutine_timers ) call timer('mixed_solver.schur_precon') + if ( subroutine_timers ) call timer('mixed_schur_preconditioner_alg') end subroutine apply_mixed_schur_preconditioner @@ -337,7 +337,7 @@ contains type(integer_field_type), pointer :: face_selector_ew type(integer_field_type), pointer :: face_selector_ns - if ( subroutine_timers ) call timer('schur_precon.rhs') + if ( subroutine_timers ) call timer('mixed_schur rhs') rhs => self%pressure_b%get_field_from_position(1) @@ -414,7 +414,7 @@ contains call invoke( inc_X_times_Y(rhs, h_diag) ) end if - if ( subroutine_timers ) call timer('schur_precon.rhs') + if ( subroutine_timers ) call timer('mixed_schur rhs') end subroutine build_pressure_rhs @@ -453,7 +453,7 @@ contains type(r_solver_field_type), target :: dummy_field type(r_solver_field_type), target :: uvw_norm - if ( subroutine_timers ) call timer('schur_precon.back_sub') + if ( subroutine_timers ) call timer('Schur_back_substitute') exner_inc => self%pressure_x%get_field_from_position(1) @@ -504,7 +504,7 @@ contains state_p => state%get_field_from_position(isol_p) call invoke( setval_X(state_p, exner_inc) ) - if ( subroutine_timers ) call timer('schur_precon.back_sub') + if ( subroutine_timers ) call timer('Schur_back_substitute') end subroutine back_substitute diff --git a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 index abdbb61a..ef2eac48 100644 --- a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 @@ -166,7 +166,7 @@ contains integer(kind=i_def) :: mesh_id logical(kind=l_def) :: lam_mesh - if ( subroutine_timers ) call timer('pressure_solver.helmholtz_lhs') + if ( subroutine_timers ) call timer('helmholtz_lhs') select type (x) type is (r_solver_field_vector_type) @@ -241,7 +241,7 @@ contains nullify( w3_mask, w2_mask ) end if nullify( x_vec, y_vec ) - if ( subroutine_timers ) call timer('pressure_solver.helmholtz_lhs') + if ( subroutine_timers ) call timer('helmholtz_lhs') class default diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index 7ffa97a7..6be315dc 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -1,7 +1,7 @@ !----------------------------------------------------------------------------- -! Copyright (c) 2017, Met Office, on behalf of HMSO and Queen's Printer -! For further details please refer to the file LICENCE.original which you -! should have received as part of this distribution. +! (C) Crown copyright 2026 Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. !----------------------------------------------------------------------------- !> Test the assembly of a W2h field from a W2hb field From 9f3453da685b2d48f861e56cb82c02b2740fbb91 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Tue, 27 Jan 2026 17:18:19 +0000 Subject: [PATCH 21/34] fix to timer --- .../algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 index 2657cfd3..923ed363 100644 --- a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 @@ -269,7 +269,7 @@ contains call log_event('Schur preconditioner pressure solve:', LOG_LEVEL_DEBUG) call self%pressure_solver%apply(self%pressure_x, self%pressure_b) - if ( subroutine_timers ) call timer('mxed_schur_solve') + if ( subroutine_timers ) call timer('mixed_schur_solve') ! STEP 3: Back substitute to obtain other fields call self%back_substitute(y) From 56da5db2f4d31736e1c72ce1d73ab73eca118ef3 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Wed, 28 Jan 2026 10:01:34 +0000 Subject: [PATCH 22/34] correct small changes from stable --- build/local_build.py | 2 +- .../solver/mixed_schur_preconditioner_alg_mod.x90 | 8 ++++---- .../source/algorithm/solver/pressure_operator_alg_mod.x90 | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/local_build.py b/build/local_build.py index 98ad3c33..2c9d445e 100755 --- a/build/local_build.py +++ b/build/local_build.py @@ -86,7 +86,7 @@ def clone_dependency(values, temp_dep): """ Clone the physics dependencies into a temporary directory """ - + source = values["source"] ref = values["ref"] diff --git a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 index 923ed363..67dd8dc9 100644 --- a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 @@ -260,7 +260,7 @@ contains ! STEP 2: Solve Helmholtz system ! Krylov solver to obtain pressure increment - if ( subroutine_timers ) call timer('mixed_schur_solve') + if ( subroutine_timers ) call timer('mixed_schur solve') ! Set initial guess to pressure incremenet to 0 call self%pressure_x%set_scalar(0.0_r_def) @@ -269,7 +269,7 @@ contains call log_event('Schur preconditioner pressure solve:', LOG_LEVEL_DEBUG) call self%pressure_solver%apply(self%pressure_x, self%pressure_b) - if ( subroutine_timers ) call timer('mixed_schur_solve') + if ( subroutine_timers ) call timer('mixed_schur solve') ! STEP 3: Back substitute to obtain other fields call self%back_substitute(y) @@ -453,7 +453,7 @@ contains type(r_solver_field_type), target :: dummy_field type(r_solver_field_type), target :: uvw_norm - if ( subroutine_timers ) call timer('Schur_back_substitute') + if ( subroutine_timers ) call timer('Schur back substitute') exner_inc => self%pressure_x%get_field_from_position(1) @@ -504,7 +504,7 @@ contains state_p => state%get_field_from_position(isol_p) call invoke( setval_X(state_p, exner_inc) ) - if ( subroutine_timers ) call timer('Schur_back_substitute') + if ( subroutine_timers ) call timer('Schur back substitute') end subroutine back_substitute diff --git a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 index ef2eac48..cbc33df0 100644 --- a/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/pressure_operator_alg_mod.x90 @@ -166,7 +166,7 @@ contains integer(kind=i_def) :: mesh_id logical(kind=l_def) :: lam_mesh - if ( subroutine_timers ) call timer('helmholtz_lhs') + if ( subroutine_timers ) call timer('helmholtz lhs') select type (x) type is (r_solver_field_vector_type) @@ -241,7 +241,7 @@ contains nullify( w3_mask, w2_mask ) end if nullify( x_vec, y_vec ) - if ( subroutine_timers ) call timer('helmholtz_lhs') + if ( subroutine_timers ) call timer('helmholtz lhs') class default From 064b53f54fed11f161ecef88daa305ce96d095d3 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 11:52:03 +0000 Subject: [PATCH 23/34] Update science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 | 1 + 1 file changed, 1 insertion(+) diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index c5e56560..f175a592 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -132,6 +132,7 @@ contains use apply_mixed_wp_operator_kernel_mod, & only: apply_mixed_wp_operator_kernel_type use assemble_w2h_from_w2hb_kernel_mod, only: assemble_w2h_from_w2hb_kernel_type + implicit none class(mixed_operator_type), intent(inout) :: self From e616857bc1726f5bda3a27b92fe486586737b1d8 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 11:54:14 +0000 Subject: [PATCH 24/34] Update science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 index 67dd8dc9..525bc265 100644 --- a/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_schur_preconditioner_alg_mod.x90 @@ -477,7 +477,7 @@ contains end if call uvw_norm%initialise( vector_space = self%rhs_u%get_function_space() ) call invoke( name = "compute_split_increments", & - X_times_Y(uvw_norm, u_normalisation, Hb_lumped_inv), & + X_times_Y(uvw_norm, u_normalisation, Hb_lumped_inv), & setval_c(state_uv, 0.0_r_solver), & schur_backsub_kernel_type( state_uv, state_w, self%rhs_u, & exner_inc, div_star, & From 502861e2aae471343270137beee42c6f99c8da30 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 11:55:30 +0000 Subject: [PATCH 25/34] Update science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index 032ddeae..97ee2495 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -30,9 +30,9 @@ module assemble_w2h_from_w2hb_kernel_mod !> type, public, extends(kernel_type) :: assemble_w2h_from_w2hb_kernel_type private - type(arg_type) :: meta_args(2) = (/ & - arg_type(GH_FIELD, GH_REAL, GH_INC, W2h), & - arg_type(GH_FIELD, GH_REAL, GH_READ, W2broken) & + type(arg_type) :: meta_args(2) = (/ & + arg_type(GH_FIELD, GH_REAL, GH_INC, W2h), & ! field_w2h + arg_type(GH_FIELD, GH_REAL, GH_READ, W2broken) & ! field_w2h_broken /) integer :: operates_on = CELL_COLUMN contains From 563df80b588da6e670cf780d4ff38c6605021f20 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 11:56:08 +0000 Subject: [PATCH 26/34] Update science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index 97ee2495..87541497 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -88,7 +88,7 @@ subroutine assemble_w2h_from_w2hb_code( nlayers, & ! Loop over layers of mesh do k = 0, nlayers - 1 field_w2h(map_w2h(df)+k) = field_w2h(map_w2h(df)+k) & - + field_w2h_broken(map_w2h_broken(df)+k) + + field_w2h_broken(map_w2h_broken(df)+k) end do end do From 520136257983487a1a1c3e4bb77b71fd23fe9b6e Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:07:35 +0000 Subject: [PATCH 27/34] Update science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf index 4069a3af..70b0dac0 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_wp_operator_kernel_mod_test.pf @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2026 Met Office. All rights reserved. +! (C) Crown copyright Met Office. All rights reserved. ! For further details please refer to the file COPYRIGHT.txt ! which you should have received as part of this distribution. !----------------------------------------------------------------------------- From d5d9683abf23ecdbd668d0cd90fffd9755b24ebd Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:09:32 +0000 Subject: [PATCH 28/34] Update assemble_w2h_from_w2hb_kernel_mod.F90 Remove unused use statement --- .../kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index 87541497..4bb81e3f 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -16,7 +16,6 @@ module assemble_w2h_from_w2hb_kernel_mod use constants_mod, only : r_solver, i_def use fs_continuity_mod, only : W2h, W2broken use kernel_mod, only : kernel_type - use reference_element_mod, only : N, E, S, W, T, B implicit none From be7c1190ace64a8d166f44163acb226e3e3319df Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:14:25 +0000 Subject: [PATCH 29/34] Update mixed_operator_alg_mod.x90 Reformat comment on new approach to applying the optimised operator --- .../source/algorithm/solver/mixed_operator_alg_mod.x90 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 index f175a592..9e11279a 100644 --- a/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 +++ b/science/gungho/source/algorithm/solver/mixed_operator_alg_mod.x90 @@ -261,15 +261,12 @@ contains q32_op => get_eliminated_q32() if ( optimised_operator ) then ! Compute the lhs of mixed operator in two steps: - ! The first step computes the horizontal wind lhs (yvec_uv), this is done in the broken W2 + ! 1) Compute the horizontal wind lhs (yvec_uv), this is done in the broken W2 ! space to avoid having to halo exchange the input fields. After computation of ! the broken W2 lhs the continuous W2 lhs is computed which only requires a single ! halo exchange. - ! The second step computes the vertical wind (yvec_w) & pressure (yvec_p) lhs, since these + ! 2) Compute the vertical wind (yvec_w) & pressure (yvec_p) lhs, since these ! are horizontally discontinuous fields then there are no further halo exchanges required. - ! Alternatively this code could be computed in a single kernel - ! (apply_mixed_operator_kernel_type), however this appears to have poorer cache usage, - ! resulting in an increased computation time ! Create broken y_uv w2hb_fs => function_space_collection%get_fs(mesh, 0, 0, W2Hbroken) From c60ea386ed3f3181b057c2afc324d76beb9c7bc9 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:22:41 +0000 Subject: [PATCH 30/34] Update assemble_w2h_from_w2hb_kernel_mod.F90 Modifying the comment to remove "Unbreaks" --- .../core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 index 4bb81e3f..7c4a6ffe 100644 --- a/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 +++ b/science/gungho/source/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod.F90 @@ -4,9 +4,8 @@ ! under which the code may be used. !----------------------------------------------------------------------------- !> @brief Maps a field from W2h broken to W2h. -!> @details "Unbreaks" a W2h field by averaging values on either side of -!> broken facets. -!> This kernel only works for the lowest-order elements. +!> @details Forms a continuous W2h field by adding the components from a +!! broken W2h field on either side of the mesh facets. module assemble_w2h_from_w2hb_kernel_mod use argument_mod, only : arg_type, & From 29311326649c14a29293a92d15ef51326d9d0fad Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:26:57 +0000 Subject: [PATCH 31/34] Update science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 index dcd4981e..fb51ad11 100644 --- a/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_mixed_u_operator_kernel_mod.F90 @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2024 Met Office. All rights reserved. +! (C) Crown copyright Met Office. All rights reserved. ! The file LICENCE, distributed with this code, contains details of the terms ! under which the code may be used. !----------------------------------------------------------------------------- From 739bc006d5b60a930e52cdeacde2a4bac15d9a29 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:27:23 +0000 Subject: [PATCH 32/34] Update science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 index 89fb5172..afa1f1f7 100644 --- a/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 +++ b/science/gungho/source/kernel/solver/apply_mixed_wp_operator_kernel_mod.F90 @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2024 Met Office. All rights reserved. +! (C) Crown copyright Met Office. All rights reserved. ! The file LICENCE, distributed with this code, contains details of the terms ! under which the code may be used. !----------------------------------------------------------------------------- From 556d5cff46cc37a694ce45cb64dbdb69c22ce251 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:28:51 +0000 Subject: [PATCH 33/34] Update science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf index 6977603d..dc7991dc 100644 --- a/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/solver/apply_mixed_u_operator_kernel_mod_test.pf @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2026 Met Office. All rights reserved. +! (C) Crown copyright Met Office. All rights reserved. ! For further details please refer to the file COPYRIGHT.txt ! which you should have received as part of this distribution. !----------------------------------------------------------------------------- From e981a5a4c097a74fae35817d1aaddbc89d920164 Mon Sep 17 00:00:00 2001 From: thomasmelvin Date: Fri, 6 Feb 2026 13:29:09 +0000 Subject: [PATCH 34/34] Update science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf Co-authored-by: Ricky Wong <141156427+mo-rickywong@users.noreply.github.com> --- .../core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf index 6be315dc..351b39ba 100644 --- a/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf +++ b/science/gungho/unit-test/kernel/core_dynamics/assemble_w2h_from_w2hb_kernel_mod_test.pf @@ -1,5 +1,5 @@ !----------------------------------------------------------------------------- -! (C) Crown copyright 2026 Met Office. All rights reserved. +! (C) Crown copyright Met Office. All rights reserved. ! For further details please refer to the file COPYRIGHT.txt ! which you should have received as part of this distribution. !-----------------------------------------------------------------------------