diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index da42a74b5..04ff97bc6 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -5,3 +5,4 @@
| james-bruten-mo | James Bruten | Met Office | 2025-12-09 |
| jennyhickson | Jenny Hickson | Met Office | 2025-12-10 |
| mo-marqh | mark Hedley | Met Office | 2025-12-11 |
+| tommbendall | Thomas Bendall | Met Office | 2025-01-20 |
diff --git a/applications/adjoint_tests/example/configuration.nml b/applications/adjoint_tests/example/configuration.nml
index 84ce2a779..39e2b4178 100644
--- a/applications/adjoint_tests/example/configuration.nml
+++ b/applications/adjoint_tests/example/configuration.nml
@@ -53,7 +53,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -120,9 +122,7 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.false.,
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -212,6 +212,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py b/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py
+++ b/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/adjoint_tests/source/algorithm/transport/mol/adjt_reconstruct_w3_field_alg_mod.x90 b/applications/adjoint_tests/source/algorithm/transport/mol/adjt_reconstruct_w3_field_alg_mod.x90
index 0ccda5295..777dced82 100644
--- a/applications/adjoint_tests/source/algorithm/transport/mol/adjt_reconstruct_w3_field_alg_mod.x90
+++ b/applications/adjoint_tests/source/algorithm/transport/mol/adjt_reconstruct_w3_field_alg_mod.x90
@@ -22,7 +22,6 @@ module adjt_reconstruct_w3_field_alg_mod
use function_space_collection_mod, only : function_space_collection
use transport_metadata_collection_mod, only : transport_metadata_collection
use transport_metadata_mod, only : transport_metadata_type
- use check_configuration_mod, only : get_required_stencil_depth
implicit none
diff --git a/applications/gravity_wave/example/configuration.nml b/applications/gravity_wave/example/configuration.nml
index 615f9d0bc..a0d7e7095 100644
--- a/applications/gravity_wave/example/configuration.nml
+++ b/applications/gravity_wave/example/configuration.nml
@@ -32,6 +32,8 @@ start_dump_filename = ''
&finite_element
cellshape = 'quadrilateral'
coord_order = 1
+coord_order_multigrid = 1,
+coord_space = 'Wchi',
coord_system = 'native'
element_order_h = 0
element_order_v = 0
diff --git a/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py b/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py
+++ b/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/gravity_wave/source/driver/gravity_wave_infrastructure_mod.f90 b/applications/gravity_wave/source/driver/gravity_wave_infrastructure_mod.f90
index 46b88ddad..0526e935b 100644
--- a/applications/gravity_wave/source/driver/gravity_wave_infrastructure_mod.f90
+++ b/applications/gravity_wave/source/driver/gravity_wave_infrastructure_mod.f90
@@ -10,7 +10,6 @@ module gravity_wave_infrastructure_mod
use add_mesh_map_mod, only : assign_mesh_maps
use driver_modeldb_mod, only : modeldb_type
- use check_configuration_mod, only : get_required_stencil_depth
use constants_mod, only : i_def, &
PRECISION_REAL, &
r_def, r_second, &
@@ -81,7 +80,8 @@ subroutine initialise_infrastructure( program_name, &
logical(l_def) :: prepartitioned
logical :: apply_partition_check
- integer(i_def) :: stencil_depth
+ integer(i_def) :: stencil_depth(1)
+
integer(i_def) :: geometry
integer(i_def) :: method
integer(i_def) :: number_of_layers
@@ -191,7 +191,7 @@ subroutine initialise_infrastructure( program_name, &
!=======================================================================
! 1.3 Initialise mesh objects and assign InterGrid maps
!=======================================================================
- stencil_depth = get_required_stencil_depth()
+ stencil_depth = 2
apply_partition_check = .false.
if ( .not. prepartitioned .and. l_multigrid ) then
apply_partition_check = .true.
@@ -237,6 +237,9 @@ subroutine initialise_infrastructure( program_name, &
nullify(chi_inventory, panel_id_inventory)
deallocate(base_mesh_names)
+ deallocate(twod_names)
+ deallocate(extrusion)
+ deallocate(extrusion_2d)
end subroutine initialise_infrastructure
diff --git a/applications/gravity_wave/unit-test/kernel/compute_q_operator_kernel_mod_test.pf b/applications/gravity_wave/unit-test/kernel/compute_q_operator_kernel_mod_test.pf
index e4337c084..ecde0750a 100644
--- a/applications/gravity_wave/unit-test/kernel/compute_q_operator_kernel_mod_test.pf
+++ b/applications/gravity_wave/unit-test/kernel/compute_q_operator_kernel_mod_test.pf
@@ -31,7 +31,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only: cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only: feign_finite_element_config
implicit none
@@ -42,6 +42,8 @@ contains
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
coord_system=coord_system_xyz, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=1_i_def, &
element_order_v=1_i_def, &
rehabilitate=.true., &
diff --git a/applications/gravity_wave/unit-test/kernel/initial_buoyancy_kernel_mod_test.pf b/applications/gravity_wave/unit-test/kernel/initial_buoyancy_kernel_mod_test.pf
index 8a3ca705d..cfb66af04 100644
--- a/applications/gravity_wave/unit-test/kernel/initial_buoyancy_kernel_mod_test.pf
+++ b/applications/gravity_wave/unit-test/kernel/initial_buoyancy_kernel_mod_test.pf
@@ -28,7 +28,7 @@ contains
stretching_method_linear
use sci_chi_transform_mod, only : init_chi_transforms
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -60,6 +60,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/gungho_model/example/configuration.nml b/applications/gungho_model/example/configuration.nml
index ea60b8aa1..6b276592e 100644
--- a/applications/gungho_model/example/configuration.nml
+++ b/applications/gungho_model/example/configuration.nml
@@ -47,7 +47,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -113,11 +115,9 @@ coarse_ozone_ancil=.false.,
init_option='analytic',
lbc_option='none',
ls_option='none',
-n_orog_smooth=0,
read_w2h_wind=.false.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -211,6 +211,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/gungho_model/example/file_def_initial.xml b/applications/gungho_model/example/file_def_initial.xml
index 2b1050253..42cf3bfec 100644
--- a/applications/gungho_model/example/file_def_initial.xml
+++ b/applications/gungho_model/example/file_def_initial.xml
@@ -13,6 +13,8 @@
+
+
diff --git a/applications/gungho_model/lam_example/baroclinic/config_driver.nml b/applications/gungho_model/lam_example/baroclinic/config_driver.nml
index 43d72b197..a8af48cd6 100644
--- a/applications/gungho_model/lam_example/baroclinic/config_driver.nml
+++ b/applications/gungho_model/lam_example/baroclinic/config_driver.nml
@@ -43,6 +43,8 @@ lbc_filename='',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/gungho_model/lam_example/baroclinic/config_lam.nml b/applications/gungho_model/lam_example/baroclinic/config_lam.nml
index d63ada536..ca0998f21 100644
--- a/applications/gungho_model/lam_example/baroclinic/config_lam.nml
+++ b/applications/gungho_model/lam_example/baroclinic/config_lam.nml
@@ -59,6 +59,8 @@ lbc_filename='lbc',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/gungho_model/lam_example/straka/config_driver.nml b/applications/gungho_model/lam_example/straka/config_driver.nml
index 82fd2d418..9141d3226 100644
--- a/applications/gungho_model/lam_example/straka/config_driver.nml
+++ b/applications/gungho_model/lam_example/straka/config_driver.nml
@@ -45,6 +45,8 @@ lbc_filename='',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/gungho_model/lam_example/straka/config_lam.nml b/applications/gungho_model/lam_example/straka/config_lam.nml
index 636c9e6e0..563c333d2 100644
--- a/applications/gungho_model/lam_example/straka/config_lam.nml
+++ b/applications/gungho_model/lam_example/straka/config_lam.nml
@@ -57,6 +57,8 @@ lbc_filename='lbc',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py b/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py
+++ b/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/example/configuration.nml b/applications/jedi_lfric_tests/example/configuration.nml
index b2d3c1ff0..dbf340812 100644
--- a/applications/jedi_lfric_tests/example/configuration.nml
+++ b/applications/jedi_lfric_tests/example/configuration.nml
@@ -67,8 +67,10 @@ start_dump_filename='final_pert',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
coord_system='native',
+coord_order_multigrid=1,
+coord_space='Wchi',
element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
@@ -134,11 +136,9 @@ init_option='fd_start_dump',
lbc_option='none',
ls_option='file',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -229,6 +229,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_forecast/configuration.nml b/applications/jedi_lfric_tests/example_forecast/configuration.nml
index 016e61fbc..2b2334a42 100644
--- a/applications/jedi_lfric_tests/example_forecast/configuration.nml
+++ b/applications/jedi_lfric_tests/example_forecast/configuration.nml
@@ -75,7 +75,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -144,11 +146,9 @@ coarse_ozone_ancil=.false.,
init_option='analytic',
lbc_option='none',
ls_option='none',
-n_orog_smooth=0,
read_w2h_wind=.false.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -232,6 +232,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_forecast_pseudo/configuration.nml b/applications/jedi_lfric_tests/example_forecast_pseudo/configuration.nml
index 9447dfff7..9f1bce5ed 100644
--- a/applications/jedi_lfric_tests/example_forecast_pseudo/configuration.nml
+++ b/applications/jedi_lfric_tests/example_forecast_pseudo/configuration.nml
@@ -47,6 +47,8 @@ stretching_method='smooth',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/jedi_lfric_tests/example_forecast_pseudo/configuration_op.nml b/applications/jedi_lfric_tests/example_forecast_pseudo/configuration_op.nml
index c179e76eb..f15875635 100644
--- a/applications/jedi_lfric_tests/example_forecast_pseudo/configuration_op.nml
+++ b/applications/jedi_lfric_tests/example_forecast_pseudo/configuration_op.nml
@@ -47,6 +47,8 @@ stretching_method='smooth',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/jedi_lfric_tests/example_id_tlm_tests/configuration.nml b/applications/jedi_lfric_tests/example_id_tlm_tests/configuration.nml
index 53acee0fc..4c6aaa8c7 100644
--- a/applications/jedi_lfric_tests/example_id_tlm_tests/configuration.nml
+++ b/applications/jedi_lfric_tests/example_id_tlm_tests/configuration.nml
@@ -105,7 +105,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -175,11 +177,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -270,6 +270,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration.nml b/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration.nml
index f61e5aab0..126e9ebfc 100644
--- a/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration.nml
+++ b/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration.nml
@@ -105,7 +105,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -175,11 +177,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -270,6 +270,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration_op.nml b/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration_op.nml
index 7b9d54bf3..a4a753d3d 100644
--- a/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration_op.nml
+++ b/applications/jedi_lfric_tests/example_tlm_forecast_tl/configuration_op.nml
@@ -105,7 +105,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -172,11 +174,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -266,6 +266,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_tlm_tests/configuration.nml b/applications/jedi_lfric_tests/example_tlm_tests/configuration.nml
index 283c5dafb..61be5babb 100644
--- a/applications/jedi_lfric_tests/example_tlm_tests/configuration.nml
+++ b/applications/jedi_lfric_tests/example_tlm_tests/configuration.nml
@@ -106,7 +106,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -176,11 +178,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -271,6 +271,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry.nml b/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry.nml
index c9b945825..27e400729 100644
--- a/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry.nml
+++ b/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry.nml
@@ -105,7 +105,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -174,11 +176,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -269,6 +269,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry_relaxed.nml b/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry_relaxed.nml
index 1296925a7..66cf139f3 100644
--- a/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry_relaxed.nml
+++ b/applications/jedi_lfric_tests/example_tlm_tests/configuration_dry_relaxed.nml
@@ -103,7 +103,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -170,11 +172,9 @@ init_option='analytic',
lbc_option='none',
ls_option='analytic',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.true.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -264,6 +264,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='ancil',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90 b/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90
index 9748e3f94..a62b68ecb 100644
--- a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90
+++ b/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90
@@ -69,7 +69,7 @@ program algorithm_test
logical(l_def) :: apply_partition_check
integer(i_def) :: geometry
- integer(i_def) :: stencil_depth
+ integer(i_def) :: stencil_depth(1)
integer(i_def) :: method
integer(i_def) :: number_of_layers
real(r_def) :: domain_bottom
diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml b/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml
index 8f09d097b..d3c250ef0 100644
--- a/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml
+++ b/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml
@@ -22,6 +22,8 @@ element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
coord_order=1
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native'
/
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_forecast_pseudo/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_forecast_pseudo/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast_pseudo/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast_pseudo/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_id_tlm_tests/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_id_tlm_tests/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_id_tlm_tests/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_id_tlm_tests/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_lfric_tests/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_lfric_tests/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_lfric_tests/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_lfric_tests/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_tlm_forecast_tl/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_tlm_forecast_tl/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_tlm_forecast_tl/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_tlm_forecast_tl/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_tlm_tests/versions.py b/applications/jedi_lfric_tests/rose-meta/jedi_tlm_tests/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jedi_lfric_tests/rose-meta/jedi_tlm_tests/versions.py
+++ b/applications/jedi_lfric_tests/rose-meta/jedi_tlm_tests/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/jedi_lfric_tests/source/jedi-interface/jedi_geometry_mod.f90 b/applications/jedi_lfric_tests/source/jedi-interface/jedi_geometry_mod.f90
index 4fd1b473b..bebc16e4e 100644
--- a/applications/jedi_lfric_tests/source/jedi-interface/jedi_geometry_mod.f90
+++ b/applications/jedi_lfric_tests/source/jedi-interface/jedi_geometry_mod.f90
@@ -94,7 +94,6 @@ module jedi_geometry_mod
!>
subroutine initialise( self, mpi_comm, configuration )
! Access config directly until modeldb ready
- use driver_mesh_mod, only: init_mesh
use driver_config_mod, only: init_config
use jedi_lfric_mesh_setup_mod, only: initialise_mesh
use jedi_lfric_tests_mod, only: jedi_lfric_tests_required_namelists
diff --git a/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90 b/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90
index f2266fdb5..0b8e24dcd 100644
--- a/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90
+++ b/applications/jedi_lfric_tests/source/jedi_tlm_tests.f90
@@ -74,7 +74,7 @@ program jedi_tlm_tests
character( str_def ) :: forecast_length_str
real( kind=r_def ) :: dot_product_1
real( kind=r_def ) :: dot_product_2
- real( kind=r_def ), parameter :: absolute_tolerance = 1.0E-4_r_def
+ real( kind=r_def ), parameter :: absolute_tolerance = 3.0E-4_r_def
real( kind=r_def ) :: machine_tolerance
real( kind=r_def ) :: absolute_diff
real( kind=r_def ) :: relative_diff
diff --git a/applications/jules/example/configuration.nml b/applications/jules/example/configuration.nml
index fd648227e..399b4cc02 100644
--- a/applications/jules/example/configuration.nml
+++ b/applications/jules/example/configuration.nml
@@ -45,7 +45,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -112,11 +114,9 @@ coarse_ozone_ancil=.false.,
init_option='analytic',
lbc_option='none',
ls_option='none',
-n_orog_smooth=0,
read_w2h_wind=.false.,
sea_ice_source='ancillary',
snow_source='start_dump',
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_pressure
@@ -347,6 +347,9 @@ split_w=.true.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
generate_inner_halos=.false.,
diff --git a/applications/jules/rose-meta/lfric-jules/versions.py b/applications/jules/rose-meta/lfric-jules/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/jules/rose-meta/lfric-jules/versions.py
+++ b/applications/jules/rose-meta/lfric-jules/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/lfric2lfric/example/configuration.nml b/applications/lfric2lfric/example/configuration.nml
index b70cd2d22..a1b9e89ef 100644
--- a/applications/lfric2lfric/example/configuration.nml
+++ b/applications/lfric2lfric/example/configuration.nml
@@ -38,6 +38,8 @@ element_order_h = 0,
element_order_v = 0,
rehabilitate = .true.,
coord_order = 1,
+coord_order_multigrid = 1,
+coord_space = 'Wchi',
/
&io
diff --git a/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py b/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py
+++ b/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90 b/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
index 108104c11..2626fd50b 100644
--- a/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
+++ b/applications/lfric2lfric/source/initialisation/lfric2lfric_infrastructure_mod.X90
@@ -21,7 +21,6 @@ module lfric2lfric_infrastructure_mod
use driver_fem_mod, only: init_fem
use driver_io_mod, only: init_io, &
filelist_populator
- use check_configuration_mod, only: get_required_stencil_depth
use extrusion_mod, only: extrusion_type, &
uniform_extrusion_type, &
prime_extrusion, &
@@ -169,7 +168,7 @@ contains
integer(kind=i_def) :: origin_domain
integer(kind=i_def) :: target_domain
- integer(kind=i_def) :: stencil_depth
+ integer(kind=i_def) :: stencil_depth(1)
integer(kind=i_def) :: source_geometry
integer(i_def) :: regrid_method
real(kind=r_def) :: domain_bottom
@@ -315,7 +314,7 @@ contains
!-----------------------------------------------------------------------
! Create the required meshes
!-----------------------------------------------------------------------
- stencil_depth = get_required_stencil_depth()
+ stencil_depth = 2
call init_mesh( modeldb%configuration, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
diff --git a/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90 b/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
index f1134fce5..d1b282198 100644
--- a/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
+++ b/applications/lfric2lfric/source/initialisation/lfric2lfric_init_mesh.f90
@@ -75,7 +75,8 @@ module lfric2lfric_init_mesh_mod
!> @param[in] total_ranks Total number of MPI ranks in this job.
!> @param[in] mesh_names Mesh names to load from the mesh input file(s).
!> @param[in] extrusion Extrusion object to be applied to meshes.
-!> @param[in] stencil_depth Required stencil depth for the application.
+!> @param[in] stencil_depths_in Required stencil depth for the application
+!! for each mesh.
!> @param[in] regrid_method Apply check for even partitions with the
!> configured partition strategy if the
!> regridding method is 'map'.
@@ -85,7 +86,7 @@ subroutine init_mesh( configuration, &
local_rank, total_ranks, &
mesh_names, &
extrusion, &
- stencil_depth, &
+ stencil_depths_in, &
regrid_method )
implicit none
@@ -97,7 +98,7 @@ subroutine init_mesh( configuration, &
integer(kind=i_def), intent(in) :: total_ranks
character(len=*), intent(in) :: mesh_names(2)
class(extrusion_type), intent(in) :: extrusion
- integer(kind=i_def), intent(in) :: stencil_depth
+ integer(kind=i_def), intent(in) :: stencil_depths_in(:)
integer(kind=i_def), intent(in) :: regrid_method
! Parameters
@@ -123,7 +124,9 @@ subroutine init_mesh( configuration, &
integer(kind=i_def) :: mesh_selection(2)
! Local variables
+ integer(kind=i_def) :: i
character(len=str_max_filename) :: mesh_file(2)
+ integer(kind=i_def) :: stencil_depths(2)
procedure(partitioner_interface), pointer :: partitioner_src => null()
procedure(partitioner_interface), pointer :: partitioner_dst => null()
@@ -173,6 +176,22 @@ subroutine init_mesh( configuration, &
call log_event(log_scratch_space, log_level_error)
end if
+ ! Set up stencil depths
+ if ( size(stencil_depths) == 1 ) then
+ ! Single stencil depth specified, apply to all meshes
+ do i = 1, size(mesh_names)
+ stencil_depths(i) = stencil_depths_in(1)
+ end do
+ else if ( size(stencil_depths) == size(mesh_names) ) then
+ ! Stencil depths specified per mesh
+ stencil_depths(:) = stencil_depths_in(:)
+ else
+ write(log_scratch_space, '(A)') &
+ 'Number of stencil depths specified does not '// &
+ 'match number of requested meshes.'
+ call log_event(log_scratch_space, log_level_error)
+ end if
+
!===========================================================================
! Create local mesh objects:
@@ -231,8 +250,8 @@ subroutine init_mesh( configuration, &
! meshes are suitable for the supplied application
! configuration.
!===========================================================
- call check_local_mesh( configuration, &
- stencil_depth, &
+ call check_local_mesh( configuration, &
+ stencil_depths, &
mesh_names )
! Load and assign mesh maps.
@@ -304,15 +323,15 @@ subroutine init_mesh( configuration, &
call create_local_mesh( mesh_names(dst:dst), &
local_rank, total_ranks, &
decomposition_dst, &
- stencil_depth, &
- generate_inner_halos(dst), &
+ stencil_depths, &
+ generate_inner_halos(dst), &
partitioner_dst )
call create_local_mesh( mesh_names(src:src), &
local_rank, total_ranks, &
decomposition_src, &
- stencil_depth, &
- generate_inner_halos(src), &
+ stencil_depths, &
+ generate_inner_halos(src), &
partitioner_src )
! Read in the global intergrid mesh mappings,
diff --git a/applications/lfric_atm/example/configuration.nml b/applications/lfric_atm/example/configuration.nml
index 5301f68ed..f4428c3f7 100644
--- a/applications/lfric_atm/example/configuration.nml
+++ b/applications/lfric_atm/example/configuration.nml
@@ -146,7 +146,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -212,9 +214,7 @@ coarse_orography_ancil=.false.,
init_option='analytic',
lbc_option='none',
ls_option='none',
-n_orog_smooth=0,
read_w2h_wind=.false.,
-w0_orography_mapping=.false.,
zero_w2v_wind=.false.,
/
&initial_density
@@ -491,6 +491,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/lfric_atm/metadata/field_def_diags.xml b/applications/lfric_atm/metadata/field_def_diags.xml
index 007ee86df..a17d884f9 100644
--- a/applications/lfric_atm/metadata/field_def_diags.xml
+++ b/applications/lfric_atm/metadata/field_def_diags.xml
@@ -43,6 +43,8 @@
+
+
zoomed__orography
diff --git a/applications/lfric_atm/metadata/field_def_initial_diags.xml b/applications/lfric_atm/metadata/field_def_initial_diags.xml
index 707675af2..b91c8aed1 100644
--- a/applications/lfric_atm/metadata/field_def_initial_diags.xml
+++ b/applications/lfric_atm/metadata/field_def_initial_diags.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py b/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py
+++ b/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/lfric_coupled/example/configuration.nml b/applications/lfric_coupled/example/configuration.nml
index 643f92211..f4843296c 100644
--- a/applications/lfric_coupled/example/configuration.nml
+++ b/applications/lfric_coupled/example/configuration.nml
@@ -78,6 +78,8 @@ start_dump_filename='',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wtheta',
coord_system='native',
element_order_h=0,
element_order_v=0,
diff --git a/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py b/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py
+++ b/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/lfricinputs/source/common/lfricinp_lfric_driver_mod.f90 b/applications/lfricinputs/source/common/lfricinp_lfric_driver_mod.f90
index a0630d7bf..cd39b0b27 100644
--- a/applications/lfricinputs/source/common/lfricinp_lfric_driver_mod.f90
+++ b/applications/lfricinputs/source/common/lfricinp_lfric_driver_mod.f90
@@ -132,7 +132,7 @@ subroutine lfricinp_initialise_lfric(program_name_arg, &
character(str_def) :: prime_mesh_name
-integer(i_def) :: stencil_depth
+integer(i_def) :: stencil_depth(1)
integer(i_def) :: geometry
real(r_def) :: domain_bottom
real(r_def) :: scaled_radius
diff --git a/applications/linear_model/example/configuration.nml b/applications/linear_model/example/configuration.nml
index 5ed21fc6c..cc8a5045c 100644
--- a/applications/linear_model/example/configuration.nml
+++ b/applications/linear_model/example/configuration.nml
@@ -47,7 +47,9 @@ ls_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -93,7 +95,6 @@ ancil_option='none',
init_option='analytic',
lbc_option='none',
ls_option='analytic',
-n_orog_smooth=0,
read_w2h_wind=.false.,
zero_w2v_wind=.false.,
/
@@ -183,6 +184,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/linear_model/example_file/config_linear.nml b/applications/linear_model/example_file/config_linear.nml
index 18df08580..066de5c17 100644
--- a/applications/linear_model/example_file/config_linear.nml
+++ b/applications/linear_model/example_file/config_linear.nml
@@ -44,7 +44,9 @@ ls_filename='ls',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -89,7 +91,6 @@ ancil_option='none',
init_option='analytic',
lbc_option='none',
ls_option='file',
-n_orog_smooth=0,
read_w2h_wind=.false.,
coarse_aerosol_ancil=.false.
zero_w2v_wind=.false.,
@@ -179,6 +180,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/linear_model/example_file/config_nonlinear.nml b/applications/linear_model/example_file/config_nonlinear.nml
index b32d3f15b..ec3774523 100644
--- a/applications/linear_model/example_file/config_nonlinear.nml
+++ b/applications/linear_model/example_file/config_nonlinear.nml
@@ -42,7 +42,9 @@ start_dump_filename='',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -87,7 +89,6 @@ ancil_option='none',
init_option='analytic',
lbc_option='none',
ls_option='analytic',
-n_orog_smooth=0,
read_w2h_wind=.false.
coarse_aerosol_ancil=.false.
zero_w2v_wind=.false.,
@@ -173,6 +174,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/linear_model/rose-meta/lfric-linear_model/versions.py b/applications/linear_model/rose-meta/lfric-linear_model/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/linear_model/rose-meta/lfric-linear_model/versions.py
+++ b/applications/linear_model/rose-meta/lfric-linear_model/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/name_transport/example/configuration.nml b/applications/name_transport/example/configuration.nml
index 3bcb4b2f4..0e3207739 100644
--- a/applications/name_transport/example/configuration.nml
+++ b/applications/name_transport/example/configuration.nml
@@ -32,6 +32,8 @@ element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native'
vorticity_in_w1=.true.,
/
diff --git a/applications/name_transport/rose-meta/lfric-name_transport/versions.py b/applications/name_transport/rose-meta/lfric-name_transport/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/name_transport/rose-meta/lfric-name_transport/versions.py
+++ b/applications/name_transport/rose-meta/lfric-name_transport/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/name_transport/source/driver/name_transport_driver_mod.f90 b/applications/name_transport/source/driver/name_transport_driver_mod.f90
index 94e8365c0..1414140b6 100644
--- a/applications/name_transport/source/driver/name_transport_driver_mod.f90
+++ b/applications/name_transport/source/driver/name_transport_driver_mod.f90
@@ -108,12 +108,12 @@ subroutine initialise_name_transport( program_name, modeldb )
character(len=str_def), allocatable :: shifted_names(:)
character(len=str_def), allocatable :: double_names(:)
character(len=str_def) :: prime_mesh_name
+ integer(kind=i_def), allocatable :: stencil_depths(:)
logical(kind=l_def) :: prepartitioned
logical(kind=l_def) :: apply_partition_check
integer(kind=i_def) :: geometry
- integer(kind=i_def) :: stencil_depth
real(kind=r_def) :: domain_bottom
real(kind=r_def) :: domain_height
real(kind=r_def) :: scaled_radius
@@ -236,14 +236,18 @@ subroutine initialise_name_transport( program_name, modeldb )
! 1.3a Initialise prime/2d meshes
! ---------------------------------------------------------
- stencil_depth = get_required_stencil_depth()
+ allocate(stencil_depths(num_base_meshes))
+ call get_required_stencil_depth( &
+ stencil_depths, base_mesh_names, modeldb%configuration &
+ )
+
apply_partition_check = .false.
call init_mesh( modeldb%configuration, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, &
- extrusion, stencil_depth, &
+ extrusion, stencil_depths, &
apply_partition_check )
call create_mesh( base_mesh_names, extrusion_2d, &
@@ -350,11 +354,19 @@ subroutine initialise_name_transport( program_name, modeldb )
end if
- if (allocated(base_mesh_names)) deallocate(base_mesh_names)
- if (allocated(meshes_to_shift)) deallocate(meshes_to_shift)
- if (allocated(meshes_to_double)) deallocate(meshes_to_double)
-
+ if (allocated(base_mesh_names)) deallocate(base_mesh_names)
+ if (allocated(meshes_to_shift)) deallocate(meshes_to_shift)
+ if (allocated(meshes_to_double)) deallocate(meshes_to_double)
+ if (allocated(twod_names)) deallocate(twod_names)
+ if (allocated(shifted_names)) deallocate(shifted_names)
+ if (allocated(double_names)) deallocate(double_names)
+ if (allocated(extrusion)) deallocate(extrusion)
+ if (allocated(extrusion_2d)) deallocate(extrusion_2d)
+ if (allocated(extrusion_shifted)) deallocate(extrusion_shifted)
+ if (allocated(extrusion_double)) deallocate(extrusion_double)
+ if (allocated(stencil_depths)) deallocate(stencil_depths)
if (allocated(extra_io_mesh_names)) deallocate(extra_io_mesh_names)
+
nullify(chi_inventory, panel_id_inventory, mesh)
end subroutine initialise_name_transport
diff --git a/applications/name_transport/unit-test/kernel/set_name_field_kernel_mod_test.pf b/applications/name_transport/unit-test/kernel/set_name_field_kernel_mod_test.pf
index 7ae24e5d4..6c47db606 100644
--- a/applications/name_transport/unit-test/kernel/set_name_field_kernel_mod_test.pf
+++ b/applications/name_transport/unit-test/kernel/set_name_field_kernel_mod_test.pf
@@ -37,7 +37,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -67,6 +67,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/ngarch/example/configuration_bl.nml b/applications/ngarch/example/configuration_bl.nml
index 87c3e5318..c2087df19 100644
--- a/applications/ngarch/example/configuration_bl.nml
+++ b/applications/ngarch/example/configuration_bl.nml
@@ -115,7 +115,9 @@ surface_frac_ancil_path='vegetation/fractions_cci/qrparm.veg.frac.fixed',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -182,12 +184,10 @@ init_option='fd_start_dump',
lbc_option='none',
ls_option='none',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.false.,
sea_ice_source='ancillary',
snow_source='start_dump',
sst_source='ancillary',
-w0_orography_mapping=.false.,
zero_w2v_wind=.true.,
/
&initial_density
@@ -381,6 +381,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2,
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/ngarch/example/configuration_casim.nml b/applications/ngarch/example/configuration_casim.nml
index 4db857e52..0bf8779b4 100644
--- a/applications/ngarch/example/configuration_casim.nml
+++ b/applications/ngarch/example/configuration_casim.nml
@@ -159,7 +159,9 @@ surface_frac_ancil_path='vegetation/fractions_cci/qrparm.veg.frac.fixed',
/
&finite_element
cellshape='quadrilateral',
-coord_order=1,
+coord_order=2,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
element_order_h=0,
element_order_v=0,
@@ -226,12 +228,10 @@ init_option='fd_start_dump',
lbc_option='none',
ls_option='none',
model_eos_height=100,
-n_orog_smooth=0,
read_w2h_wind=.false.,
sea_ice_source='ancillary',
snow_source='start_dump',
sst_source='ancillary',
-w0_orography_mapping=.false.,
zero_w2v_wind=.true.,
/
&initial_density
@@ -441,6 +441,9 @@ l_esm_couple_test=.false.,
/
&orography
orog_init_option='none',
+orography_order=2
+n_orog_smooth=0,
+w0_multigrid_mapping=.true.
/
&partitioning
panel_decomposition='auto',
diff --git a/applications/ngarch/rose-meta/lfric-ngarch/versions.py b/applications/ngarch/rose-meta/lfric-ngarch/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/ngarch/rose-meta/lfric-ngarch/versions.py
+++ b/applications/ngarch/rose-meta/lfric-ngarch/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/shallow_water/example/configuration.nml b/applications/shallow_water/example/configuration.nml
index d4ab292f9..4ac2428db 100644
--- a/applications/shallow_water/example/configuration.nml
+++ b/applications/shallow_water/example/configuration.nml
@@ -275,6 +275,8 @@ start_dump_directory = ''
! These do not need changing
cellshape = 'quadrilateral'
coord_order = 1
+coord_order_multigrid = 1
+coord_space = 'Wchi'
coord_system = 'native'
element_order_h = 0
element_order_v = 0
diff --git a/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py b/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py
+++ b/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/shallow_water/source/driver/shallow_water_model_mod.F90 b/applications/shallow_water/source/driver/shallow_water_model_mod.F90
index f2706ce97..48de3152c 100644
--- a/applications/shallow_water/source/driver/shallow_water_model_mod.F90
+++ b/applications/shallow_water/source/driver/shallow_water_model_mod.F90
@@ -83,6 +83,7 @@ subroutine initialise_infrastructure( program_name, modeldb)
character(str_def), allocatable :: base_mesh_names(:)
character(str_def), allocatable :: twod_names(:)
+ integer(i_def), allocatable :: stencil_depths(:)
class(extrusion_type), allocatable :: extrusion
type(uniform_extrusion_type), allocatable :: extrusion_2d
@@ -93,7 +94,6 @@ subroutine initialise_infrastructure( program_name, modeldb)
character(str_def) :: prime_mesh_name
- integer(i_def) :: stencil_depth
integer(i_def) :: geometry
integer(i_def) :: method
integer(i_def) :: number_of_layers
@@ -180,12 +180,15 @@ subroutine initialise_infrastructure( program_name, modeldb)
! Initialise prime/2d meshes
! ---------------------------------------------------------
check_partitions = .false.
- stencil_depth = get_required_stencil_depth()
+ allocate(stencil_depths(size(base_mesh_names)))
+ call get_required_stencil_depth( &
+ stencil_depths, base_mesh_names, modeldb%configuration &
+ )
call init_mesh( modeldb%configuration, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
- stencil_depth, check_partitions )
+ stencil_depths, check_partitions )
allocate( twod_names, source=base_mesh_names )
@@ -222,6 +225,8 @@ subroutine initialise_infrastructure( program_name, modeldb)
call create_runtime_constants()
deallocate(base_mesh_names)
+ deallocate(twod_names)
+ deallocate(stencil_depths)
nullify(chi_inventory, panel_id_inventory)
end subroutine initialise_infrastructure
diff --git a/applications/shallow_water/unit-test/kernel/initial_geopot_kernel_mod_test.pf b/applications/shallow_water/unit-test/kernel/initial_geopot_kernel_mod_test.pf
index fe44262b4..3fe2e4712 100644
--- a/applications/shallow_water/unit-test/kernel/initial_geopot_kernel_mod_test.pf
+++ b/applications/shallow_water/unit-test/kernel/initial_geopot_kernel_mod_test.pf
@@ -51,7 +51,7 @@ contains
feign_planet_config, &
feign_shallow_water_settings_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use shallow_water_settings_config_mod, &
only : momentum_form_momentum, &
@@ -77,6 +77,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/shallow_water/unit-test/kernel/initial_swe_buoyancy_kernel_mod_test.pf b/applications/shallow_water/unit-test/kernel/initial_swe_buoyancy_kernel_mod_test.pf
index 3c69d79cb..984d7ce91 100644
--- a/applications/shallow_water/unit-test/kernel/initial_swe_buoyancy_kernel_mod_test.pf
+++ b/applications/shallow_water/unit-test/kernel/initial_swe_buoyancy_kernel_mod_test.pf
@@ -52,7 +52,7 @@ contains
feign_shallow_water_settings_config
use finite_element_config_mod, &
only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use shallow_water_settings_config_mod, &
only : momentum_form_momentum, &
@@ -78,6 +78,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/shallow_water/unit-test/kernel/initial_swe_tracer_kernel_mod_test.pf b/applications/shallow_water/unit-test/kernel/initial_swe_tracer_kernel_mod_test.pf
index 29103cf75..19653ad39 100644
--- a/applications/shallow_water/unit-test/kernel/initial_swe_tracer_kernel_mod_test.pf
+++ b/applications/shallow_water/unit-test/kernel/initial_swe_tracer_kernel_mod_test.pf
@@ -51,7 +51,7 @@ contains
feign_planet_config, &
feign_shallow_water_settings_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use shallow_water_settings_config_mod, &
only : momentum_form_momentum, &
@@ -77,6 +77,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/shallow_water/unit-test/kernel/initial_swe_u_kernel_mod_test.pf b/applications/shallow_water/unit-test/kernel/initial_swe_u_kernel_mod_test.pf
index 846105876..db33c9827 100644
--- a/applications/shallow_water/unit-test/kernel/initial_swe_u_kernel_mod_test.pf
+++ b/applications/shallow_water/unit-test/kernel/initial_swe_u_kernel_mod_test.pf
@@ -57,7 +57,8 @@ contains
feign_shallow_water_test_coeff_config, &
feign_shallow_water_settings_config
use finite_element_config_mod, only: cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, &
+ coord_space_wchi
use shallow_water_settings_config_mod, only: momentum_form_momentum, &
swe_test_swe_gaussian_hill, &
time_scheme_semi_implicit
@@ -76,6 +77,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
coord_system=coord_system_xyz, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/applications/solver/example/configuration.nml b/applications/solver/example/configuration.nml
index 4eaececfd..e7721cddf 100644
--- a/applications/solver/example/configuration.nml
+++ b/applications/solver/example/configuration.nml
@@ -27,6 +27,8 @@ element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native',
/
diff --git a/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf b/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
index e068d8a6e..8f95fc215 100644
--- a/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
+++ b/applications/solver/rose-meta/lfric-solver/HEAD/rose-meta.conf
@@ -269,17 +269,48 @@ values='triangle', 'quadrilateral'
[namelist:finite_element=coord_order]
compulsory=true
-description=Order of the coordinate space.
-fail-if=this < 0 ;
-help=Order of the coordinate space. If 0 is chosen, this will be the continuous
- =W0 space, with the order set by the element order. This option is only
- =possible for certain geometries and topologies. Otherwise, this will be
- =a discontinuous space.
+description=Horizontal polynomial order of the coordinate space.
+fail-if=this < 1 ;
+help=Horizontal order of the polynomials used to describe the coordinate space.
+ =The vertical order is determined by the coordinate system. If a native
+ =coordinates system is chosen, the vertical coordinates are linear.
+ =If Cartesian coordinates are chosen, the vertical coordinates have the same
+ =order as the horizontal.
!kind=default
-range=0:
+range=1:
sort-key=Panel-A03
type=integer
+[namelist:finite_element=coord_order_multigrid]
+compulsory=true
+description=Horizontal polynomial order of coordinates for multigrid meshes.
+fail-if=this < 1 ;
+help=The order of the coordinate spaces can be set separately for the prime
+ =mesh and the others in a multigrid chain. For instance it may not be
+ =necessary to use higher order coordinates on coarser meshes.
+ =The vertical order is set as for the coord_order option.
+!kind=default
+range=1:
+sort-key=Panel-A03
+type=integer
+
+[namelist:finite_element=coord_space]
+compulsory=true
+description=The finite element space to use to hold the coordinate fields.
+!enumeration=true
+fail-if=
+help=Different spaces have different continuity properties:
+ =Wchi: fully discontinuous.
+ =Wtheta: discontinuous in the horizontal, but continuous in the vertical.
+ = This is only appropriate for native coordinate systems, which
+ = separate the horizontal and vertical coordinates.
+ =W0: fully continuous. This is only appropriate for non-periodic planar
+ = domains, or when using the 'xyz' coordinate system on spherical
+ = domains.
+sort-key=Panel-A04
+value-titles='Wchi', 'Wtheta', 'W0'
+values='Wchi', 'Wtheta', 'W0'
+
[namelist:finite_element=coord_system]
compulsory=true
description=The coordinate system that will be stored in the chi coordinate
diff --git a/applications/solver/source/solver.F90 b/applications/solver/source/solver.F90
index 466603082..4779fa8fe 100644
--- a/applications/solver/source/solver.F90
+++ b/applications/solver/source/solver.F90
@@ -86,7 +86,7 @@ program solver
character(str_def) :: prime_mesh_name
- integer(i_def) :: stencil_depth
+ integer(i_def) :: stencil_depth(1)
integer(i_def) :: geometry
integer(i_def) :: method
integer(i_def) :: number_of_layers
diff --git a/applications/transport/example/configuration.nml b/applications/transport/example/configuration.nml
index e240dc3ad..e99ba84d7 100644
--- a/applications/transport/example/configuration.nml
+++ b/applications/transport/example/configuration.nml
@@ -32,6 +32,8 @@ element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native'
vorticity_in_w1=.true.,
/
diff --git a/applications/transport/rose-meta/lfric-transport/versions.py b/applications/transport/rose-meta/lfric-transport/versions.py
index 152c043d0..39e882cbb 100644
--- a/applications/transport/rose-meta/lfric-transport/versions.py
+++ b/applications/transport/rose-meta/lfric-transport/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/applications/transport/source/driver/transport_driver_mod.f90 b/applications/transport/source/driver/transport_driver_mod.f90
index 2f9d4361d..5cc476343 100644
--- a/applications/transport/source/driver/transport_driver_mod.f90
+++ b/applications/transport/source/driver/transport_driver_mod.f90
@@ -125,6 +125,7 @@ subroutine initialise_transport( program_name, modeldb )
character(len=str_def), allocatable :: chain_mesh_tags(:)
character(len=str_def) :: aerosol_mesh_name
character(len=str_def) :: prime_mesh_name
+ integer(kind=i_def), allocatable :: stencil_depths(:)
logical(kind=l_def) :: use_multires_coupling
logical(kind=l_def) :: l_multigrid
@@ -132,7 +133,6 @@ subroutine initialise_transport( program_name, modeldb )
logical(kind=l_def) :: apply_partition_check
integer(kind=i_def) :: geometry
- integer(kind=i_def) :: stencil_depth
real(kind=r_def) :: domain_bottom
real(kind=r_def) :: domain_height
real(kind=r_def) :: scaled_radius
@@ -283,7 +283,11 @@ subroutine initialise_transport( program_name, modeldb )
! 1.3a Initialise prime/2d meshes
! ---------------------------------------------------------
- stencil_depth = get_required_stencil_depth()
+ allocate(stencil_depths(num_base_meshes))
+ call get_required_stencil_depth( &
+ stencil_depths, base_mesh_names, modeldb%configuration &
+ )
+
apply_partition_check = .false.
if ( .not. prepartitioned .and. &
( l_multigrid .or. use_multires_coupling ) ) then
@@ -294,7 +298,7 @@ subroutine initialise_transport( program_name, modeldb )
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, &
- extrusion, stencil_depth, &
+ extrusion, stencil_depths, &
apply_partition_check )
call create_mesh( base_mesh_names, extrusion_2d, &
@@ -446,11 +450,20 @@ subroutine initialise_transport( program_name, modeldb )
end if
- if (allocated(base_mesh_names)) deallocate(base_mesh_names)
- if (allocated(meshes_to_shift)) deallocate(meshes_to_shift)
- if (allocated(meshes_to_double)) deallocate(meshes_to_double)
-
+ if (allocated(base_mesh_names)) deallocate(base_mesh_names)
+ if (allocated(meshes_to_shift)) deallocate(meshes_to_shift)
+ if (allocated(meshes_to_double)) deallocate(meshes_to_double)
+ if (allocated(twod_names)) deallocate(twod_names)
+ if (allocated(shifted_names)) deallocate(shifted_names)
+ if (allocated(double_names)) deallocate(double_names)
+ if (allocated(extrusion)) deallocate(extrusion)
+ if (allocated(extrusion_2d)) deallocate(extrusion_2d)
+ if (allocated(extrusion_shifted)) deallocate(extrusion_shifted)
+ if (allocated(extrusion_double)) deallocate(extrusion_double)
+ if (allocated(chain_mesh_tags)) deallocate(chain_mesh_tags)
+ if (allocated(stencil_depths)) deallocate(stencil_depths)
if (allocated(extra_io_mesh_names)) deallocate(extra_io_mesh_names)
+
nullify(chi_inventory, panel_id_inventory, mesh, aerosol_mesh)
end subroutine initialise_transport
diff --git a/applications/transport/unit-test/kernel/initial_tracer_field_sample_kernel_mod_test.pf b/applications/transport/unit-test/kernel/initial_tracer_field_sample_kernel_mod_test.pf
index 7fcd8dc18..da3155fa4 100644
--- a/applications/transport/unit-test/kernel/initial_tracer_field_sample_kernel_mod_test.pf
+++ b/applications/transport/unit-test/kernel/initial_tracer_field_sample_kernel_mod_test.pf
@@ -46,7 +46,7 @@ contains
feign_idealised_config, &
feign_initial_tracer_field_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use idealised_config_mod, only : test_slotted_cylinder
implicit none
@@ -65,6 +65,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/applications/transport/unit-test/kernel/set_tracer_field_kernel_mod_test.pf b/applications/transport/unit-test/kernel/set_tracer_field_kernel_mod_test.pf
index 04e00da19..3e7b4c0d4 100644
--- a/applications/transport/unit-test/kernel/set_tracer_field_kernel_mod_test.pf
+++ b/applications/transport/unit-test/kernel/set_tracer_field_kernel_mod_test.pf
@@ -49,7 +49,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -79,6 +79,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/dependencies.yaml b/dependencies.yaml
index caab36487..8976bb248 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -30,8 +30,8 @@ lfric_apps:
ref:
lfric_core:
- source: git@github.com:MetOffice/lfric_core.git
- ref: 2025.12.1
+ source: git@github.com:tommbendall/lfric_core.git
+ ref: TBendall/OrogPkg
moci:
source: git@github.com:MetOffice/moci.git
diff --git a/interfaces/coupled_interface/rose-meta/coupling/versions.py b/interfaces/coupled_interface/rose-meta/coupling/versions.py
index 152c043d0..39e882cbb 100644
--- a/interfaces/coupled_interface/rose-meta/coupling/versions.py
+++ b/interfaces/coupled_interface/rose-meta/coupling/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/interfaces/jedi_lfric_interface/integration-test/time/resources/jedi_lfric_time_test_configuration.nml b/interfaces/jedi_lfric_interface/integration-test/time/resources/jedi_lfric_time_test_configuration.nml
index 08bd34982..9a6529b6c 100644
--- a/interfaces/jedi_lfric_interface/integration-test/time/resources/jedi_lfric_time_test_configuration.nml
+++ b/interfaces/jedi_lfric_interface/integration-test/time/resources/jedi_lfric_time_test_configuration.nml
@@ -22,6 +22,8 @@ element_order_h=0,
element_order_v=0,
rehabilitate=.true.,
coord_order=1
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='native'
/
diff --git a/interfaces/jedi_lfric_interface/rose-meta/jedi_lfric_interface/versions.py b/interfaces/jedi_lfric_interface/rose-meta/jedi_lfric_interface/versions.py
index 152c043d0..39e882cbb 100644
--- a/interfaces/jedi_lfric_interface/rose-meta/jedi_lfric_interface/versions.py
+++ b/interfaces/jedi_lfric_interface/rose-meta/jedi_lfric_interface/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/interfaces/jedi_lfric_interface/source/mesh/jedi_lfric_mesh_setup_mod.F90 b/interfaces/jedi_lfric_interface/source/mesh/jedi_lfric_mesh_setup_mod.F90
index 24665d5b9..a1058e3d4 100644
--- a/interfaces/jedi_lfric_interface/source/mesh/jedi_lfric_mesh_setup_mod.F90
+++ b/interfaces/jedi_lfric_interface/source/mesh/jedi_lfric_mesh_setup_mod.F90
@@ -10,6 +10,7 @@ module jedi_lfric_mesh_setup_mod
use add_mesh_map_mod, only: assign_mesh_maps
use base_mesh_config_mod, only: GEOMETRY_SPHERICAL, &
GEOMETRY_PLANAR
+ use check_configuration_mod, only: get_required_stencil_depth
use constants_mod, only: str_def, i_def, l_def, r_def
use create_mesh_mod, only: create_mesh
use driver_mesh_mod, only: init_mesh
@@ -62,7 +63,7 @@ subroutine initialise_mesh( mesh_name, configuration, mpi_obj, alt_mesh_name )
integer(i_def), parameter :: one_layer = 1_i_def
integer(i_def) :: geometry
integer(i_def) :: extrusion_method
- integer(i_def) :: stencil_depth
+ integer(i_def), allocatable :: stencil_depths(:)
integer(i_def) :: number_of_layers
integer(i_def) :: i
real(r_def) :: domain_bottom
@@ -122,14 +123,19 @@ subroutine initialise_mesh( mesh_name, configuration, mpi_obj, alt_mesh_name )
!-------------------------------------------------------------------------
! 1.2 Create the required meshes
!-------------------------------------------------------------------------
- stencil_depth = 2
+
+ allocate(stencil_depths(size(base_mesh_names)))
+ call get_required_stencil_depth( &
+ stencil_depths, base_mesh_names, configuration &
+ )
+
apply_partition_check = .false.
call init_mesh( configuration, &
mpi_obj%get_comm_rank(), &
mpi_obj%get_comm_size(), &
base_mesh_names, &
extrusion, &
- stencil_depth, &
+ stencil_depths, &
apply_partition_check )
allocate( twod_names, source=base_mesh_names )
@@ -140,6 +146,11 @@ subroutine initialise_mesh( mesh_name, configuration, mpi_obj, alt_mesh_name )
alt_name=twod_names )
call assign_mesh_maps(twod_names)
+ deallocate(twod_names)
+ deallocate(stencil_depths)
+ deallocate(extrusion)
+ if (allocated(extrusion_2d)) deallocate(extrusion_2d)
+
end subroutine initialise_mesh
end module jedi_lfric_mesh_setup_mod
diff --git a/rose-stem/app/adjoint_tests/rose-app.conf b/rose-stem/app/adjoint_tests/rose-app.conf
index 76c5b0144..4130f3df4 100644
--- a/rose-stem/app/adjoint_tests/rose-app.conf
+++ b/rose-stem/app/adjoint_tests/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-adjoint_tests/vn3.0
+meta=lfric-adjoint_tests/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -374,6 +374,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/gravity_wave/opt/rose-app-limited_spherical_50x50.conf b/rose-stem/app/gravity_wave/opt/rose-app-limited_spherical_50x50.conf
index c3ac5efca..c114c4043 100644
--- a/rose-stem/app/gravity_wave/opt/rose-app-limited_spherical_50x50.conf
+++ b/rose-stem/app/gravity_wave/opt/rose-app-limited_spherical_50x50.conf
@@ -23,6 +23,7 @@ transport_boundary_depth=6
[namelist:finite_element]
coord_order=1
+coord_order_multigrid=1
coord_system='native'
[namelist:formulation]
diff --git a/rose-stem/app/gravity_wave/rose-app.conf b/rose-stem/app/gravity_wave/rose-app.conf
index 8e7d37bc9..4b558f9e9 100644
--- a/rose-stem/app/gravity_wave/rose-app.conf
+++ b/rose-stem/app/gravity_wave/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-gravity_wave/vn3.0
+meta=lfric-gravity_wave/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -368,6 +368,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=2
+coord_order_multigrid=2
+coord_space='Wchi'
coord_system='xyz'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/gungho_model/file/file_def_initial.xml b/rose-stem/app/gungho_model/file/file_def_initial.xml
index 2b1050253..42cf3bfec 100644
--- a/rose-stem/app/gungho_model/file/file_def_initial.xml
+++ b/rose-stem/app/gungho_model/file/file_def_initial.xml
@@ -13,6 +13,8 @@
+
+
diff --git a/rose-stem/app/gungho_model/opt/rose-app-agnesi_hyd_cart.conf b/rose-stem/app/gungho_model/opt/rose-app-agnesi_hyd_cart.conf
index 910eb4fba..fc744b4fe 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-agnesi_hyd_cart.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-agnesi_hyd_cart.conf
@@ -11,6 +11,9 @@ dl_str=0.015
domain_height=50000.0
number_of_layers=200
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
dlayer_on=.true.
rotating=.false.
diff --git a/rose-stem/app/gungho_model/opt/rose-app-agnesi_nhyd_cart.conf b/rose-stem/app/gungho_model/opt/rose-app-agnesi_nhyd_cart.conf
index e5e155e81..66f3a7d0b 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-agnesi_nhyd_cart.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-agnesi_nhyd_cart.conf
@@ -11,6 +11,9 @@ dl_str=0.015
domain_height=35000.0
number_of_layers=140
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
dlayer_on=.true.
rotating=.false.
diff --git a/rose-stem/app/gungho_model/opt/rose-app-gungho-alt2-spherical.conf b/rose-stem/app/gungho_model/opt/rose-app-gungho-alt2-spherical.conf
index 1fbafd521..d69103fe7 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-gungho-alt2-spherical.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-gungho-alt2-spherical.conf
@@ -2,6 +2,7 @@
transport_overwrite_freq='split_step'
[namelist:finite_element]
+coord_order=1
vorticity_in_w1=.true.
[namelist:formulation]
diff --git a/rose-stem/app/gungho_model/opt/rose-app-robert-moist-lam.conf b/rose-stem/app/gungho_model/opt/rose-app-robert-moist-lam.conf
index 436275a25..8a630dc41 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-robert-moist-lam.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-robert-moist-lam.conf
@@ -25,6 +25,9 @@ rim_width_ns=-1
domain_height=1500.0
number_of_layers=150
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
moisture_formulation='traditional'
rotating=.false.
diff --git a/rose-stem/app/gungho_model/opt/rose-app-schar3d_cart.conf b/rose-stem/app/gungho_model/opt/rose-app-schar3d_cart.conf
index 734b66817..a64ae874f 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-schar3d_cart.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-schar3d_cart.conf
@@ -11,6 +11,9 @@ dl_str=0.15
domain_height=30000.0
number_of_layers=100
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
dlayer_on=.true.
rotating=.false.
diff --git a/rose-stem/app/gungho_model/opt/rose-app-schar_cart.conf b/rose-stem/app/gungho_model/opt/rose-app-schar_cart.conf
index c5f027b99..f79c2e010 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-schar_cart.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-schar_cart.conf
@@ -11,6 +11,9 @@ dl_str=0.15
domain_height=30000.0
number_of_layers=100
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
dlayer_on=.true.
rotating=.false.
diff --git a/rose-stem/app/gungho_model/opt/rose-app-schar_cart_8s.conf b/rose-stem/app/gungho_model/opt/rose-app-schar_cart_8s.conf
index bf8322559..476c7bb34 100644
--- a/rose-stem/app/gungho_model/opt/rose-app-schar_cart_8s.conf
+++ b/rose-stem/app/gungho_model/opt/rose-app-schar_cart_8s.conf
@@ -11,6 +11,9 @@ dl_str=0.15
domain_height=30000.0
number_of_layers=100
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
dlayer_on=.true.
rotating=.false.
diff --git a/rose-stem/app/gungho_model/rose-app.conf b/rose-stem/app/gungho_model/rose-app.conf
index d4bc76fa1..92ec2a2f1 100644
--- a/rose-stem/app/gungho_model/rose-app.conf
+++ b/rose-stem/app/gungho_model/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-gungho_model/vn3.0
+meta=lfric-gungho_model/vn3.0_t238
[command]
default=$CORE_ROOT_DIR/bin/tweak_iodef ; \
@@ -389,7 +389,9 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
-coord_order=1
+coord_order=2
+coord_order_multigrid=1
+coord_space='Wtheta'
coord_system='native'
element_order_h=0
element_order_v=0
@@ -815,6 +817,7 @@ vertical_smoothing=.true.
[namelist:orography]
orog_init_option='none'
+orography_order=2
!!profile='none'
[!!namelist:orography_agnesi_cartesian]
diff --git a/rose-stem/app/jedi_forecast/rose-app.conf b/rose-stem/app/jedi_forecast/rose-app.conf
index 3848d4ba0..5137eb2fd 100644
--- a/rose-stem/app/jedi_forecast/rose-app.conf
+++ b/rose-stem/app/jedi_forecast/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_forecast/vn3.0
+meta=jedi_forecast/vn3.0_t238
[command]
default=$CORE_ROOT_DIR/bin/tweak_iodef ; \
@@ -395,6 +395,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/jedi_forecast_pseudo/rose-app.conf b/rose-stem/app/jedi_forecast_pseudo/rose-app.conf
index 8d5864da0..92a1097ea 100644
--- a/rose-stem/app/jedi_forecast_pseudo/rose-app.conf
+++ b/rose-stem/app/jedi_forecast_pseudo/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_forecast_pseudo/vn3.0
+meta=jedi_forecast_pseudo/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -393,6 +393,8 @@ start_dump_filename='final_pert'
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/jedi_id_tlm_tests/rose-app.conf b/rose-stem/app/jedi_id_tlm_tests/rose-app.conf
index 1049af568..6462e8e34 100644
--- a/rose-stem/app/jedi_id_tlm_tests/rose-app.conf
+++ b/rose-stem/app/jedi_id_tlm_tests/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_id_tlm_tests/vn3.0
+meta=jedi_id_tlm_tests/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -396,6 +396,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/jedi_lfric_tests/rose-app.conf b/rose-stem/app/jedi_lfric_tests/rose-app.conf
index a683eda8f..7ba920294 100644
--- a/rose-stem/app/jedi_lfric_tests/rose-app.conf
+++ b/rose-stem/app/jedi_lfric_tests/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_lfric_tests/vn3.0
+meta=jedi_lfric_tests/vn3.0_t238
[command]
default=rose env-cat iodef_temp.xml -o iodef.xml; $LAUNCH_SCRIPT/launch-exe
@@ -396,6 +396,8 @@ start_dump_filename='final_pert'
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wtheta'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf b/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf
index ba5167caf..1c4de4464 100644
--- a/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf
+++ b/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_tlm_forecast_tl/vn3.0
+meta=jedi_tlm_forecast_tl/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -394,6 +394,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/jedi_tlm_tests/rose-app.conf b/rose-stem/app/jedi_tlm_tests/rose-app.conf
index 8e0df8026..803c352f7 100644
--- a/rose-stem/app/jedi_tlm_tests/rose-app.conf
+++ b/rose-stem/app/jedi_tlm_tests/rose-app.conf
@@ -1,4 +1,4 @@
-meta=jedi_tlm_tests/vn3.0
+meta=jedi_tlm_tests/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -395,7 +395,9 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
-coord_order=1
+coord_order=2
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
@@ -860,6 +862,7 @@ vertical_smoothing=.true.
[namelist:orography]
orog_init_option='ancil'
+orography_order=2
!!profile='none'
[!!namelist:orography_agnesi_cartesian]
diff --git a/rose-stem/app/jules/rose-app.conf b/rose-stem/app/jules/rose-app.conf
index 87b61ec08..b84b8ee42 100644
--- a/rose-stem/app/jules/rose-app.conf
+++ b/rose-stem/app/jules/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-jules/vn3.0
+meta=lfric-jules/vn3.0_t238
[command]
default=$CORE_ROOT_DIR/bin/tweak_iodef; \
@@ -415,6 +415,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/lfric2lfric/opt/rose-app-ral3.conf b/rose-stem/app/lfric2lfric/opt/rose-app-ral3.conf
index 566f047fd..5e977e25f 100644
--- a/rose-stem/app/lfric2lfric/opt/rose-app-ral3.conf
+++ b/rose-stem/app/lfric2lfric/opt/rose-app-ral3.conf
@@ -19,6 +19,7 @@ start_dump_filename='lfric2lfric_ral3_seuk'
[namelist:finite_element]
coord_order=2
+coord_order_multigrid=2
[namelist:lfric2lfric]
destination_mesh_name='dynamics'
diff --git a/rose-stem/app/lfric2lfric/opt/rose-app-ral_seuk.conf b/rose-stem/app/lfric2lfric/opt/rose-app-ral_seuk.conf
index 441c46314..3835b88e1 100644
--- a/rose-stem/app/lfric2lfric/opt/rose-app-ral_seuk.conf
+++ b/rose-stem/app/lfric2lfric/opt/rose-app-ral_seuk.conf
@@ -17,6 +17,7 @@ start_dump_filename='lfric2lfric_ral_seuk_MG'
[namelist:finite_element]
coord_order=2
+coord_order_multigrid=2
[namelist:lfric2lfric]
destination_topology='non_periodic'
diff --git a/rose-stem/app/lfric2lfric/rose-app.conf b/rose-stem/app/lfric2lfric/rose-app.conf
index 704d66740..def68f334 100644
--- a/rose-stem/app/lfric2lfric/rose-app.conf
+++ b/rose-stem/app/lfric2lfric/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-lfric2lfric/vn3.0
+meta=lfric-lfric2lfric/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -328,6 +328,8 @@ start_dump_filename='lfric2lfric_dump'
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='xyz'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/lfric2um/rose-app.conf b/rose-stem/app/lfric2um/rose-app.conf
index 6271a1339..bce23d074 100644
--- a/rose-stem/app/lfric2um/rose-app.conf
+++ b/rose-stem/app/lfric2um/rose-app.conf
@@ -79,6 +79,8 @@ planet_radius=6371229.0
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/lfric_atm/opt/rose-app-hd209458b.conf b/rose-stem/app/lfric_atm/opt/rose-app-hd209458b.conf
index e05601b1a..7879e5ef4 100644
--- a/rose-stem/app/lfric_atm/opt/rose-app-hd209458b.conf
+++ b/rose-stem/app/lfric_atm/opt/rose-app-hd209458b.conf
@@ -78,6 +78,9 @@ start_dump_directory=''
start_dump_filename=''
!!surface_frac_ancil_path=''
+[namelist:finite_element]
+coord_space='Wchi'
+
[namelist:formulation]
moisture_formulation='dry'
shallow=.false.
diff --git a/rose-stem/app/lfric_atm/rose-app.conf b/rose-stem/app/lfric_atm/rose-app.conf
index d7f7988a5..7b8b946bf 100644
--- a/rose-stem/app/lfric_atm/rose-app.conf
+++ b/rose-stem/app/lfric_atm/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-lfric_atm/vn3.0
+meta=lfric-lfric_atm/vn3.0_t238
[command]
default=$CORE_ROOT_DIR/bin/tweak_iodef; \
@@ -414,7 +414,9 @@ surface_frac_ancil_path='vegetation/fractions_cci/qrparm.veg.frac.fixed'
[namelist:finite_element]
cellshape='quadrilateral'
-coord_order=1
+coord_order=2
+coord_order_multigrid=1
+coord_space='Wtheta'
coord_system='native'
element_order_h=0
element_order_v=0
@@ -846,6 +848,7 @@ vertical_smoothing=.true.
[namelist:orography]
orog_init_option='ancil'
+orography_order=2
!!profile='none'
[!!namelist:orography_agnesi_cartesian]
diff --git a/rose-stem/app/lfric_coupled_atmosphere/rose-app.conf b/rose-stem/app/lfric_coupled_atmosphere/rose-app.conf
index ce50c6fa3..6f6488e98 100644
--- a/rose-stem/app/lfric_coupled_atmosphere/rose-app.conf
+++ b/rose-stem/app/lfric_coupled_atmosphere/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-lfric_atm/vn3.0
+meta=lfric-lfric_atm/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -410,6 +410,8 @@ surface_frac_ancil_path='vegetation/fractions_cci/qrparm.veg.frac.fixed'
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/linear_model/rose-app.conf b/rose-stem/app/linear_model/rose-app.conf
index 1c83c6635..26e807178 100644
--- a/rose-stem/app/linear_model/rose-app.conf
+++ b/rose-stem/app/linear_model/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-linear_model/vn3.0
+meta=lfric-linear_model/vn3.0_t238
[command]
default=rose env-cat iodef_temp.xml -o iodef.xml; $LAUNCH_SCRIPT/launch-exe
@@ -399,7 +399,9 @@ start_dump_filename='final_2021060200-2021060207.pert'
[namelist:finite_element]
cellshape='quadrilateral'
-coord_order=1
+coord_order=2
+coord_order_multigrid=1
+coord_space='Wtheta'
coord_system='native'
element_order_h=0
element_order_v=0
@@ -839,6 +841,7 @@ vertical_smoothing=.true.
[namelist:orography]
orog_init_option='ancil'
+orography_order=2
!!profile='none'
[!!namelist:orography_agnesi_cartesian]
diff --git a/rose-stem/app/name_transport/rose-app.conf b/rose-stem/app/name_transport/rose-app.conf
index 81070757a..8727d261f 100644
--- a/rose-stem/app/name_transport/rose-app.conf
+++ b/rose-stem/app/name_transport/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-name_transport/vn3.0
+meta=lfric-name_transport/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -367,6 +367,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/ngarch/rose-app.conf b/rose-stem/app/ngarch/rose-app.conf
index 0652790e8..b8cc3c6ed 100644
--- a/rose-stem/app/ngarch/rose-app.conf
+++ b/rose-stem/app/ngarch/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-ngarch/vn3.0
+meta=lfric-ngarch/vn3.0_t238
[command]
default=$CORE_ROOT_DIR/bin/tweak_iodef; \
@@ -398,6 +398,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='xyz'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/scintelapi/rose-app.conf b/rose-stem/app/scintelapi/rose-app.conf
index 4133bc9a9..b7e7f9db8 100644
--- a/rose-stem/app/scintelapi/rose-app.conf
+++ b/rose-stem/app/scintelapi/rose-app.conf
@@ -50,6 +50,8 @@ planet_radius=6371229.0
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='xyz'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/shallow_water/rose-app.conf b/rose-stem/app/shallow_water/rose-app.conf
index 4925a58af..25d54332e 100644
--- a/rose-stem/app/shallow_water/rose-app.conf
+++ b/rose-stem/app/shallow_water/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-shallow_water/vn3.0
+meta=lfric-shallow_water/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -364,6 +364,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/solver/rose-app.conf b/rose-stem/app/solver/rose-app.conf
index 51300e343..3cc3be0b6 100644
--- a/rose-stem/app/solver/rose-app.conf
+++ b/rose-stem/app/solver/rose-app.conf
@@ -47,6 +47,8 @@ planet_radius=6371229.0
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=2
+coord_order_multigrid=2
+coord_space='Wchi'
coord_system='xyz'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/transport/rose-app.conf b/rose-stem/app/transport/rose-app.conf
index b5a4cd880..3316dc373 100644
--- a/rose-stem/app/transport/rose-app.conf
+++ b/rose-stem/app/transport/rose-app.conf
@@ -1,4 +1,4 @@
-meta=lfric-transport/vn3.0
+meta=lfric-transport/vn3.0_t238
[command]
default=$LAUNCH_SCRIPT/launch-exe
@@ -366,6 +366,8 @@ start_dump_filename=''
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/app/um2lfric/rose-app.conf b/rose-stem/app/um2lfric/rose-app.conf
index 7e5482141..c0e185f5e 100644
--- a/rose-stem/app/um2lfric/rose-app.conf
+++ b/rose-stem/app/um2lfric/rose-app.conf
@@ -69,6 +69,8 @@ planet_radius=6371229.0
[namelist:finite_element]
cellshape='quadrilateral'
coord_order=1
+coord_order_multigrid=1
+coord_space='Wchi'
coord_system='native'
element_order_h=0
element_order_v=0
diff --git a/rose-stem/site/meto/kgos/gravity_wave/azspice/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gravity_wave/azspice/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
index 52295b673..324a0885a 100644
--- a/rose-stem/site/meto/kgos/gravity_wave/azspice/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gravity_wave/azspice/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum wind = 431C21CD1281DA57
-Inner product checksum buoyancy = 3F7E3A73FE5D1D2A
-Inner product checksum pressure = 40FE82E4EB45071F
+Inner product checksum wind = 431D59FE1EAB20AF
+Inner product checksum buoyancy = 3F7FAFC8E76B703A
+Inner product checksum pressure = 40FFCBE1892095D9
diff --git a/rose-stem/site/meto/kgos/gravity_wave/ex1a/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gravity_wave/ex1a/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
index bc5f9291e..6a07de1e2 100644
--- a/rose-stem/site/meto/kgos/gravity_wave/ex1a/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gravity_wave/ex1a/checksum_gravity_wave_p1_75x4-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum wind = 431C2E0AC8B4882C
-Inner product checksum buoyancy = 3F7E38ABC10C749A
-Inner product checksum pressure = 40FE85147E6AD44B
+Inner product checksum wind = 4318EA74A1DE384C
+Inner product checksum buoyancy = 3F7FA98E7A892EF0
+Inner product checksum pressure = 40FFD7B1ECEFBA1B
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 ca1a79dc2..3718724a5 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 = 40E2F2B22465EB30
+Inner product checksum theta = 4210411A3414C32C
+Inner product checksum u = 4501AC432369747E
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 1839f3574..4853513ce 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 = 40E31B5820CB8222
+Inner product checksum theta = 4210461EEF501FFA
+Inner product checksum u = 4500F55809AB31F4
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 061be97ca..69226f773 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 = 40E2EB31AECEA369
+Inner product checksum theta = 42104262EDCBE114
+Inner product checksum u = 4501DA5CB4A207F5
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 58c743fce..f0ee2958b 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 = 40E2F341917908B2
+Inner product checksum theta = 421041C1BC04E6BB
+Inner product checksum u = 4501D8872A6E120E
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 6ccaf3715..b58ab555b 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 = 40E2E6107980FD7B
+Inner product checksum theta = 4210435EB2DDA43E
+Inner product checksum u = 4501348CFD76A232
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 019d1c4bd..4e5089372 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 = 40FE89845A99BD82
+Inner product checksum theta = 4210F00A9EEFEDC8
+Inner product checksum u = 42EF4B7C9D66E038
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 64287df9b..a6a33f3da 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 = 40E8E802280ABD0B
+Inner product checksum theta = 4204E59A63CB78BC
+Inner product checksum u = 4391E522B2E5108B
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 0872d11c8..98e7c99d7 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 = 41094CA3DDB86DCA
+Inner product checksum theta = 4224DF7F71A30AE6
+Inner product checksum u = 43C50351B9886146
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 81c9f6506..23643f501 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 = 40D3FF37BCAE744D
+Inner product checksum theta = 41EC4ACBE79A8254
+Inner product checksum u = 44176CD1D18E2234
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 862dd9a4e..da9c002c7 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 = 40EEEF2D423E4799
+Inner product checksum theta = 42E4D05A8BCEE601
+Inner product checksum u = 475B46A9C47FADDC
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 b151550e6..4dff8737f 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 = 40D56C9EE61BBC13
+Inner product checksum theta = 42198C1850B2D9D2
+Inner product checksum u = 44E3B95E1E4D01E8
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_force_profile-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_force_profile-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
index 67adb4fa7..c449dcda9 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_force_profile-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_force_profile-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4077C537B568F9A7
-Inner product checksum theta = 41C2D5A8F93169AC
-Inner product checksum u = 4411D03665CDC4B8
+Inner product checksum theta = 41C2D5A8F93169AA
+Inner product checksum u = 4411D03665CDC4B7
Inner product checksum mr1 = 41E28A1800000000
Inner product checksum mr2 = 0
Inner product checksum mr3 = 0
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_geostrophic-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_geostrophic-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
index e89d26b76..3524cf4a2 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_geostrophic-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_geostrophic-BiP4x4-600x400_azspice_gnu_fast-debug-64bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4077C537B568F9A7
Inner product checksum theta = 418AC77800000000
-Inner product checksum u = 431497F6D7212EDD
+Inner product checksum u = 431497F6D7212EDE
Inner product checksum mr1 = 0
Inner product checksum mr2 = 0
Inner product checksum mr3 = 0
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 703cb92c7..7cd8e5e95 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 = 40E34359BBF3198E
+Inner product checksum theta = 421168C83CCDB814
+Inner product checksum u = 45082CCFFBFE131C
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 ef2d843f4..16121a0e7 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 = 4122BF04CEFDD88E
+Inner product checksum theta = 4240B17819773C22
+Inner product checksum u = 44FA80D135FD62E1
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_rk-dcmip301-C24_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_rk-dcmip301-C24_azspice_gnu_fast-debug-64bit.txt
index af3057bb6..5e8410e3c 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_rk-dcmip301-C24_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_rk-dcmip301-C24_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40D3FEFFC9C4E6DC
+Inner product checksum rho = 40D3FEFFC9C4E6DB
Inner product checksum theta = 41EC4AC917CF5932
Inner product checksum u = 441770B8CF9AAE3C
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 072ad5f3b..9bf4987a6 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 = 4100298029CBB27E
+Inner product checksum theta = 4204AB0A9AF0F797
+Inner product checksum u = 421841A8A5A2236C
+Inner product checksum mr1 = 4047C5162B842004
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_runge-kutta-for-linear-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_runge-kutta-for-linear-C12_azspice_gnu_fast-debug-64bit.txt
index d92198c03..cca05d0fa 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_runge-kutta-for-linear-C12_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_runge-kutta-for-linear-C12_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40A3EC6B5F76F0AD
-Inner product checksum theta = 41BEDEE1B8CBB575
-Inner product checksum u = 43A9CD8E4C045BE9
+Inner product checksum rho = 40A3EC6B5F76F0B5
+Inner product checksum theta = 41BEDEE1B8CBB572
+Inner product checksum u = 43A9CD8E4C3FF950
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 f1aede880..a9e151424 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 = 41030D58C3590034
+Inner product checksum theta = 42475B42A25425E7
+Inner product checksum u = 456062CEF5159296
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 231eb15fe..602f3b011 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 = 41030D6C13723B56
+Inner product checksum theta = 42476BF6F9CB1430
+Inner product checksum u = 4560B547976B5A08
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 b1ccd280c..ff584a815 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 = 41030F18BDA9F26F
+Inner product checksum theta = 42476C698C4C91C2
+Inner product checksum u = 4560A0F46F8D1738
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 ee57adc90..19511201a 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 = 40E316DD570F02CE
+Inner product checksum theta = 420BC551F61B3DF4
+Inner product checksum u = 44FD3CA2A85A4306
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 e429b368a..abe8fa958 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 = 40E3144534D0CD5B
+Inner product checksum theta = 420BC6A55E4A9F9B
+Inner product checksum u = 44FDCE146C24BBDA
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 5697a8812..9ec922232 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 = 40E1E481066A16AD
+Inner product checksum theta = 421139232C3CEDFC
+Inner product checksum u = 4393A3C2C7765796
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 c420fe8e4..cb51c3cee 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 rho = 40A3EC6A14AC6563
+Inner product checksum theta = 41BEDEE1880FB478
+Inner product checksum u = 4316BFB1C8535B8F
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 a4b7337bc..01f802010 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 = 400CE3D8AB9FF445
+Inner product checksum theta = 426EFB40626429D9
+Inner product checksum u = 46E90B3148ACB455
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 ffe89fd94..30cb14f9a 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 = 40CBD086E89B5CC3
+Inner product checksum theta = 41E3A4D10A00A203
+Inner product checksum u = 4400A7C1E61414AF
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
index 3265025dd..52dae3175 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40BBCBB6EDF1627A
-Inner product checksum theta = 41D3A4D091EAA7D7
-Inner product checksum u = 427B537FDE7D4B72
+Inner product checksum rho = 40BBCBB6EF213860
+Inner product checksum theta = 41D3A4D09135213A
+Inner product checksum u = 42800064E61D89B2
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
index b9a437d68..55b7b180a 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 409BCBB6ED8BDB00
-Inner product checksum theta = 41B3A4D09228744A
-Inner product checksum u = 425BD288C4FE4540
+Inner product checksum rho = 409BCBB6ED8BE0D7
+Inner product checksum theta = 41B3A4D092287220
+Inner product checksum u = 425BD28883F3DDC1
diff --git a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
index b51e51cce..38d9cf530 100644
--- a/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/azspice/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40ABB3332E06A4BB
-Inner product checksum theta = 41C56FE12D3A256E
-Inner product checksum u = 426BDF0AFC1EDB9D
+Inner product checksum rho = 40ABB3332F2E46AF
+Inner product checksum theta = 41C56FE12C8956B5
+Inner product checksum u = 42703CCC94647FCA
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 a9509981a..346a8dc0b 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 = 40EA1721E2B17B92
+Inner product checksum theta = 41F69B200F92B1EE
+Inner product checksum u = 432D54F6E804784E
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 bc0ca5515..e1d220227 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 = 40DA171CE52D041B
+Inner product checksum theta = 41E69B0DAB8498E2
+Inner product checksum u = 431CEA810B5F89C0
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 1b24646b6..53fad2b4d 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 = 40FA16E969D811F1
+Inner product checksum theta = 42069BF1BB6F18B8
+Inner product checksum u = 42FFC30F4FDB3147
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 00c69e3b5..89f2d8b43 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 = 40EA1719BB7D1835
+Inner product checksum theta = 41F69B1F273DF438
+Inner product checksum u = 432E6914591DDB31
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 34c6e5650..a0878aae6 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 = 40D4230A146B10C7
+Inner product checksum theta = 421AE83CAB4A6023
+Inner product checksum u = 44D53ED6ECD94866
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 8513b3305..16b389e9d 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 = 40D3B0E584BEFE81
+Inner product checksum theta = 421AFAEA10486311
+Inner product checksum u = 44D4488DEC5B7DDD
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 1b949d925..630653183 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 = 40E2F2B22450A974
+Inner product checksum theta = 4210411A341767F4
+Inner product checksum u = 4501AC432203CA1A
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 09869fdd8..2eaf6c65b 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 = 40E31B581AA0AD4E
+Inner product checksum theta = 4210461E7F0DBAE4
+Inner product checksum u = 4500F54921280157
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 6ffb81194..cc0a72946 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 = 40E2EB31AE880054
+Inner product checksum theta = 42104262EDD24DEB
+Inner product checksum u = 4501DA5CB5D859E5
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 dcdf764c4..6687d1593 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 = 40E2F344381C3398
+Inner product checksum theta = 421041C0A41AF0BA
+Inner product checksum u = 4501D87BBF566B66
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 4ddcb7e18..e1050094d 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 = 40E2E6107980DAAD
+Inner product checksum theta = 4210435EB2DDB16D
+Inner product checksum u = 4501348CFD74071C
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 a33fd4a1b..744c78d32 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 = 40FE89845A99BD81
+Inner product checksum theta = 4210F00A9EEFEDC8
+Inner product checksum u = 42EF4B7C9D66E038
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 a449fc5d3..dabbd47ac 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 = 40E8E802280ABD12
+Inner product checksum theta = 4204E59A63CB78B6
+Inner product checksum u = 4391E522B2F4E44E
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 a4fa9f025..d3f4ad6cc 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 = 41094CA3DDB86DC3
+Inner product checksum theta = 4224DF7F71A30AEA
+Inner product checksum u = 43C50351B9DDC1DB
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 317fe4b7b..1fece6a09 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 = 40D3FF37BCAE7358
+Inner product checksum theta = 41EC4ACBE79A81E2
+Inner product checksum u = 44176CD1D18E0E68
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 abd067848..687673d87 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 = 40EEEF2D423E47A8
+Inner product checksum theta = 42E4D05A8BCEDEF0
+Inner product checksum u = 475B46A9C47FDA32
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 4ef335a94..1c899df3a 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 = 40D56C9EE61BC0B8
+Inner product checksum theta = 42198C1850B2CB58
+Inner product checksum u = 44E3B95E1E4C53DE
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_force_profile-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_force_profile-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
index 67adb4fa7..c449dcda9 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_force_profile-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_force_profile-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4077C537B568F9A7
-Inner product checksum theta = 41C2D5A8F93169AC
-Inner product checksum u = 4411D03665CDC4B8
+Inner product checksum theta = 41C2D5A8F93169AA
+Inner product checksum u = 4411D03665CDC4B7
Inner product checksum mr1 = 41E28A1800000000
Inner product checksum mr2 = 0
Inner product checksum mr3 = 0
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_geostrophic-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_geostrophic-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
index e89d26b76..3524cf4a2 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_geostrophic-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_geostrophic-BiP4x4-600x400_ex1a_gnu_fast-debug-64bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4077C537B568F9A7
Inner product checksum theta = 418AC77800000000
-Inner product checksum u = 431497F6D7212EDD
+Inner product checksum u = 431497F6D7212EDE
Inner product checksum mr1 = 0
Inner product checksum mr2 = 0
Inner product checksum mr3 = 0
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 75bfdf0cf..7a5ebc48f 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 = 40E34359B7BCE94A
+Inner product checksum theta = 421168C83D657FC9
+Inner product checksum u = 45082CCFC7F87952
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 9a03afb2d..1f9ec3146 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 = 4122BF04CEFCFB8C
+Inner product checksum theta = 4240B178197729FE
+Inner product checksum u = 44FA80D135E8AD96
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_rk-dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_rk-dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt
index e1abba728..186723d14 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_rk-dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_rk-dcmip301-C24_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40D3FEFFC9C4E6DA
+Inner product checksum rho = 40D3FEFFC9C4E6DB
Inner product checksum theta = 41EC4AC917CF5932
-Inner product checksum u = 441770B8CF9AAE38
+Inner product checksum u = 441770B8CF9AAE40
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 072ad5f3b..9bf4987a6 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 = 4100298029CBB27E
+Inner product checksum theta = 4204AB0A9AF0F797
+Inner product checksum u = 421841A8A5A2236C
+Inner product checksum mr1 = 4047C5162B842004
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_runge-kutta-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_runge-kutta-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt
index 6f0e22be6..777066abd 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_runge-kutta-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_runge-kutta-for-linear-C12_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40A3EC6B5F76F0AE
-Inner product checksum theta = 41BEDEE1B8CBB574
-Inner product checksum u = 43A9CD8E4BFD1915
+Inner product checksum rho = 40A3EC6B5F76F0B5
+Inner product checksum theta = 41BEDEE1B8CBB571
+Inner product checksum u = 43A9CD8E4C4FC4E9
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 7e1dfb2bf..5691a36ad 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 = 41030D58C3594564
+Inner product checksum theta = 42475B42A2647BEA
+Inner product checksum u = 456062CEF518024E
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 087fd2fad..5ce936971 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 = 41030D6C136DE168
+Inner product checksum theta = 42476BF6F9CAEA14
+Inner product checksum u = 4560B547976D15D4
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 e42f32057..e118091e8 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 = 41030F18BB2004B0
+Inner product checksum theta = 42476C698DF34CC6
+Inner product checksum u = 4560A0F429222A77
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 2d5e3b173..5842a46ec 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 = 40E316DD570FF799
+Inner product checksum theta = 420BC551F61B444F
+Inner product checksum u = 44FD3CA2A85E36AE
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 30022c661..7db5191b2 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 = 40E3144534D176B2
+Inner product checksum theta = 420BC6A55E4AA270
+Inner product checksum u = 44FDCE146C25601A
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 5697a8812..9ec922232 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 = 40E1E481066A16AD
+Inner product checksum theta = 421139232C3CEDFC
+Inner product checksum u = 4393A3C2C7765796
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 9ca596629..2fb7ae146 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 rho = 40A3EC6A14AC6564
+Inner product checksum theta = 41BEDEE1880FB477
+Inner product checksum u = 4316BFB1C85111D5
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 415129215..2e11a93f9 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 = 400CE3D8ABA36B1E
+Inner product checksum theta = 426EFB406265B472
+Inner product checksum u = 46E90B31475DB3E0
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 ffe89fd94..30cb14f9a 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 = 40CBD086E89B5CC3
+Inner product checksum theta = 41E3A4D10A00A203
+Inner product checksum u = 4400A7C1E61414AF
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
index 097e86706..52dae3175 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_p1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40BBCBB6EDF16259
-Inner product checksum theta = 41D3A4D091EAA7E2
-Inner product checksum u = 427B537FAE94A56C
+Inner product checksum rho = 40BBCBB6EF213860
+Inner product checksum theta = 41D3A4D09135213A
+Inner product checksum u = 42800064E61D89B2
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
index 8d35898d9..7c14244e8 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph0pv1-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 409BCBB6ED8BDD5A
-Inner product checksum theta = 41B3A4D09228734C
-Inner product checksum u = 425BD288A2566131
+Inner product checksum rho = 409BCBB6ED8BDF94
+Inner product checksum theta = 41B3A4D092287188
+Inner product checksum u = 425BD289740C12AA
diff --git a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
index f4685bc3c..3a708096a 100644
--- a/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/gungho_model/ex1a/checksum_gungho_model_skamarock_klemp_gw_ph1pv0-BiP75x4-4000x2000_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 40ABB3332E06A4CF
-Inner product checksum theta = 41C56FE12D3A257C
-Inner product checksum u = 426BDF0B0782D926
+Inner product checksum rho = 40ABB3332F2E46C5
+Inner product checksum theta = 41C56FE12C8956B6
+Inner product checksum u = 42703CCC994BBDB4
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 dd7d16fd9..21c18edf4 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 = 40EA1721E2B17B92
+Inner product checksum theta = 41F69B200F92B1EE
+Inner product checksum u = 432D54F6E804784F
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 fa2891bb7..ba7c30362 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 = 40DA171CE52CF043
+Inner product checksum theta = 41E69B0DAB858810
+Inner product checksum u = 431CEA810AF2DC4A
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 22f2c4445..65a01ed1c 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 = 40FA16E969D6E515
+Inner product checksum theta = 42069BF1BB71A19A
+Inner product checksum u = 42FFC30F4E707664
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 075d391fc..33ba3b6e4 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 = 40EA171A18305EA8
+Inner product checksum theta = 41F69B1D66F94904
+Inner product checksum u = 432E68AADCC6FD38
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 0692e4368..aa55f2b7c 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 = 40D4230A1646BD51
+Inner product checksum theta = 421AE83CAB337E46
+Inner product checksum u = 44D53EDC3823D4C6
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 d7a2154e7..13e4a423b 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 = 40D3B0E493DF2623
+Inner product checksum theta = 421AFAEAAF2738F8
+Inner product checksum u = 44D4532594A135D5
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 b17a42b79..bbfc04f5d 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 = 3FAE2770A68B5BFA
+Inner product checksum theta = 4162161ADEC00635
+Inner product checksum u = 45699FBCF282D940
+Inner product checksum mr1 = 3F3FF1A11E0B69FE
+Inner product checksum mr2 = 3EF377FEBDF9E02A
+Inner product checksum mr3 = 3EE273943A1DE06E
+Inner product checksum mr4 = 3EECD12A79074EA2
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_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
index df5359de9..512b60942 100644
--- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 3EECEB00E275F684
-Inner product checksum theta = 40130622675CC417
-Inner product checksum u = 42EF956998B205D3
+Inner product checksum rho = 3EECEB00E275EF66
+Inner product checksum theta = 40130622675CC42B
+Inner product checksum u = 42EF956998B21A12
diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_full-debug-64bit.txt
index df5359de9..512b60942 100644
--- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_full-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_runge-kutta-C12_azspice_gnu_full-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 3EECEB00E275F684
-Inner product checksum theta = 40130622675CC417
-Inner product checksum u = 42EF956998B205D3
+Inner product checksum rho = 3EECEB00E275EF66
+Inner product checksum theta = 40130622675CC42B
+Inner product checksum u = 42EF956998B21A12
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 36256062e..08b08aef4 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 = 3F983B73A8B756E8
+Inner product checksum theta = 41401E1A618FF22C
+Inner product checksum u = 452D057EDF062157
+Inner product checksum mr1 = 3F2E43881C6977AA
+Inner product checksum mr2 = 3EDE7F5B2AECD2FF
+Inner product checksum mr3 = 3ED8476240EB13DB
+Inner product checksum mr4 = 3EDFE72F5FCBD6CD
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 5ae16e5aa..db596c921 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 = 3F983B5E56B01626
+Inner product checksum theta = 41401E371BE02438
+Inner product checksum u = 452D04AE5BC7EF4B
+Inner product checksum mr1 = 3F2E43C21CF4B163
+Inner product checksum mr2 = 3EDE7F7AD8D9F888
+Inner product checksum mr3 = 3ED847619E3F2B44
+Inner product checksum mr4 = 3EDFE72E3DDF1473
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_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 db90ee0d3..79d5d04c3 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 = 3FAE27707BF6CC62
+Inner product checksum theta = 4162161B045C7D88
+Inner product checksum u = 45699FBD38F03BA4
+Inner product checksum mr1 = 3F3FF1A0EEA1386F
+Inner product checksum mr2 = 3EF377FEB00EFA3E
+Inner product checksum mr3 = 3EE2739439836305
+Inner product checksum mr4 = 3EECD12A754EFC56
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_runge-kutta-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_runge-kutta-C12_ex1a_cce_fast-debug-64bit.txt
index 444cc9574..1a28e13d7 100644
--- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_runge-kutta-C12_ex1a_cce_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_runge-kutta-C12_ex1a_cce_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 3EECEB00E275EB48
-Inner product checksum theta = 40130622675CC45A
-Inner product checksum u = 42EF956998B2045E
+Inner product checksum rho = 3EECEB00E275E0A8
+Inner product checksum theta = 40130622675CC46B
+Inner product checksum u = 42EF956998B20C2D
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 7dfc5de39..2429327fc 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 = 3F983B37D15BDE1C
+Inner product checksum theta = 414019EB42CA849D
+Inner product checksum u = 452D058BB1F73C3A
+Inner product checksum mr1 = 3F2E43BF0E7C5689
+Inner product checksum mr2 = 3EDE7F633C575AAC
+Inner product checksum mr3 = 3ED84762F36CCECF
+Inner product checksum mr4 = 3EDFE72C0A70AB9F
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 f6ca49a10..434194786 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 = 3F983B4F3FA707A2
+Inner product checksum theta = 414019479FB8228B
+Inner product checksum u = 452D040BCF8033FC
+Inner product checksum mr1 = 3F2E43B585EE4341
+Inner product checksum mr2 = 3EDE7F6E0B61076D
+Inner product checksum mr3 = 3ED8476284E8AF37
+Inner product checksum mr4 = 3EDFE72D5727A362
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 9b9895e08..46aa129ab 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 = 468AD8A1
+Inner product checksum theta = 4FD6892A
+Inner product checksum u = 6A4E2456
+Inner product checksum mr1 = 3F08090E
+Inner product checksum mr2 = 3685474C
+Inner product checksum mr3 = 342315EB
+Inner product checksum mr4 = 369452F5
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 dac455d15..76480a890 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 rho = 44D957C8
+Inner product checksum theta = 5504F9DC
+Inner product checksum u = 742769A8
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 ebbf5d1b7..412912359 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 = 46D686E7
+Inner product checksum theta = 518F9686
+Inner product checksum u = 6AF737B4
+Inner product checksum mr1 = 3FD1D417
+Inner product checksum mr2 = 3734B95C
+Inner product checksum mr3 = 35805E31
+Inner product checksum mr4 = 36CFB064
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 208bf5b67..1bc83cf87 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 = 46D6843A
+Inner product checksum theta = 518F9009
+Inner product checksum u = 6AF6639C
+Inner product checksum mr1 = 3FD1E981
+Inner product checksum mr2 = 3735ACE8
+Inner product checksum mr3 = 3591218E
+Inner product checksum mr4 = 36E3934B
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 28b77bf56..ebd73d9d7 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 = 4798D937
+Inner product checksum theta = 58404EEE
+Inner product checksum u = 79BA143C
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 e8298690a..ec2610a8f 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 = 46D87621
+Inner product checksum theta = 518CDC6C
+Inner product checksum u = 6A8BB622
+Inner product checksum mr1 = 3FCCD6A5
+Inner product checksum mr2 = 3830399F
+Inner product checksum mr3 = 3540FFB3
+Inner product checksum mr4 = 369C6152
+Inner product checksum mr5 = 2E27E849
+Inner product checksum mr6 = 3559D6AB
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 575d12f26..5b7783020 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 = 46D86556
+Inner product checksum theta = 518CD634
+Inner product checksum u = 6A884F5E
+Inner product checksum mr1 = 3FCFE1A9
+Inner product checksum mr2 = 37FB999D
+Inner product checksum mr3 = 37A3825D
+Inner product checksum mr4 = 37AAD30F
+Inner product checksum mr5 = 36CB92A2
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 689a0c93c..d9f8c5feb 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 = 46D85309
+Inner product checksum theta = 518CEB19
+Inner product checksum u = 6A86BDBD
+Inner product checksum mr1 = 3FD15DE3
+Inner product checksum mr2 = 37E7EB43
+Inner product checksum mr3 = 378A0874
+Inner product checksum mr4 = 37C4C735
+Inner product checksum mr5 = 36A40434
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 066b82f4f..0af3bd41c 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 = 46D85B38
+Inner product checksum theta = 518CDE82
+Inner product checksum u = 6A8943DF
+Inner product checksum mr1 = 3FD04330
+Inner product checksum mr2 = 37D1B94A
+Inner product checksum mr3 = 358A22CA
+Inner product checksum mr4 = 3710DB20
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 b2ad06d13..b07809fc2 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 = 40DB0B7E35975770
+Inner product checksum theta = 42319B4C2C627568
+Inner product checksum u = 45511DB5A41A7AF3
+Inner product checksum mr1 = 3FFA0AE8D15AC560
+Inner product checksum mr2 = 3EF6E30AB66D5317
+Inner product checksum mr3 = 3EB3CE089DEF52CE
+Inner product checksum mr4 = 3EDF292FCEA393E9
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 4c7eed6cc..50a37c287 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 = 48D802F5
+Inner product checksum theta = 5392FB7E
+Inner product checksum u = 6A97AD94
+Inner product checksum mr1 = 41CD0C45
+Inner product checksum mr2 = 39CFE0B4
+Inner product checksum mr3 = 37A8CD54
+Inner product checksum mr4 = 395FC0A4
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 f8dff9082..235402968 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 = 46D83278
+Inner product checksum theta = 51946D4C
+Inner product checksum u = 6B12B532
+Inner product checksum mr1 = 3FC8DE58
+Inner product checksum mr2 = 37A79B85
+Inner product checksum mr3 = 3589AA4D
+Inner product checksum mr4 = 378F6306
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 35fdec60e..354c8a315 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 = 48D80346
+Inner product checksum theta = 5392FB96
+Inner product checksum u = 6A97B48C
+Inner product checksum mr1 = 41CD0992
+Inner product checksum mr2 = 39CFD2C8
+Inner product checksum mr3 = 37A9D189
+Inner product checksum mr4 = 395D72A2
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 cd579c1cb..0280c3771 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 = 46D81BB6
+Inner product checksum theta = 518A8337
+Inner product checksum u = 6A8D8496
+Inner product checksum mr1 = 3FD3E8F6
+Inner product checksum mr2 = 37E36076
+Inner product checksum mr3 = 359ECD22
+Inner product checksum mr4 = 36EF2E5D
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 e07f68014..efe7c47fc 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 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 rho = 46D826A3
+Inner product checksum theta = 5195286A
+Inner product checksum u = 6AD00D2B
+Inner product checksum mr1 = 3FC8966C
+Inner product checksum mr2 = 37A936E0
+Inner product checksum mr3 = 351FFC46
+Inner product checksum mr4 = 36A5A0EC
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 c1993e0b9..43adea265 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 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 rho = 48D81D9C
+Inner product checksum theta = 539527EC
+Inner product checksum u = 6AA47E09
+Inner product checksum mr1 = 41C845F6
+Inner product checksum mr2 = 3999D9EF
+Inner product checksum mr3 = 377473A4
+Inner product checksum mr4 = 392E287A
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 8f87801d6..7627a6637 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 = 46D81FC2
+Inner product checksum theta = 518A62F2
+Inner product checksum u = 6A902F68
+Inner product checksum mr1 = 3FD10764
+Inner product checksum mr2 = 37D4379C
+Inner product checksum mr3 = 357CD472
+Inner product checksum mr4 = 36FB3ACE
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 a5745eb7b..143af5c1b 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 = 46D81BBA
+Inner product checksum theta = 518A839F
+Inner product checksum u = 6A8CA47E
+Inner product checksum mr1 = 3FD39F7E
+Inner product checksum mr2 = 37D6BA63
+Inner product checksum mr3 = 3595C4A4
+Inner product checksum mr4 = 36D4135E
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 60686d791..d504de77c 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 = 46D87E02
+Inner product checksum theta = 5193E829
+Inner product checksum u = 6A86D8ED
+Inner product checksum mr1 = 3FD052BD
+Inner product checksum mr2 = 379D9AB3
+Inner product checksum mr3 = 3545AB94
+Inner product checksum mr4 = 36D01997
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 12acd49ab..368a40166 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 = 46D81D6C
+Inner product checksum theta = 51955971
+Inner product checksum u = 6AF40AC6
+Inner product checksum mr1 = 3FC86B44
+Inner product checksum mr2 = 3874ECCE
+Inner product checksum mr3 = 3580A915
+Inner product checksum mr4 = 36C8A3C4
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 f22aad7e4..8a4449f4d 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 = 4839978B
+Inner product checksum theta = 51354926
+Inner product checksum u = 612F5465
+Inner product checksum mr1 = 4090EFDD
+Inner product checksum mr2 = 359EB521
+Inner product checksum mr3 = 2FA59C08
+Inner product checksum mr4 = 33F4FAB6
+Inner product checksum mr5 = BE7DEA8
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 42525bc73..2a9e0db0e 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 = 48399964
+Inner product checksum theta = 5135488C
+Inner product checksum u = 612F5AC7
+Inner product checksum mr1 = 40915DD1
+Inner product checksum mr2 = 36940DA3
+Inner product checksum mr3 = 2FAC1395
+Inner product checksum mr4 = 33F4FB53
+Inner product checksum mr5 = BF1FDFB
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 cb46157c6..bcf94a7e2 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 = 48398C0D
+Inner product checksum theta = 51354312
+Inner product checksum u = 612EECD9
+Inner product checksum mr1 = 4090FDB1
+Inner product checksum mr2 = 35A1C069
+Inner product checksum mr3 = 300115E1
+Inner product checksum mr4 = 3404ACBB
+Inner product checksum mr5 = C145948
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 c8d190573..248c3bf84 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 = 4830B604
+Inner product checksum theta = 513FD8A6
+Inner product checksum u = 5F74971F
+Inner product checksum mr1 = 4155C5CE
+Inner product checksum mr2 = 3A30FCD9
+Inner product checksum mr3 = 30836FEC
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_scm_gal9_cbl_dry-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
index 15289a6f8..4a089b7cb 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
@@ -1,3 +1,3 @@
Inner product checksum rho = 43366191
-Inner product checksum theta = 4C40AEDD
-Inner product checksum u = 5E28BCEA
+Inner product checksum theta = 4C40AEA7
+Inner product checksum u = 0
diff --git a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
index a63371d82..659dd9c1d 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_azspice_gnu_fast-debug-32bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4334F300
Inner product checksum theta = 4C25DC6A
-Inner product checksum u = 5E28F50D
+Inner product checksum u = 0
Inner product checksum mr1 = 3AB44DA1
Inner product checksum mr2 = 0
Inner product checksum mr3 = 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 ee291b91a..51e434ea0 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 rho = 486B4B41
+Inner product checksum theta = 51CABED6
+Inner product checksum u = 63C9C9B6
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 b262a2e1e..0e0d9dcef 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 rho = 468AD8C2
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 u = 6A4E3A50
+Inner product checksum mr1 = 3F07E651
+Inner product checksum mr2 = 36998BE2
+Inner product checksum mr3 = 341893DC
+Inner product checksum mr4 = 36A2DFF5
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 8e17322f7..c7dc87bf0 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 rho = 44D957D6
+Inner product checksum theta = 5504FAF6
+Inner product checksum u = 74276B2C
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 0d6784f42..d4a68f4df 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 = 46D68274
+Inner product checksum theta = 518F9382
+Inner product checksum u = 6AF80F04
+Inner product checksum mr1 = 3FD1FDF4
+Inner product checksum mr2 = 371CF50E
+Inner product checksum mr3 = 35982210
+Inner product checksum mr4 = 36D0EA36
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 cdce4e3cb..865ef858e 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 = 46D6721E
+Inner product checksum theta = 5193C6E0
+Inner product checksum u = 6B19C5AA
+Inner product checksum mr1 = 3FCF601E
+Inner product checksum mr2 = 37331054
+Inner product checksum mr3 = 356202F2
+Inner product checksum mr4 = 3698A052
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 ef7de3186..57f0165f3 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 = 48D66238
+Inner product checksum theta = 539A0A6A
+Inner product checksum u = 6B127A98
+Inner product checksum mr1 = 41CC3BFA
+Inner product checksum mr2 = 3968D07F
+Inner product checksum mr3 = 37C5E475
+Inner product checksum mr4 = 3941D72F
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 fc5094f02..83a0f7e36 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 = 46D6724A
+Inner product checksum theta = 5193C6C8
+Inner product checksum u = 6B19BB23
+Inner product checksum mr1 = 3FCF61C2
+Inner product checksum mr2 = 3742B590
+Inner product checksum mr3 = 354FD275
+Inner product checksum mr4 = 3695593B
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 9985fc72a..6efabaac1 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt
@@ -1,9 +1,9 @@
-Inner product checksum rho = 48D65C9E
-Inner product checksum theta = 5399FF36
-Inner product checksum u = 6B12F9E6
-Inner product checksum mr1 = 41CC34F5
-Inner product checksum mr2 = 39628562
-Inner product checksum mr3 = 37CADBE8
-Inner product checksum mr4 = 393CFC10
+Inner product checksum rho = 48D66232
+Inner product checksum theta = 539A0A6A
+Inner product checksum u = 6B127AC6
+Inner product checksum mr1 = 41CC3922
+Inner product checksum mr2 = 3967966E
+Inner product checksum mr3 = 37DA6788
+Inner product checksum mr4 = 39413C27
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 f9b384e6a..56ac9b580 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt
@@ -1,9 +1,9 @@
-Inner product checksum rho = 48D65C98
-Inner product checksum theta = 5399FF37
-Inner product checksum u = 6B12FA76
-Inner product checksum mr1 = 41CC32D9
-Inner product checksum mr2 = 396638BD
-Inner product checksum mr3 = 37CAADA4
-Inner product checksum mr4 = 393EB70D
+Inner product checksum rho = 48D66233
+Inner product checksum theta = 539A0A6C
+Inner product checksum u = 6B1279B4
+Inner product checksum mr1 = 41CC3A94
+Inner product checksum mr2 = 39694D7A
+Inner product checksum mr3 = 37C624F4
+Inner product checksum mr4 = 39410F74
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 9508e0ab5..100393226 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 = 46D68937
+Inner product checksum theta = 518F9715
+Inner product checksum u = 6AF5BF19
+Inner product checksum mr1 = 3FD19871
+Inner product checksum mr2 = 3735D64B
+Inner product checksum mr3 = 356EE653
+Inner product checksum mr4 = 36D784DA
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 3a5681d4e..0e98c03f1 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 = 46D671E0
+Inner product checksum theta = 5193C594
+Inner product checksum u = 6B1A4302
+Inner product checksum mr1 = 3FCF6985
+Inner product checksum mr2 = 3730D1D2
+Inner product checksum mr3 = 35330E60
+Inner product checksum mr4 = 368A1990
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 da48a4bed..64166cc74 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 = 46D671EE
+Inner product checksum theta = 5193C539
+Inner product checksum u = 6B1A39FA
+Inner product checksum mr1 = 3FCF81F6
+Inner product checksum mr2 = 371AF3C2
+Inner product checksum mr3 = 3534F417
+Inner product checksum mr4 = 368F89D6
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 91bb01bc5..94c6fdebb 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 = 489A835F
+Inner product checksum theta = 51BA5036
+Inner product checksum u = 5F118101
+Inner product checksum mr1 = 4187BF2A
+Inner product checksum mr2 = 3AFBFE0C
+Inner product checksum mr3 = 34D63736
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 9c29598f8..fa370a19e 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 = 4798D9E7
+Inner product checksum theta = 5840572D
+Inner product checksum u = 79BA0888
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 662dc2b95..ec0c9a1d3 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 = 46D8744E
+Inner product checksum theta = 518CDC20
+Inner product checksum u = 6A8B2876
+Inner product checksum mr1 = 3FCD30C4
+Inner product checksum mr2 = 382ABDE7
+Inner product checksum mr3 = 35313863
+Inner product checksum mr4 = 369195A0
+Inner product checksum mr5 = 2F0CD5ED
+Inner product checksum mr6 = 352A46CC
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 26acfbf09..32e615d49 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 = 46D865B4
+Inner product checksum theta = 518CDC07
+Inner product checksum u = 6A888EFB
+Inner product checksum mr1 = 3FCFCD76
+Inner product checksum mr2 = 37E85440
+Inner product checksum mr3 = 37A7D988
+Inner product checksum mr4 = 37B10C1F
+Inner product checksum mr5 = 36E46BC0
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 86f1a8990..f771503e7 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 = 46D85413
+Inner product checksum theta = 518CEFAC
+Inner product checksum u = 6A86B311
+Inner product checksum mr1 = 3FD18C2A
+Inner product checksum mr2 = 37EDF393
+Inner product checksum mr3 = 37772269
+Inner product checksum mr4 = 37B7A998
+Inner product checksum mr5 = 36A97898
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 f94eb38a4..96bb0e4ab 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 = 46D872E4
+Inner product checksum theta = 518CE920
+Inner product checksum u = 6A84C075
+Inner product checksum mr1 = 3FCEFDFE
+Inner product checksum mr2 = 37E6222C
+Inner product checksum mr3 = 3787AC86
+Inner product checksum mr4 = 3754DF68
+Inner product checksum mr5 = 36009EEE
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 fc8830b55..abd9b9b41 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 = 46D85AFF
+Inner product checksum theta = 518CDE74
+Inner product checksum u = 6A88E4D8
+Inner product checksum mr1 = 3FD06B26
+Inner product checksum mr2 = 37CA62EA
+Inner product checksum mr3 = 35B45770
+Inner product checksum mr4 = 3721A976
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 5442f5230..73a43c8ca 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 = 40DB0BCB0A399904
+Inner product checksum theta = 42319B852F83F1CF
+Inner product checksum u = 45512022D40DDE98
+Inner product checksum mr1 = 3FFA0A8097E97B74
+Inner product checksum mr2 = 3EF702BF5D723995
+Inner product checksum mr3 = 3EB6C7F2BE83F006
+Inner product checksum mr4 = 3EE52C591A3AB53E
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 145f29b4c..90b2207d7 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 = 48D80456
+Inner product checksum theta = 5392FB20
+Inner product checksum u = 6A97BA6C
+Inner product checksum mr1 = 41CD01F5
+Inner product checksum mr2 = 39CEF01D
+Inner product checksum mr3 = 37A87BAF
+Inner product checksum mr4 = 395C79CC
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 964ce3a8a..c53f6ca71 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 = 46D832C1
+Inner product checksum theta = 51946D0E
+Inner product checksum u = 6B12AB93
+Inner product checksum mr1 = 3FC8E354
+Inner product checksum mr2 = 37A41671
+Inner product checksum mr3 = 358B160C
+Inner product checksum mr4 = 378C7E34
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 8ba358720..bbae1ad40 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 = 48D804CA
+Inner product checksum theta = 5392FB35
+Inner product checksum u = 6A97C0B2
+Inner product checksum mr1 = 41CD0EE0
+Inner product checksum mr2 = 39CFE89B
+Inner product checksum mr3 = 37A83C94
+Inner product checksum mr4 = 395E1C98
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 ca8c0b007..0ccb4ff22 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 = 48D80298
+Inner product checksum theta = 5392FAFC
+Inner product checksum u = 6A97BA98
+Inner product checksum mr1 = 41CCE51A
+Inner product checksum mr2 = 39D34205
+Inner product checksum mr3 = 37AC28E0
+Inner product checksum mr4 = 396C80FF
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 3c702f837..3722941a8 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 = 48D80136
+Inner product checksum theta = 5392FBA7
+Inner product checksum u = 6A97B5F5
+Inner product checksum mr1 = 41CCF395
+Inner product checksum mr2 = 39CFF174
+Inner product checksum mr3 = 37B9E488
+Inner product checksum mr4 = 39720B0E
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 534b57028..1d9aab758 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 = 46D81B42
+Inner product checksum theta = 518A8548
+Inner product checksum u = 6A8D4688
+Inner product checksum mr1 = 3FD44656
+Inner product checksum mr2 = 37C8B40A
+Inner product checksum mr3 = 35A5A1DA
+Inner product checksum mr4 = 36DBC11E
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 72d0bfd81..cfc7da4cb 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 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 rho = 46D826BE
+Inner product checksum theta = 5195286A
+Inner product checksum u = 6AD00A42
+Inner product checksum mr1 = 3FC89977
+Inner product checksum mr2 = 37AA6006
+Inner product checksum mr3 = 351DE4C8
+Inner product checksum mr4 = 36A4ADB9
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 52e4cd78a..2d14c73a0 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 = 48D81D9C
+Inner product checksum theta = 539527EC
+Inner product checksum u = 6AA47E46
+Inner product checksum mr1 = 41C84628
+Inner product checksum mr2 = 3999B2C9
+Inner product checksum mr3 = 37748C78
+Inner product checksum mr4 = 392E34FF
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 0ffd8dce1..6eca82e18 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 = 46D821D2
+Inner product checksum theta = 518A6513
+Inner product checksum u = 6A902558
+Inner product checksum mr1 = 3FD0F939
+Inner product checksum mr2 = 37C73760
+Inner product checksum mr3 = 35A06CFE
+Inner product checksum mr4 = 36F4D601
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 fb4ac2cea..f8d971b4d 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 = 46D81C41
+Inner product checksum theta = 518A7FC5
+Inner product checksum u = 6A8CA91F
+Inner product checksum mr1 = 3FD3B4BC
+Inner product checksum mr2 = 37B300C1
+Inner product checksum mr3 = 35A852D8
+Inner product checksum mr4 = 36E199B0
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 c402287b0..0fd9dd431 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 = 46D87FF3
+Inner product checksum theta = 5193E8C2
+Inner product checksum u = 6A86D558
+Inner product checksum mr1 = 3FD08338
+Inner product checksum mr2 = 37C169DC
+Inner product checksum mr3 = 353E0BA2
+Inner product checksum mr4 = 36CC716E
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 b165dd977..4f6a82f0f 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 = 46D81334
+Inner product checksum theta = 518FB93A
+Inner product checksum u = 6AF754AD
+Inner product checksum mr1 = 3FCBDFF6
+Inner product checksum mr2 = 37BEFAFE
+Inner product checksum mr3 = 34A88E7E
+Inner product checksum mr4 = 3704F75D
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 6332d81a0..da632fc07 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 = 48D802A3
+Inner product checksum theta = 5392FAE0
+Inner product checksum u = 6A97C38C
+Inner product checksum mr1 = 41CCEB39
+Inner product checksum mr2 = 39D00BEE
+Inner product checksum mr3 = 37A9704C
+Inner product checksum mr4 = 39724A96
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 0b7dde6c9..019a00681 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 = 46D8137F
+Inner product checksum theta = 518FB938
+Inner product checksum u = 6AF7471A
+Inner product checksum mr1 = 3FCBCCF4
+Inner product checksum mr2 = 37A96CD4
+Inner product checksum mr3 = 34A977CA
+Inner product checksum mr4 = 36FED488
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 bd5515481..690334be4 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 = 48D802C2
+Inner product checksum theta = 5392FAF0
+Inner product checksum u = 6A97BE0E
+Inner product checksum mr1 = 41CCE20D
+Inner product checksum mr2 = 39CE7FA6
+Inner product checksum mr3 = 37A4E012
+Inner product checksum mr4 = 3970B914
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 77e5ba5ff..140627248 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 = 48D80144
+Inner product checksum theta = 5392FB6A
+Inner product checksum u = 6A97AF2A
+Inner product checksum mr1 = 41CCF444
+Inner product checksum mr2 = 39CBF482
+Inner product checksum mr3 = 37A5F97C
+Inner product checksum mr4 = 396EE9D4
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 503edf68a..3d5024b95 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 = 48D802C9
+Inner product checksum theta = 5392FAF9
+Inner product checksum u = 6A97BF76
+Inner product checksum mr1 = 41CCEE84
+Inner product checksum mr2 = 39D1D8CD
+Inner product checksum mr3 = 37A66950
+Inner product checksum mr4 = 396D91B7
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 fc875d1dd..ddd8aefc5 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 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 rho = 46D81D76
+Inner product checksum theta = 51955957
+Inner product checksum u = 6AF40F1F
+Inner product checksum mr1 = 3FC86AA6
+Inner product checksum mr2 = 38747B89
+Inner product checksum mr3 = 358083B4
+Inner product checksum mr4 = 36C86BE6
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 1e9885931..0231d6fa8 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 = 4839978C
+Inner product checksum theta = 5135492C
+Inner product checksum u = 612F5116
+Inner product checksum mr1 = 4090EFC2
+Inner product checksum mr2 = 35B5D7BE
+Inner product checksum mr3 = 2FA54E55
+Inner product checksum mr4 = 33F4FB3C
+Inner product checksum mr5 = BE84E02
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 9f0b2b052..50786d6ef 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 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 rho = 4839978A
+Inner product checksum theta = 51354925
+Inner product checksum u = 612F51CE
+Inner product checksum mr1 = 409106D8
+Inner product checksum mr2 = 36054FAC
+Inner product checksum mr3 = 2FA7A15A
+Inner product checksum mr4 = 33F4FDFA
+Inner product checksum mr5 = BE0836A
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 b3bf80080..09a70c3e0 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 mr4 = 3404AC1D
-Inner product checksum mr5 = C14A22D
+Inner product checksum rho = 48398C14
+Inner product checksum theta = 5135431E
+Inner product checksum u = 612EE220
+Inner product checksum mr1 = 4090FE60
+Inner product checksum mr2 = 358C818C
+Inner product checksum mr3 = 300110C8
+Inner product checksum mr4 = 3404ACEA
+Inner product checksum mr5 = C149C25
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 9006b2022..5318e06eb 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 = 4830B633
+Inner product checksum theta = 513FD83B
+Inner product checksum u = 5F74BFC9
+Inner product checksum mr1 = 4155B309
+Inner product checksum mr2 = 3A4D3002
+Inner product checksum mr3 = 309C88EE
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_scm_gal9_cbl_dry-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
index b530f6b21..116f677fa 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_gal9_cbl_dry-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
@@ -1,3 +1,3 @@
Inner product checksum rho = 4336618C
-Inner product checksum theta = 4C40AEDC
-Inner product checksum u = 5E28BCEC
+Inner product checksum theta = 4C40AEA2
+Inner product checksum u = 0
diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
index 32f745aa2..d3db131fa 100644
--- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
+++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_scm_rad_gas-BiP2x2-50000x50000_ex1a_cce_fast-debug-32bit.txt
@@ -1,6 +1,6 @@
Inner product checksum rho = 4334F2FE
Inner product checksum theta = 4C25DC68
-Inner product checksum u = 5E28F50A
+Inner product checksum u = 0
Inner product checksum mr1 = 3AB44DA2
Inner product checksum mr2 = 0
Inner product checksum mr3 = 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 490974e84..0c8dcb24f 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 = 486B4A79
+Inner product checksum theta = 51CABEBE
+Inner product checksum u = 63C98F85
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 0a81215b8..d95eb52fd 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 = 411B54F815AB2D1F
+Inner product checksum theta = 42735B54B7488493
+Inner product checksum u = 456F138B1FBBF2A7
+Inner product checksum mr1 = 4036848345B94316
+Inner product checksum mr2 = 3F3F545B0C7B8B4A
+Inner product checksum mr3 = 3F023D9DE8FF6F52
+Inner product checksum mr4 = 3F36ABD27D8EEBFE
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 4148368a6..5694bc3ab 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 = 3F202522A6F7BD18
+Inner product checksum theta = 403305E885E84657
+Inner product checksum u = 433053B464146A52
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 6a7be832b..ba19e32b2 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 = 3FB0A721473C6F98
+Inner product checksum theta = 41621494E7881EA0
+Inner product checksum u = 456A39A4CCE3851C
+Inner product checksum mr1 = 3F42DD079AA4B163
+Inner product checksum mr2 = 3EF49676ACCDD386
+Inner product checksum mr3 = 3EE27441B20A14AF
+Inner product checksum mr4 = 3EECD8DC231E85EA
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 c19cd8f5f..5e085d026 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 = 41277C63FE81F1B9
+Inner product checksum theta = 43076F729BE203DC
+Inner product checksum u = 4697E0B29D5B840B
+Inner product checksum mr1 = 40ACBDED050E4F68
+Inner product checksum mr2 = 40702870736FF0A6
+Inner product checksum mr3 = 406CE54F995D2A66
+Inner product checksum mr4 = 406B16AFBD0E06AE
Inner product checksum mr5 = 406997D0C9B8EEFB
Inner product checksum mr6 = 40699547929283AC
diff --git a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
index f718f88ba..c8d360c0c 100644
--- a/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/linear_model/azspice/checksum_linear_model_runge-kutta-C12_azspice_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 3EED6D12BBFEDECC
-Inner product checksum theta = 4012F2F8A6298AC5
-Inner product checksum u = 42F12DF2D0BF0EFC
+Inner product checksum rho = 3EED6D12BBFEE3E8
+Inner product checksum theta = 4012F2F8A6298ADE
+Inner product checksum u = 42F12DF2D0BF11E4
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 f7e9ed399..79b028021 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 = 3EED280BC775BFB8
+Inner product checksum theta = 4012F415A1A3EC61
+Inner product checksum u = 43A4936A5FDA097B
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 a5449d77a..c884ccba1 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 = 3F20252410E33449
+Inner product checksum theta = 403305E88487A9F6
+Inner product checksum u = 433053B4A5C39020
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 8839d63b9..4da81b082 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 = 3FB0A721A12A6856
+Inner product checksum theta = 416214938672B842
+Inner product checksum u = 456A39A264DC1282
+Inner product checksum mr1 = 3F42DD001F74B8A8
+Inner product checksum mr2 = 3EF4966E04786F3E
+Inner product checksum mr3 = 3EE27441B088413D
+Inner product checksum mr4 = 3EECD8DC023A8A50
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 1fba69899..7988ae9a6 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 = 41277C657D6F6A4F
+Inner product checksum theta = 43076F729E54EFBC
+Inner product checksum u = 4697E0B29BB9832B
+Inner product checksum mr1 = 40ACBDED077A9542
+Inner product checksum mr2 = 407028707806B322
+Inner product checksum mr3 = 406CE54F9958C446
+Inner product checksum mr4 = 406B16AFBCA448D4
Inner product checksum mr5 = 406997D0C9B8EEFC
Inner product checksum mr6 = 40699547929283AD
diff --git a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_runge-kutta-C12_ex1a_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_runge-kutta-C12_ex1a_gnu_fast-debug-64bit.txt
index ccf712d8a..3d8af37ae 100644
--- a/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_runge-kutta-C12_ex1a_gnu_fast-debug-64bit.txt
+++ b/rose-stem/site/meto/kgos/linear_model/ex1a/checksum_linear_model_runge-kutta-C12_ex1a_gnu_fast-debug-64bit.txt
@@ -1,3 +1,3 @@
-Inner product checksum rho = 3EED6D12BBFEDE9E
-Inner product checksum theta = 4012F2F8A6298AC9
-Inner product checksum u = 42F12DF2D0BF0EC7
+Inner product checksum rho = 3EED6D12BBFEE403
+Inner product checksum theta = 4012F2F8A6298AE2
+Inner product checksum u = 42F12DF2D0BF11A9
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 3906107bd..e9779c248 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 = 3EED280BC775BA39
+Inner product checksum theta = 4012F415A1A41543
+Inner product checksum u = 43A4936A5FDB561C
diff --git a/science/adjoint/rose-meta/lfric-adjoint/versions.py b/science/adjoint/rose-meta/lfric-adjoint/versions.py
index 152c043d0..39e882cbb 100644
--- a/science/adjoint/rose-meta/lfric-adjoint/versions.py
+++ b/science/adjoint/rose-meta/lfric-adjoint/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/science/adjoint/source/algorithm/transport/mol/adj_reconstruct_w3_field_alg_mod.x90 b/science/adjoint/source/algorithm/transport/mol/adj_reconstruct_w3_field_alg_mod.x90
index b0bac45cf..60c6202f1 100644
--- a/science/adjoint/source/algorithm/transport/mol/adj_reconstruct_w3_field_alg_mod.x90
+++ b/science/adjoint/source/algorithm/transport/mol/adj_reconstruct_w3_field_alg_mod.x90
@@ -7,7 +7,6 @@
!> @brief Adjoint reconstruction of a W3 field at W2 points for use in the transport scheme.
module adj_reconstruct_w3_field_alg_mod
- use check_configuration_mod, only: get_required_stencil_depth
use constants_mod, only: r_tran, i_def, l_def
use r_tran_field_mod, only: r_tran_field_type
@@ -90,7 +89,7 @@ contains
! Copy field to a large halo version
call field_old_big_halo%initialise( field_old%get_function_space(), &
- halo_depth = get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_c( field_old_big_halo, 0.0_r_tran ) )
monotone = (transport_metadata%get_horizontal_monotone() == monotone_koren)
diff --git a/science/adjoint/source/algorithm/transport/mol/adj_wt_advective_update_alg_mod.x90 b/science/adjoint/source/algorithm/transport/mol/adj_wt_advective_update_alg_mod.x90
index 83fa0a54f..b694bb4e3 100644
--- a/science/adjoint/source/algorithm/transport/mol/adj_wt_advective_update_alg_mod.x90
+++ b/science/adjoint/source/algorithm/transport/mol/adj_wt_advective_update_alg_mod.x90
@@ -7,7 +7,6 @@
module adj_wt_advective_update_alg_mod
- use check_configuration_mod, only : get_required_stencil_depth
use constants_mod, only : r_tran, i_def, l_def
use r_tran_field_mod, only : r_tran_field_type
use finite_element_config_mod, only : element_order_h, &
@@ -104,7 +103,7 @@ contains
! Copy field to a large halo version
call field_big_halo%initialise( field%get_function_space(), &
- halo_depth = get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
! Compute reconstruction on a Wtheta multidata field
! each Wt point contains 4 values assigned to each edge,
diff --git a/science/adjoint/source/algorithm/transport/mol/atl_wt_advective_update_alg_mod.x90 b/science/adjoint/source/algorithm/transport/mol/atl_wt_advective_update_alg_mod.x90
index 09093efb6..7c2ce0f8b 100644
--- a/science/adjoint/source/algorithm/transport/mol/atl_wt_advective_update_alg_mod.x90
+++ b/science/adjoint/source/algorithm/transport/mol/atl_wt_advective_update_alg_mod.x90
@@ -170,7 +170,6 @@ contains
!> @param[in] transport_metadata Contains transport configuration options
subroutine atl_hori_wt_update_alg(u_grad_f, wind, wind_dir, ls_field, transport_metadata)
- use check_configuration_mod, only : get_required_stencil_depth
use poly1d_reconstruction_kernel_mod, only : poly1d_reconstruction_kernel_type
use poly2d_reconstruction_kernel_mod, only : poly2d_reconstruction_kernel_type
use polyh_wtheta_koren_kernel_mod, only : polyh_wtheta_koren_kernel_type
@@ -223,7 +222,7 @@ contains
! Copy field to a large halo version
call ls_field_big_halo%initialise( ls_field%get_function_space(), &
- halo_depth = get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_X( ls_field_big_halo, ls_field ) )
! Compute reconstruction on a Wtheta multidata field
diff --git a/science/gungho/integration-test/cma_test/cma_test.f90 b/science/gungho/integration-test/cma_test/cma_test.f90
index 2797865da..96e96ce6b 100644
--- a/science/gungho/integration-test/cma_test/cma_test.f90
+++ b/science/gungho/integration-test/cma_test/cma_test.f90
@@ -19,7 +19,6 @@ program cma_test
use, intrinsic :: iso_fortran_env, only : real64
- use check_configuration_mod, only : get_required_stencil_depth
use cma_test_algorithm_mod, only : cma_test_init, &
test_cma_apply_mass_p, &
test_cma_apply_mass_v, &
@@ -130,7 +129,7 @@ program cma_test
type(namelist_type), pointer :: base_mesh_nml
type(namelist_type), pointer :: planet_nml
- integer(i_def) :: stencil_depth
+ integer(i_def) :: stencil_depth(1)
character(str_def) :: file_prefix
character(str_def) :: prime_mesh_name
real(r_def) :: radius
@@ -289,7 +288,7 @@ program cma_test
domain_height, &
scaled_radius ) )
- stencil_depth = get_required_stencil_depth()
+ stencil_depth = 2
check_partitions = .false.
call init_mesh( configuration, &
local_rank, total_ranks, &
diff --git a/science/gungho/integration-test/cma_test/resources/cma_test_configuration.nml b/science/gungho/integration-test/cma_test/resources/cma_test_configuration.nml
index d0821e849..e9897d51e 100644
--- a/science/gungho/integration-test/cma_test/resources/cma_test_configuration.nml
+++ b/science/gungho/integration-test/cma_test/resources/cma_test_configuration.nml
@@ -25,6 +25,8 @@
element_order_v = 0
rehabilitate = .true.
coord_order = 1
+ coord_order_multigrid = 1
+ coord_space = 'Wchi'
coord_system = 'native'
vorticity_in_w1 = .false.
/
diff --git a/science/gungho/rose-meta/lfric-gungho/HEAD/rose-meta.conf b/science/gungho/rose-meta/lfric-gungho/HEAD/rose-meta.conf
index 15f3d9684..762a81821 100644
--- a/science/gungho/rose-meta/lfric-gungho/HEAD/rose-meta.conf
+++ b/science/gungho/rose-meta/lfric-gungho/HEAD/rose-meta.conf
@@ -3200,16 +3200,6 @@ range=0:100
sort-key=02a
type=integer
-[namelist:initialization=n_orog_smooth]
-compulsory=true
-description=Number of passes of a 1-2-1 smoothing filter applied to the orography.
-fail-if=this != "0" and namelist:boundaries=limited_area =="'.false.'" ;
-help=Smoothing is only available to limited area (lat/lon non-periodic mesh) models.
-!kind=default
-range=0:
-sort-key=Panel-A07
-type=integer
-
[namelist:initialization=read_w2h_wind]
compulsory=true
!default=kind
@@ -3259,15 +3249,6 @@ help=The sea-surface temperature can either be read from an ancillary file
sort-key=01b
values='ancillary','start_dump','surf'
-[namelist:initialization=w0_orography_mapping]
-compulsory=true
-description=Whether to map orography between meshes using W0 mapping rather than W3
-help=
-!kind=default
-ns=namelist/Science/Dynamics
-sort-key=Panel-A14
-type=logical
-
[namelist:initialization=zero_w2v_wind]
compulsory=true
description=Zero vertical DoFs of initial wind field
@@ -4061,6 +4042,28 @@ help=Settings for the Schar, Witch-of-Agnesi, Bell-shaped and DCMIP 2.0.0 analyt
ns=namelist/Model/Planet/Orography
sort-key=Panel-A02
+[namelist:orography=n_orog_smooth]
+compulsory=true
+description=Number of passes of a 1-2-1 smoothing filter applied to the orography.
+fail-if=this != "0" and namelist:boundaries=limited_area =="'.false.'" ;
+help=Smoothing is only available to limited area (lat/lon non-periodic mesh) models.
+!kind=default
+range=0:
+sort-key=Panel-A07
+type=integer
+
+[namelist:orography=orography_order]
+compulsory=true
+description=Finite element order for surface altitude field in W0
+fail-if=this < 1 ;
+help=The order of polynomial for the CG space used to describe the surface
+ =altitude field. The lowest allowed value is 1, corresponding to linear
+ =finite elements.
+!kind=default
+range=1:
+sort-key=Panel-A04
+type=integer
+
[namelist:orography=orog_init_option]
compulsory=true
description=Choice for initialization of orography fields
@@ -4102,6 +4105,14 @@ trigger=namelist:orography_agnesi_cartesian: 'agnesi' ;
value-titles=None, Agnesi, Bell-shaped, Schar, DCMIP 2.0.0
values='none', 'agnesi', 'bell', 'schar', 'dcmip200'
+[namelist:orography=w0_multigrid_mapping]
+compulsory=true
+description=Whether to map orography between meshes using W0 mapping rather than W3
+help=
+!kind=default
+sort-key=Panel-A14
+type=logical
+
#==============================================================================
# OROGRAPHY (AGNESI CARTESIAN)
#==============================================================================
diff --git a/science/gungho/rose-meta/lfric-gungho/versions.py b/science/gungho/rose-meta/lfric-gungho/versions.py
index 152c043d0..0724fa27c 100644
--- a/science/gungho/rose-meta/lfric-gungho/versions.py
+++ b/science/gungho/rose-meta/lfric-gungho/versions.py
@@ -31,3 +31,66 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
+
+
+class vn30_t180(MacroUpgrade):
+ """Upgrade macro for ticket #180 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0_t238"
+ AFTER_TAG = "vn3.0_t180"
+
+ def upgrade(self, config, meta_config=None):
+ # Get values
+ n_orog_smooth = self.get_setting_value(
+ config, ["namelist:initialization", "n_orog_smooth"]
+ )
+ w0_mapping = self.get_setting_value(
+ config, ["namelist:initialization", "w0_orography_mapping"]
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+
+ # Add new settings
+ self.add_setting(
+ config, ["namelist:orography", "n_orog_smooth"], n_orog_smooth
+ )
+ self.add_setting(
+ config, ["namelist:orography", "w0_multigrid_mapping"], w0_mapping
+ )
+ self.add_setting(
+ config, ["namelist:orography", "orography_order"], coord_order
+ )
+
+ # Remove old settings
+ self.remove_setting(
+ config, ["namelist:initialization", "n_orog_smooth"]
+ )
+ self.remove_setting(
+ config, ["namelist:initialization", "w0_orography_mapping"]
+ )
+
+ return config, self.reports
diff --git a/science/gungho/source/algorithm/limited_area/limited_area_masks_alg_mod.x90 b/science/gungho/source/algorithm/limited_area/limited_area_masks_alg_mod.x90
index 103e24cfe..c87f577ba 100644
--- a/science/gungho/source/algorithm/limited_area/limited_area_masks_alg_mod.x90
+++ b/science/gungho/source/algorithm/limited_area/limited_area_masks_alg_mod.x90
@@ -12,6 +12,7 @@
module limited_area_masks_alg_mod
use field_mod, only: field_type
+ use fs_continuity_mod, only: Wchi
use constants_mod, only: i_def, r_def, l_def, PI, &
degrees_to_radians, &
radians_to_degrees
@@ -351,6 +352,14 @@ contains
mesh => function_space%get_mesh()
domain = mesh%get_domain()
+ ! The kernels require chi to be in Wchi
+ if (chi(1)%which_function_space() /= Wchi) then
+ call log_event( &
+ 'Coordinate based LBC method only implemented for coordinates ' // &
+ 'in the Wchi function space', LOG_LEVEL_ERROR &
+ )
+ end if
+
if ( rim_width_ns > 0 ) then
outer_n = boundary_n - outer_width_ns
outer_s = boundary_s - outer_width_ns
@@ -541,6 +550,14 @@ contains
mesh => function_space%get_mesh()
domain = mesh%get_domain()
+ ! The kernels require chi to be in Wchi
+ if (chi(1)%which_function_space() /= Wchi) then
+ call log_event( &
+ 'Coordinate based LBC method only implemented for coordinates ' // &
+ 'in the Wchi function space', LOG_LEVEL_ERROR &
+ )
+ end if
+
if ( rim_width_ns > 0 ) then
outer_n = boundary_n - outer_width_ns
outer_s = boundary_s - outer_width_ns
@@ -716,6 +733,14 @@ contains
mesh => function_space%get_mesh()
domain = mesh%get_domain()
+ ! The kernels require chi to be in Wchi
+ if (chi(1)%which_function_space() /= Wchi) then
+ call log_event( &
+ 'Coordinate based LBC method only implemented for coordinates ' // &
+ 'in the Wchi function space', LOG_LEVEL_ERROR &
+ )
+ end if
+
call calculate_boundary_coordinates( &
coord_bound_s, &
coord_bound_n, &
@@ -809,6 +834,14 @@ contains
mesh => function_space%get_mesh()
domain = mesh%get_domain()
+ ! The kernels require chi to be in Wchi
+ if (chi(1)%which_function_space() /= Wchi) then
+ call log_event( &
+ 'Coordinate based LBC method only implemented for coordinates ' // &
+ 'in the Wchi function space', LOG_LEVEL_ERROR &
+ )
+ end if
+
call calculate_boundary_coordinates( &
coord_bound_s, &
coord_bound_n, &
@@ -906,6 +939,14 @@ contains
mesh => function_space%get_mesh()
domain = mesh%get_domain()
+ ! The kernels require chi to be in Wchi
+ if (chi(1)%which_function_space() /= Wchi) then
+ call log_event( &
+ 'Coordinate based LBC method only implemented for coordinates ' // &
+ 'in the Wchi function space', LOG_LEVEL_ERROR &
+ )
+ end if
+
call calculate_boundary_coordinates( &
coord_bound_s, &
coord_bound_n, &
diff --git a/science/gungho/source/algorithm/transport/common/remap_on_extended_mesh_alg_mod.x90 b/science/gungho/source/algorithm/transport/common/remap_on_extended_mesh_alg_mod.x90
index 87cc7ce82..8b6744efc 100644
--- a/science/gungho/source/algorithm/transport/common/remap_on_extended_mesh_alg_mod.x90
+++ b/science/gungho/source/algorithm/transport/common/remap_on_extended_mesh_alg_mod.x90
@@ -17,7 +17,6 @@ module remap_on_extended_mesh_alg_mod
use io_config_mod, only: subroutine_timers
use timer_mod, only: timer
use function_space_mod, only: function_space_type
- use check_configuration_mod, only: get_required_stencil_depth
use transport_constants_mod, only: get_extended_mesh_weights, &
get_extended_mesh_indices, &
ext_mesh_stencil_depth
@@ -76,7 +75,7 @@ contains
ndata = fs%get_ndata()
! Ensure remapping depth is not larger than the halo depth
- depth = min( depth_in, get_required_stencil_depth() )
+ depth = min( depth_in, mesh%get_halo_depth() )
! Both the field to be remapped and the remapped field need to be
! created with the full size halo. For the field to be remapped
! this is due to the interpolation parallel to a panel boundary
diff --git a/science/gungho/source/algorithm/transport/ffsl/ffsl_hori_alg_mod.x90 b/science/gungho/source/algorithm/transport/ffsl/ffsl_hori_alg_mod.x90
index 7b8f88d2f..c0a2f2d9b 100644
--- a/science/gungho/source/algorithm/transport/ffsl/ffsl_hori_alg_mod.x90
+++ b/science/gungho/source/algorithm/transport/ffsl/ffsl_hori_alg_mod.x90
@@ -72,8 +72,7 @@ module ffsl_hori_alg_mod
transport_boundary_depth, &
transport_overwrite_freq, &
transport_overwrite_freq_all
- use check_configuration_mod, only: check_any_eqn_consistent, &
- get_required_stencil_depth
+ use check_configuration_mod, only: check_any_eqn_consistent
use io_config_mod, only: subroutine_timers
use transport_config_mod, only: &
panel_edge_treatment, &
@@ -429,7 +428,7 @@ contains
remap_depth)
else
call field_big_halo%initialise( field_n%get_function_space(), &
- halo_depth=get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_x(field_big_halo, field_n) )
end if
! Copy required as PSyclone doesn't allow the same field to be
@@ -722,7 +721,7 @@ contains
remap_depth)
else
call field_big_halo%initialise( field_n%get_function_space(), &
- halo_depth=get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_x(field_big_halo, field_n) )
end if
@@ -1088,8 +1087,8 @@ contains
transport_metadata%get_min_value(), &
remap_depth)
else
- call field_x_big_halo%initialise(field_fs, halo_depth=get_required_stencil_depth())
- call field_y_big_halo%initialise(field_fs, halo_depth=get_required_stencil_depth())
+ call field_x_big_halo%initialise(field_fs, halo_depth=mesh%get_halo_depth())
+ call field_y_big_halo%initialise(field_fs, halo_depth=mesh%get_halo_depth())
call invoke( setval_x(field_x_big_halo, field_x), &
setval_x(field_y_big_halo, field_y) )
end if
diff --git a/science/gungho/source/algorithm/transport/mol/reconstruct_w3_field_alg_mod.x90 b/science/gungho/source/algorithm/transport/mol/reconstruct_w3_field_alg_mod.x90
index 6bed73bed..e120d7a14 100644
--- a/science/gungho/source/algorithm/transport/mol/reconstruct_w3_field_alg_mod.x90
+++ b/science/gungho/source/algorithm/transport/mol/reconstruct_w3_field_alg_mod.x90
@@ -18,7 +18,6 @@
!! size as an integer argument.
module reconstruct_w3_field_alg_mod
- use check_configuration_mod, only: get_required_stencil_depth
use sci_combine_multidata_field_kernel_mod, &
only: combine_multidata_field_kernel_type
use constants_mod, only: r_def, i_def, l_def, str_def
@@ -196,7 +195,7 @@ contains
! Copy field to a large halo version
call field_old_big_halo%initialise( field_old%get_function_space(), &
- halo_depth = get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_X( field_old_big_halo, field_old ) )
monotone = (transport_metadata%get_horizontal_monotone() == monotone_koren)
diff --git a/science/gungho/source/algorithm/transport/mol/wt_advective_update_alg_mod.x90 b/science/gungho/source/algorithm/transport/mol/wt_advective_update_alg_mod.x90
index 310165201..e2bdd084e 100644
--- a/science/gungho/source/algorithm/transport/mol/wt_advective_update_alg_mod.x90
+++ b/science/gungho/source/algorithm/transport/mol/wt_advective_update_alg_mod.x90
@@ -18,7 +18,6 @@
!! size as an integer argument.
module wt_advective_update_alg_mod
- use check_configuration_mod, only: get_required_stencil_depth
use constants_mod, only: r_def, i_def, l_def, str_def, &
r_tran
use sci_geometric_constants_mod, only: get_coordinates, &
@@ -132,7 +131,7 @@ contains
! Copy field to a large halo version
call field_big_halo%initialise( field%get_function_space(), &
- halo_depth = get_required_stencil_depth() )
+ halo_depth=mesh%get_halo_depth() )
call invoke( setval_X( field_big_halo, field ) )
! Compute reconstruction on a Wtheta multidata field
diff --git a/science/gungho/source/configuration/check_configuration_mod.F90 b/science/gungho/source/configuration/check_configuration_mod.F90
index 86252a85a..e2a1e8e6e 100644
--- a/science/gungho/source/configuration/check_configuration_mod.F90
+++ b/science/gungho/source/configuration/check_configuration_mod.F90
@@ -6,7 +6,7 @@
module check_configuration_mod
- use constants_mod, only: i_def, l_def
+ use constants_mod, only: i_def, l_def, str_def
use mixing_config_mod, only: viscosity, &
viscosity_mu
use transport_config_mod, only: operators, &
@@ -48,7 +48,7 @@ module check_configuration_mod
substep_transport, &
substep_transport_off, &
adjust_vhv_wind, &
- ffsl_unity_3d, &
+ ffsl_unity_3d, &
wind_mono_top
use transport_enumerated_types_mod, &
only: scheme_mol_3d, &
@@ -71,6 +71,9 @@ module check_configuration_mod
monotone_qm_pos, &
ffsl_splitting_swift, &
ffsl_splitting_cosmic
+ use namelist_collection_mod, &
+ only : namelist_collection_type
+ use namelist_mod, only : namelist_type
implicit none
@@ -612,31 +615,87 @@ subroutine check_configuration(modeldb)
end subroutine check_configuration
- !> @brief Determine required stencil depth for the current configuration.
+ !> @brief Determine required stencil depth for the current configuration,
+ !! for each mesh.
!> @details Depending on the choice of science schemes the required local
!> mesh needs to support the anticipated stencils. This function
!> returns required stencil depth that needs to be supported.
- !> @return stencil_depth
- !>
+ !> @param[in,out] stencil_depths Array of stencil depths for each base mesh
+ !> @param[in] base_mesh_names Array of base mesh names
+ !> @param[in] configuration The configuration object
!===========================================================================
- function get_required_stencil_depth() result(stencil_depth)
+ subroutine get_required_stencil_depth(stencil_depths, base_mesh_names, configuration)
implicit none
- integer(kind=i_def) :: stencil_depth
- integer(kind=i_def) :: sl_depth, special_edge_pts
+ integer(kind=i_def), intent(inout) :: stencil_depths(:)
+ character(len=str_def), intent(in) :: base_mesh_names(:)
+ type(namelist_collection_type), intent(in) :: configuration
+
+
+ integer(kind=i_def) :: i
+ integer(kind=i_def) :: transport_depth, sl_depth
+ integer(kind=i_def) :: special_edge_pts
logical(kind=l_def) :: any_horz_dep_pts
- stencil_depth = 2
+ ! Configuration variables
+ type(namelist_type), pointer :: base_mesh_nml
+ type(namelist_type), pointer :: formulation_nml
+ type(namelist_type), pointer :: multires_coupling_nml
+ type(namelist_type), pointer :: transport_nml
+ character(len=str_def) :: prime_mesh_name
+ character(len=str_def) :: aerosol_mesh_name
+ logical(kind=l_def) :: use_multires_coupling
+ logical(kind=l_def) :: coarse_aerosol_transport
+ integer(kind=i_def) :: operators
+ integer(kind=i_def) :: fv_horizontal_order
+ integer(kind=i_def) :: panel_edge_treatment
+ logical(kind=l_def) :: panel_edge_high_order
+ integer(kind=i_def) :: dep_pt_stencil_extent
+ integer(kind=i_def) :: ffsl_inner_order
+ integer(kind=i_def) :: ffsl_outer_order
+
+ ! ------------------------------------------------------------------------ !
+ ! Get configuration variables
+ ! ------------------------------------------------------------------------ !
+
+ base_mesh_nml => configuration%get_namelist('base_mesh')
+ formulation_nml => configuration%get_namelist('formulation')
+ transport_nml => configuration%get_namelist('transport')
+
+ call base_mesh_nml%get_value('prime_mesh_name', prime_mesh_name)
+ call formulation_nml%get_value('use_multires_coupling', use_multires_coupling)
+ call transport_nml%get_value('operators', operators)
+ call transport_nml%get_value('fv_horizontal_order', fv_horizontal_order)
+ call transport_nml%get_value('panel_edge_treatment', panel_edge_treatment)
+ call transport_nml%get_value('panel_edge_high_order', panel_edge_high_order)
+ call transport_nml%get_value('dep_pt_stencil_extent', dep_pt_stencil_extent)
+ call transport_nml%get_value('ffsl_inner_order', ffsl_inner_order)
+ call transport_nml%get_value('ffsl_outer_order', ffsl_outer_order)
+ if (use_multires_coupling) then
+ multires_coupling_nml => configuration%get_namelist('multires_coupling')
+ call multires_coupling_nml%get_value('aerosol_mesh_name', aerosol_mesh_name)
+ call multires_coupling_nml%get_value('coarse_aerosol_transport', coarse_aerosol_transport)
+ end if
+
+ ! ------------------------------------------------------------------------ !
+ ! Set default depth
+ ! ------------------------------------------------------------------------ !
+
+ transport_depth = 2
if (operators == operators_fv) then
! Need larger halos for fv operators
- stencil_depth = max( stencil_depth, fv_horizontal_order/2 )
+ transport_depth = max( transport_depth, fv_horizontal_order/2 )
end if
+ ! ------------------------------------------------------------------------ !
+ ! Determine depth when using a semi-Lagrangian scheme
+ ! ------------------------------------------------------------------------ !
+
any_horz_dep_pts = check_horz_dep_pts()
- if ( any_horz_dep_pts ) then
+ if (any_horz_dep_pts) then
! When an SL scheme is used, the halo depth should be large enough to
! encompass the largest anticipated Courant number (effectively the
! departure distance in the SL scheme), plus any extra cells required for
@@ -646,8 +705,8 @@ function get_required_stencil_depth() result(stencil_depth)
! - the order of reconstruction
! - whether special edge treatment is used (this shifts the stencil by 1)
- if ( panel_edge_treatment == panel_edge_treatment_special_edges &
- .AND. panel_edge_high_order ) then
+ if (panel_edge_treatment == panel_edge_treatment_special_edges &
+ .AND. panel_edge_high_order) then
special_edge_pts = 1
else
special_edge_pts = 0
@@ -659,18 +718,39 @@ function get_required_stencil_depth() result(stencil_depth)
+ special_edge_pts & ! special edge treatment
)
- if ( panel_edge_treatment == panel_edge_treatment_remapping ) then
- if ( panel_edge_high_order ) then
- sl_depth = max( sl_depth, 3 )
+ if (panel_edge_treatment == panel_edge_treatment_remapping) then
+ if (panel_edge_high_order) then
+ transport_depth = max( sl_depth, 3 )
else
sl_depth = max( sl_depth, 2 )
end if
end if
- stencil_depth = max( stencil_depth, sl_depth )
+ transport_depth = max( transport_depth, sl_depth )
end if
- end function get_required_stencil_depth
+ ! ------------------------------------------------------------------------ !
+ ! Set depth for each mesh
+ ! ------------------------------------------------------------------------ !
+
+ ! Loop through meshes to determine whether transport takes place on it
+ do i = 1, size(base_mesh_names)
+ if (trim(base_mesh_names(i)) == trim(prime_mesh_name)) then
+ ! Assume transport always occurs on prime mesh
+ stencil_depths(i) = transport_depth
+
+ else if (use_multires_coupling .and. coarse_aerosol_transport .and. &
+ trim(base_mesh_names(i)) == trim(aerosol_mesh_name)) then
+ ! Coarse mesh transport for aerosols
+ stencil_depths(i) = transport_depth
+
+ else
+ ! No transport on this mesh, so set stencil depth to 2
+ stencil_depths(i) = 2
+ end if
+ end do
+
+ end subroutine get_required_stencil_depth
!> @brief Determine whether any of the transport schemes are MoL
!> @details Loops through the transport schemes specified for different
diff --git a/science/gungho/source/driver/gungho_diagnostics_driver_mod.F90 b/science/gungho/source/driver/gungho_diagnostics_driver_mod.F90
index 12cc745a4..497e1b984 100644
--- a/science/gungho/source/driver/gungho_diagnostics_driver_mod.F90
+++ b/science/gungho/source/driver/gungho_diagnostics_driver_mod.F90
@@ -35,7 +35,7 @@ module gungho_diagnostics_driver_mod
use formulation_config_mod, only : use_physics, &
moisture_formulation, &
moisture_formulation_dry
- use fs_continuity_mod, only : W3, Wtheta
+ use fs_continuity_mod, only : W3, Wtheta, W2H, W0
use integer_field_mod, only : integer_field_type
use initialization_config_mod, only : ls_option, &
ls_option_analytic, &
@@ -46,8 +46,8 @@ module gungho_diagnostics_driver_mod
use log_mod, only : log_event, &
LOG_LEVEL_DEBUG
use sci_geometric_constants_mod, &
- only : get_panel_id, get_height_fe, &
- get_height_fv, get_da_msl_proj
+ only : get_panel_id, &
+ get_height_fe, get_da_msl_proj
use io_config_mod, only : subroutine_timers, use_xios_io, write_fluxes
use timer_mod, only : timer
use transport_config_mod, only : transport_ageofair
@@ -86,56 +86,52 @@ subroutine gungho_diagnostics_driver( modeldb, &
type(mesh_type), intent(in), pointer :: twod_mesh
logical, intent(in) :: nodal_output_on_w3
- type( field_collection_type ), pointer :: prognostic_fields => null()
- type( field_collection_type ), pointer :: con_tracer_last_outer
- type( field_collection_type ), pointer :: lbc_fields
- type( field_collection_type ), pointer :: moisture_fields => null()
- type( field_type ), pointer :: mr(:) => null()
- type( field_type ), pointer :: moist_dyn(:) => null()
- type( field_collection_type ), pointer :: derived_fields
-
- type( field_type), pointer :: theta => null()
- type( field_type), pointer :: u => null()
- type( field_type), pointer :: h_u => null()
- type( field_type), pointer :: v_u => null()
- type( field_type), pointer :: rho => null()
- type( field_type), pointer :: exner => null()
- type( field_type), pointer :: panel_id => null()
- type( field_type), pointer :: height_w3 => null()
- type( field_type), pointer :: height_wth => null()
- type( field_type), pointer :: lbc_u => null()
- type( field_type), pointer :: lbc_theta => null()
- type( field_type), pointer :: lbc_rho => null()
- type( field_type), pointer :: lbc_exner => null()
- type( field_type), pointer :: lbc_m_v=> null()
- type( field_type), pointer :: lbc_q=> null()
- type( field_type), pointer :: u_in_w2h => null()
- type( field_type), pointer :: v_in_w2h => null()
- type( field_type), pointer :: w_in_wth => null()
- type( field_type), pointer :: ageofair => null()
- type( field_type), pointer :: exner_in_wth => null()
- type( field_type), pointer :: dA => null()
-
- type(field_array_type), pointer :: mr_array => null()
- type(field_array_type), pointer :: moist_dyn_array => null()
+ type(field_collection_type), pointer :: prognostic_fields
+ type(field_collection_type), pointer :: con_tracer_last_outer
+ type(field_collection_type), pointer :: lbc_fields
+ type(field_collection_type), pointer :: moisture_fields
+ type(field_type), pointer :: mr(:)
+ type(field_type), pointer :: moist_dyn(:)
+ type(field_collection_type), pointer :: derived_fields
+
+ type(field_type), pointer :: theta
+ type(field_type), pointer :: u
+ type(field_type), pointer :: h_u
+ type(field_type), pointer :: v_u
+ type(field_type), pointer :: rho
+ type(field_type), pointer :: exner
+ type(field_type), pointer :: panel_id
+ type(field_type), pointer :: height
+ type(field_type), pointer :: lbc_u
+ type(field_type), pointer :: lbc_theta
+ type(field_type), pointer :: lbc_rho
+ type(field_type), pointer :: lbc_exner
+ type(field_type), pointer :: lbc_m_v
+ type(field_type), pointer :: lbc_q
+ type(field_type), pointer :: u_in_w2h
+ type(field_type), pointer :: v_in_w2h
+ type(field_type), pointer :: w_in_wth
+ type(field_type), pointer :: ageofair
+ type(field_type), pointer :: exner_in_wth
+ type(field_type), pointer :: dA
+
+ type(field_array_type), pointer :: mr_array
+ type(field_array_type), pointer :: moist_dyn_array
! Iterator for field collection
type(field_collection_iterator_type) :: iterator
! A pointer used for retrieving fields from collections
! when iterating over them
- class( field_parent_type ), pointer :: field_ptr => null()
+ class(field_parent_type), pointer :: field_ptr => null()
+ procedure(write_interface), pointer :: tmp_write_ptr
+ type(io_value_type), pointer :: temp_corr_io_value
- type(io_value_type), pointer :: temp_corr_io_value
+ integer(kind=i_def) :: i, fs
+ character(len=str_def) :: name, prefix, field_name
- character(str_def) :: name
-
- integer :: fs
- integer :: element_order_h, element_order_v
-
- procedure(write_interface), pointer :: tmp_write_ptr => null()
-
- integer :: i
+ integer(kind=i_def), allocatable :: fs_ids(:)
+ character(len=str_def), allocatable :: fs_names(:)
if ( subroutine_timers ) call timer('gungho_diagnostics_driver')
@@ -161,20 +157,6 @@ subroutine gungho_diagnostics_driver( modeldb, &
call prognostic_fields%get_field('rho', rho)
call prognostic_fields%get_field('exner', exner)
- ! Get element orders and get the finite element or finite volume height
- element_order_h = theta%get_element_order_h()
- element_order_v = theta%get_element_order_v()
-
- if (element_order_h > 0 .or. element_order_v > 0) then
- ! Get the finite element height
- height_w3 => get_height_fe(W3, mesh%get_id())
- height_wth => get_height_fe(Wtheta, mesh%get_id())
- else
- ! Get the finite volume height
- height_w3 => get_height_fv(W3, mesh%get_id())
- height_wth => get_height_fv(Wtheta, mesh%get_id())
- end if
-
! Scalar fields
call write_scalar_diagnostic('rho', rho, &
modeldb%clock, mesh, nodal_output_on_w3)
@@ -182,10 +164,31 @@ subroutine gungho_diagnostics_driver( modeldb, &
modeldb%clock, mesh, nodal_output_on_w3)
call write_scalar_diagnostic('exner', exner, &
modeldb%clock, mesh, nodal_output_on_w3)
- call write_scalar_diagnostic('height_w3', height_w3, &
- modeldb%clock, mesh, nodal_output_on_w3)
- call write_scalar_diagnostic('height_wth', height_wth, &
- modeldb%clock, mesh, nodal_output_on_w3)
+
+ ! Write out heights of function space DoFs, if requested
+ allocate(fs_names(4))
+ allocate(fs_ids(4))
+ fs_names = (/ "w0 ", "w2h", "w3 ", "wth" /) ! Spaces to align lengths
+ fs_ids = (/ W0, W2H, W3, Wtheta /)
+ if (use_xios_io) then
+ if (modeldb%clock%is_initialisation()) then
+ prefix = "init_"
+ else
+ prefix = ""
+ end if
+ tmp_write_ptr => write_field_generic
+ do i = 1, SIZE(fs_names)
+ field_name = trim(prefix)//"height_"//trim(fs_names(i))
+ fs = fs_ids(i)
+ if (diagnostic_to_be_sampled(trim(field_name))) then
+ height => get_height_fe(fs, mesh%get_id())
+ call height%set_write_behaviour(tmp_write_ptr)
+ call height%write_field(trim(field_name))
+ end if
+ end do
+ end if
+ deallocate(fs_names)
+ deallocate(fs_ids)
if (transport_ageofair) then
call con_tracer_last_outer%get_field('ageofair',ageofair)
@@ -233,7 +236,7 @@ subroutine gungho_diagnostics_driver( modeldb, &
! Moisture fields
if ( moisture_formulation /= moisture_formulation_dry ) then
- do i=1,nummr
+ do i = 1, nummr
call write_scalar_diagnostic( trim(mr_names(i)), mr(i), &
modeldb%clock, mesh, nodal_output_on_w3 )
end do
@@ -276,8 +279,8 @@ subroutine gungho_diagnostics_driver( modeldb, &
modeldb%clock, mesh, nodal_output_on_w3)
call write_vector_diagnostic('readlbc_h_u', h_u, &
modeldb%clock, mesh, nodal_output_on_w3)
- endif
- endif
+ end if
+ end if
! Derived physics fields (only those on W3 or Wtheta)
if (use_physics .and. use_xios_io .and. .not. modeldb%clock%is_initialisation()) then
diff --git a/science/gungho/source/driver/gungho_model_mod.F90 b/science/gungho/source/driver/gungho_model_mod.F90
index e91f0fbd6..00c9842f7 100644
--- a/science/gungho/source/driver/gungho_model_mod.F90
+++ b/science/gungho/source/driver/gungho_model_mod.F90
@@ -417,6 +417,7 @@ subroutine initialise_infrastructure( io_context_name, modeldb )
logical(l_def) :: mesh_already_exists
integer(i_def) :: i, j, mesh_ctr
+ integer(i_def), allocatable :: stencil_depths(:)
character(str_def), allocatable :: base_mesh_names(:)
character(str_def), allocatable :: meshes_to_shift(:)
character(str_def), allocatable :: meshes_to_double(:)
@@ -445,7 +446,6 @@ subroutine initialise_infrastructure( io_context_name, modeldb )
integer(i_def) :: geometry
integer(i_def) :: extrusion_method
- integer(i_def) :: stencil_depth
real(r_def) :: domain_bottom
real(r_def) :: domain_height
real(r_def) :: scaled_radius
@@ -672,13 +672,17 @@ subroutine initialise_infrastructure( io_context_name, modeldb )
apply_partition_check = .true.
end if
- stencil_depth = get_required_stencil_depth()
+ allocate(stencil_depths(size(base_mesh_names)))
+ call get_required_stencil_depth( &
+ stencil_depths, base_mesh_names, modeldb%configuration &
+ )
+
call init_mesh( modeldb%configuration, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, &
extrusion, &
- get_required_stencil_depth(), &
+ stencil_depths, &
apply_partition_check )
@@ -922,6 +926,7 @@ subroutine initialise_infrastructure( io_context_name, modeldb )
chi_inventory, panel_id_inventory, files_init_ptr, &
orography_mesh, orography_twod_mesh)
deallocate(base_mesh_names)
+ deallocate(stencil_depths)
if (allocated(meshes_to_shift)) deallocate(meshes_to_shift)
if (allocated(meshes_to_double)) deallocate(meshes_to_double)
diff --git a/science/gungho/source/kernel/external_forcing/deep_hot_jupiter_kernel_mod.F90 b/science/gungho/source/kernel/external_forcing/deep_hot_jupiter_kernel_mod.F90
index f898cd611..376c727bf 100644
--- a/science/gungho/source/kernel/external_forcing/deep_hot_jupiter_kernel_mod.F90
+++ b/science/gungho/source/kernel/external_forcing/deep_hot_jupiter_kernel_mod.F90
@@ -21,11 +21,12 @@ module deep_hot_jupiter_kernel_mod
GH_READ, GH_READWRITE, &
GH_SCALAR, &
ANY_DISCONTINUOUS_SPACE_3, &
+ ANY_SPACE_9, &
GH_READ, CELL_COLUMN
use constants_mod, only: r_def, i_def
use sci_chi_transform_mod, only: chi2llr
use calc_exner_pointwise_mod, only: calc_exner_pointwise
- use fs_continuity_mod, only: Wtheta, Wchi
+ use fs_continuity_mod, only: Wtheta
use deep_hot_jupiter_forcings_mod, only: deep_hot_jupiter_newton_frequency, &
deep_hot_jupiter_equilibrium_theta
use kernel_mod, only: kernel_type
@@ -46,7 +47,7 @@ module deep_hot_jupiter_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READWRITE, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
/)
diff --git a/science/gungho/source/kernel/external_forcing/earth_like_kernel_mod.F90 b/science/gungho/source/kernel/external_forcing/earth_like_kernel_mod.F90
index 3699e7df6..8cd1cdf1c 100644
--- a/science/gungho/source/kernel/external_forcing/earth_like_kernel_mod.F90
+++ b/science/gungho/source/kernel/external_forcing/earth_like_kernel_mod.F90
@@ -21,11 +21,12 @@ module earth_like_kernel_mod
GH_READ, GH_READWRITE, &
GH_SCALAR, &
ANY_DISCONTINUOUS_SPACE_3, &
+ ANY_SPACE_9, &
GH_READ, CELL_COLUMN
use constants_mod, only: r_def, i_def
use sci_chi_transform_mod, only: chi2llr
use calc_exner_pointwise_mod, only: calc_exner_pointwise
- use fs_continuity_mod, only: Wtheta, Wchi
+ use fs_continuity_mod, only: Wtheta
use earth_like_forcings_mod, only: earth_like_newton_frequency, &
earth_like_equilibrium_theta
use kernel_mod, only: kernel_type
@@ -47,7 +48,7 @@ module earth_like_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
diff --git a/science/gungho/source/kernel/external_forcing/shallow_hot_jupiter_kernel_mod.F90 b/science/gungho/source/kernel/external_forcing/shallow_hot_jupiter_kernel_mod.F90
index 28994c674..6413a4be0 100644
--- a/science/gungho/source/kernel/external_forcing/shallow_hot_jupiter_kernel_mod.F90
+++ b/science/gungho/source/kernel/external_forcing/shallow_hot_jupiter_kernel_mod.F90
@@ -21,11 +21,12 @@ module shallow_hot_jupiter_kernel_mod
GH_READ, GH_READWRITE, &
GH_SCALAR, &
ANY_DISCONTINUOUS_SPACE_3, &
+ ANY_SPACE_9, &
GH_READ, CELL_COLUMN
use constants_mod, only: r_def, i_def
use sci_chi_transform_mod, only: chi2llr
use calc_exner_pointwise_mod, only: calc_exner_pointwise
- use fs_continuity_mod, only: Wtheta, Wchi
+ use fs_continuity_mod, only: Wtheta
use shallow_hot_jupiter_forcings_mod, only: shallow_hot_jupiter_newton_frequency, &
shallow_hot_jupiter_equilibrium_theta
use kernel_mod, only: kernel_type
@@ -47,7 +48,7 @@ module shallow_hot_jupiter_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
diff --git a/science/gungho/source/kernel/initialisation/initial_rho_sample_kernel_mod.F90 b/science/gungho/source/kernel/initialisation/initial_rho_sample_kernel_mod.F90
index 45fafaf31..4327e91d1 100644
--- a/science/gungho/source/kernel/initialisation/initial_rho_sample_kernel_mod.F90
+++ b/science/gungho/source/kernel/initialisation/initial_rho_sample_kernel_mod.F90
@@ -19,7 +19,6 @@ module initial_rho_sample_kernel_mod
ANY_DISCONTINUOUS_SPACE_1, &
ANY_DISCONTINUOUS_SPACE_3, &
CELL_COLUMN, GH_EVALUATOR
- use fs_continuity_mod, only : Wchi
use constants_mod, only : r_def, i_def
use idealised_config_mod, only : test
use kernel_mod, only : kernel_type
@@ -35,12 +34,12 @@ module initial_rho_sample_kernel_mod
private
type(arg_type) :: meta_args(4) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
/)
type(func_type) :: meta_funcs(1) = (/ &
- func_type(Wchi, GH_BASIS) &
+ func_type(ANY_SPACE_9, GH_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
integer :: gh_shape = GH_EVALUATOR
diff --git a/science/gungho/source/kernel/initialisation/set_rho_kernel_mod.F90 b/science/gungho/source/kernel/initialisation/set_rho_kernel_mod.F90
index bc6f1bf39..dc243c379 100644
--- a/science/gungho/source/kernel/initialisation/set_rho_kernel_mod.F90
+++ b/science/gungho/source/kernel/initialisation/set_rho_kernel_mod.F90
@@ -34,13 +34,13 @@ module set_rho_kernel_mod
private
type(arg_type) :: meta_args(4) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
/)
type(func_type) :: meta_funcs(2) = (/ &
func_type(ANY_DISCONTINUOUS_SPACE_1, GH_BASIS), &
- func_type(Wchi, GH_BASIS, GH_DIFF_BASIS) &
+ func_type(ANY_SPACE_9, GH_BASIS, GH_DIFF_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
integer :: gh_shape = GH_QUADRATURE_XYoZ
diff --git a/science/gungho/source/kernel/solver/eliminated_theta_q22_kernel_mod.F90 b/science/gungho/source/kernel/solver/eliminated_theta_q22_kernel_mod.F90
index acabd2c24..ec2e9f530 100644
--- a/science/gungho/source/kernel/solver/eliminated_theta_q22_kernel_mod.F90
+++ b/science/gungho/source/kernel/solver/eliminated_theta_q22_kernel_mod.F90
@@ -16,18 +16,19 @@
!! https://code.metoffice.gov.uk/trac/lfric/wiki/GhaspSupport/Documentation
module eliminated_theta_q22_kernel_mod
- use argument_mod, only: arg_type, func_type, &
- GH_OPERATOR, GH_FIELD, &
- GH_REAL, GH_SCALAR, &
- GH_READ, GH_WRITE, &
- GH_BASIS, GH_DIFF_BASIS, &
- CELL_COLUMN, &
- GH_QUADRATURE_XYoZ, &
- ANY_DISCONTINUOUS_SPACE_3
+ use argument_mod, only: arg_type, func_type, &
+ GH_OPERATOR, GH_FIELD, &
+ GH_REAL, GH_SCALAR, &
+ GH_READ, GH_WRITE, &
+ GH_BASIS, GH_DIFF_BASIS, &
+ CELL_COLUMN, &
+ GH_QUADRATURE_XYoZ, &
+ ANY_DISCONTINUOUS_SPACE_3, &
+ ANY_SPACE_9
use constants_mod, only: i_def, r_def, r_solver
use sci_coordinate_jacobian_mod, only: coordinate_jacobian
- use fs_continuity_mod, only: W2, Wtheta, Wchi
+ use fs_continuity_mod, only: W2, Wtheta
use kernel_mod, only: kernel_type
implicit none
@@ -45,14 +46,14 @@ module eliminated_theta_q22_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
arg_type(GH_FIELD, GH_REAL, GH_READ, W2), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_SCALAR, GH_REAL, GH_READ) &
/)
type(func_type) :: meta_funcs(3) = (/ &
- func_type(W2, GH_BASIS), &
- func_type(Wtheta, GH_DIFF_BASIS), &
- func_type(Wchi, GH_BASIS, GH_DIFF_BASIS) &
+ func_type(W2, GH_BASIS), &
+ func_type(Wtheta, GH_DIFF_BASIS), &
+ func_type(ANY_SPACE_9, GH_BASIS, GH_DIFF_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
integer :: gh_shape = GH_QUADRATURE_XYoZ
diff --git a/science/gungho/source/kernel/solver/w2_normalisation_kernel_mod.F90 b/science/gungho/source/kernel/solver/w2_normalisation_kernel_mod.F90
index 7116bbdb7..06ef2a9d4 100644
--- a/science/gungho/source/kernel/solver/w2_normalisation_kernel_mod.F90
+++ b/science/gungho/source/kernel/solver/w2_normalisation_kernel_mod.F90
@@ -22,7 +22,7 @@ module w2_normalisation_kernel_mod
GH_BASIS, GH_DIFF_BASIS, &
CELL_COLUMN, GH_EVALUATOR
use constants_mod, only : r_def, r_solver, i_def
- use fs_continuity_mod, only : W2, Wchi
+ use fs_continuity_mod, only : W2
use kernel_mod, only : kernel_type
implicit none
@@ -39,14 +39,14 @@ module w2_normalisation_kernel_mod
private
type(arg_type) :: meta_args(4) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_INC, W2), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3), &
arg_type(GH_FIELD, GH_REAL, GH_READ, W2) &
/)
- type(func_type) :: meta_funcs(2) = (/ &
- func_type(W2, GH_BASIS), &
- func_type(Wchi, GH_BASIS, GH_DIFF_BASIS) &
+ type(func_type) :: meta_funcs(2) = (/ &
+ func_type(W2, GH_BASIS), &
+ func_type(ANY_SPACE_9, GH_BASIS, GH_DIFF_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
integer :: gh_shape = GH_EVALUATOR
diff --git a/science/gungho/source/kernel/transport/common/init_remap_on_extended_mesh_kernel_mod.F90 b/science/gungho/source/kernel/transport/common/init_remap_on_extended_mesh_kernel_mod.F90
index 7f88ff248..1fc8dc3d3 100644
--- a/science/gungho/source/kernel/transport/common/init_remap_on_extended_mesh_kernel_mod.F90
+++ b/science/gungho/source/kernel/transport/common/init_remap_on_extended_mesh_kernel_mod.F90
@@ -19,12 +19,12 @@ module init_remap_on_extended_mesh_kernel_mod
GH_READ, GH_WRITE, &
ANY_DISCONTINUOUS_SPACE_1, &
ANY_DISCONTINUOUS_SPACE_3, &
+ ANY_SPACE_9, &
GH_BASIS, &
HALO_CELL_COLUMN, &
STENCIL, CROSS2D, &
GH_EVALUATOR
use constants_mod, only: r_tran, r_def, i_def, l_def, LARGE_REAL_POSITIVE
-use fs_continuity_mod, only: Wchi
implicit none
@@ -39,14 +39,14 @@ module init_remap_on_extended_mesh_kernel_mod
type(arg_type) :: meta_args(7) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1), &
arg_type(GH_FIELD, GH_INTEGER, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi, STENCIL(CROSS2D)), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9, STENCIL(CROSS2D)), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3, STENCIL(CROSS2D)), &
arg_type(GH_SCALAR, GH_LOGICAL, GH_READ), &
arg_type(GH_SCALAR, GH_INTEGER, GH_READ) &
/)
type(func_type) :: meta_funcs(1) = (/ &
- func_type(Wchi, GH_BASIS) &
+ func_type(ANY_SPACE_9, GH_BASIS) &
/)
integer :: operates_on = HALO_CELL_COLUMN
integer :: gh_shape = GH_EVALUATOR
diff --git a/science/gungho/source/kernel/transport/common/panel_edge_weights_kernel_mod.F90 b/science/gungho/source/kernel/transport/common/panel_edge_weights_kernel_mod.F90
index 2d51a6417..2a4e40b85 100644
--- a/science/gungho/source/kernel/transport/common/panel_edge_weights_kernel_mod.F90
+++ b/science/gungho/source/kernel/transport/common/panel_edge_weights_kernel_mod.F90
@@ -16,10 +16,10 @@ module panel_edge_weights_kernel_mod
ANY_DISCONTINUOUS_SPACE_3, &
ANY_DISCONTINUOUS_SPACE_5, &
ANY_DISCONTINUOUS_SPACE_9, &
+ ANY_SPACE_9, &
GH_BASIS, GH_EVALUATOR, &
CELL_COLUMN, STENCIL, CROSS2D
use constants_mod, only: r_tran, r_def, i_def, l_def, LARGE_REAL_POSITIVE
-use fs_continuity_mod, only: Wchi
use reference_element_mod, only: W, S, N, E
implicit none
@@ -37,7 +37,8 @@ module panel_edge_weights_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_5), &
arg_type(GH_FIELD, GH_INTEGER, GH_WRITE, ANY_DISCONTINUOUS_SPACE_5), &
arg_type(GH_FIELD, GH_INTEGER, GH_WRITE, ANY_DISCONTINUOUS_SPACE_5), &
- arg_type(GH_FIELD*3, GH_REAL, GH_READ, Wchi, STENCIL(CROSS2D)), &
+ arg_type(GH_FIELD*3, GH_REAL, GH_READ, ANY_SPACE_9, &
+ STENCIL(CROSS2D)), &
arg_type(GH_FIELD*2, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_9), &
arg_type(GH_FIELD*2, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_9), &
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_3, &
@@ -47,7 +48,7 @@ module panel_edge_weights_kernel_mod
arg_type(GH_SCALAR, GH_INTEGER, GH_READ) &
/)
type(func_type) :: meta_funcs(2) = (/ &
- func_type(Wchi, GH_BASIS), &
+ func_type(ANY_SPACE_9, GH_BASIS), &
func_type(ANY_DISCONTINUOUS_SPACE_9, GH_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
diff --git a/science/gungho/source/kernel/transport/mol/consistent_wind_kernel_mod.F90 b/science/gungho/source/kernel/transport/mol/consistent_wind_kernel_mod.F90
index fed6b05c8..d986123af 100644
--- a/science/gungho/source/kernel/transport/mol/consistent_wind_kernel_mod.F90
+++ b/science/gungho/source/kernel/transport/mol/consistent_wind_kernel_mod.F90
@@ -13,13 +13,14 @@
module consistent_wind_kernel_mod
-use argument_mod, only : arg_type, func_type, &
- GH_FIELD, GH_REAL, &
- GH_READWRITE, GH_READ, &
- GH_BASIS, GH_DIFF_BASIS, &
- CELL_COLUMN, GH_EVALUATOR
+use argument_mod, only : arg_type, func_type, &
+ GH_FIELD, GH_REAL, &
+ GH_READWRITE, GH_READ, &
+ GH_BASIS, GH_DIFF_BASIS, &
+ CELL_COLUMN, GH_EVALUATOR, &
+ ANY_SPACE_9
use constants_mod, only : r_def, i_def, r_tran
-use fs_continuity_mod, only : Wtheta, W2, W2v, Wchi
+use fs_continuity_mod, only : Wtheta, W2, W2v
use kernel_mod, only : kernel_type
implicit none
@@ -31,15 +32,15 @@ module consistent_wind_kernel_mod
!> The type declaration for the kernel. Contains the metadata needed by the PSy layer
type, public, extends(kernel_type) :: consistent_wind_kernel_type
private
- type(arg_type) :: meta_args(4) = (/ &
- arg_type(GH_FIELD, GH_REAL, GH_READWRITE, W2v), &
- arg_type(GH_FIELD, GH_REAL, GH_READ, W2), &
- arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
- arg_type(GH_FIELD, GH_REAL, GH_READ, Wchi) &
+ type(arg_type) :: meta_args(4) = (/ &
+ arg_type(GH_FIELD, GH_REAL, GH_READWRITE, W2v), &
+ arg_type(GH_FIELD, GH_REAL, GH_READ, W2), &
+ arg_type(GH_FIELD, GH_REAL, GH_READ, Wtheta), &
+ arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_SPACE_9) &
/)
- type(func_type) :: meta_funcs(2) = (/ &
- func_type(W2, GH_BASIS), &
- func_type(Wchi, GH_DIFF_BASIS) &
+ type(func_type) :: meta_funcs(2) = (/ &
+ func_type(W2, GH_BASIS), &
+ func_type(ANY_SPACE_9, GH_DIFF_BASIS) &
/)
integer :: operates_on = CELL_COLUMN
integer :: gh_shape = GH_EVALUATOR
diff --git a/science/gungho/source/orography/assign_orography_field_mod.F90 b/science/gungho/source/orography/assign_orography_field_mod.F90
index 7b08cf38a..9c8a02c0e 100644
--- a/science/gungho/source/orography/assign_orography_field_mod.F90
+++ b/science/gungho/source/orography/assign_orography_field_mod.F90
@@ -1,32 +1,34 @@
-!-----------------------------------------------------------------------------
+!-------------------------------------------------------------------------------
! (C) Crown copyright 2017 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 Module to assign the values of the surface height to model
-!> coordinates using either an analytic orography function or from
-!> a surface_altitude field.
-!> Note that unlike other algorithms, this is breaks encapsulation in order to
-!> write to the chi field. This is an exception and only allowed in the set up
-!> phase of the model. Generally, the chi field is read only (and this is
-!> enforced through PSyClone).
+!-------------------------------------------------------------------------------
+
+!-------------------------------------------------------------------------------
+!> @brief Updates the model's coordinates to include orography.
+!> @details Module to assign the values of the surface height to model
+!! coordinates using either an analytic orography function or from a
+!! surface_altitude field.
+!! Note that unlike other algorithms, this is breaks encapsulation in
+!! order to write to the chi field. This is an exception and only
+!! allowed in the set up phase of the model. Generally, the chi field
+!! is read only (and this is enforced through PSyClone).
!-------------------------------------------------------------------------------
module assign_orography_field_mod
use constants_mod, only : r_def, i_def, l_def
- use orography_config_mod, only : orog_init_option, &
- orog_init_option_analytic, &
- orog_init_option_ancil, &
- orog_init_option_none, &
+ use orography_config_mod, only : orog_init_option, &
+ orog_init_option_analytic, &
+ orog_init_option_ancil, &
+ orog_init_option_none, &
orog_init_option_start_dump
- use base_mesh_config_mod, only : geometry, &
- geometry_spherical, &
- topology, &
- topology_fully_periodic
- use finite_element_config_mod, only : coord_system, &
- coord_order, &
+ use base_mesh_config_mod, only : geometry, &
+ geometry_spherical, &
+ topology, &
+ topology_fully_periodic, &
+ prime_mesh_name
+ use finite_element_config_mod, only : coord_system, &
+ coord_order, &
coord_system_xyz
use mesh_collection_mod, only : mesh_collection
use coord_transform_mod, only : xyz2llr, llr2xyz
@@ -43,7 +45,6 @@ module assign_orography_field_mod
LOG_LEVEL_ERROR
use fs_continuity_mod, only : W0, Wchi
use function_space_mod, only : BASIS
- use surface_altitude_alg_mod, only : surface_altitude_alg
implicit none
@@ -60,49 +61,64 @@ module assign_orography_field_mod
interface
- subroutine analytic_orography_interface(nlayers, &
- ndf_chi, undf_chi, map_chi, &
- ndf_pid, undf_pid, map_pid, &
- domain_surface, domain_height, &
+ subroutine analytic_orography_interface(nlayers, &
+ ndf_chi, undf_chi, map_chi, &
+ ndf_pid, undf_pid, map_pid, &
+ domain_surface, domain_height, &
+ chi_1_in, chi_2_in, chi_3_in, &
chi_1, chi_2, chi_3, panel_id)
- import :: r_def, i_def
+
+ import :: i_def, r_def
+
implicit none
- integer(kind=i_def), intent(in) :: nlayers, undf_chi, undf_pid
- integer(kind=i_def), intent(in) :: ndf_chi, ndf_pid
- integer(kind=i_def), intent(in) :: map_chi(ndf_chi), map_pid(ndf_pid)
- real(kind=r_def), intent(in) :: domain_surface, domain_height
- real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi), chi_3(undf_chi)
- real(kind=r_def), intent(in) :: panel_id(undf_pid)
+
+ integer(kind=i_def), intent(in) :: nlayers, undf_chi, undf_pid
+ integer(kind=i_def), intent(in) :: ndf_chi, ndf_pid
+ integer(kind=i_def), intent(in) :: map_chi(ndf_chi), map_pid(ndf_pid)
+ real(kind=r_def), intent(in) :: domain_surface, domain_height
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: panel_id(undf_pid)
+
end subroutine analytic_orography_interface
end interface
interface
- subroutine ancil_orography_interface(nlayers, &
- chi_1, chi_2, chi_3, &
- panel_id, &
- surface_altitude, &
- domain_surface, domain_height, &
- ndf_chi, undf_chi, &
- map_chi, &
- ndf_pid, undf_pid, &
- map_pid, &
- ndf, undf, &
- map, basis &
- )
- import :: r_def, i_def
+ subroutine ancil_orography_interface(nlayers, &
+ chi_1, chi_2, chi_3, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ panel_id, &
+ surface_altitude, &
+ domain_surface, domain_height, &
+ ndf_chi, undf_chi, map_chi, &
+ ndf_pid, undf_pid, map_pid, &
+ ndf, undf, map, basis)
+
+ import :: i_def, r_def
+
implicit none
- integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
- integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
- integer(kind=i_def), dimension(ndf), intent(in) :: map
- integer(kind=i_def), dimension(ndf_chi), intent(in) :: map_chi
- integer(kind=i_def), dimension(ndf_pid), intent(in) :: map_pid
- real(kind=r_def), intent(in), dimension(ndf, ndf_chi) :: basis
- real(kind=r_def), dimension(undf_chi), intent(inout) :: chi_1, chi_2, chi_3
- real(kind=r_def), dimension(undf_pid), intent(in) :: panel_id
- real(kind=r_def), dimension(undf), intent(in) :: surface_altitude
- real(kind=r_def), intent(in) :: domain_surface, domain_height
+
+ integer(kind=i_def), intent(in) :: nlayers, undf_chi, undf_pid, undf
+ integer(kind=i_def), intent(in) :: ndf_chi, ndf_pid, ndf
+ integer(kind=i_def), intent(in) :: map_chi(ndf_chi), map_pid(ndf_pid)
+ integer(kind=i_def), intent(in) :: map(ndf)
+ real(kind=r_def), intent(in) :: basis(ndf,ndf_chi)
+ real(kind=r_def), intent(in) :: domain_surface, domain_height
+ real(kind=r_def), intent(in) :: surface_altitude(undf)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: panel_id(undf_pid)
+
end subroutine ancil_orography_interface
end interface
@@ -120,73 +136,65 @@ end subroutine ancil_orography_interface
!> routines calculate analytic orography from horizontal coordinates or else
!> use the surface_altitude field and then update the vertical coordinate.
!>
- !> @param[in,out] chi_inventory Contains all of the model's coordinate
- !! fields, itemised by mesh
- !> @param[in] panel_id_inventory Contains all of the model's panel ID
- !! fields, itemised by mesh
- !> @param[in] mesh Mesh to apply orography to
- !> @param[in] surface_altitude Field containing the surface altitude
+ !> @param[in,out] chi_inventory Contains all of the model's coordinate
+ !! fields, itemised by mesh
+ !> @param[in] panel_id_inventory Contains all of the model's panel ID
+ !! fields, itemised by mesh
+ !> @param[in] mesh Mesh to apply orography to
+ !> @param[in] surface_altitude_w0 Field containing the surface altitude
!=============================================================================
- subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
- mesh, surface_altitude)
+ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
+ mesh, surface_altitude_w0)
use inventory_by_mesh_mod, only : inventory_by_mesh_type
use field_mod, only : field_type, field_proxy_type
use mesh_mod, only : mesh_type
use domain_mod, only : domain_type
use orography_helper_functions_mod, only : set_horizontal_domain_size
- use function_space_collection_mod, only : function_space_collection
- use orography_config_mod, only : orog_init_option, &
- orog_init_option_ancil, &
+ use orography_config_mod, only : orog_init_option, &
+ orog_init_option_ancil, &
orog_init_option_start_dump
use sci_field_minmax_alg_mod, only : log_field_minmax
implicit none
! Arguments
- type( inventory_by_mesh_type ), intent( inout ) :: chi_inventory
- type( inventory_by_mesh_type ), intent( in ) :: panel_id_inventory
- type( mesh_type ), intent( in ), pointer :: mesh
+ type(inventory_by_mesh_type), intent(inout) :: chi_inventory
+ type(inventory_by_mesh_type), intent(in) :: panel_id_inventory
+ type(mesh_type), pointer, intent(in) :: mesh
! We keep the surface_altitude as an optional argument since it is
! not needed for miniapps that only want analytic orography
- type( field_type ), intent( in ), optional :: surface_altitude
+ type(field_type), optional, intent(in) :: surface_altitude_w0
! Local variables
- type( field_type ), pointer :: chi(:) => null()
- type( field_type ), pointer :: panel_id => null()
- type( field_proxy_type ) :: chi_proxy(3)
- type( field_proxy_type ) :: panel_id_proxy
- type( domain_type ) :: domain
+ type(field_type), pointer :: chi(:)
+ type(field_type), pointer :: panel_id
+ type(field_type) :: chi_in(3)
+ type(field_proxy_type) :: chi_proxy(3)
+ type(field_proxy_type) :: chi_in_proxy(3)
+ type(field_proxy_type) :: panel_id_proxy
+ type(domain_type) :: domain
real(kind=r_def) :: domain_height, domain_surface
integer(kind=i_def) :: cell
integer(kind=i_def) :: undf_chi, ndf_chi, nlayers
integer(kind=i_def) :: undf_pid, ndf_pid
integer(kind=i_def) :: undf_sf, ndf_sf
- integer(kind=i_def), pointer :: map_chi(:,:) => null()
- integer(kind=i_def), pointer :: map_pid(:,:) => null()
- integer(kind=i_def), pointer :: map_sf(:,:) => null()
+ integer(kind=i_def), pointer :: map_chi(:,:)
+ integer(kind=i_def), pointer :: map_pid(:,:)
+ integer(kind=i_def), pointer :: map_sf(:,:)
- integer(kind=i_def) :: surface_order_h, surface_order_v
- type( mesh_type ), pointer :: sf_mesh
- type( field_type ) :: surface_altitude_w0
- type( field_proxy_type ) :: sfc_alt_proxy
+ type(field_proxy_type) :: sfc_alt_proxy
- real(kind=r_def), pointer :: nodes(:,:) => null()
- integer(kind=i_def) :: dim_sf, df, df_sf
+ real(kind=r_def), pointer :: nodes(:,:)
+ integer(kind=i_def) :: dim_sf, df, df_sf, depth
! Procedure pointer
procedure(analytic_orography_interface), pointer :: analytic_orography => null()
- procedure(ancil_orography_interface), pointer :: ancil_orography => null()
+ procedure(ancil_orography_interface), pointer :: ancil_orography => null()
real(kind=r_def), allocatable :: basis_sf_on_chi(:,:,:)
- if (coord_order == 0 .and. orog_init_option/=orog_init_option_none) then
- call log_event( "assign_orography_field: "// &
- "Orography assignment is currently only available with coord_order > 0.", &
- LOG_LEVEL_ERROR )
- end if
-
call chi_inventory%get_field_array(mesh, chi)
call panel_id_inventory%get_field(mesh, panel_id)
@@ -200,19 +208,21 @@ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
! Get domain top from the mesh object and domain_surface
domain_height = mesh%get_domain_top() + domain_surface
- if (orog_init_option==orog_init_option_none) then
+ select case (orog_init_option)
+ case (orog_init_option_none)
- call log_event( "assign_orography_field: "// &
- "Flat surface requested.", LOG_LEVEL_INFO )
+ call log_event( &
+ "assign_orography_field: Flat surface requested.", LOG_LEVEL_INFO &
+ )
- else if (orog_init_option==orog_init_option_analytic) then
+ case (orog_init_option_analytic)
call log_event( "assign_orography_field: "// &
"Assigning analytic orography.", LOG_LEVEL_INFO )
! Point to appropriate procedure to assign orography
- if ( geometry == geometry_spherical ) then
- if ( coord_system == coord_system_xyz ) then
+ if (geometry == geometry_spherical) then
+ if (coord_system == coord_system_xyz) then
analytic_orography => analytic_orography_spherical_xyz
else
analytic_orography => analytic_orography_spherical_native
@@ -221,12 +231,20 @@ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
analytic_orography => analytic_orography_cartesian
end if
+ ! Copy chi to chi_in, to allow adjustment of continuous chi fields
+ call chi(1)%copy_field_serial(chi_in(1))
+ call chi(2)%copy_field_serial(chi_in(2))
+ call chi(3)%copy_field_serial(chi_in(3))
+
! Break encapsulation and get the proxy
- chi_proxy(1) = chi(1)%get_proxy()
- chi_proxy(2) = chi(2)%get_proxy()
- chi_proxy(3) = chi(3)%get_proxy()
- undf_chi = chi_proxy(1)%vspace%get_undf()
- ndf_chi = chi_proxy(1)%vspace%get_ndf()
+ chi_proxy(1) = chi(1)%get_proxy()
+ chi_proxy(2) = chi(2)%get_proxy()
+ chi_proxy(3) = chi(3)%get_proxy()
+ chi_in_proxy(1) = chi_in(1)%get_proxy()
+ chi_in_proxy(2) = chi_in(2)%get_proxy()
+ chi_in_proxy(3) = chi_in(3)%get_proxy()
+ undf_chi = chi_proxy(1)%vspace%get_undf()
+ ndf_chi = chi_proxy(1)%vspace%get_ndf()
panel_id_proxy = panel_id%get_proxy()
undf_pid = panel_id_proxy%vspace%get_undf()
ndf_pid = panel_id_proxy%vspace%get_ndf()
@@ -236,33 +254,26 @@ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
map_pid => panel_id_proxy%vspace%get_whole_dofmap()
! Call column procedure
- do cell = 1,chi_proxy(1)%vspace%get_ncell()
-
- call analytic_orography(nlayers, &
- ndf_chi, &
- undf_chi, &
- map_chi(:,cell), &
- ndf_pid, &
- undf_pid, &
- map_pid(:,cell), &
- domain_surface, &
- domain_height, &
- chi_proxy(1)%data, &
- chi_proxy(2)%data, &
- chi_proxy(3)%data, &
- panel_id_proxy%data )
+ do cell = 1, chi_proxy(1)%vspace%get_ncell()
+ call analytic_orography( &
+ nlayers, ndf_chi, undf_chi, map_chi(:,cell), &
+ ndf_pid, undf_pid, map_pid(:,cell), &
+ domain_surface, domain_height, &
+ chi_in_proxy(1)%data, chi_in_proxy(2)%data, &
+ chi_in_proxy(3)%data, &
+ chi_proxy(1)%data, chi_proxy(2)%data, chi_proxy(3)%data, &
+ panel_id_proxy%data &
+ )
end do
-
- else if (orog_init_option==orog_init_option_ancil .or. &
- orog_init_option==orog_init_option_start_dump) then
+ case (orog_init_option_ancil, orog_init_option_start_dump)
call log_event( "assign_orography_field: "// &
"Assigning orography from surface_altitude field.", LOG_LEVEL_INFO )
! Point to appropriate procedure to assign orography
- if ( geometry == geometry_spherical ) then
- if ( coord_system == coord_system_xyz ) then
+ if (geometry == geometry_spherical) then
+ if (coord_system == coord_system_xyz) then
ancil_orography => ancil_orography_spherical_xyz
else
ancil_orography => ancil_orography_spherical_sph
@@ -271,34 +282,18 @@ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
ancil_orography => ancil_orography_cartesian
end if
- if ( present(surface_altitude) ) then
-
- ! Set up the surface altitude field on W0 points
- sf_mesh => surface_altitude%get_mesh()
- surface_order_h = surface_altitude%get_element_order_h()
- surface_order_v = surface_altitude%get_element_order_v()
- call surface_altitude_w0%initialise( vector_space = &
- function_space_collection%get_fs(sf_mesh, surface_order_h, &
- surface_order_v, W0), &
- halo_depth = sf_mesh%get_halo_depth() )
-
- if (surface_altitude%which_function_space()==W0) then
- call surface_altitude%copy_field_serial(surface_altitude_w0)
- else
- call surface_altitude_alg( surface_altitude_w0, surface_altitude )
- end if
-
- call log_field_minmax( LOG_LEVEL_INFO, 'srf_alt', surface_altitude )
- call log_field_minmax( LOG_LEVEL_INFO, 'srf_alt_w0', &
- surface_altitude_w0 )
-
- nullify ( sf_mesh )
- end if
+ ! Copy chi to chi_in, to allow adjustment of continuous chi fields
+ call chi(1)%copy_field_serial(chi_in(1))
+ call chi(2)%copy_field_serial(chi_in(2))
+ call chi(3)%copy_field_serial(chi_in(3))
! Break encapsulation and get the proxy
chi_proxy(1) = chi(1)%get_proxy()
chi_proxy(2) = chi(2)%get_proxy()
chi_proxy(3) = chi(3)%get_proxy()
+ chi_in_proxy(1) = chi_in(1)%get_proxy()
+ chi_in_proxy(2) = chi_in(2)%get_proxy()
+ chi_in_proxy(3) = chi_in(3)%get_proxy()
panel_id_proxy = panel_id%get_proxy()
sfc_alt_proxy = surface_altitude_w0%get_proxy()
@@ -328,33 +323,27 @@ subroutine assign_orography_field(chi_inventory, panel_id_inventory, &
end do
! Ensure halo is clean
- call sfc_alt_proxy%halo_exchange( &
- depth=sfc_alt_proxy%get_field_proxy_halo_depth())
+ depth = sfc_alt_proxy%get_field_proxy_halo_depth()
+ if (sfc_alt_proxy%is_dirty(depth=depth)) then
+ call sfc_alt_proxy%halo_exchange(depth=depth)
+ end if
! Call column procedure
- do cell = 1,chi_proxy(1)%vspace%get_ncell()
-
- call ancil_orography(nlayers, &
- chi_proxy(1)%data, &
- chi_proxy(2)%data, &
- chi_proxy(3)%data, &
- panel_id_proxy%data, &
- sfc_alt_proxy%data, &
- domain_surface, domain_height, &
- ndf_chi, undf_chi, &
- map_chi(:,cell), &
- ndf_pid, undf_pid, &
- map_pid(:,cell), &
- ndf_sf, undf_sf, &
- map_sf(:,cell), &
- basis_sf_on_chi)
+ do cell = 1, chi_proxy(1)%vspace%get_ncell()
+ call ancil_orography( &
+ nlayers, chi_proxy(1)%data, chi_proxy(2)%data, chi_proxy(3)%data, &
+ chi_in_proxy(1)%data, chi_in_proxy(2)%data, chi_in_proxy(3)%data, &
+ panel_id_proxy%data, sfc_alt_proxy%data, &
+ domain_surface, domain_height, &
+ ndf_chi, undf_chi, map_chi(:,cell), &
+ ndf_pid, undf_pid, map_pid(:,cell), &
+ ndf_sf, undf_sf, map_sf(:,cell), basis_sf_on_chi &
+ )
end do
deallocate(basis_sf_on_chi)
- end if
-
- nullify(chi, panel_id)
+ end select
end subroutine assign_orography_field
@@ -371,22 +360,27 @@ end subroutine assign_orography_field
!> (x,y,z) form.
!>
!> @param[in] nlayers Number of vertical layers
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coordinates' num DoFs this partition
!> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
!> @param[in] map_pid Indirection map for panel_id
!> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)
!> @param[in] panel_id Field giving the ID for mesh panels
!=============================================================================
- subroutine analytic_orography_spherical_xyz(nlayers, ndf_chi, undf_chi, map_chi, &
- ndf_pid, undf_pid, map_pid, &
- domain_surface, domain_height, &
+ subroutine analytic_orography_spherical_xyz(nlayers, &
+ ndf_chi, undf_chi, map_chi, &
+ ndf_pid, undf_pid, map_pid, &
+ domain_surface, domain_height, &
+ chi_1_in, chi_2_in, chi_3_in, &
chi_1, chi_2, chi_3, panel_id)
implicit none
@@ -397,7 +391,10 @@ subroutine analytic_orography_spherical_xyz(nlayers, ndf_chi, undf_chi, map_chi,
integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
real(kind=r_def), intent(in) :: domain_surface, domain_height
- real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi), chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi), chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
real(kind=r_def), intent(in) :: panel_id(undf_pid)
! Internal variables
integer(kind=i_def) :: k, df, dfk
@@ -413,9 +410,12 @@ subroutine analytic_orography_spherical_xyz(nlayers, ndf_chi, undf_chi, map_chi,
do k = 0, nlayers-1
dfk = map_chi(df)+k
- ! Model coordinates for spherical domain are in (x,y,z) form so they need
- ! to be converted to (long,lat,r) first
- call xyz2llr(chi_1(dfk), chi_2(dfk), chi_3(dfk), longitude, latitude, r)
+ ! Model coordinates for spherical domain are in (x,y,z) form so they
+ ! need to be converted to (long,lat,r) first
+ call xyz2llr( &
+ chi_1_in(dfk), chi_2_in(dfk), chi_3_in(dfk), &
+ longitude, latitude, r &
+ )
! Calculate surface height for each DoF using selected analytic orography
surface_height = orography_profile%analytic_orography(longitude, latitude)
@@ -426,16 +426,21 @@ subroutine analytic_orography_spherical_xyz(nlayers, ndf_chi, undf_chi, map_chi,
select case(stretching_method)
case(stretching_method_linear)
- chi_3_r = eta2z_linear(eta, domain_surface + surface_height, domain_height)
+ chi_3_r = eta2z_linear( &
+ eta, domain_surface + surface_height, domain_height &
+ )
case default
- chi_3_r = domain_surface + &
- eta2z_smooth(eta, surface_height, domain_depth, stretching_height)
+ chi_3_r = ( &
+ domain_surface + eta2z_smooth( &
+ eta, surface_height, domain_depth, stretching_height &
+ ) &
+ )
end select
! Convert spherical coordinates back to model (x,y,z) form
- call llr2xyz(longitude, latitude, chi_3_r, &
- chi_1(dfk), chi_2(dfk), chi_3(dfk))
-
+ call llr2xyz( &
+ longitude, latitude, chi_3_r, chi_1(dfk), chi_2(dfk), chi_3(dfk) &
+ )
end do
end do
@@ -450,31 +455,29 @@ end subroutine analytic_orography_spherical_xyz
!> cubed sphere (alpha,beta,r) or (lon,lat,r) coordinates.
!>
!> @param[in] nlayers Number of vertical layers
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coordinates' num DoFs this partition
!> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
- !> @param[in] map_pid Indirection map for panel_id
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
+ !> @param[in] map_pid Indirection map for panel_id
!> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)
!> @param[in] panel_id Field giving the ID for mesh panels
!=============================================================================
- subroutine analytic_orography_spherical_native(nlayers, &
- ndf_chi, &
- undf_chi, &
- map_chi, &
- ndf_pid, &
- undf_pid, &
- map_pid, &
- domain_surface, &
- domain_height, &
- chi_1, &
- chi_2, &
- chi_3, &
+ subroutine analytic_orography_spherical_native(nlayers, &
+ ndf_chi, undf_chi, map_chi, &
+ ndf_pid, undf_pid, map_pid, &
+ domain_surface, &
+ domain_height, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ chi_1, chi_2, chi_3, &
panel_id)
implicit none
@@ -485,7 +488,10 @@ subroutine analytic_orography_spherical_native(nlayers, &
integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
real(kind=r_def), intent(in) :: domain_surface, domain_height
- real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi), chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi), chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
real(kind=r_def), intent(in) :: panel_id(undf_pid)
! Internal variables
integer(kind=i_def) :: k, df, dfk, ipanel
@@ -504,22 +510,26 @@ subroutine analytic_orography_spherical_native(nlayers, &
! Model coordinates need to be converted to (long,lat,r) for reading
! analytic orography
- radius = chi_3(dfk) + domain_surface
- call chi2llr(chi_1(dfk), chi_2(dfk), radius, &
- ipanel, longitude, latitude, dummy_radius)
+ radius = chi_3_in(dfk) + domain_surface
+ call chi2llr( &
+ chi_1_in(dfk), chi_2_in(dfk), radius, ipanel, &
+ longitude, latitude, dummy_radius &
+ )
! Calculate surface height for each DoF using selected analytic orography
surface_height = orography_profile%analytic_orography(longitude, latitude)
! Calculate nondimensional coordinate from current height coordinate
! (chi_3) with flat domain_surface
- eta = z2eta_linear(chi_3(dfk), 0.0_r_def, domain_depth)
+ eta = z2eta_linear(chi_3_in(dfk), 0.0_r_def, domain_depth)
select case(stretching_method)
case(stretching_method_linear)
chi_3(dfk) = eta2z_linear(eta, surface_height, domain_depth)
case default
- chi_3(dfk) = eta2z_smooth(eta, surface_height, domain_depth, stretching_height)
+ chi_3(dfk) = eta2z_smooth( &
+ eta, surface_height, domain_depth, stretching_height &
+ )
end select
end do
@@ -537,23 +547,30 @@ end subroutine analytic_orography_spherical_native
!> coordinate.
!>
!> @param[in] nlayers Number of vertical layers
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coordinates' num DoFs this partition
!> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
!> @param[in] map_pid Indirection map for panel_id
!> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)
!> @param[in] panel_id Field giving the ID for mesh panels
!=============================================================================
- subroutine analytic_orography_cartesian(nlayers, ndf_chi, undf_chi, map_chi, &
+ subroutine analytic_orography_cartesian(nlayers, &
+ ndf_chi, undf_chi, map_chi, &
ndf_pid, undf_pid, map_pid, &
- domain_surface, domain_height, &
- chi_1, chi_2, chi_3, panel_id)
+ domain_surface, &
+ domain_height, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ chi_1, chi_2, chi_3, &
+ panel_id)
implicit none
@@ -563,7 +580,10 @@ subroutine analytic_orography_cartesian(nlayers, ndf_chi, undf_chi, map_chi, &
integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
real(kind=r_def), intent(in) :: domain_surface, domain_height
- real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi), chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi), chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi), chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
real(kind=r_def), intent(in) :: panel_id(undf_pid)
! Internal variables
@@ -578,19 +598,24 @@ subroutine analytic_orography_cartesian(nlayers, ndf_chi, undf_chi, map_chi, &
do k = 0, nlayers-1
dfk = map_chi(df)+k
- ! Calculate surface height for each DoF using selected analytic orography
- surface_height = orography_profile%analytic_orography(chi_1(dfk), chi_2(dfk))
+ ! Calculate surf height for each DoF using selected analytic orography
+ surface_height = orography_profile%analytic_orography( &
+ chi_1_in(dfk), chi_2_in(dfk) &
+ )
! Calculate nondimensional coordinate from current height coordinate
! (chi_3) with flat domain_surface
- eta = z2eta_linear(chi_3(dfk), domain_surface, domain_height)
+ eta = z2eta_linear(chi_3_in(dfk), domain_surface, domain_height)
select case(stretching_method)
case(stretching_method_linear)
- chi_3(dfk) = eta2z_linear(eta, domain_surface + surface_height, domain_height)
+ chi_3(dfk) = eta2z_linear( &
+ eta, domain_surface + surface_height, domain_height &
+ )
case default
- chi_3(dfk) = domain_surface + &
- eta2z_smooth(eta, surface_height, domain_depth, stretching_height)
+ chi_3(dfk) = domain_surface + eta2z_smooth( &
+ eta, surface_height, domain_depth, stretching_height &
+ )
end select
end do
end do
@@ -599,61 +624,62 @@ subroutine analytic_orography_cartesian(nlayers, ndf_chi, undf_chi, map_chi, &
end subroutine analytic_orography_cartesian
!=============================================================================
- !> @brief Modify vertical coordinate based on the input surface_altitude field.
- !> For spherical geometries with a Cartesian coordinate system.
- !> Note that this routine assumes the chi coordinates in a column are
- !> associated with a flat domain on input and then modified on output.
- !> Therefore it will not operate correctly with a horizontally continuous chi
- !> field.
- !>
- !> @param[in] nlayers Number of vertical layers
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
- !> @param[in] panel_id Field giving the ID for mesh panels
+ !> @brief Modify vertical coordinate based on input surface_altitude field.
+ !! For spherical geometries with a Cartesian coordinate system.
+ !> @param[in] nlayers Number of vertical layers
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)#
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in] panel_id Field giving the ID for mesh panels
!> @param[in] surface_altitude Surface altitude field data
- !> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
- !> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
- !> @param[in] map_pid Indirection map for pid
- !> @param[in] ndf Array size and loop bound for surface altitude field
- !> @param[in] undf Total number of dofs for surface altitude field
- !> @param[in] map Indirection map for surface altitude field
- !> @param[in] basis Basis functions for surface altitude field
+ !> @param[in] domain_surface Physical height of flat domain surface (m)
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coords' num DoFs this partition
+ !> @param[in] map_chi Indirection map for coordinate field
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
+ !> @param[in] map_pid Indirection map for pid
+ !> @param[in] ndf Num DoFs per cell for surface altitude
+ !> @param[in] undf Num DoFs this partition for surf altitude
+ !> @param[in] map Indirection map for surface altitude
+ !> @param[in] basis Basis functions for surface altitude
!=============================================================================
- subroutine ancil_orography_spherical_xyz(nlayers, &
- chi_1, chi_2, chi_3, &
- panel_id, &
- surface_altitude, &
- domain_surface, domain_height, &
- ndf_chi, undf_chi, &
- map_chi, &
- ndf_pid, undf_pid, &
- map_pid, &
- ndf, undf, &
- map, basis &
+ subroutine ancil_orography_spherical_xyz(nlayers, &
+ chi_1, chi_2, chi_3, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ panel_id, &
+ surface_altitude, &
+ domain_surface, domain_height, &
+ ndf_chi, undf_chi, &
+ map_chi, &
+ ndf_pid, undf_pid, &
+ map_pid, &
+ ndf, undf, &
+ map, basis &
)
implicit none
! Arguments
- integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
- integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
-
- integer(kind=i_def), dimension(ndf), intent(in) :: map
- integer(kind=i_def), dimension(ndf_chi), intent(in) :: map_chi
- integer(kind=i_def), dimension(ndf_pid), intent(in) :: map_pid
-
- real(kind=r_def), intent(in), dimension(ndf, ndf_chi) :: basis
-
- real(kind=r_def), dimension(undf_chi), intent(inout) :: chi_1, chi_2, chi_3
- real(kind=r_def), dimension(undf_pid), intent(in) :: panel_id
- real(kind=r_def), dimension(undf), intent(in) :: surface_altitude
- real(kind=r_def), intent(in) :: domain_surface, domain_height
+ integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
+ integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
+ integer(kind=i_def), intent(in) :: map(ndf)
+ integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
+ integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
+ real(kind=r_def), intent(in) :: basis(ndf, ndf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(in) :: panel_id(undf_pid)
+ real(kind=r_def), intent(in) :: surface_altitude(undf)
+ real(kind=r_def), intent(in) :: domain_surface, domain_height
! Internal variables
integer(kind=i_def) :: k, df, dfchi, dfk
@@ -667,7 +693,8 @@ subroutine ancil_orography_spherical_xyz(nlayers, &
surface_height(:) = 0.0_r_def
do dfchi = 1, ndf_chi
do df = 1, ndf
- surface_height(dfchi) = surface_height(dfchi) + surface_altitude(map(df))*basis(df,dfchi)
+ surface_height(dfchi) = surface_height(dfchi) &
+ + surface_altitude(map(df))*basis(df, dfchi)
end do
end do
@@ -678,7 +705,9 @@ subroutine ancil_orography_spherical_xyz(nlayers, &
! Model coordinates for spherical domain are in (x,y,z) form so they need
! to be converted to (long,lat,r) first
- call xyz2llr(chi_1(dfk), chi_2(dfk), chi_3(dfk), longitude, latitude, r)
+ call xyz2llr( &
+ chi_1_in(dfk), chi_2_in(dfk), chi_3_in(dfk), longitude, latitude, r &
+ )
! Calculate nondimensional coordinate from current flat height coordinate
! (chi_3) with flat domain_surface
@@ -688,77 +717,82 @@ subroutine ancil_orography_spherical_xyz(nlayers, &
! nondimensional coordinate eta and surface_height
select case(stretching_method)
case(stretching_method_linear)
- chi_3_r = eta2z_linear(eta, domain_surface+surface_height(df), domain_height)
+ chi_3_r = eta2z_linear( &
+ eta, domain_surface+surface_height(df), domain_height &
+ )
case default
- chi_3_r = domain_surface + &
- eta2z_smooth(eta, surface_height(df), domain_depth, stretching_height)
+ chi_3_r = domain_surface + eta2z_smooth( &
+ eta, surface_height(df), domain_depth, stretching_height &
+ )
end select
! Convert spherical coordinates back to model (x,y,z) form
- call llr2xyz(longitude, latitude, chi_3_r, &
- chi_1(dfk), chi_2(dfk), chi_3(dfk))
+ call llr2xyz( &
+ longitude, latitude, chi_3_r, chi_1(dfk), chi_2(dfk), chi_3(dfk) &
+ )
end do
end do
end subroutine ancil_orography_spherical_xyz
!=============================================================================
- !> @brief Modify vertical coordinate based on the input surface_altitude field.
- !> For spherical geometries with (alpha,beta,r) or (lon,lat,r)
- !> coordinate systems.
- !> Note that this routine assumes the chi coordinates in a column are
- !> associated with a flat domain on input and then modified on output.
- !> Therefore it will not operate correctly with a horizontally continuous chi
- !> field.
- !>
- !> @param[in] nlayers Number of vertical layers
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
- !> @param[in] panel_id Field giving the ID for mesh panels
+ !> @brief Modify vertical coordinate based on input surface_altitude field.
+ !! For spherical geometries with (alpha,beta,r) or (lon,lat,r)
+ !! coordinate systems.
+ !> @param[in] nlayers Number of vertical layers
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)#
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in] panel_id Field giving the ID for mesh panels
!> @param[in] surface_altitude Surface altitude field data
- !> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
- !> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
- !> @param[in] map_pid Indirection map for panel ID
- !> @param[in] ndf Array size and loop bound for surface altitude field
- !> @param[in] undf Total number of dofs for surface altitude field
- !> @param[in] map Indirection map for surface altitude field
- !> @param[in] basis Basis functions for surface altitude field
+ !> @param[in] domain_surface Physical height of flat domain surface (m)
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coords' num DoFs this partition
+ !> @param[in] map_chi Indirection map for coordinate field
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
+ !> @param[in] map_pid Indirection map for pid
+ !> @param[in] ndf Num DoFs per cell for surface altitude
+ !> @param[in] undf Num DoFs this partition for surf altitude
+ !> @param[in] map Indirection map for surface altitude
+ !> @param[in] basis Basis functions for surface altitude
!=============================================================================
- subroutine ancil_orography_spherical_sph(nlayers, &
- chi_1, chi_2, chi_3, &
- panel_id, &
- surface_altitude, &
- domain_surface, domain_height, &
- ndf_chi, undf_chi, &
- map_chi, &
- ndf_pid, undf_pid, &
- map_pid, &
- ndf, undf, &
- map, basis &
+ subroutine ancil_orography_spherical_sph(nlayers, &
+ chi_1, chi_2, chi_3, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ panel_id, &
+ surface_altitude, &
+ domain_surface, domain_height, &
+ ndf_chi, undf_chi, &
+ map_chi, &
+ ndf_pid, undf_pid, &
+ map_pid, &
+ ndf, undf, &
+ map, basis &
)
implicit none
! Arguments
- integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
- integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
-
- integer(kind=i_def), dimension(ndf), intent(in) :: map
- integer(kind=i_def), dimension(ndf_chi), intent(in) :: map_chi
- integer(kind=i_def), dimension(ndf_pid), intent(in) :: map_pid
-
- real(kind=r_def), intent(in), dimension(ndf, ndf_chi) :: basis
-
- real(kind=r_def), dimension(undf_chi), intent(inout) :: chi_1, chi_2, chi_3
- real(kind=r_def), dimension(undf_pid), intent(in) :: panel_id
- real(kind=r_def), dimension(undf), intent(in) :: surface_altitude
- real(kind=r_def), intent(in) :: domain_surface, domain_height
+ integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
+ integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
+ integer(kind=i_def), intent(in) :: map(ndf)
+ integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
+ integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
+ real(kind=r_def), intent(in) :: basis(ndf, ndf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(in) :: panel_id(undf_pid)
+ real(kind=r_def), intent(in) :: surface_altitude(undf)
+ real(kind=r_def), intent(in) :: domain_surface, domain_height
! Internal variables
integer(kind=i_def) :: k, df, dfchi, dfk
@@ -771,7 +805,8 @@ subroutine ancil_orography_spherical_sph(nlayers, &
surface_height(:) = 0.0_r_def
do dfchi = 1, ndf_chi
do df = 1, ndf
- surface_height(dfchi) = surface_height(dfchi) + surface_altitude(map(df))*basis(df,dfchi)
+ surface_height(dfchi) = surface_height(dfchi) &
+ + surface_altitude(map(df))*basis(df,dfchi)
end do
end do
@@ -782,7 +817,7 @@ subroutine ancil_orography_spherical_sph(nlayers, &
! Calculate nondimensional coordinate from current flat height coordinate
! (chi_3) with flat domain_surface
- eta = z2eta_linear(chi_3(dfk), 0.0_r_def, domain_depth)
+ eta = z2eta_linear(chi_3_in(dfk), 0.0_r_def, domain_depth)
! Calculate new height coordinate from its nondimensional coordinate
! eta and surface_height
@@ -790,7 +825,9 @@ subroutine ancil_orography_spherical_sph(nlayers, &
case(stretching_method_linear)
chi_3(dfk) = eta2z_linear(eta, surface_height(df), domain_depth)
case default
- chi_3(dfk) = eta2z_smooth(eta, surface_height(df), domain_depth, stretching_height)
+ chi_3(dfk) = eta2z_smooth( &
+ eta, surface_height(df), domain_depth, stretching_height &
+ )
end select
end do
end do
@@ -798,61 +835,62 @@ subroutine ancil_orography_spherical_sph(nlayers, &
end subroutine ancil_orography_spherical_sph
!=============================================================================
- !> @brief Modify vertical coordinate based on the input surface_altitude field.
- !> For Cartesian geometries.
- !> Note that this routine assumes the chi coordinates in a column are
- !> associated with a flat domain on input and then modified on output.
- !> Therefore it will not operate correctly with a horizontally continuous chi
- !> field.
- !>
- !> @param[in] nlayers Number of vertical layers
- !> @param[in,out] chi_1 1st coordinate field in Wchi
- !> @param[in,out] chi_2 2nd coordinate field in Wchi
- !> @param[in,out] chi_3 3rd coordinate field in Wchi
- !> @param[in] panel_id Field giving the ID for mesh panels
+ !> @brief Modify vertical coordinate based on input surface_altitude field.
+ !! For Cartesian geometries.
+ !> @param[in] nlayers Number of vertical layers
+ !> @param[in,out] chi_1 1st coordinate field in Wchi (output)
+ !> @param[in,out] chi_2 2nd coordinate field in Wchi (output)
+ !> @param[in,out] chi_3 3rd coordinate field in Wchi (output)
+ !> @param[in] chi_1_in 1st coordinate field in Wchi (input)
+ !> @param[in] chi_2_in 2nd coordinate field in Wchi (input)
+ !> @param[in] chi_3_in 3rd coordinate field in Wchi (input)
+ !> @param[in] panel_id Field giving the ID for mesh panels
!> @param[in] surface_altitude Surface altitude field data
- !> @param[in] domain_surface Physical height of flat domain surface (m)
- !> @param[in] domain_height Physical height of domain top (m)
- !> @param[in] ndf_chi Array size and loop bound for map_chi
- !> @param[in] undf_chi Column coordinates' array size and loop bound
- !> @param[in] map_chi Indirection map for coordinate field
- !> @param[in] ndf_pid Array size and loop bound for map_pid
- !> @param[in] undf_pid Panel ID array size and loop bound
- !> @param[in] map_pid Indirection map for panel_id
- !> @param[in] ndf Array size and loop bound for surface altitude field
- !> @param[in] undf Total number of dofs for surface altitude field
- !> @param[in] map Indirection map for surface altitude field
- !> @param[in] basis Basis functions for surface altitude field
+ !> @param[in] domain_surface Physical height of flat domain surface (m)
+ !> @param[in] domain_height Physical height of domain top (m)
+ !> @param[in] ndf_chi Num DoFs per cell for map_chi
+ !> @param[in] undf_chi Column coords' num DoFs this partition
+ !> @param[in] map_chi Indirection map for coordinate field
+ !> @param[in] ndf_pid Num DoFs per cell for map_pid
+ !> @param[in] undf_pid Panel ID num DoFs this partition
+ !> @param[in] map_pid Indirection map for pid
+ !> @param[in] ndf Num DoFs per cell for surface altitude
+ !> @param[in] undf Num DoFs this partition for surf altitude
+ !> @param[in] map Indirection map for surface altitude
+ !> @param[in] basis Basis functions for surface altitude
!=============================================================================
- subroutine ancil_orography_cartesian(nlayers, &
- chi_1, chi_2, chi_3, &
- panel_id, &
- surface_altitude, &
- domain_surface, domain_height, &
- ndf_chi, undf_chi, &
- map_chi, &
- ndf_pid, undf_pid, &
- map_pid, &
- ndf, undf, &
- map, basis &
+ subroutine ancil_orography_cartesian(nlayers, &
+ chi_1, chi_2, chi_3, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ panel_id, &
+ surface_altitude, &
+ domain_surface, domain_height, &
+ ndf_chi, undf_chi, &
+ map_chi, &
+ ndf_pid, undf_pid, &
+ map_pid, &
+ ndf, undf, &
+ map, basis &
)
implicit none
! Arguments
- integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
- integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
-
- integer(kind=i_def), dimension(ndf), intent(in) :: map
- integer(kind=i_def), dimension(ndf_chi), intent(in) :: map_chi
- integer(kind=i_def), dimension(ndf_pid), intent(in) :: map_pid
-
- real(kind=r_def), intent(in), dimension(ndf, ndf_chi) :: basis
-
- real(kind=r_def), dimension(undf_chi), intent(inout) :: chi_1, chi_2, chi_3
- real(kind=r_def), dimension(undf_pid), intent(in) :: panel_id
- real(kind=r_def), dimension(undf), intent(in) :: surface_altitude
- real(kind=r_def), intent(in) :: domain_surface, domain_height
+ integer(kind=i_def), intent(in) :: nlayers, ndf, ndf_chi, ndf_pid
+ integer(kind=i_def), intent(in) :: undf, undf_chi, undf_pid
+ integer(kind=i_def), intent(in) :: map(ndf)
+ integer(kind=i_def), intent(in) :: map_chi(ndf_chi)
+ integer(kind=i_def), intent(in) :: map_pid(ndf_pid)
+ real(kind=r_def), intent(in) :: basis(ndf, ndf_chi)
+ real(kind=r_def), intent(inout) :: chi_1(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_2(undf_chi)
+ real(kind=r_def), intent(inout) :: chi_3(undf_chi)
+ real(kind=r_def), intent(in) :: chi_1_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_2_in(undf_chi)
+ real(kind=r_def), intent(in) :: chi_3_in(undf_chi)
+ real(kind=r_def), intent(in) :: panel_id(undf_pid)
+ real(kind=r_def), intent(in) :: surface_altitude(undf)
+ real(kind=r_def), intent(in) :: domain_surface, domain_height
! Internal variables
integer(kind=i_def) :: k, df, dfchi, dfk
@@ -865,7 +903,8 @@ subroutine ancil_orography_cartesian(nlayers, &
surface_height(:) = 0.0_r_def
do dfchi = 1, ndf_chi
do df = 1, ndf
- surface_height(dfchi) = surface_height(dfchi) + surface_altitude(map(df))*basis(df,dfchi)
+ surface_height(dfchi) = surface_height(dfchi) &
+ + surface_altitude(map(df))*basis(df,dfchi)
end do
end do
@@ -876,16 +915,18 @@ subroutine ancil_orography_cartesian(nlayers, &
! Calculate nondimensional coordinate from current height coordinate
! (chi_3) with flat domain_surface
- eta = z2eta_linear(chi_3(dfk), domain_surface, domain_height)
+ eta = z2eta_linear(chi_3_in(dfk), domain_surface, domain_height)
! Calculate new height coordinate from its nondimensional coordinate
! eta and surface_height
select case(stretching_method)
case(stretching_method_linear)
- chi_3(dfk) = eta2z_linear(eta, domain_surface+surface_height(df), domain_height)
+ chi_3(dfk) = eta2z_linear( &
+ eta, domain_surface+surface_height(df), domain_height &
+ )
case default
- chi_3(dfk) = domain_surface + &
- eta2z_smooth(eta, surface_height(df), domain_depth, stretching_height)
+ chi_3(dfk) = domain_surface + eta2z_smooth( &
+ eta, surface_height(df), domain_depth, stretching_height)
end select
end do
end do
diff --git a/science/gungho/source/orography/init_altitude_mod.x90 b/science/gungho/source/orography/init_altitude_mod.x90
index c35c7027e..2cdff5590 100644
--- a/science/gungho/source/orography/init_altitude_mod.x90
+++ b/science/gungho/source/orography/init_altitude_mod.x90
@@ -15,12 +15,12 @@ module init_altitude_mod
use function_space_collection_mod, only : function_space_collection
use fs_continuity_mod, only : W3
use function_space_mod, only : function_space_type
- use initialization_config_mod, only : n_orog_smooth
use mesh_mod, only : mesh_type
use orography_config_mod, only : orog_init_option, &
orog_init_option_analytic, &
orog_init_option_ancil, &
- orog_init_option_start_dump
+ orog_init_option_start_dump, &
+ n_orog_smooth
use orography_control_mod, only : set_orography_option
use sci_smooth_orog_kernel_mod, only : smooth_orog_kernel_type
use io_config_mod, only : use_xios_io
diff --git a/science/gungho/source/orography/setup_orography_alg_mod.x90 b/science/gungho/source/orography/setup_orography_alg_mod.x90
index 50338b895..4424e0035 100644
--- a/science/gungho/source/orography/setup_orography_alg_mod.x90
+++ b/science/gungho/source/orography/setup_orography_alg_mod.x90
@@ -7,16 +7,32 @@
module setup_orography_alg_mod
- use constants_mod, only: i_def, str_def, l_def
+ ! Infrastructure
+ use constants_mod, only: i_def, str_def, l_def, r_def
use extrusion_mod, only: TWOD, SHIFTED, DOUBLE_LEVEL
use field_mod, only: field_type
use function_space_mod, only: function_space_type
use fs_continuity_mod, only: W3, W0
use function_space_collection_mod, only: function_space_collection
+ use inventory_by_local_mesh_mod, only: inventory_by_local_mesh_type
use inventory_by_mesh_mod, only: inventory_by_mesh_type
+ use local_mesh_mod, only: local_mesh_type
+ use log_mod, only: log_event, LOG_LEVEL_ERROR, &
+ log_scratch_space, LOG_LEVEL_INFO
use mesh_collection_mod, only: mesh_collection
use mesh_mod, only: mesh_type
- use log_mod, only: log_event, LOG_LEVEL_ERROR, log_scratch_space
+
+ ! Configs
+ use base_mesh_config_mod, only: prime_mesh_name
+ use orography_config_mod, only: orography_order
+
+ ! Other algorithms
+ use sci_field_minmax_alg_mod, only: log_field_minmax
+ use surface_altitude_alg_mod, only: surface_altitude_alg
+
+ ! Kernels
+ use sample_field_kernel_mod, only: sample_field_kernel_type
+ use sci_multiplicity_kernel_mod, only: multiplicity_kernel_type
implicit none
@@ -31,24 +47,27 @@ contains
!> from a previous mesh. Then the orography field for the
!> meshes is assigned from the respective surface
!> altitude field for each mesh.
- !> @param[in] all_mesh_names An array of the names of all the base meshes.
- !> @param[in] orography_mesh_name Name of mesh where surface altitude is read in.
+ !> @param[in] all_mesh_names An array of the names of all the
+ !! model's base meshes.
+ !> @param[in] orography_mesh_name Name of mesh which defines the
+ !! orography. The surface altitude is
+ !! read into this mesh.
!> @param[in,out] chi_inventory Contains the model's coordinate fields
!! paired with their mesh.
!> @param[in] panel_id_inventory Contains the model's panel ID fields
!! paired with their mesh.
- !> @param[in] surface_altitude Surface altitude on the orography mesh.
- subroutine setup_orography_alg( all_mesh_names, &
- orography_mesh_name, &
- chi_inventory, &
- panel_id_inventory, &
- surface_altitude )
+ !> @param[in] surf_alt_w3 Surface altitude on the orography mesh
+ subroutine setup_orography_alg( all_mesh_names, &
+ orography_mesh_name, &
+ chi_inventory, &
+ panel_id_inventory, &
+ surf_alt_w3 )
use assign_orography_field_mod, only: assign_orography_field
use surface_altitude_alg_mod, only: surface_altitude_alg
use intermesh_mappings_alg_mod, only: map_scalar_intermesh, &
map_w0_intermesh
- use initialization_config_mod, only: w0_orography_mapping
+ use orography_config_mod, only: w0_multigrid_mapping
implicit none
@@ -57,152 +76,262 @@ contains
character(str_def), intent(in) :: orography_mesh_name
type(inventory_by_mesh_type), intent(inout) :: chi_inventory
type(inventory_by_mesh_type), intent(in) :: panel_id_inventory
- type(field_type), intent(in) :: surface_altitude
+ type(field_type), intent(in) :: surf_alt_w3
! local variables
- character(str_def), allocatable :: source_mesh_names(:)
- character(str_def), allocatable :: target_mesh_names(:)
- type(mesh_type), pointer :: source_mesh => null()
- type(mesh_type), pointer :: source_twod_mesh => null()
- type(mesh_type), pointer :: target_mesh => null()
- type(mesh_type), pointer :: target_twod_mesh => null()
- type(mesh_type), pointer :: shifted_mesh => null()
- type(mesh_type), pointer :: double_level_mesh => null()
- integer(kind=i_def) :: i, surface_order_h, surface_order_v
- integer(kind=i_def) :: num_meshes
- type(field_type), allocatable :: surface_altitude_list(:)
- type(field_type), pointer :: source_surface_altitude => null()
- type(inventory_by_mesh_type) :: surface_altitude_inventory
- integer(i_def) :: fs_id
- type(function_space_type), pointer :: fs => null()
+ integer(kind=i_def) :: i, fs_id
+ integer(kind=i_def) :: num_meshes
+ integer(kind=i_def) :: halo_depth
+ integer(kind=i_def) :: w0_order
+ character(len=str_def), allocatable :: source_mesh_names(:)
+ character(len=str_def), allocatable :: target_mesh_names(:)
+ type(mesh_type), pointer :: source_mesh
+ type(mesh_type), pointer :: source_twod_mesh
+ type(mesh_type), pointer :: target_mesh
+ type(mesh_type), pointer :: target_twod_mesh
+ type(mesh_type), pointer :: shifted_mesh
+ type(mesh_type), pointer :: double_level_mesh
+ type(local_mesh_type), pointer :: local_mesh
+ type(field_type) :: ones
+ type(field_type) :: multiplicity_w0
+ type(field_type) :: rmultiplicity_w0
+ type(field_type), pointer :: chi(:)
+ type(field_type), pointer :: panel_id
+ type(field_type), pointer :: surf_alt_w0_ptr
+ type(field_type), target :: surf_alt_w0
+ type(field_type), target :: surf_alt_w0_k0
+ type(field_type), target, allocatable :: surf_alt_list(:)
+ type(field_type), pointer :: source_surf_alt
+ type(inventory_by_local_mesh_type) :: surf_alt_inventory
+ type(function_space_type), pointer :: w0_fs, w3_fs, fs
num_meshes = SIZE(all_mesh_names)
- surface_order_h = surface_altitude%get_element_order_h()
- surface_order_v = surface_altitude%get_element_order_v()
-
- allocate(surface_altitude_list(num_meshes))
+ allocate(surf_alt_list(num_meshes))
! Only create mesh map list if we have more than one mesh
if (num_meshes > 1) then
- call create_map_list(all_mesh_names, orography_mesh_name, source_mesh_names, target_mesh_names)
+ call create_map_list( &
+ all_mesh_names, orography_mesh_name, &
+ source_mesh_names, target_mesh_names &
+ )
end if
! Initialise variables and add surface altitude to inventory.
- ! Check whether field should be mapped in W3 or W0
- call surface_altitude_inventory%initialise(name="surface_altitude", table_len=num_meshes)
+ call surf_alt_inventory%initialise( &
+ name="surface_altitude", table_len=num_meshes &
+ )
source_mesh => mesh_collection%get_mesh(orography_mesh_name)
source_twod_mesh => mesh_collection%get_mesh(source_mesh, TWOD)
+ local_mesh => source_mesh%get_local_mesh()
+ halo_depth = source_twod_mesh%get_halo_depth()
+
+ ! Check method is valid
+ if (w0_multigrid_mapping .and. orography_order > 1 .and. &
+ trim(orography_mesh_name) /= trim(prime_mesh_name)) then
+ call log_event( &
+ 'Orography order greater than 1 and W0 multigrid mapping is ' // &
+ 'only possible when orography is defined on prime mesh', &
+ LOG_LEVEL_ERROR &
+ )
+ end if
+
+ ! ======================================================================== !
+ ! Set orography on "orography_mesh"
+ ! ======================================================================== !
+
+ ! Obtain surface altitude field in W0 on orography mesh
+ w0_order = MAX(orography_order - 1, 0)
+ w0_fs => function_space_collection%get_fs( &
+ source_twod_mesh, w0_order, w0_order, W0 &
+ )
+ call surf_alt_w0%initialise(w0_fs, halo_depth=halo_depth)
+ call chi_inventory%get_field_array(source_mesh, chi)
+ call panel_id_inventory%get_field(source_mesh, panel_id)
+
+ ! Compute surface altitude in W0 space
+ call surface_altitude_alg(surf_alt_w0, surf_alt_w3)
+
+ call log_field_minmax(LOG_LEVEL_INFO, 'srf_alt_w3', surf_alt_w3)
+ call log_field_minmax(LOG_LEVEL_INFO, 'srf_alt_w0', surf_alt_w0)
- if (w0_orography_mapping) then
+ ! ------------------------------------------------------------------------ !
+ ! Set the first surface altitude in the inventory
+ ! ------------------------------------------------------------------------ !
+
+ if (w0_multigrid_mapping) then
fs_id = W0
- call surface_altitude_list(1)%initialise( vector_space = &
- function_space_collection%get_fs(source_twod_mesh, surface_order_h, &
- surface_order_v, fs_id), &
- halo_depth = source_twod_mesh%get_halo_depth() )
- call surface_altitude_alg(surface_altitude_list(1), surface_altitude)
+ w0_order = 0 ! Higher-order W0 mapping not implemented
+ call surf_alt_list(1)%initialise(w0_fs, halo_depth=halo_depth)
+ call invoke( setval_X(surf_alt_list(1), surf_alt_w0) )
else
fs_id = W3
- call surface_altitude_list(1)%initialise( vector_space = &
- function_space_collection%get_fs(source_twod_mesh, surface_order_h, &
- surface_order_v, fs_id), &
- halo_depth = source_twod_mesh%get_halo_depth() )
- call invoke( setval_X(surface_altitude_list(1), surface_altitude) )
+ w3_fs => surf_alt_w3%get_function_space()
+ call surf_alt_list(1)%initialise(w3_fs, halo_depth=halo_depth)
+ call invoke( setval_X(surf_alt_list(1), surf_alt_w3) )
end if
- fs => function_space_collection%get_fs(source_twod_mesh, surface_order_h, &
- surface_order_v, fs_id)
+ ! Copy the first field into the inventory
+ call surf_alt_inventory%copy_field(surf_alt_list(1), local_mesh)
- call surface_altitude_inventory%copy_field(surface_altitude_list(1), source_twod_mesh)
+ ! ------------------------------------------------------------------------ !
+ ! Adjust coordinates to account for orography (on orography mesh)
+ ! ------------------------------------------------------------------------ !
! Assignment of orography from surface_altitude on orography mesh
- call assign_orography_field(chi_inventory, panel_id_inventory, &
- source_mesh, surface_altitude)
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, source_mesh, surf_alt_w0 &
+ )
! Assign for shifted and double level meshes if they exist
if (mesh_collection%check_for(source_mesh, SHIFTED)) then
shifted_mesh => mesh_collection%get_mesh(source_mesh, SHIFTED)
- call assign_orography_field(chi_inventory, panel_id_inventory, &
- shifted_mesh, surface_altitude)
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, shifted_mesh, surf_alt_w0 &
+ )
end if
if (mesh_collection%check_for(source_mesh, DOUBLE_LEVEL)) then
double_level_mesh => mesh_collection%get_mesh(source_mesh, DOUBLE_LEVEL)
- call assign_orography_field(chi_inventory, panel_id_inventory, &
- double_level_mesh, surface_altitude)
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, double_level_mesh, surf_alt_w0 &
+ )
end if
+ ! ======================================================================== !
+ ! Calculate orography for other meshes by mapping surface altitude
+ ! ======================================================================== !
+
! Loop through other meshes in list
do i = 1, num_meshes - 1
- source_mesh => mesh_collection%get_mesh(source_mesh_names(i))
+ source_mesh => mesh_collection%get_mesh(source_mesh_names(i))
source_twod_mesh => mesh_collection%get_mesh(source_mesh, TWOD)
-
- target_mesh => mesh_collection%get_mesh(target_mesh_names(i))
+ target_mesh => mesh_collection%get_mesh(target_mesh_names(i))
target_twod_mesh => mesh_collection%get_mesh(target_mesh, TWOD)
+ local_mesh => source_twod_mesh%get_local_mesh()
+ halo_depth = target_twod_mesh%get_halo_depth()
- !------------------------------------------------------------------------!
- ! Create the surface altitude fields on the meshes
- !------------------------------------------------------------------------!
- fs => function_space_collection%get_fs(target_twod_mesh, surface_order_h, &
- surface_order_v, fs_id)
- call surface_altitude_inventory%get_field(source_twod_mesh, source_surface_altitude)
+ fs => function_space_collection%get_fs( &
+ target_twod_mesh, w0_order, w0_order, fs_id &
+ )
+ call surf_alt_inventory%get_field(local_mesh, source_surf_alt)
- call surface_altitude_list(i+1)%initialise(vector_space = fs, &
- halo_depth = target_twod_mesh%get_halo_depth())
+ call surf_alt_list(i+1)%initialise(fs, halo_depth=halo_depth)
! We use a simple mapping from source to target meshes
- if (w0_orography_mapping) then
+ if (w0_multigrid_mapping) then
+ ! -------------------------------------------------------------------- !
+ ! Restrict/prolong
+ ! -------------------------------------------------------------------- !
+ ! If orography_order > 1 need to first map this to lower-order W0
+ if (orography_order > 1 .and. &
+ source_mesh_names(i) == orography_mesh_name) then
+
+ w0_fs => function_space_collection%get_fs(target_twod_mesh, 0, 0, W0)
+ call surf_alt_w0_k0%initialise(w0_fs)
+ call ones%initialise(w0_fs)
+ call multiplicity_w0%initialise(w0_fs)
+ call rmultiplicity_w0%initialise(w0_fs)
+
+ call invoke( &
+ ! First need to compute rmultiplicity in W0
+ setval_c(ones, 1.0_r_def), &
+ setval_c(multiplicity_w0, 0.0_r_def), &
+ multiplicity_kernel_type(multiplicity_w0), &
+ X_divideby_Y(rmultiplicity_w0, ones, multiplicity_w0), &
+ ! Obtain lowest-order W0 field through sampling
+ setval_c(surf_alt_w0_k0, 0.0_r_def), &
+ sample_field_kernel_type( &
+ surf_alt_w0_k0, rmultiplicity_w0, source_surf_alt &
+ ) &
+ )
+ ! Restrict/prolong W0 field
+ call map_w0_intermesh(surf_alt_list(i+1), surf_alt_w0_k0)
+
+ else
+ ! Restrict/prolong W0 field
+ call map_w0_intermesh(surf_alt_list(i+1), source_surf_alt)
+ end if
- call map_w0_intermesh(surface_altitude_list(i+1), &
- source_surface_altitude)
- else
+ surf_alt_w0_ptr => surf_alt_list(i+1)
- call map_scalar_intermesh(surface_altitude_list(i+1), &
- source_surface_altitude)
+ else ! W3 mapping
+ ! -------------------------------------------------------------------- !
+ ! Restrict/prolong W3 field
+ ! -------------------------------------------------------------------- !
+ call map_scalar_intermesh(surf_alt_list(i+1), source_surf_alt)
+
+ ! -------------------------------------------------------------------- !
+ ! Obtain surface altitude in W0 space
+ ! -------------------------------------------------------------------- !
+ w0_fs => function_space_collection%get_fs( &
+ target_twod_mesh, w0_order, w0_order, W0 &
+ )
+ call surf_alt_w0%initialise(w0_fs, halo_depth=halo_depth)
+ call chi_inventory%get_field_array(target_mesh, chi)
+ call panel_id_inventory%get_field(target_mesh, panel_id)
+
+ ! Compute surface altitude in W0 space
+ call surface_altitude_alg(surf_alt_w0, surf_alt_list(i+1))
+
+ surf_alt_w0_ptr => surf_alt_w0
end if
- ! Add new surface altitude field to inventory for potential future mapping
- call surface_altitude_inventory%copy_field(surface_altitude_list(i+1), target_twod_mesh)
+ ! Add new surface altitude field to inventory for future mapping
+ local_mesh => target_twod_mesh%get_local_mesh()
+ call surf_alt_inventory%copy_field(surf_alt_list(i+1), local_mesh)
- !------------------------------------------------------------------------!
- ! Use the surface altitude to introduce orography on meshes
- !------------------------------------------------------------------------!
- call assign_orography_field(chi_inventory, panel_id_inventory, target_mesh, &
- surface_altitude_list(i+1))
+ ! ---------------------------------------------------------------------- !
+ ! Adjust coordinates
+ ! ---------------------------------------------------------------------- !
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, target_mesh, surf_alt_w0_ptr &
+ )
! Assign for shifted and double level meshes if they exist
if (mesh_collection%check_for(target_mesh, SHIFTED)) then
shifted_mesh => mesh_collection%get_mesh(target_mesh, SHIFTED)
- call assign_orography_field(chi_inventory, panel_id_inventory, &
- shifted_mesh, surface_altitude_list(i+1))
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, shifted_mesh, surf_alt_w0_ptr &
+ )
end if
if (mesh_collection%check_for(target_mesh, DOUBLE_LEVEL)) then
double_level_mesh => mesh_collection%get_mesh(target_mesh, DOUBLE_LEVEL)
- call assign_orography_field(chi_inventory, panel_id_inventory, &
- double_level_mesh, surface_altitude_list(i+1))
+ call assign_orography_field( &
+ chi_inventory, panel_id_inventory, double_level_mesh, &
+ surf_alt_w0_ptr &
+ )
end if
end do
! Tidy up
- call surface_altitude_inventory%clear()
- deallocate(surface_altitude_list)
- nullify(source_mesh, source_twod_mesh, target_mesh, target_twod_mesh, &
- source_surface_altitude)
-
+ call surf_alt_inventory%clear()
+ deallocate(surf_alt_list)
end subroutine setup_orography_alg
- !> @brief Iterates through list of bases meshes, and finds mesh mappings such that all meshes
- !> get orography assigned to them.
- !> @details This algorithm implments a tree search like method to create a list of mappings pairs
- !> in order to map orography through all meshes.
- !> @param[in] all_mesh_names An array of the names of all the base meshes.
- !> @param[in] orography_mesh_name Name of mesh where surface altitude is read in.
- !> @param[in,out] source_mesh_names An ordered array of meshes to map orography from.
- !> @param[in,out] target_mesh_names An ordered array of meshes to map orography to.
+ !> @brief Creates ordered lists of base meshes for assigning orography
+ !> @details The orography needs to be defined consistently between different
+ !! meshes. The "orography mesh" is treated as the original source,
+ !! and if a surface altitude ancil is used then it is should be read
+ !! into this mesh.
+ !! The orography on other meshes is defined by a sequence of
+ !! restriction/prolongation operations, starting from the
+ !! "orography_mesh".
+ !! This algorithm implements a tree search method to create the
+ !! list of mappings to ensure that the orography is defined on all
+ !! meshes. It returns ordered lists of source and target meshes for
+ !! mapping the surface altitude field.
+ !> @param[in] all_mesh_names Array of all names of base meshes.
+ !> @param[in] orography_mesh_name Name of mesh on which the original
+ !! surface altitude field is defined.
+ !> @param[in,out] source_mesh_names Ordered array of mesh names to map
+ !! surface altitude from.
+ !> @param[in,out] target_mesh_names Ordered array of mesh names to map
+ !! surface altitude to.
subroutine create_map_list( all_mesh_names, &
orography_mesh_name, &
source_mesh_names, &
@@ -216,8 +345,8 @@ contains
character(str_def), allocatable, intent(inout) :: target_mesh_names(:)
character(str_def), allocatable :: new_mesh_names(:)
- integer(kind=i_def) :: num_meshes, mesh_counter, mesh_index, &
- i, j, k, i_max, next_index
+ integer(kind=i_def) :: num_meshes, mesh_counter, mesh_index
+ integer(kind=i_def) :: i, j, k, i_max, next_index
character(str_def), allocatable :: used_mesh_names(:)
integer(kind=i_def), allocatable :: ip1(:)
type(mesh_type), pointer :: mesh => null()
@@ -320,8 +449,9 @@ contains
end if
end do
if (.not. accounted_for) then
- write( log_scratch_space, '(3A)' ) &
- 'Mesh', new_mesh_names(i), 'will not have orography assigned to it. Check that mesh maps are correct'
+ write( log_scratch_space, '(3A)' ) &
+ 'Mesh', new_mesh_names(i), 'will not have orography ' // &
+ 'assigned to it. Check that mesh maps are correct'
call log_event( log_scratch_space, LOG_LEVEL_ERROR )
end if
end do
diff --git a/science/gungho/unit-test/kernel/core_dynamics/compute_coriolis_matrix_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/compute_coriolis_matrix_kernel_mod_test.pf
index 658e676fd..1d8a4cea2 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/compute_coriolis_matrix_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/compute_coriolis_matrix_kernel_mod_test.pf
@@ -43,7 +43,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use formulation_config_mod, only : eos_method_sampled, &
moisture_formulation_dry
use feign_config_mod, only : feign_base_mesh_config, &
@@ -70,6 +70,8 @@ contains
element_order_v=0_i_def, &
rehabilitate=.true., &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
vorticity_in_w1=.false. )
diff --git a/science/gungho/unit-test/kernel/core_dynamics/compute_dl_matrix_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/compute_dl_matrix_kernel_mod_test.pf
index 348fb1efa..ad2da74af 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/compute_dl_matrix_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/compute_dl_matrix_kernel_mod_test.pf
@@ -45,7 +45,7 @@ contains
runge_kutta_method_ssp3
use extrusion_config_mod, only: method_uniform, stretching_method_linear
use finite_element_config_mod, only: cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only: init_chi_transforms
implicit none
@@ -61,6 +61,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/compute_vert_coriolis_matrix_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/compute_vert_coriolis_matrix_kernel_mod_test.pf
index dc3e55e0d..802fa0bdd 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/compute_vert_coriolis_matrix_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/compute_vert_coriolis_matrix_kernel_mod_test.pf
@@ -48,7 +48,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_native
+ coord_system_native, coord_space_wchi
use formulation_config_mod, only : eos_method_sampled, &
moisture_formulation_dry
use feign_config_mod, only : feign_base_mesh_config, &
@@ -86,6 +86,8 @@ contains
element_order_v=0_i_def, &
rehabilitate=.true., &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_native, &
vorticity_in_w1=.false. &
)
diff --git a/science/gungho/unit-test/kernel/core_dynamics/kinetic_energy_gradient_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/kinetic_energy_gradient_kernel_mod_test.pf
index aa9b4b51b..722dd7814 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/kinetic_energy_gradient_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/kinetic_energy_gradient_kernel_mod_test.pf
@@ -50,7 +50,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use formulation_config_mod, only : eos_method_sampled, &
moisture_formulation_dry
use feign_config_mod, only : feign_finite_element_config, &
@@ -64,6 +64,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/lagged_orog_operator_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/lagged_orog_operator_kernel_mod_test.pf
index 8e4e36223..ccf6f45c6 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/lagged_orog_operator_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/lagged_orog_operator_kernel_mod_test.pf
@@ -33,7 +33,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
implicit none
@@ -43,6 +43,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=1_i_def, &
element_order_v=1_i_def, &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/project_eos_pressure_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/project_eos_pressure_kernel_mod_test.pf
index 7dbe255e1..60153cc5b 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/project_eos_pressure_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/project_eos_pressure_kernel_mod_test.pf
@@ -47,7 +47,7 @@ contains
feign_planet_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use initial_temperature_config_mod, &
only : perturb_none
use sci_chi_transform_mod, only : init_chi_transforms
@@ -69,6 +69,8 @@ contains
eta_values=(/0.5_r_def/) )
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/project_eos_rho_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/project_eos_rho_kernel_mod_test.pf
index f08a05fd7..46eef8ca7 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/project_eos_rho_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/project_eos_rho_kernel_mod_test.pf
@@ -58,7 +58,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_initial_temperature_config, &
feign_finite_element_config
@@ -78,6 +78,8 @@ contains
fplane=.false., f_lat_deg=0.0_r_def )
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/rhs_project_eos_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/rhs_project_eos_kernel_mod_test.pf
index 47193101b..66ae3a874 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/rhs_project_eos_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/rhs_project_eos_kernel_mod_test.pf
@@ -57,7 +57,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_initial_temperature_config, &
feign_planet_config, &
@@ -78,6 +78,8 @@ contains
fplane=.false., f_lat_deg=0.0_r_def )
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/core_dynamics/vorticity_rhs_kernel_mod_test.pf b/science/gungho/unit-test/kernel/core_dynamics/vorticity_rhs_kernel_mod_test.pf
index f5751b76d..0317f811f 100644
--- a/science/gungho/unit-test/kernel/core_dynamics/vorticity_rhs_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/core_dynamics/vorticity_rhs_kernel_mod_test.pf
@@ -31,7 +31,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -42,6 +42,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/compute_energetics_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/compute_energetics_kernel_mod_test.pf
index e9e92bf81..29a50f04f 100644
--- a/science/gungho/unit-test/kernel/diagnostics/compute_energetics_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/compute_energetics_kernel_mod_test.pf
@@ -57,7 +57,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -68,6 +68,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/compute_entropy_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/compute_entropy_kernel_mod_test.pf
index 6e4dd39b0..e45c95794 100644
--- a/science/gungho/unit-test/kernel/diagnostics/compute_entropy_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/compute_entropy_kernel_mod_test.pf
@@ -46,7 +46,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/compute_moist_mass_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/compute_moist_mass_kernel_mod_test.pf
index 63133246b..a1c76a750 100644
--- a/science/gungho/unit-test/kernel/diagnostics/compute_moist_mass_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/compute_moist_mass_kernel_mod_test.pf
@@ -50,7 +50,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -61,6 +61,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/compute_total_aam_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/compute_total_aam_kernel_mod_test.pf
index 851d06ebc..38206a930 100644
--- a/science/gungho/unit-test/kernel/diagnostics/compute_total_aam_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/compute_total_aam_kernel_mod_test.pf
@@ -46,7 +46,7 @@ contains
stretching_method_linear
use sci_chi_transform_mod, only : init_chi_transforms
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_extrusion_config, &
feign_finite_element_config, &
feign_base_mesh_config, &
@@ -71,6 +71,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/compute_total_pv_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/compute_total_pv_kernel_mod_test.pf
index 4eae5a9be..0002972ed 100644
--- a/science/gungho/unit-test/kernel/diagnostics/compute_total_pv_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/compute_total_pv_kernel_mod_test.pf
@@ -49,7 +49,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_extrusion_config, &
feign_finite_element_config, &
feign_planet_config, &
@@ -76,6 +76,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diagnostics/reference_profile_mod_test.pf b/science/gungho/unit-test/kernel/diagnostics/reference_profile_mod_test.pf
index b31ac6b98..07223a7f0 100644
--- a/science/gungho/unit-test/kernel/diagnostics/reference_profile_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diagnostics/reference_profile_mod_test.pf
@@ -48,7 +48,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_initial_temperature_config, &
@@ -97,6 +97,8 @@ contains
call feign_finite_element_config( &
cellshape = cellshape_quadrilateral, &
coord_order = 0_i_def, &
+ coord_order_multigrid = 1_i_def, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0_i_def, &
element_order_v = 0_i_def, &
diff --git a/science/gungho/unit-test/kernel/diffusion/leonard_term_kl_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diffusion/leonard_term_kl_kernel_mod_test.pf
index b11b8e28a..265b4f69e 100644
--- a/science/gungho/unit-test/kernel/diffusion/leonard_term_kl_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diffusion/leonard_term_kl_kernel_mod_test.pf
@@ -37,7 +37,7 @@ contains
use feign_config_mod, only : feign_finite_element_config, &
feign_mixing_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use mixing_config_mod, only : method_3d_smag, &
smag_l_calc, smag_l_calc_UseDx
@@ -59,6 +59,8 @@ contains
element_order_h=0_i_def, &
element_order_v=0_i_def, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
rehabilitate=.true., &
vorticity_in_w1=.false. )
diff --git a/science/gungho/unit-test/kernel/diffusion/leonard_term_th_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diffusion/leonard_term_th_kernel_mod_test.pf
index 0d63fc078..6ee076ef7 100644
--- a/science/gungho/unit-test/kernel/diffusion/leonard_term_th_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diffusion/leonard_term_th_kernel_mod_test.pf
@@ -36,7 +36,7 @@ contains
use feign_config_mod, only : feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -47,6 +47,8 @@ contains
element_order_h=0_i_def, &
element_order_v=0_i_def, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
rehabilitate=.true., &
vorticity_in_w1=.false. )
diff --git a/science/gungho/unit-test/kernel/diffusion/momentum_viscosity_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diffusion/momentum_viscosity_kernel_mod_test.pf
index 31f0bb9cf..18ff9ac4a 100644
--- a/science/gungho/unit-test/kernel/diffusion/momentum_viscosity_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diffusion/momentum_viscosity_kernel_mod_test.pf
@@ -36,7 +36,7 @@ contains
use feign_config_mod, only : feign_finite_element_config
use mixing_config_mod, only : method_3d_smag
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -46,6 +46,8 @@ contains
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
coord_system=coord_system_xyz, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/diffusion/tracer_smagorinsky_diff_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diffusion/tracer_smagorinsky_diff_kernel_mod_test.pf
index 604ca9319..a1c550dc3 100644
--- a/science/gungho/unit-test/kernel/diffusion/tracer_smagorinsky_diff_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diffusion/tracer_smagorinsky_diff_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use mixing_config_mod, only : method_3d_smag, smag_l_calc, &
smag_l_calc_UseDx
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -59,6 +59,8 @@ contains
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
coord_system=coord_system_xyz, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/diffusion/tracer_viscosity_kernel_mod_test.pf b/science/gungho/unit-test/kernel/diffusion/tracer_viscosity_kernel_mod_test.pf
index 495c48dff..a09149e64 100644
--- a/science/gungho/unit-test/kernel/diffusion/tracer_viscosity_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/diffusion/tracer_viscosity_kernel_mod_test.pf
@@ -32,7 +32,7 @@ contains
use feign_config_mod, only : feign_finite_element_config
use mixing_config_mod, only : method_3d_smag
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -41,6 +41,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/external_forcing/deep_hot_jupiter_kernel_mod_test.pf b/science/gungho/unit-test/kernel/external_forcing/deep_hot_jupiter_kernel_mod_test.pf
index 00640b1af..b2388fe1a 100644
--- a/science/gungho/unit-test/kernel/external_forcing/deep_hot_jupiter_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/external_forcing/deep_hot_jupiter_kernel_mod_test.pf
@@ -35,7 +35,7 @@ contains
feign_planet_config, &
feign_timestepping_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use timestepping_config_mod, only : method_semi_implicit, &
runge_kutta_method_ssp3
@@ -52,6 +52,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/external_forcing/earth_like_kernel_mod_test.pf b/science/gungho/unit-test/kernel/external_forcing/earth_like_kernel_mod_test.pf
index 17e485b6b..85984d458 100644
--- a/science/gungho/unit-test/kernel/external_forcing/earth_like_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/external_forcing/earth_like_kernel_mod_test.pf
@@ -39,7 +39,7 @@ contains
feign_planet_config, &
feign_timestepping_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use timestepping_config_mod, only : method_semi_implicit, &
runge_kutta_method_ssp3
@@ -56,6 +56,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/external_forcing/held_suarez_kernel_mod_test.pf b/science/gungho/unit-test/kernel/external_forcing/held_suarez_kernel_mod_test.pf
index d1e1f11e9..c468b27e6 100644
--- a/science/gungho/unit-test/kernel/external_forcing/held_suarez_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/external_forcing/held_suarez_kernel_mod_test.pf
@@ -37,7 +37,7 @@ contains
feign_planet_config, &
feign_timestepping_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use timestepping_config_mod, only : method_semi_implicit, &
runge_kutta_method_ssp3
@@ -55,6 +55,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/external_forcing/shallow_hot_jupiter_kernel_mod_test.pf b/science/gungho/unit-test/kernel/external_forcing/shallow_hot_jupiter_kernel_mod_test.pf
index 854255e9c..a588c7bf3 100644
--- a/science/gungho/unit-test/kernel/external_forcing/shallow_hot_jupiter_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/external_forcing/shallow_hot_jupiter_kernel_mod_test.pf
@@ -37,7 +37,7 @@ contains
feign_planet_config, &
feign_timestepping_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use timestepping_config_mod, only : method_semi_implicit, &
runge_kutta_method_ssp3
@@ -54,6 +54,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/external_forcing/tidally_locked_earth_kernel_mod_test.pf b/science/gungho/unit-test/kernel/external_forcing/tidally_locked_earth_kernel_mod_test.pf
index 5971150fe..a88b7a57a 100644
--- a/science/gungho/unit-test/kernel/external_forcing/tidally_locked_earth_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/external_forcing/tidally_locked_earth_kernel_mod_test.pf
@@ -36,7 +36,7 @@ contains
feign_planet_config, &
feign_timestepping_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use sci_chi_transform_mod, only : init_chi_transforms
use timestepping_config_mod, only : method_semi_implicit, &
runge_kutta_method_ssp3
@@ -53,6 +53,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/initialisation/hydrostatic_exner_kernel_mod_test.pf b/science/gungho/unit-test/kernel/initialisation/hydrostatic_exner_kernel_mod_test.pf
index e91b2770c..6aaa75118 100644
--- a/science/gungho/unit-test/kernel/initialisation/hydrostatic_exner_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/initialisation/hydrostatic_exner_kernel_mod_test.pf
@@ -73,7 +73,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -118,6 +118,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/initialisation/initial_rho_sample_kernel_mod_test.pf b/science/gungho/unit-test/kernel/initialisation/initial_rho_sample_kernel_mod_test.pf
index 4c2b182e8..363d73f3c 100644
--- a/science/gungho/unit-test/kernel/initialisation/initial_rho_sample_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/initialisation/initial_rho_sample_kernel_mod_test.pf
@@ -43,7 +43,7 @@ contains
feign_idealised_config, &
feign_initial_density_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use idealised_config_mod, only : test_constant_field
use initial_density_config_mod, only : density_background
@@ -66,6 +66,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/initialisation/initial_u_kernel_mod_test.pf b/science/gungho/unit-test/kernel/initialisation/initial_u_kernel_mod_test.pf
index 4ff877458..9731ebd3e 100644
--- a/science/gungho/unit-test/kernel/initialisation/initial_u_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/initialisation/initial_u_kernel_mod_test.pf
@@ -70,7 +70,7 @@ contains
topology_fully_periodic
use sci_chi_transform_mod, only : init_chi_transforms
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_initial_wind_config
@@ -90,6 +90,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/initialisation/set_rho_kernel_mod_test.pf b/science/gungho/unit-test/kernel/initialisation/set_rho_kernel_mod_test.pf
index dac91d1a6..dddbd21fe 100644
--- a/science/gungho/unit-test/kernel/initialisation/set_rho_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/initialisation/set_rho_kernel_mod_test.pf
@@ -63,7 +63,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -99,6 +99,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w2bmask_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w2bmask_kernel_mod_test.pf
index 403f908bc..30206c3e6 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w2bmask_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w2bmask_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w2mask_blend_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w2mask_blend_kernel_mod_test.pf
index 9da369349..2423f12fb 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w2mask_blend_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w2mask_blend_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w2mask_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w2mask_kernel_mod_test.pf
index 959ddb390..70dbb6903 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w2mask_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w2mask_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w2mask_lbc_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w2mask_lbc_kernel_mod_test.pf
index b7c4aa269..3dcb3b93e 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w2mask_lbc_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w2mask_lbc_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w2mask_tang_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w2mask_tang_kernel_mod_test.pf
index 42069242d..d14af6437 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w2mask_tang_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w2mask_tang_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w3mask_blend_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w3mask_blend_kernel_mod_test.pf
index 63963b6ff..2c49a8208 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w3mask_blend_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w3mask_blend_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w3mask_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w3mask_kernel_mod_test.pf
index 41ab8a7ec..cdd97b420 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w3mask_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w3mask_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_w3mask_lbc_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_w3mask_lbc_kernel_mod_test.pf
index bc1b4a244..62f8ff04b 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_w3mask_lbc_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_w3mask_lbc_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_blend_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_blend_kernel_mod_test.pf
index d30a6ba29..2bff2bf3b 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_blend_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_blend_kernel_mod_test.pf
@@ -41,7 +41,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
class(create_wthetamask_blend_test_type), intent(inout) :: this
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_kernel_mod_test.pf
index 827948041..7604e9576 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_lbc_kernel_mod_test.pf b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_lbc_kernel_mod_test.pf
index 76c587d60..888878277 100644
--- a/science/gungho/unit-test/kernel/limited_area/create_wthetamask_lbc_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/limited_area/create_wthetamask_lbc_kernel_mod_test.pf
@@ -40,7 +40,7 @@ contains
use feign_config_mod, only : feign_base_mesh_config, &
feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -57,6 +57,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/solver/eliminated_theta_q22_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/eliminated_theta_q22_kernel_mod_test.pf
index 96a0b0d16..caa797d84 100644
--- a/science/gungho/unit-test/kernel/solver/eliminated_theta_q22_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/solver/eliminated_theta_q22_kernel_mod_test.pf
@@ -31,7 +31,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -42,6 +42,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/solver/project_eos_operators_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/project_eos_operators_kernel_mod_test.pf
index 4537740b9..912324654 100644
--- a/science/gungho/unit-test/kernel/solver/project_eos_operators_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/solver/project_eos_operators_kernel_mod_test.pf
@@ -48,7 +48,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_initial_temperature_config, &
@@ -77,6 +77,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
rehabilitate=.true., &
diff --git a/science/gungho/unit-test/kernel/solver/weighted_div_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/weighted_div_kernel_mod_test.pf
index f2698dc97..fc28b3268 100644
--- a/science/gungho/unit-test/kernel/solver/weighted_div_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/solver/weighted_div_kernel_mod_test.pf
@@ -42,7 +42,7 @@ contains
use feign_config_mod, only : feign_finite_element_config
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
implicit none
@@ -51,6 +51,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=1_i_def, &
element_order_v=1_i_def, &
diff --git a/science/gungho/unit-test/kernel/solver/weighted_m3_kernel_mod_test.pf b/science/gungho/unit-test/kernel/solver/weighted_m3_kernel_mod_test.pf
index e23ec3575..e009d5858 100644
--- a/science/gungho/unit-test/kernel/solver/weighted_m3_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/solver/weighted_m3_kernel_mod_test.pf
@@ -31,7 +31,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -42,6 +42,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/common/calc_upwind_detj_at_w2_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/common/calc_upwind_detj_at_w2_kernel_mod_test.pf
index 4687a3be6..13c2fbe2a 100644
--- a/science/gungho/unit-test/kernel/transport/common/calc_upwind_detj_at_w2_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/common/calc_upwind_detj_at_w2_kernel_mod_test.pf
@@ -35,7 +35,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use formulation_config_mod, only : eos_method_sampled, &
moisture_formulation_dry
use feign_config_mod, only : feign_finite_element_config, &
@@ -48,6 +48,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/common/panel_edge_coords_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/common/panel_edge_coords_kernel_mod_test.pf
index e85a0bc8a..aaf138b33 100644
--- a/science/gungho/unit-test/kernel/transport/common/panel_edge_coords_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/common/panel_edge_coords_kernel_mod_test.pf
@@ -35,7 +35,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_native
+ coord_system_native, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_extrusion_config, &
@@ -73,6 +73,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_native, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/common/panel_edge_weights_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/common/panel_edge_weights_kernel_mod_test.pf
index bd34c90e1..a33294632 100644
--- a/science/gungho/unit-test/kernel/transport/common/panel_edge_weights_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/common/panel_edge_weights_kernel_mod_test.pf
@@ -35,7 +35,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_native
+ coord_system_native, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_extrusion_config, &
@@ -73,6 +73,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_native, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/common/vorticity_advection_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/common/vorticity_advection_kernel_mod_test.pf
index fd1051185..492e378d4 100644
--- a/science/gungho/unit-test/kernel/transport/common/vorticity_advection_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/common/vorticity_advection_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, &
+ coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -42,6 +43,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/common/w2_vorticity_advection_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/common/w2_vorticity_advection_kernel_mod_test.pf
index 071d03792..17ee1adc4 100644
--- a/science/gungho/unit-test/kernel/transport/common/w2_vorticity_advection_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/common/w2_vorticity_advection_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, &
+ coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms
@@ -42,6 +43,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/gungho/unit-test/kernel/transport/mol/poly1d_advective_coeffs_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/mol/poly1d_advective_coeffs_kernel_mod_test.pf
index d2e8ae4ee..23f29b2ce 100644
--- a/science/gungho/unit-test/kernel/transport/mol/poly1d_advective_coeffs_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/mol/poly1d_advective_coeffs_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
use base_mesh_config_mod, only: geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only: coord_system_xyz, &
- cellshape_quadrilateral
+ cellshape_quadrilateral, &
+ coord_space_wchi
use sci_chi_transform_mod, only: init_chi_transforms
implicit none
@@ -46,6 +47,8 @@ contains
call feign_finite_element_config( cellshape = cellshape_quadrilateral, &
coord_order = 1, &
+ coord_order_multigrid = 1, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0, &
element_order_v = 0, &
diff --git a/science/gungho/unit-test/kernel/transport/mol/poly1d_flux_coeffs_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/mol/poly1d_flux_coeffs_kernel_mod_test.pf
index 26c6a3be1..11672a13f 100644
--- a/science/gungho/unit-test/kernel/transport/mol/poly1d_flux_coeffs_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/mol/poly1d_flux_coeffs_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
use base_mesh_config_mod, only: geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only: coord_system_xyz, &
- cellshape_quadrilateral
+ cellshape_quadrilateral, &
+ coord_space_wchi
use sci_chi_transform_mod, only: init_chi_transforms
implicit none
@@ -46,6 +47,8 @@ contains
call feign_finite_element_config( cellshape = cellshape_quadrilateral, &
coord_order = 1, &
+ coord_order_multigrid = 1, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0, &
element_order_v = 0, &
diff --git a/science/gungho/unit-test/kernel/transport/mol/poly2d_advective_coeffs_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/mol/poly2d_advective_coeffs_kernel_mod_test.pf
index eec36089b..6a1dadc15 100644
--- a/science/gungho/unit-test/kernel/transport/mol/poly2d_advective_coeffs_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/mol/poly2d_advective_coeffs_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
use base_mesh_config_mod, only: geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only: coord_system_xyz, &
- cellshape_quadrilateral
+ cellshape_quadrilateral, &
+ coord_space_wchi
use sci_chi_transform_mod, only: init_chi_transforms
implicit none
@@ -46,6 +47,8 @@ contains
call feign_finite_element_config( cellshape = cellshape_quadrilateral, &
coord_order = 1, &
+ coord_order_multigrid = 1, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0, &
element_order_v = 0, &
diff --git a/science/gungho/unit-test/kernel/transport/mol/poly2d_flux_coeffs_kernel_mod_test.pf b/science/gungho/unit-test/kernel/transport/mol/poly2d_flux_coeffs_kernel_mod_test.pf
index bc2105654..217811006 100644
--- a/science/gungho/unit-test/kernel/transport/mol/poly2d_flux_coeffs_kernel_mod_test.pf
+++ b/science/gungho/unit-test/kernel/transport/mol/poly2d_flux_coeffs_kernel_mod_test.pf
@@ -31,7 +31,8 @@ contains
use base_mesh_config_mod, only: geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only: coord_system_xyz, &
- cellshape_quadrilateral
+ cellshape_quadrilateral, &
+ coord_space_wchi
use sci_chi_transform_mod, only: init_chi_transforms
implicit none
@@ -45,6 +46,8 @@ contains
fplane=.false., f_lat_deg=0.0_r_def )
call feign_finite_element_config( cellshape = cellshape_quadrilateral, &
coord_order = 1, &
+ coord_order_multigrid = 1, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0, &
element_order_v = 0, &
diff --git a/science/gungho/unit-test/orography/analytic_orography_field_cartesian_mod_test.pf b/science/gungho/unit-test/orography/analytic_orography_field_cartesian_mod_test.pf
index 2ea45a953..043518895 100644
--- a/science/gungho/unit-test/orography/analytic_orography_field_cartesian_mod_test.pf
+++ b/science/gungho/unit-test/orography/analytic_orography_field_cartesian_mod_test.pf
@@ -58,7 +58,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_extrusion_config, &
@@ -94,6 +94,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
@@ -183,6 +185,7 @@ contains
real(r_def), parameter :: tol = 1.0e-3_r_def
real(r_def) :: height_flat_surface, height_domain_top
real(r_def) :: chi_1(undf), chi_2(undf), chi_3(undf)
+ real(r_def) :: chi_1_in(undf), chi_2_in(undf), chi_3_in(undf)
real(r_def) :: panel_id(undf)
real(r_def) :: eta(0:nlayers)
real(r_def) :: vertex_coords_2d(3,1), chi_surf, chi_test
@@ -235,13 +238,17 @@ contains
do i = 1, undf
chi_3(i) = eta2z_linear(eta(i-1), height_flat_surface, height_domain_top)
end do
+ chi_1_in(:) = chi_1(:)
+ chi_2_in(:) = chi_2(:)
+ chi_3_in(:) = chi_3(:)
panel_id(:) = 1.0_r_def
! Test Cartesian orography assignment
- call analytic_orography_cartesian( nlayers, ndf, undf, map, &
- ndf, undf, map, &
- height_flat_surface, &
- height_domain_top, &
- chi_1, chi_2, chi_3, &
+ call analytic_orography_cartesian( nlayers, ndf, undf, map, &
+ ndf, undf, map, &
+ height_flat_surface, &
+ height_domain_top, &
+ chi_1_in, chi_2_in, chi_3_in, &
+ chi_1, chi_2, chi_3, &
panel_id )
! Test selected chi_3
diff --git a/science/gungho/unit-test/orography/analytic_orography_field_spherical_mod_test.pf b/science/gungho/unit-test/orography/analytic_orography_field_spherical_mod_test.pf
index e45d1fd81..223d51af3 100644
--- a/science/gungho/unit-test/orography/analytic_orography_field_spherical_mod_test.pf
+++ b/science/gungho/unit-test/orography/analytic_orography_field_spherical_mod_test.pf
@@ -59,7 +59,8 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, &
+ coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_finite_element_config, &
@@ -119,6 +120,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
@@ -194,6 +197,7 @@ contains
real(r_def) :: use_tol
real(r_def) :: height_flat_surface, height_domain_top
real(r_def) :: chi_1(undf), chi_2(undf), chi_3(undf)
+ real(r_def) :: chi_1_in(undf), chi_2_in(undf), chi_3_in(undf)
real(r_def) :: chi_1_cart(undf), chi_2_cart(undf), chi_3_cart(undf)
real(r_def) :: panel_id(undf)
real(r_def) :: eta(0:nlayers)
@@ -251,11 +255,17 @@ contains
call llr2xyz(chi_1(i), chi_2(i), chi_3(i), &
chi_1_cart(i), chi_2_cart(i), chi_3_cart(i))
end do
+
+ chi_1_in(:) = chi_1_cart(:)
+ chi_2_in(:) = chi_2_cart(:)
+ chi_3_in(:) = chi_3_cart(:)
+
! Test spherical orography assignment
- call analytic_orography_spherical_xyz( nlayers, ndf, undf, map, &
- ndf, undf, map, &
- height_flat_surface, &
- height_domain_top, &
+ call analytic_orography_spherical_xyz( nlayers, ndf, undf, map, &
+ ndf, undf, map, &
+ height_flat_surface, &
+ height_domain_top, &
+ chi_1_in, chi_2_in, chi_3_in, &
chi_1_cart, chi_2_cart, chi_3_cart, &
panel_id )
! Transform coordinate field back to (long, lat, r) for comparison
diff --git a/science/gungho/unit-test/orography/ancil_orography_cartesian_mod_test.pf b/science/gungho/unit-test/orography/ancil_orography_cartesian_mod_test.pf
index bdb77e02b..2562d7e26 100644
--- a/science/gungho/unit-test/orography/ancil_orography_cartesian_mod_test.pf
+++ b/science/gungho/unit-test/orography/ancil_orography_cartesian_mod_test.pf
@@ -33,7 +33,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_extrusion_config
@@ -61,6 +61,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
@@ -108,6 +110,7 @@ contains
real(r_def), allocatable :: srf_alt_w0(:)
real(r_def), allocatable :: multipl_w0_sl(:)
real(r_def), allocatable :: chi1(:), chi2(:), chi3(:), panel_id(:)
+ real(r_def), allocatable :: chi1_in(:), chi2_in(:), chi3_in(:)
real(r_def) :: answer
@@ -155,6 +158,9 @@ contains
allocate( chi1(undf_wchi) )
allocate( chi2(undf_wchi) )
allocate( chi3(undf_wchi) )
+ allocate( chi1_in(undf_wchi) )
+ allocate( chi2_in(undf_wchi) )
+ allocate( chi3_in(undf_wchi) )
allocate( srf_alt_w3(undf_w3_sl) )
allocate( srf_alt_w0(undf_w0_sl) )
allocate( multipl_w0_sl(undf_w0_sl) )
@@ -172,6 +178,11 @@ contains
! This generates the w0 surface_altitude
srf_alt_w3(:)=0.0_r_def
srf_alt_w3(5)=400.0_r_def
+
+ chi1_in(:) = chi1(:)
+ chi2_in(:) = chi2(:)
+ chi3_in(:) = chi3(:)
+
do cell = 1, ncells
call average_w3_to_w0_code(1, &
@@ -195,6 +206,9 @@ contains
chi1, &
chi2, &
chi3, &
+ chi1_in, &
+ chi2_in, &
+ chi3_in, &
panel_id, &
srf_alt_w0, &
domain_surface, &
@@ -237,6 +251,9 @@ contains
deallocate( chi1 )
deallocate( chi2 )
deallocate( chi3 )
+ deallocate( chi1_in )
+ deallocate( chi2_in )
+ deallocate( chi3_in )
deallocate( panel_id )
deallocate( basis_w0_on_wchi )
diff --git a/science/gungho/unit-test/orography/ancil_orography_spherical_mod_test.pf b/science/gungho/unit-test/orography/ancil_orography_spherical_mod_test.pf
index 8ca918b03..261f110e0 100644
--- a/science/gungho/unit-test/orography/ancil_orography_spherical_mod_test.pf
+++ b/science/gungho/unit-test/orography/ancil_orography_spherical_mod_test.pf
@@ -34,7 +34,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config, &
feign_base_mesh_config, &
feign_extrusion_config
@@ -61,6 +61,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
@@ -111,6 +113,7 @@ contains
real(r_def), allocatable :: srf_alt_w0(:)
real(r_def), allocatable :: multipl_w0_sl(:)
real(r_def), allocatable :: chi1(:), chi2(:), chi3(:), panel_id(:)
+ real(r_def), allocatable :: chi1_in(:), chi2_in(:), chi3_in(:)
real(r_def) :: answer, lat, lon, r
real(r_def) :: use_tol
@@ -159,6 +162,9 @@ contains
allocate( chi1(undf_wchi) )
allocate( chi2(undf_wchi) )
allocate( chi3(undf_wchi) )
+ allocate( chi1_in(undf_wchi) )
+ allocate( chi2_in(undf_wchi) )
+ allocate( chi3_in(undf_wchi) )
allocate( srf_alt_w3(undf_w3_sl) )
allocate( srf_alt_w0(undf_w0_sl) )
allocate( multipl_w0_sl(undf_w0_sl) )
@@ -176,6 +182,11 @@ contains
! This generates the w0 surface_altitude
srf_alt_w3(:)=0.0_r_def
srf_alt_w3(5)=400.0_r_def
+
+ chi1_in(:) = chi1(:)
+ chi2_in(:) = chi2(:)
+ chi3_in(:) = chi3(:)
+
do cell = 1, ncells
call average_w3_to_w0_code(1, &
@@ -199,6 +210,9 @@ contains
chi1, &
chi2, &
chi3, &
+ chi1_in, &
+ chi2_in, &
+ chi3_in, &
panel_id, &
srf_alt_w0, &
domain_surface, &
@@ -266,6 +280,9 @@ contains
deallocate( chi1 )
deallocate( chi2 )
deallocate( chi3 )
+ deallocate( chi1_in )
+ deallocate( chi2_in )
+ deallocate( chi3_in )
deallocate( panel_id )
deallocate( basis_w0_on_wchi )
diff --git a/science/linear/integration-test/runge_kutta/resources/runge_kutta_configuration.nml b/science/linear/integration-test/runge_kutta/resources/runge_kutta_configuration.nml
index 9298f96f7..f3321092c 100644
--- a/science/linear/integration-test/runge_kutta/resources/runge_kutta_configuration.nml
+++ b/science/linear/integration-test/runge_kutta/resources/runge_kutta_configuration.nml
@@ -47,6 +47,8 @@ start_dump_filename='',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='xyz',
element_order_h=0,
element_order_v=0,
diff --git a/science/linear/integration-test/semi_implicit/resources/semi_implicit_configuration.nml b/science/linear/integration-test/semi_implicit/resources/semi_implicit_configuration.nml
index 2b208a451..999b6e772 100644
--- a/science/linear/integration-test/semi_implicit/resources/semi_implicit_configuration.nml
+++ b/science/linear/integration-test/semi_implicit/resources/semi_implicit_configuration.nml
@@ -47,6 +47,8 @@ start_dump_filename='',
&finite_element
cellshape='quadrilateral',
coord_order=1,
+coord_order_multigrid=1,
+coord_space='Wchi',
coord_system='xyz',
element_order_h=0,
element_order_v=0,
diff --git a/science/linear/rose-meta/lfric-linear/versions.py b/science/linear/rose-meta/lfric-linear/versions.py
index 152c043d0..39e882cbb 100644
--- a/science/linear/rose-meta/lfric-linear/versions.py
+++ b/science/linear/rose-meta/lfric-linear/versions.py
@@ -31,3 +31,26 @@ def upgrade(self, config, meta_config=None):
# Add settings
return config, self.reports
"""
+
+
+class vn30_t238(MacroUpgrade):
+ """Upgrade macro for ticket #238 by Thomas Bendall."""
+
+ BEFORE_TAG = "vn3.0"
+ AFTER_TAG = "vn3.0_t238"
+
+ def upgrade(self, config, meta_config=None):
+ # Commands From: rose-meta/lfric-driver
+ self.add_setting(
+ config, ["namelist:finite_element", "coord_space"], "'Wchi'"
+ )
+ coord_order = self.get_setting_value(
+ config, ["namelist:finite_element", "coord_order"]
+ )
+ self.add_setting(
+ config,
+ ["namelist:finite_element", "coord_order_multigrid"],
+ coord_order,
+ )
+
+ return config, self.reports
diff --git a/science/linear/unit-test/kernel/core_dynamics/initial_theta_ref_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/initial_theta_ref_kernel_mod_test.pf
index c3b98a7b0..d44aa2138 100644
--- a/science/linear/unit-test/kernel/core_dynamics/initial_theta_ref_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/initial_theta_ref_kernel_mod_test.pf
@@ -52,7 +52,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use initial_pressure_config_mod, only : method_balanced
use initial_temperature_config_mod, &
only : perturb_none
@@ -86,6 +86,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/linear/unit-test/kernel/core_dynamics/tl_kinetic_energy_gradient_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/tl_kinetic_energy_gradient_kernel_mod_test.pf
index 9a44a87ab..acc390de6 100644
--- a/science/linear/unit-test/kernel/core_dynamics/tl_kinetic_energy_gradient_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/tl_kinetic_energy_gradient_kernel_mod_test.pf
@@ -49,7 +49,7 @@ contains
subroutine setUp( this )
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use formulation_config_mod, only : eos_method_sampled, &
moisture_formulation_dry
use feign_config_mod, only : feign_finite_element_config, &
@@ -63,6 +63,8 @@ contains
call feign_finite_element_config( &
cellshape = cellshape_quadrilateral, &
coord_order = 0_i_def, &
+ coord_order_multigrid = 1_i_def, &
+ coord_space = coord_space_wchi, &
coord_system = coord_system_xyz, &
element_order_h = 0_i_def, &
element_order_v = 0_i_def, &
diff --git a/science/linear/unit-test/kernel/core_dynamics/tl_project_eos_pressure_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/tl_project_eos_pressure_kernel_mod_test.pf
index e739d0615..008db1568 100644
--- a/science/linear/unit-test/kernel/core_dynamics/tl_project_eos_pressure_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/tl_project_eos_pressure_kernel_mod_test.pf
@@ -42,7 +42,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_initial_temperature_config, &
@@ -71,6 +71,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/linear/unit-test/kernel/core_dynamics/tl_rhs_project_eos_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/tl_rhs_project_eos_kernel_mod_test.pf
index c80f072b3..7be6a9fde 100644
--- a/science/linear/unit-test/kernel/core_dynamics/tl_rhs_project_eos_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/tl_rhs_project_eos_kernel_mod_test.pf
@@ -57,7 +57,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_initial_temperature_config, &
feign_finite_element_config
@@ -77,6 +77,8 @@ contains
fplane=.false., f_lat_deg=0.0_r_def )
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/linear/unit-test/kernel/core_dynamics/tl_rhs_sample_eos_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/tl_rhs_sample_eos_kernel_mod_test.pf
index e347b4128..3b8cf2c4a 100644
--- a/science/linear/unit-test/kernel/core_dynamics/tl_rhs_sample_eos_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/tl_rhs_sample_eos_kernel_mod_test.pf
@@ -57,7 +57,7 @@ contains
use base_mesh_config_mod, only : geometry_planar, &
topology_fully_periodic
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_initial_temperature_config, &
feign_finite_element_config
@@ -76,6 +76,8 @@ contains
fplane=.false., f_lat_deg=0.0_r_def )
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/linear/unit-test/kernel/core_dynamics/tl_sample_eos_pressure_kernel_mod_test.pf b/science/linear/unit-test/kernel/core_dynamics/tl_sample_eos_pressure_kernel_mod_test.pf
index e1dc1c860..79d885730 100644
--- a/science/linear/unit-test/kernel/core_dynamics/tl_sample_eos_pressure_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/core_dynamics/tl_sample_eos_pressure_kernel_mod_test.pf
@@ -42,7 +42,7 @@ contains
use extrusion_config_mod, only : method_uniform, &
stretching_method_linear
use finite_element_config_mod, only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_base_mesh_config, &
feign_extrusion_config, &
feign_initial_temperature_config, &
@@ -71,6 +71,8 @@ contains
call feign_finite_element_config( cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &
diff --git a/science/linear/unit-test/kernel/transport/common/tl_vorticity_advection_kernel_mod_test.pf b/science/linear/unit-test/kernel/transport/common/tl_vorticity_advection_kernel_mod_test.pf
index 9dea4bf34..a6e8624fb 100644
--- a/science/linear/unit-test/kernel/transport/common/tl_vorticity_advection_kernel_mod_test.pf
+++ b/science/linear/unit-test/kernel/transport/common/tl_vorticity_advection_kernel_mod_test.pf
@@ -12,7 +12,7 @@ module tl_vorticity_advection_kernel_mod_test
use finite_element_config_mod, &
only : cellshape_quadrilateral, &
- coord_system_xyz
+ coord_system_xyz, coord_space_wchi
use feign_config_mod, only : feign_finite_element_config
use sci_chi_transform_mod, only : init_chi_transforms, &
final_chi_transforms
@@ -128,6 +128,8 @@ contains
call feign_finite_element_config( &
cellshape=cellshape_quadrilateral, &
coord_order=0_i_def, &
+ coord_order_multigrid=1_i_def, &
+ coord_space=coord_space_wchi, &
coord_system=coord_system_xyz, &
element_order_h=0_i_def, &
element_order_v=0_i_def, &