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 01e65a2b91..7cb6d50b8b 100644 --- a/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py +++ b/applications/adjoint_tests/rose-meta/lfric-adjoint_tests/versions.py @@ -18,16 +18,22 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..9469f5a471 100644 --- a/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py +++ b/applications/gravity_wave/rose-meta/lfric-gravity_wave/versions.py @@ -17,17 +17,21 @@ def __repr__(self): __str__ = __repr__ +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -""" -Copy this template and complete to add your macro - -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..74858397f2 100644 --- a/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py +++ b/applications/gungho_model/rose-meta/lfric-gungho_model/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..74858397f2 100644 --- a/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py +++ b/applications/jedi_lfric_tests/rose-meta/jedi_common/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 100644 --- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py +++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 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 @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 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 @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 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 @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 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 @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + 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 01e65a2b91..74858397f2 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 @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/applications/jules/rose-meta/lfric-jules/versions.py b/applications/jules/rose-meta/lfric-jules/versions.py index 01e65a2b91..74858397f2 100644 --- a/applications/jules/rose-meta/lfric-jules/versions.py +++ b/applications/jules/rose-meta/lfric-jules/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py b/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py index 01e65a2b91..74858397f2 100644 --- a/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py +++ b/applications/lfric2lfric/rose-meta/lfric-lfric2lfric/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..9469f5a471 100644 --- a/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py +++ b/applications/lfric_atm/rose-meta/lfric-lfric_atm/versions.py @@ -17,17 +17,21 @@ def __repr__(self): __str__ = __repr__ +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -""" -Copy this template and complete to add your macro - -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..74858397f2 100644 --- a/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py +++ b/applications/lfric_coupled/rose-meta/lfric-lfric_coupled/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..7cb6d50b8b 100644 --- a/applications/linear_model/rose-meta/lfric-linear_model/versions.py +++ b/applications/linear_model/rose-meta/lfric-linear_model/versions.py @@ -18,16 +18,22 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..74858397f2 100644 --- a/applications/name_transport/rose-meta/lfric-name_transport/versions.py +++ b/applications/name_transport/rose-meta/lfric-name_transport/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/applications/ngarch/rose-meta/lfric-ngarch/versions.py b/applications/ngarch/rose-meta/lfric-ngarch/versions.py index 01e65a2b91..74858397f2 100644 --- a/applications/ngarch/rose-meta/lfric-ngarch/versions.py +++ b/applications/ngarch/rose-meta/lfric-ngarch/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..74858397f2 100644 --- a/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py +++ b/applications/shallow_water/rose-meta/lfric-shallow_water/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/applications/transport/rose-meta/lfric-transport/versions.py b/applications/transport/rose-meta/lfric-transport/versions.py index 01e65a2b91..7cb6d50b8b 100644 --- a/applications/transport/rose-meta/lfric-transport/versions.py +++ b/applications/transport/rose-meta/lfric-transport/versions.py @@ -18,16 +18,22 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/build/extract/extract.yaml b/build/extract/extract.yaml index d5fdeebee7..f206bd3b88 100644 --- a/build/extract/extract.yaml +++ b/build/extract/extract.yaml @@ -113,6 +113,7 @@ ukca: - src/control/core/top_level/ukca_iniasad.F90 - src/control/core/top_level/ukca_init.F90 - src/control/core/top_level/ukca_main1-ukca_main1.F90 + - src/control/core/top_level/ukca_radaer_lfric_api_mod.F90 - src/control/core/top_level/ukca_setup_mod.F90 - src/control/core/top_level/ukca_solang.F90 - src/control/core/top_level/ukca_step_control_mod.F90 diff --git a/dependencies.yaml b/dependencies.yaml index c1313e4d75..3482258b3f 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -50,5 +50,5 @@ socrates-spectral: ref: 2026.07.1 ukca: - source: git@github.com:MetOffice/ukca.git - ref: 2026.07.1 + source: git@github.com:alanjhewitt/ukca.git + ref: radaer_api_ukca_side_4 diff --git a/documentation/Makefile b/documentation/Makefile index ac93f5da34..7e02492f10 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -8,6 +8,11 @@ SPHINXBUILD ?= sphinx-build SOURCEDIR = source BUILDDIR = build +# For local deployment to ~/public_html// +REPO := $(notdir $(shell git rev-parse --show-toplevel)) +BRANCH := $(shell git rev-parse --abbrev-ref HEAD) +DEPLOYDIR = $(HOME)/public_html + # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -18,9 +23,14 @@ help: # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - + .PHONY: clean clean: @echo "***** Removing, $(BUILDDIR) directory *****" @rm -rf $(BUILDDIR) +deploy: + @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(DEPLOYDIR)/$(REPO)/$(BRANCH)" $(SPHINXOPTS) $(O) + +lint: + sphinx-lint --d "horizontal-tab" --max-line-length 80 "$(SOURCEDIR)" diff --git a/documentation/pyproject.toml b/documentation/pyproject.toml new file mode 100644 index 0000000000..ad2616deae --- /dev/null +++ b/documentation/pyproject.toml @@ -0,0 +1,22 @@ +[project] +name = "lfric-apps-documentation" +version = "2026.07.1" +description = "LFRic Applications Documentation" +readme = "README.md" +requires-python = ">=3.12" + +dependencies = [ + "sphinx==8.1.0", + "pydata-sphinx-theme==0.16.1", + "sphinx-sitemap==2.6.0", + "sphinx_design==0.6.1", + "sphinx-lint==1.0.2", +] + +[project.urls] +repository = "https://github.com/MetOffice/lfric_apps" +documentation = "https://metoffice.github.io/lfric_apps/" +discussion = "https://github.com/MetOffice/simulation-systems/discussions/categories/lfric" + +[tool.setuptools] +packages = [] \ No newline at end of file diff --git a/documentation/source/science_guide/radaer/index.rst b/documentation/source/science_guide/radaer/index.rst new file mode 100644 index 0000000000..603b821ae5 --- /dev/null +++ b/documentation/source/science_guide/radaer/index.rst @@ -0,0 +1,26 @@ +.. ----------------------------------------------------------------------------- + (c) Crown copyright Met Office. All rights reserved. + The file LICENCE, distributed with this code, contains details of the terms + under which the code may be used. + ----------------------------------------------------------------------------- +.. _radaer_api_index: + +Summary of RADAER +================================ + +RADAER is a package of software within the UKCA repository that is called +independently of the rest of UKCA. Functionally, it sits in slow physics and +deals with the interactions between aerosols and SOCRATES (radiation) and is +called prior to the SOCRATES radiation code. + +RADAER gets called directly from its parent applications (for example in +LFRic_apps via radaer_kernel_mod). + + + + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/documentation/source/science_guide/radaer/radaer_api.rst b/documentation/source/science_guide/radaer/radaer_api.rst new file mode 100644 index 0000000000..16bb6b7f30 --- /dev/null +++ b/documentation/source/science_guide/radaer/radaer_api.rst @@ -0,0 +1,34 @@ +.. ----------------------------------------------------------------------------- + (c) Crown copyright Met Office. All rights reserved. + The file LICENCE, distributed with this code, contains details of the terms + under which the code may be used. + ----------------------------------------------------------------------------- + +========== +RADAER API +========== + +:Author: Alan J Hewitt + +Description of RADAER API +========================= + +Radaer will be available to the parent application via a single API module as +a minimal set of top_level subroutines. These will include an initialisation +function to correctly set up radaer for the user inputs and a runtime module. + +Names of subroutines presented via the API will start ```ukca_radaer_``` + +All run time communication between the parent model and UKCA will be via +argument lists. + +All RADAER state variables will be available to the parent model between +time steps as native FORTRAN arrays, for inspection and possible modification. +The fields in these arrays will be in a specific order and size, which will +differ depending on user configuration. The lists of fields will be determined +by field names retrieved by the parent at run time. + +The RADAER interface was designed to be very lean. No significant further +developments are intended for radaer. There is scope to revisit the lean +interface in future, if significant developments are required. However, +replacing RADAER with a different package is more likely to happen in future. diff --git a/interfaces/coupled_interface/rose-meta/coupling/versions.py b/interfaces/coupled_interface/rose-meta/coupling/versions.py index 01e65a2b91..74858397f2 100644 --- a/interfaces/coupled_interface/rose-meta/coupling/versions.py +++ b/interfaces/coupled_interface/rose-meta/coupling/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + 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 01e65a2b91..37bee26630 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 @@ -18,16 +18,44 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select UKCA GLOMAP setting via namelist. -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by + Note that dust_and_clim is treated by UKCA as if setting (6) + but is treated by RADAER as if setting (8) + """ - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + + aerosol_setting = self.get_setting_value(config, + ["namelist:aerosol", + "glomap_mode"]) + + if glomap_mode == "'glomap_mode_dust_and_clim'": + # Existing suites with dust_and_clim need i_mode_setup==6 + i_mode_setup = "'6'" + else if glomap_mode == "'glomap_mode_ukca'": + # Existing suites with ukca need i_mode_setup==8 + i_mode_setup = "'8'" + else if glomap_mode == "'glomap_mode_radaer_test'": + # Existing suites with ukca need i_mode_setup==8 + i_mode_setup = "'8'" + else if glomap_mode == "'glomap_mode_climatology'": + # This is trigger ignored + i_mode_setup = "'0'" + else: + # This is trigger ignored + i_mode_setup = "'0'" + + # Add new settings with the specified option + self.add_setting( config, ["namelist:aerosol","i_mode_setup"], + i_mode_setup ) + return config, self.reports -""" + diff --git a/interfaces/physics_schemes_interface/rose-meta/um-aerosol/HEAD/rose-meta.conf b/interfaces/physics_schemes_interface/rose-meta/um-aerosol/HEAD/rose-meta.conf index c49280c8a5..2851fa3408 100644 --- a/interfaces/physics_schemes_interface/rose-meta/um-aerosol/HEAD/rose-meta.conf +++ b/interfaces/physics_schemes_interface/rose-meta/um-aerosol/HEAD/rose-meta.conf @@ -120,7 +120,7 @@ help=Which emissions options to use =GC5 uses 2D ancillaries for bc_biomass and om_biomass, = and uses all SO2 at low level ns=namelist/Science/UM Aerosol -sort-key=Panel-A02 +sort-key=Panel-A04 trigger=namelist:files=emiss_bc_biomass_ancil_path: 'GC3'; =namelist:files=emiss_om_biomass_ancil_path: 'GC3'; =namelist:files=emiss_so2_high_ancil_path: 'GC3'; @@ -187,6 +187,7 @@ trigger=namelist:aerosol=activation_scheme: 'climatology','dust_and_clim' ; =namelist:aerosol=ukca_scale_marine_pom_ems: 'ukca' ; =namelist:aerosol=ukca_scale_sea_salt_ems: 'ukca' ; =namelist:aerosol=horiz_d: 'ukca','dust_and_clim'; + =namelist:aerosol=i_mode_setup: 'ukca','dust_and_clim'; =namelist:aerosol=us_am: 'ukca','dust_and_clim'; value-titles=off,climatology,ukca,dust_and_clim,radaer_test values='off','climatology','ukca','dust_and_clim','radaer_test' @@ -200,6 +201,36 @@ range=0:99.9 sort-key=Panel-F01 type=real +[namelist:aerosol=i_mode_setup] +compulsory=true +description=Set GLOMAP Aerosol Components and Modes +help= The GLOMAP aerosol scheme is currently available in the configurations + = described below: + = + = 6) Dust (DU) in insoluble accumulation and insoluble coarse mode. + = This is sometimes labelled as DUonly_2mode + = + = 8) Sulphate (SU) Black Carbon (BC) Organic Carbon (OC) Sea Salt (SS) + = Dust (DU) components in 4 soluble modes and 3 insoluble modes. + = This is sometimes labelled SUBCOCSSDU_7mode . + = + = Coming soon setup (12) SUBCOCSSDUNH_7mode for UKESM2. + = + = Coming soon SolInsol. + = + = i_mode_setup is not triggered by glomap_mode_climatology . + = glomap_mode_climatology is hard coded to (8) SUBCOCSSDU_7mode . + = + = Setting glomap_mode_dust_and_clim calls UKCA with (6) dust only. The + = dust prognostic fields are combined with climatology aerosol fields from + = other components (SU, BC, OC, SS). CDNC and RADAER outputs are then + = calculated with GLOMAP setting (8) SUBCOCSSDU_7mode . + = glomap_mode_dust_and_clim is used for operational NWP which requires dust + = prognostic fields for visibility and everything else needs to be fast. +sort-key=Panel-A03 +value-titles=6,8 +values='6','8' + [namelist:aerosol=l_radaer] compulsory=true description=Direct effect of climatology aerosols in RADAER @@ -223,7 +254,7 @@ description=Marine POM emission scale factor help=Scaling factor for marine particulate organic matter emission !kind=double range=0.0:10.0 -sort-key=Panel-A02b +sort-key=Panel-A04b type=real [namelist:aerosol=murk] @@ -314,7 +345,7 @@ description=Sea salt emission scale factor help=Scaling factor for sea salt emission !kind=double range=0.0:10.0 -sort-key=Panel-A02d +sort-key=Panel-A04d type=real [namelist:aerosol=sulphuric_strat_climatology] @@ -350,7 +381,7 @@ help=Number of segments used in ukca_aero_ctl. This is required to be greater = than 1 to run GLOMAP with OpenMP multithreading. !kind=default ns=namelist/Science/UM Aerosol -sort-key=Panel-A01 +sort-key=Panel-A02 type=integer [namelist:aerosol=ukca_scale_marine_pom_ems] @@ -363,7 +394,7 @@ help=This logical activates the scaling factor marine_pom_ems_scaling. =it maybe be necessary to scale emissions to gain agreement across =resolutions. !kind=default -sort-key=Panel-A02a +sort-key=Panel-A04a trigger=namelist:aerosol=marine_pom_ems_scaling: .true. ; type=logical @@ -376,7 +407,7 @@ help=This logical activates the scaling factor sea_salt_ems_scaling. =generally stronger at higher resolutions. Hence it maybe be necessary =to scale emissions to gain agreement across resolutions. !kind=default -sort-key=Panel-A02c +sort-key=Panel-A04c trigger=namelist:aerosol=sea_salt_ems_scaling: .true. ; type=logical diff --git a/interfaces/physics_schemes_interface/rose-meta/um-aerosol/versions.py b/interfaces/physics_schemes_interface/rose-meta/um-aerosol/versions.py index 01e65a2b91..74858397f2 100644 --- a/interfaces/physics_schemes_interface/rose-meta/um-aerosol/versions.py +++ b/interfaces/physics_schemes_interface/rose-meta/um-aerosol/versions.py @@ -18,16 +18,21 @@ def __repr__(self): __str__ = __repr__ -""" -Copy this template and complete to add your macro +class vn32_t683(MacroUpgrade): + """ + Upgrade macro for ticket #683 by Alan J Hewitt. + Users can now select GLOMAP setting via namelist. + NWP option glomap_mode_dust_and_clim is hard coded to i_mode_setup == 8 + Simple option glomap_mode_climatology is hard coded to i_mode_setup == 8 + """ -class vnXX_txxx(MacroUpgrade): - # Upgrade macro for by - - BEFORE_TAG = "vnX.X" - AFTER_TAG = "vnX.X_txxx" + BEFORE_TAG = "vn3.2" + AFTER_TAG = "vn3.2_t683" def upgrade(self, config, meta_config=None): # Add settings + self.add_setting( config, ["namelist:aerosol", + "i_mode_setup"], "8" ) + return config, self.reports -""" + diff --git a/interfaces/physics_schemes_interface/source/kernel/radaer_kernel_mod.F90 b/interfaces/physics_schemes_interface/source/kernel/radaer_kernel_mod.F90 index c562073878..42b55e903f 100644 --- a/interfaces/physics_schemes_interface/source/kernel/radaer_kernel_mod.F90 +++ b/interfaces/physics_schemes_interface/source/kernel/radaer_kernel_mod.F90 @@ -24,8 +24,12 @@ module radaer_kernel_mod use kernel_mod, only: kernel_type +use log_mod, only: log_event, log_scratch_space, LOG_LEVEL_ERROR + implicit none +private + !------------------------------------------------------------------------------- ! Public types !------------------------------------------------------------------------------- @@ -140,7 +144,7 @@ module radaer_kernel_mod integer :: operates_on = CELL_COLUMN contains procedure, nopass :: radaer_code -end type +end type radaer_kernel_type public :: radaer_code @@ -365,14 +369,12 @@ subroutine radaer_code( nlayers, & use nlsizes_namelist_mod, only: row_length, rows use ukca_mode_setup, only: nmodes, ncp_max, & - mode_nuc_sol, & mode_ait_sol, mode_acc_sol, & mode_cor_sol, mode_ait_insol, & mode_acc_insol, mode_cor_insol, & cp_su, cp_bc, cp_oc, & cp_cl, cp_du, cp_so, & cp_no3, cp_nn, cp_nh4, & - i_ukca_bc_tuned, & ip_ukca_mode_aitken, & ip_ukca_mode_accum, & ip_ukca_mode_coarse @@ -389,6 +391,8 @@ subroutine radaer_code( nlayers, & use ukca_option_mod, only: do_not_prescribe + use ukca_radaer_lfric_api_mod, only: ukca_radaer_lfric_interface + implicit none ! Arguments @@ -520,10 +524,6 @@ subroutine radaer_code( nlayers, & integer(i_um) :: npd_exclude_sw logical, parameter :: l_exclude_sw = .true. logical, parameter :: l_exclude_lw = .true. - integer(i_um), parameter :: ip_solar = 1 - integer(i_um), parameter :: ip_infra_red = 2 - - integer(i_um) :: npd_profile ! Prescribed single-scattering albedo dummy variables ! Make these namelist options later @@ -536,6 +536,10 @@ subroutine radaer_code( nlayers, & ! Loop counters integer(i_um) :: k, i, i_band, i_mode, i_rmode + integer(i_um) :: mm, m, n_fields, nn_fields + + ! Need to pass through argument list + integer(i_um) :: ncp_max_x_nmodes ! pressure on theta levels real(r_um),dimension( row_length, rows, nlayers ) :: p_theta_levels @@ -544,76 +548,36 @@ subroutine radaer_code( nlayers, & real(r_um),dimension( row_length, rows, nlayers ) :: t_theta_levels ! d_mass on theta levels - real(r_um),dimension( row_length, rows, nlayers ) :: d_mass_theta_levels_um - - real(r_um),dimension( n_ukca_cpnt, row_length*rows, nlayers ) :: & - ukca_comp_vol_um - - real(r_um),dimension( n_ukca_cpnt, row_length*rows, nlayers ) :: & - ukca_mix_ratio_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_dry_diam_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_wet_diam_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_modal_nbr_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_modal_number_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_modal_rho_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_modal_vol_um - - real(r_um),dimension( row_length*rows, nlayers, n_ukca_mode ) :: & - ukca_modal_wtv_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode) :: & - ukca_mode_mix_ratio_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_lw_band) :: & - aer_lw_absorption_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_lw_band) :: & - aer_lw_scattering_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_lw_band) :: & - aer_lw_asymmetry_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_sw_band) :: & - aer_sw_absorption_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_sw_band) :: & - aer_sw_scattering_um - - real(r_um),dimension( row_length*rows, nlayers, n_radaer_mode, n_sw_band) :: & - aer_sw_asymmetry_um - - integer, parameter :: i_ukca_tune_bc = i_ukca_bc_tuned - integer, parameter :: i_glomap_clim_tune_bc = i_ukca_bc_tuned - logical, parameter :: l_nitrate = .false. ! Make this a namelist option later - logical, parameter :: l_sustrat = .true. ! Make this a namelist option later - ! l_sustrat=.true. for ga9 - logical, parameter :: l_cornarrow_ins = .false. - ! Make this a namelist option later - - integer(i_um) :: ncp_max_x_nmodes - integer(i_um) :: i_cpnt_index( ncp_max, nmodes ) - integer(i_um) :: i_cpnt_type( ncp_max * nmodes ) - integer(i_um) :: i_mode_type( nmodes ) - integer(i_um) :: n_cpnt_in_mode( nmodes ) - logical :: l_soluble( nmodes ) + real(r_um),dimension( row_length, rows, nlayers ) :: d_mass_theta_levels + + ! Allocation of arrays + + real(r_um), allocatable :: ukca_comp_vol(:,:,:) + real(r_um), allocatable :: ukca_mix_ratio(:,:,:) + real(r_um), allocatable :: ukca_dry_diam(:,:,:) + real(r_um), allocatable :: ukca_wet_diam(:,:,:) + real(r_um), allocatable :: ukca_modal_nbr(:,:,:) + real(r_um), allocatable :: ukca_modal_rho(:,:,:) + real(r_um), allocatable :: ukca_modal_vol(:,:,:) + real(r_um), allocatable :: ukca_modal_wtv(:,:,:) + + real(r_um), allocatable :: ukca_mode_mix_ratio(:,:,:) + + real(r_um), allocatable :: aer_lw_absorption_radaer(:,:,:,:) + real(r_um), allocatable :: aer_lw_scattering_radaer(:,:,:,:) + real(r_um), allocatable :: aer_lw_asymmetry_radaer(:,:,:,:) + real(r_um), allocatable :: aer_sw_absorption_radaer(:,:,:,:) + real(r_um), allocatable :: aer_sw_scattering_radaer(:,:,:,:) + real(r_um), allocatable :: aer_sw_asymmetry_radaer(:,:,:,:) + real(r_um), allocatable :: aod_ukca_all_modes(:,:,:) + real(r_um), allocatable :: sod_ukca_all_modes(:,:,:) + real(r_um), allocatable :: aaod_ukca_all_modes(:,:,:) ! By convention, arrays are inverted in UM radiation code ! Since we are calling from LFRic, arrays will not be inverted ! This matters for determining whether a level is above the tropopause logical, parameter :: l_inverted = .false. - integer(i_um) :: trindxrad_um( row_length * rows ) + integer(i_um) :: trindxrad( row_length * rows ) ! Variables close to but not exactly 1 or -1 for bounding asymmetry real(r_def), parameter :: one_minus_eps = 1.0_r_def - epsilon(1.0_r_def) @@ -621,66 +585,209 @@ subroutine radaer_code( nlayers, & !----------------------------------------------------------------------- - logical, parameter :: soluble_wanted = .true. - logical, parameter :: soluble_unwanted = .false. - - !----------------------------------------------------------------------- - ! UKCA modal optical depth diagnostics: full column - real(r_um) :: aod_ukca_this_mode_um( row_length*rows, npd_ukca_aod_wavel ) + real(r_um) :: aod_ukca_this_mode( row_length*rows, npd_ukca_aod_wavel ) ! Not yet included as diagnostic ! UKCA modal optical depth diagnostics: stratosphere - real(r_um) :: sod_ukca_this_mode_um( row_length*rows, npd_ukca_aod_wavel ) + real(r_um) :: sod_ukca_this_mode( row_length*rows, npd_ukca_aod_wavel ) ! UKCA modal absorption optical depth diagnostics: full column - real(r_um) :: aaod_ukca_this_mode_um( row_length*rows, npd_ukca_aod_wavel ) + real(r_um) :: aaod_ukca_this_mode( row_length*rows, npd_ukca_aod_wavel ) !----------------------------------------------------------------------- - ncp_max_x_nmodes = ncp_max * nmodes + logical :: l_aod_ukca_ait_sol + logical :: l_aaod_ukca_ait_sol + logical :: l_aod_ukca_acc_sol + logical :: l_aaod_ukca_acc_sol + logical :: l_aod_ukca_cor_sol + logical :: l_aaod_ukca_cor_sol + logical :: l_aod_ukca_ait_ins + logical :: l_aaod_ukca_ait_ins + logical :: l_aod_ukca_acc_ins + logical :: l_aaod_ukca_acc_ins + logical :: l_aod_ukca_cor_ins + logical :: l_aaod_ukca_cor_ins + logical :: l_any_lit_points - npd_profile = row_length * rows + !----------------------------------------------------------------------- + + integer, parameter :: max_fldname_len = 40 + + character(len=max_fldname_len), parameter, dimension(17) :: & + pvol_comp_names = [ 'fldname_pvol_su_ait_sol' , & + 'fldname_pvol_bc_ait_sol' , & + 'fldname_pvol_om_ait_sol' , & + 'fldname_pvol_su_acc_sol' , & + 'fldname_pvol_bc_acc_sol' , & + 'fldname_pvol_om_acc_sol' , & + 'fldname_pvol_ss_acc_sol' , & + 'fldname_pvol_du_acc_sol' , & + 'fldname_pvol_su_cor_sol' , & + 'fldname_pvol_bc_cor_sol' , & + 'fldname_pvol_om_cor_sol' , & + 'fldname_pvol_ss_cor_sol' , & + 'fldname_pvol_du_cor_sol' , & + 'fldname_pvol_bc_ait_ins' , & + 'fldname_pvol_om_ait_ins' , & + 'fldname_pvol_du_acc_ins' , & + 'fldname_pvol_du_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(17) :: & + comp_names = [ 'fldname_ait_sol_su' , & + 'fldname_ait_sol_bc' , & + 'fldname_ait_sol_om' , & + 'fldname_acc_sol_su' , & + 'fldname_acc_sol_bc' , & + 'fldname_acc_sol_om' , & + 'fldname_acc_sol_ss' , & + 'fldname_acc_sol_du' , & + 'fldname_cor_sol_su' , & + 'fldname_cor_sol_bc' , & + 'fldname_cor_sol_om' , & + 'fldname_cor_sol_ss' , & + 'fldname_cor_sol_du' , & + 'fldname_ait_ins_bc' , & + 'fldname_ait_ins_om' , & + 'fldname_acc_ins_du' , & + 'fldname_cor_ins_du' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + mode_names = [ 'fldname_n_ait_sol' , & + 'fldname_n_acc_sol' , & + 'fldname_n_cor_sol' , & + 'fldname_n_ait_ins' , & + 'fldname_n_acc_ins' , & + 'fldname_n_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + rhopar_mode_names = [ 'fldname_rhopar_ait_sol' , & + 'fldname_rhopar_acc_sol' , & + 'fldname_rhopar_cor_sol' , & + 'fldname_rhopar_ait_ins' , & + 'fldname_rhopar_acc_ins' , & + 'fldname_rhopar_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + dry_diam_mode_names = [ 'fldname_drydp_ait_sol' , & + 'fldname_drydp_acc_sol' , & + 'fldname_drydp_cor_sol' , & + 'fldname_drydp_ait_ins' , & + 'fldname_drydp_acc_ins' , & + 'fldname_drydp_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + modal_volume_names = [ 'fldname_mod_vol_ait_sol' , & + 'fldname_mod_vol_acc_sol' , & + 'fldname_mod_vol_cor_sol' , & + 'fldname_mod_vol_ait_ins' , & + 'fldname_mod_vol_acc_ins' , & + 'fldname_mod_vol_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(4) :: & + ait_sol_volume_names = [ 'pvol_wat_ait_sol' , & + 'pvol_su_ait_sol ' , & + 'pvol_bc_ait_sol ' , & + 'pvol_om_ait_sol ' ] + + character(len=max_fldname_len), parameter,dimension(5) :: & + acc_sol_volume_names = [ 'pvol_wat_acc_sol' , & + 'pvol_su_acc_sol ' , & + 'pvol_bc_acc_sol ' , & + 'pvol_om_acc_sol ' , & + 'pvol_ss_acc_sol ' ] + + character(len=max_fldname_len), parameter,dimension(5) :: & + cor_sol_volume_names = [ 'pvol_wat_cor_sol' , & + 'pvol_su_cor_sol ' , & + 'pvol_bc_cor_sol ' , & + 'pvol_om_cor_sol ' , & + 'pvol_ss_cor_sol ' ] + + character(len=max_fldname_len), parameter,dimension(2) :: & + ait_ins_volume_names = [ 'pvol_bc_ait_ins' , & + 'pvol_om_ait_ins' ] + + character(len=max_fldname_len), parameter, dimension(1) :: & + acc_ins_volume_names = [ 'pvol_du_acc_ins' ] + + character(len=max_fldname_len), parameter, dimension(1) :: & + cor_ins_volume_names = [ 'pvol_du_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + modal_wtv_names = [ 'fldname_pvol_wat_ait_sol' , & + 'fldname_pvol_wat_acc_sol' , & + 'fldname_pvol_wat_cor_sol' , & + 'fldname_pvol_wat_ait_ins' , & + 'fldname_pvol_wat_acc_ins' , & + 'fldname_pvol_wat_cor_ins' ] + + character(len=max_fldname_len), parameter, dimension(6) :: & + wet_diam_mode_names = [ 'fldname_wetdp_ait_sol' , & + 'fldname_wetdp_acc_sol' , & + 'fldname_wetdp_cor_sol' , & + 'fldname_wetdp_ait_ins' , & + 'fldname_wetdp_acc_ins' , & + 'fldname_wetdp_cor_ins' ] + + !----------------------------------------------------------------------- + + ncp_max_x_nmodes = ncp_max * nmodes npd_exclude_lw = SIZE( lw_index_exclude, 1 ) npd_exclude_sw = SIZE( sw_index_exclude, 1 ) ! Note that this is inverted compared to the UM ! This will be dealt with in ukca_radaer_band_average - trindxrad_um(1) = trop_level( map_2d(1) ) + trindxrad(1) = trop_level( map_2d(1) ) !----------------------------------------------------------------------- ! Populate ukca_radaer element arrays ! Note that nucleation mode gets ignored in some of these + + l_aod_ukca_ait_sol = ( .not. associated( aod_ukca_ait_sol, empty_real_data )) + l_aaod_ukca_ait_sol= ( .not. associated(aaod_ukca_ait_sol, empty_real_data )) + l_aod_ukca_acc_sol = ( .not. associated( aod_ukca_acc_sol, empty_real_data )) + l_aaod_ukca_acc_sol= ( .not. associated(aaod_ukca_acc_sol, empty_real_data )) + l_aod_ukca_cor_sol = ( .not. associated( aod_ukca_cor_sol, empty_real_data )) + l_aaod_ukca_cor_sol= ( .not. associated(aaod_ukca_cor_sol, empty_real_data )) + l_aod_ukca_ait_ins = ( .not. associated( aod_ukca_ait_ins, empty_real_data )) + l_aaod_ukca_ait_ins= ( .not. associated(aaod_ukca_ait_ins, empty_real_data )) + l_aod_ukca_acc_ins = ( .not. associated( aod_ukca_acc_ins, empty_real_data )) + l_aaod_ukca_acc_ins= ( .not. associated(aaod_ukca_acc_ins, empty_real_data )) + l_aod_ukca_cor_ins = ( .not. associated( aod_ukca_cor_ins, empty_real_data )) + l_aaod_ukca_cor_ins= ( .not. associated(aaod_ukca_cor_ins, empty_real_data )) + !----------------------------------------------------------------------- + ! Allocation of arrays + + allocate( ukca_mode_mix_ratio( 1, nlayers, n_radaer_mode ) ) + allocate( aer_lw_absorption_radaer( 1, nlayers, n_radaer_mode, n_lw_band ) ) + allocate( aer_lw_scattering_radaer( 1, nlayers, n_radaer_mode, n_lw_band ) ) + allocate( aer_lw_asymmetry_radaer( 1, nlayers, n_radaer_mode, n_lw_band ) ) + allocate( aer_sw_absorption_radaer( 1, nlayers, n_radaer_mode, n_sw_band ) ) + allocate( aer_sw_scattering_radaer( 1, nlayers, n_radaer_mode, n_sw_band ) ) + allocate( aer_sw_asymmetry_radaer( 1, nlayers, n_radaer_mode, n_sw_band ) ) + allocate( aod_ukca_all_modes( 1, npd_ukca_aod_wavel, n_ukca_mode ) ) + allocate( sod_ukca_all_modes( 1, npd_ukca_aod_wavel, n_ukca_mode ) ) + allocate( aaod_ukca_all_modes( 1, npd_ukca_aod_wavel, n_ukca_mode ) ) + + !----------------------------------------------------------------------- + ! Segmentation and openmp would start here + !----------------------------------------------------------------------- + + ! Whether we need to run shortwave band_average because lit or not + l_any_lit_points = .false. + if ( n_radaer_step > 1 ) then + l_any_lit_points = .true. + else + if ( lit_fraction( map_2d(1) ) > 0.0_r_def ) then + l_any_lit_points = .true. + end if + end if - ! No nucleation mode - l_soluble(1:nmodes) = (/.true., .true., .true., .false., & - .false.,.false.,.false.,.false./) - - ! No nucleation mode - n_cpnt_in_mode(1:nmodes) = (/ 3, 5, 5, 2, 1, 1, -1, -1 /) - - ! No nucleation mode - i_mode_type(1:nmodes) = (/ 1, 2, 3, 1, 2, 3, -1, -1 /) - - ! No nucleation mode - i_cpnt_index(cp_su, 1:nmodes)=(/ 1, 4, 9, 14, 16, 17, -1, -1 /) - i_cpnt_index(cp_bc, 1:nmodes)=(/ 2, 5, 10, 15, -1, -1, -1, -1 /) - i_cpnt_index(cp_oc, 1:nmodes)=(/ 3, 6, 11, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_cl, 1:nmodes)=(/ -1, 7, 12, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_du, 1:nmodes)=(/ -1, 8, 13, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_so, 1:nmodes)=(/ -1, -1, -1, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_no3,1:nmodes)=(/ -1, -1, -1, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_nn, 1:nmodes)=(/ -1, -1, -1, -1, -1, -1, -1, -1 /) - i_cpnt_index(cp_nh4,1:nmodes)=(/ -1, -1, -1, -1, -1, -1, -1, -1 /) - - i_cpnt_type(1:ncp_max_x_nmodes) = (/ 1, 2, 3, 1, 2, 3, 4, 5, 1, & - 2, 3, 4, 5, 2, 3, 5, 5, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1, & - -1, -1, -1, -1, -1, -1, -1, -1, -1 /) + ! Note that this is inverted compared to the UM + ! This will be dealt with in ukca_radaer_band_average + trindxrad(1) = trop_level( map_2d(1) ) !----------------------------------------------------------------------- ! Initialisation of prognostic variables and arrays @@ -688,356 +795,629 @@ subroutine radaer_code( nlayers, & do k = 1, nlayers p_theta_levels(1,1,k) = p_zero * & - ( exner_in_wth(map_wth(1) + k) )**(1.0_r_um/kappa) + ( exner_in_wth(map_wth(1) + k) )**(1.0_r_um/kappa) end do do k = 1, nlayers t_theta_levels(1,1,k) = exner_in_wth(map_wth(1) + k) * & - theta_in_wth(map_wth(1) + k) + theta_in_wth(map_wth(1) + k) end do - ! note - zeroth level is redundant for these fields in UM - do k = 1, nlayers - ukca_comp_vol_um(1, 1,k) = pvol_su_ait_sol(map_wth(1) + k) - ukca_comp_vol_um(2, 1,k) = pvol_bc_ait_sol(map_wth(1) + k) - ukca_comp_vol_um(3, 1,k) = pvol_om_ait_sol(map_wth(1) + k) - ukca_comp_vol_um(4, 1,k) = pvol_su_acc_sol(map_wth(1) + k) - ukca_comp_vol_um(5, 1,k) = pvol_bc_acc_sol(map_wth(1) + k) - ukca_comp_vol_um(6, 1,k) = pvol_om_acc_sol(map_wth(1) + k) - ukca_comp_vol_um(7, 1,k) = pvol_ss_acc_sol(map_wth(1) + k) - ukca_comp_vol_um(8, 1,k) = 0.0_r_um ! no pvol_du_acc_sol prognostic - ukca_comp_vol_um(9, 1,k) = pvol_su_cor_sol(map_wth(1) + k) - ukca_comp_vol_um(10,1,k) = pvol_bc_cor_sol(map_wth(1) + k) - ukca_comp_vol_um(11,1,k) = pvol_om_cor_sol(map_wth(1) + k) - ukca_comp_vol_um(12,1,k) = pvol_ss_cor_sol(map_wth(1) + k) - ukca_comp_vol_um(13,1,k) = 0.0_r_um ! no pvol_du_cor_sol prognostic - ukca_comp_vol_um(14,1,k) = pvol_bc_ait_ins(map_wth(1) + k) - ukca_comp_vol_um(15,1,k) = pvol_om_ait_ins(map_wth(1) + k) - ukca_comp_vol_um(16,1,k) = pvol_du_acc_ins(map_wth(1) + k) - ukca_comp_vol_um(17,1,k) = pvol_du_cor_ins(map_wth(1) + k) - - ukca_mix_ratio_um(1, 1,k) = ait_sol_su(map_wth(1) + k) - ukca_mix_ratio_um(2, 1,k) = ait_sol_bc(map_wth(1) + k) - ukca_mix_ratio_um(3, 1,k) = ait_sol_om(map_wth(1) + k) - ukca_mix_ratio_um(4, 1,k) = acc_sol_su(map_wth(1) + k) - ukca_mix_ratio_um(5, 1,k) = acc_sol_bc(map_wth(1) + k) - ukca_mix_ratio_um(6, 1,k) = acc_sol_om(map_wth(1) + k) - ukca_mix_ratio_um(7, 1,k) = acc_sol_ss(map_wth(1) + k) - ukca_mix_ratio_um(8, 1,k) = 0.0_r_um ! no acc_sol_du prognostic - ukca_mix_ratio_um(9, 1,k) = cor_sol_su(map_wth(1) + k) - ukca_mix_ratio_um(10,1,k) = cor_sol_bc(map_wth(1) + k) - ukca_mix_ratio_um(11,1,k) = cor_sol_om(map_wth(1) + k) - ukca_mix_ratio_um(12,1,k) = cor_sol_ss(map_wth(1) + k) - ukca_mix_ratio_um(13,1,k) = 0.0_r_um ! no cor_sol_du prognostic - ukca_mix_ratio_um(14,1,k) = ait_ins_bc(map_wth(1) + k) - ukca_mix_ratio_um(15,1,k) = ait_ins_om(map_wth(1) + k) - ukca_mix_ratio_um(16,1,k) = acc_ins_du(map_wth(1) + k) - ukca_mix_ratio_um(17,1,k) = cor_ins_du(map_wth(1) + k) - - ukca_dry_diam_um(1,k,(mode_ait_sol-1)) = drydp_ait_sol(map_wth(1) + k) - ukca_dry_diam_um(1,k,(mode_acc_sol-1)) = drydp_acc_sol(map_wth(1) + k) - ukca_dry_diam_um(1,k,(mode_cor_sol-1)) = drydp_cor_sol(map_wth(1) + k) - ukca_dry_diam_um(1,k,(mode_ait_insol-1)) = drydp_ait_ins(map_wth(1) + k) - ukca_dry_diam_um(1,k,(mode_acc_insol-1)) = drydp_acc_ins(map_wth(1) + k) - ukca_dry_diam_um(1,k,(mode_cor_insol-1)) = drydp_cor_ins(map_wth(1) + k) - - ukca_modal_nbr_um(1,k,(mode_ait_sol-1)) = n_ait_sol(map_wth(1) + k) - ukca_modal_nbr_um(1,k,(mode_acc_sol-1)) = n_acc_sol(map_wth(1) + k) - ukca_modal_nbr_um(1,k,(mode_cor_sol-1)) = n_cor_sol(map_wth(1) + k) - ukca_modal_nbr_um(1,k,(mode_ait_insol-1)) = n_ait_ins(map_wth(1) + k) - ukca_modal_nbr_um(1,k,(mode_acc_insol-1)) = n_acc_ins(map_wth(1) + k) - ukca_modal_nbr_um(1,k,(mode_cor_insol-1)) = n_cor_ins(map_wth(1) + k) - - ukca_modal_rho_um(1,k,(mode_ait_sol-1)) = rhopar_ait_sol(map_wth(1) + k) - ukca_modal_rho_um(1,k,(mode_acc_sol-1)) = rhopar_acc_sol(map_wth(1) + k) - ukca_modal_rho_um(1,k,(mode_cor_sol-1)) = rhopar_cor_sol(map_wth(1) + k) - ukca_modal_rho_um(1,k,(mode_ait_insol-1)) = rhopar_ait_ins(map_wth(1) + k) - ukca_modal_rho_um(1,k,(mode_acc_insol-1)) = rhopar_acc_ins(map_wth(1) + k) - ukca_modal_rho_um(1,k,(mode_cor_insol-1)) = rhopar_cor_ins(map_wth(1) + k) - - ukca_modal_vol_um(1,k,(mode_ait_sol-1)) = pvol_wat_ait_sol(map_wth(1) + k)+& - pvol_su_ait_sol( map_wth(1) + k)+& - pvol_bc_ait_sol( map_wth(1) + k)+& - pvol_om_ait_sol( map_wth(1) + k) - - ukca_modal_vol_um(1,k,(mode_acc_sol-1)) = pvol_wat_acc_sol(map_wth(1) + k)+& - pvol_su_acc_sol( map_wth(1) + k)+& - pvol_bc_acc_sol( map_wth(1) + k)+& - pvol_om_acc_sol( map_wth(1) + k)+& - pvol_ss_acc_sol( map_wth(1) + k) - ! add pvol_du_acc_sol if used - - ukca_modal_vol_um(1,k,(mode_cor_sol-1)) = pvol_wat_cor_sol(map_wth(1) + k)+& - pvol_su_cor_sol( map_wth(1) + k)+& - pvol_bc_cor_sol( map_wth(1) + k)+& - pvol_om_cor_sol( map_wth(1) + k)+& - pvol_ss_cor_sol( map_wth(1) + k) - ! add pvol_du_cor_sol if used - - ukca_modal_vol_um(1,k,(mode_ait_insol-1))=pvol_bc_ait_ins( map_wth(1) + k)+& - pvol_om_ait_ins( map_wth(1) + k) - - ukca_modal_vol_um(1,k,(mode_acc_insol-1))=pvol_du_acc_ins( map_wth(1) + k) - - ukca_modal_vol_um(1,k,(mode_cor_insol-1))=pvol_du_cor_ins( map_wth(1) + k) - - ukca_modal_wtv_um(1,k,(mode_ait_sol-1)) = pvol_wat_ait_sol(map_wth(1) + k) - ukca_modal_wtv_um(1,k,(mode_acc_sol-1)) = pvol_wat_acc_sol(map_wth(1) + k) - ukca_modal_wtv_um(1,k,(mode_cor_sol-1)) = pvol_wat_cor_sol(map_wth(1) + k) - ukca_modal_wtv_um(1,k,(mode_ait_insol-1)) = 0.0_r_um - ukca_modal_wtv_um(1,k,(mode_acc_insol-1)) = 0.0_r_um - ukca_modal_wtv_um(1,k,(mode_cor_insol-1)) = 0.0_r_um - - ukca_wet_diam_um(1,k,(mode_ait_sol-1)) = wetdp_ait_sol(map_wth(1) + k) - ukca_wet_diam_um(1,k,(mode_acc_sol-1)) = wetdp_acc_sol(map_wth(1) + k) - ukca_wet_diam_um(1,k,(mode_cor_sol-1)) = wetdp_cor_sol(map_wth(1) + k) - ukca_wet_diam_um(1,k,(mode_ait_insol-1)) = drydp_ait_ins(map_wth(1) + k) - ukca_wet_diam_um(1,k,(mode_acc_insol-1)) = drydp_acc_ins(map_wth(1) + k) - ukca_wet_diam_um(1,k,(mode_cor_insol-1)) = drydp_cor_ins(map_wth(1) + k) + !----------------------------------------------------------------------- + + ! -- ukca_comp_vol -- + n_fields = size(pvol_comp_names) + allocate(ukca_comp_vol(n_fields, 1, nlayers)) + ukca_comp_vol = 0.0_r_um + + do m = 1, n_fields + select case(trim(pvol_comp_names(m))) + case('fldname_pvol_su_ait_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_su_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_bc_ait_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_bc_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_om_ait_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_om_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_su_acc_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_su_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_bc_acc_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_bc_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_om_acc_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_om_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_ss_acc_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_ss_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_du_acc_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= 0.0_r_um + end do + case('fldname_pvol_su_cor_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_su_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_bc_cor_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_bc_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_om_cor_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_om_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_ss_cor_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_ss_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_du_cor_sol') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= 0.0_r_um + end do + case('fldname_pvol_bc_ait_ins') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_bc_ait_ins(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_om_ait_ins') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_om_ait_ins(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_du_acc_ins') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_du_acc_ins(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_du_cor_ins') + do k = 1, nlayers + ukca_comp_vol(m, 1, k)= real( pvol_du_cor_ins(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_comp_vol : ', pvol_comp_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select end do - call ukca_radaer_prepare( & - ! Input Actual array dimensions - npd_profile, nlayers, n_ukca_mode, n_ukca_cpnt, & - ! Input Fixed array dimensions - npd_profile, nlayers, n_radaer_mode, & - ! Input from the UKCA_RADAER structure - nmodes, ncp_max, i_cpnt_index, n_cpnt_in_mode, & - ! Input Component mass-mixing ratios - ukca_mix_ratio_um, & - ! Input modal number concentrations - ukca_modal_nbr_um, & - ! Input Pressure and temperature - p_theta_levels, t_theta_levels, & - ! Output Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Output modal number concentrations - ukca_modal_number_um & - ) - - ! MODE aerosol mixing ratios - do i_mode = 1, n_radaer_mode - do k = 1, nlayers - aer_mix_ratio( map_mode(1) + ( (i_mode-1)*(nlayers+1) ) + k ) = & - ukca_mode_mix_ratio_um( 1, k, i_mode ) - end do + ! -- ukca_mix_ratio -- + n_fields = size(comp_names) + allocate(ukca_mix_ratio(n_fields, 1, nlayers)) + ukca_mix_ratio = 0.0_r_um + + do m = 1, n_fields + select case(trim(comp_names(m))) + case('fldname_ait_sol_su') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( ait_sol_su(map_wth(1) + k), r_um ) + end do + case('fldname_ait_sol_bc') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( ait_sol_bc(map_wth(1) + k), r_um ) + end do + case('fldname_ait_sol_om') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( ait_sol_om(map_wth(1) + k), r_um ) + end do + case('fldname_acc_sol_su') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( acc_sol_su(map_wth(1) + k), r_um ) + end do + case('fldname_acc_sol_bc') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( acc_sol_bc(map_wth(1) + k), r_um ) + end do + case('fldname_acc_sol_om') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( acc_sol_om(map_wth(1) + k), r_um ) + end do + case('fldname_acc_sol_ss') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( acc_sol_ss(map_wth(1) + k), r_um ) + end do + case('fldname_acc_sol_du') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = 0.0_r_um + end do + case('fldname_cor_sol_su') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( cor_sol_su(map_wth(1) + k), r_um ) + end do + case('fldname_cor_sol_bc') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( cor_sol_bc(map_wth(1) + k), r_um ) + end do + case('fldname_cor_sol_om') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( cor_sol_om(map_wth(1) + k), r_um ) + end do + case('fldname_cor_sol_ss') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( cor_sol_ss(map_wth(1) + k), r_um ) + end do + case('fldname_cor_sol_du') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = 0.0_r_um + end do + case('fldname_ait_ins_bc') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( ait_ins_bc(map_wth(1) + k), r_um ) + end do + case('fldname_ait_ins_om') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( ait_ins_om(map_wth(1) + k), r_um ) + end do + case('fldname_acc_ins_du') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( acc_ins_du(map_wth(1) + k), r_um ) + end do + case('fldname_cor_ins_du') + do k = 1, nlayers + ukca_mix_ratio(m, 1, k) = real( cor_ins_du(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_mix_ratio : ', comp_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select end do - ! Long wave ( e.g. ip_infra_red ) - call ukca_radaer_band_average( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_radaer_mode, & - n_lw_band, & - npd_exclude_lw, & - ! Spectral information (input) - n_lw_band, & - ip_infra_red, & - l_exclude_lw, & - lw_n_band_exclude, & - lw_index_exclude, & - ! Actual array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - ! Prescribed SSA dimensions - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - i_mode_type, & - l_nitrate, & - l_soluble, & - l_sustrat, & - l_cornarrow_ins, & - n_cpnt_in_mode, & - ! Modal mass-mixing ratios (input) - ukca_mode_mix_ratio_um, & - ! Modal number concentrations (input) - ukca_modal_number_um, & - ! Modal diameters from UKCA module (input) - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Other inputs from UKCA module (input) - ukca_comp_vol_um, & - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Logical to describe orientation - l_inverted, & - ! Logical for prescribed single scattering albedo array - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause (input) - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Maxwell-Garnett mixing approach logical control switches - i_ukca_tune_bc, i_glomap_clim_tune_bc, & - ! Band-averaged optical properties (output) - aer_lw_absorption_um, & - aer_lw_scattering_um, & - aer_lw_asymmetry_um & - ) - - ! Socrates arrays filled with MODE aerosol optical properties in bands - i_rmode = 0 - do i_band = 1, n_lw_band - - ! Fill the radaer modes within this band - do i_mode = 1, n_radaer_mode - i_rmode = i_rmode + 1 + ! -- ukca_modal_nbr -- + n_fields = size(mode_names) + allocate(ukca_modal_nbr(1, nlayers, n_fields)) + ukca_modal_nbr = 0.0_r_um + + do m = 1, n_fields + select case(trim(mode_names(m))) + case('fldname_n_nuc_sol') + write( log_scratch_space, '(A,A)' ) & + 'Radaer should not request soluble nucleation mode: ', mode_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + case('fldname_n_ait_sol') do k = 1, nlayers - aer_lw_absorption(map_rmode_lw(1) + ((i_rmode-1)*(nlayers+1)) + k ) = & - aer_lw_absorption_um( 1, k, i_mode, i_band ) - aer_lw_scattering(map_rmode_lw(1) + ((i_rmode-1)*(nlayers+1)) + k ) = & - aer_lw_scattering_um( 1, k, i_mode, i_band ) - aer_lw_asymmetry( map_rmode_lw(1) + ((i_rmode-1)*(nlayers+1)) + k ) = & - max(minus1_plus_eps, min(one_minus_eps, & - aer_lw_asymmetry_um( 1, k, i_mode, i_band ))) + ukca_modal_nbr(1, k, m) = real( n_ait_sol(map_wth(1) + k), r_um ) end do - end do + case('fldname_n_acc_sol') + do k = 1, nlayers + ukca_modal_nbr(1, k, m) = real( n_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_n_cor_sol') + do k = 1, nlayers + ukca_modal_nbr(1, k, m) = real( n_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_n_ait_ins') + do k = 1, nlayers + ukca_modal_nbr(1, k, m) = real( n_ait_ins(map_wth(1) + k), r_um ) + end do + case('fldname_n_acc_ins') + do k = 1, nlayers + ukca_modal_nbr(1, k, m) = real( n_acc_ins(map_wth(1) + k), r_um ) + end do + case('fldname_n_cor_ins') + do k = 1, nlayers + ukca_modal_nbr(1, k, m) = real( n_cor_ins(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_nbr : ', mode_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + end do - ! If there are additional aerosol modes not associated with radaer - ! (e.g. from easyaerosol) then i_rmode needs advancing past them - ! before starting on the next radiation band. - if (n_aer_mode_lw > n_radaer_mode) then - i_rmode = i_rmode + n_aer_mode_lw - n_radaer_mode - end if + ! -- ukca_modal_rho -- + n_fields = size(rhopar_mode_names) + allocate(ukca_modal_rho(1, nlayers, n_fields)) + ukca_modal_rho = 0.0_r_um - end do ! n_lw_bands - - ! Only calculate SW on lit points - ! If superstepping (n_radaer_step>1) then need to calculate on all points - ! for use when the sun moves later - if (lit_fraction(map_2d(1)) > 0.0_r_def .or. & - n_radaer_step > 1) then - - ! Short wave (e.g. ip_solar ) - call ukca_radaer_band_average( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_radaer_mode, & - n_sw_band, & - npd_exclude_sw, & - ! Spectral information (input) - n_sw_band, & - ip_solar, & - l_exclude_sw, & - sw_n_band_exclude, & - sw_index_exclude, & - ! Actual array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - ! Prescribed SSA dimensions - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - i_mode_type, & - l_nitrate, & - l_soluble, & - l_sustrat, & - l_cornarrow_ins, & - n_cpnt_in_mode, & - ! Modal mass-mixing ratios (input) - ukca_mode_mix_ratio_um, & - ! Modal number concentrations (input) - ukca_modal_number_um, & - ! Modal diameters from UKCA module (input) - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Other inputs from UKCA module (input) - ukca_comp_vol_um, & - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Logical to describe orientation - l_inverted, & - ! Logical for prescribed single scattering albedo array - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause (input) - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Maxwell-Garnett mixing approach logical control switches - i_ukca_tune_bc, i_glomap_clim_tune_bc, & - ! Band-averaged optical properties (output) - aer_sw_absorption_um, & - aer_sw_scattering_um, & - aer_sw_asymmetry_um & - ) - - ! Socrates arrays filled with MODE aerosol optical properties in bands - i_rmode = 0 - do i_band = 1, n_sw_band + do m = 1, n_fields + select case(trim(rhopar_mode_names(m))) + case('fldname_rhopar_ait_sol') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_rhopar_acc_sol') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_rhopar_cor_sol') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_rhopar_ait_ins') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_ait_ins(map_wth(1) + k), r_um ) + end do + case('fldname_rhopar_acc_ins') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_acc_ins(map_wth(1) + k), r_um ) + end do + case('fldname_rhopar_cor_ins') + do k = 1, nlayers + ukca_modal_rho(1, k, m)= real( rhopar_cor_ins(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_nbr : ', rhopar_mode_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + end do - ! Fill the radaer modes within this band - do i_mode = 1, n_radaer_mode - i_rmode = i_rmode + 1 - do k = 1, nlayers - aer_sw_absorption(map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = aer_sw_absorption_um( 1, k, i_mode, i_band ) - aer_sw_scattering(map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = aer_sw_scattering_um( 1, k, i_mode, i_band ) - aer_sw_asymmetry( map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = max(minus1_plus_eps, min(one_minus_eps, & - aer_sw_asymmetry_um( 1, k, i_mode, i_band ))) - end do + ! -- ukca_dry_diam -- + n_fields = size(dry_diam_mode_names) + allocate(ukca_dry_diam(1, nlayers, n_fields)) + ukca_dry_diam = 0.0_r_um + + do m = 1, n_fields + select case(trim(dry_diam_mode_names(m))) + case('fldname_drydp_ait_sol') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_ait_sol(map_wth(1) + k), r_um ) end do + case('fldname_drydp_acc_sol') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_drydp_cor_sol') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_drydp_ait_ins') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_ait_ins(map_wth(1) + k), r_um ) + end do + case('fldname_drydp_acc_ins') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_acc_ins(map_wth(1) + k), r_um ) + end do + case('fldname_drydp_cor_ins') + do k = 1, nlayers + ukca_dry_diam(1, k, m) = real( drydp_cor_ins(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_dry_diam : ', dry_diam_mode_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + end do - ! If there are additional aerosol modes not associated with radaer - ! (e.g. from easyaerosol) then i_rmode needs advancing past them - ! before starting on the next radiation band. - if (n_aer_mode_sw > n_radaer_mode) then - i_rmode = i_rmode + n_aer_mode_sw - n_radaer_mode - end if + ! -- ukca_modal_vol -- + n_fields = size(modal_volume_names) + allocate(ukca_modal_vol(1, nlayers, n_fields)) + ukca_modal_vol = 0.0_r_um - end do ! n_sw_bands + do m = 1, n_fields - else ! unlit points + select case( trim( modal_volume_names(m) ) ) - ! Dummy values to avoid problems in radiation code - i_rmode = 0 - do i_band = 1, n_sw_band + case('fldname_mod_vol_ait_sol') + + nn_fields = size(ait_sol_volume_names) + + do mm = 1, nn_fields + + select case( trim( ait_sol_volume_names(mm) ) ) + + case( 'pvol_wat_ait_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_wat_ait_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_su_ait_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_su_ait_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_bc_ait_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_bc_ait_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_om_ait_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_om_ait_sol( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', ait_sol_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select - ! Fill the radaer modes within this band - do i_mode = 1, n_radaer_mode - i_rmode = i_rmode + 1 - do k = 1, nlayers - aer_sw_absorption(map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = 1.0_r_def - aer_sw_scattering(map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = 1.0_r_def - aer_sw_asymmetry( map_rmode_sw(1) + ((i_rmode-1)*(nlayers+1)) + k ) & - = one_minus_eps - end do end do - ! If there are additional aerosol modes not associated with radaer - ! (e.g. from easyaerosol) then i_rmode needs advancing past them - ! before starting on the next radiation band. - if (n_aer_mode_sw > n_radaer_mode) then - i_rmode = i_rmode + n_aer_mode_sw - n_radaer_mode - end if + case('fldname_mod_vol_acc_sol') + + nn_fields = size(acc_sol_volume_names) + + do mm = 1, nn_fields + select case( trim( acc_sol_volume_names(mm) ) ) + case( 'pvol_wat_acc_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_wat_acc_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_su_acc_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_su_acc_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_bc_acc_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_bc_acc_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_om_acc_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_om_acc_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_ss_acc_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_ss_acc_sol( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', acc_sol_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select - end do ! n_sw_bands + end do + + case('fldname_mod_vol_cor_sol') + + nn_fields = size(cor_sol_volume_names) + + do mm = 1, nn_fields + select case( trim( cor_sol_volume_names(mm) ) ) + case( 'pvol_wat_cor_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_wat_cor_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_su_cor_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_su_cor_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_bc_cor_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_bc_cor_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_om_cor_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_om_cor_sol( map_wth(1) + k ), r_um) + end do + + case( 'pvol_ss_cor_sol' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_ss_cor_sol( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', cor_sol_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + + end do + + case('fldname_mod_vol_ait_ins') + + nn_fields = size(ait_ins_volume_names) + + do mm = 1, nn_fields + + select case( trim( ait_ins_volume_names(mm) ) ) + + case( 'pvol_bc_ait_ins' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_bc_ait_ins( map_wth(1) + k ), r_um) + end do + + case( 'pvol_om_ait_ins' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_om_ait_ins( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', ait_ins_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + + end do - end if ! lit points + case('fldname_mod_vol_acc_ins') + + nn_fields = size(acc_ins_volume_names) + + do mm = 1, nn_fields + + select case( trim( acc_ins_volume_names(mm) ) ) + + case( 'pvol_du_acc_ins' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_du_acc_ins( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', acc_ins_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + + end do + + case('fldname_mod_vol_cor_ins') + + nn_fields = size(cor_ins_volume_names) + + do mm = 1, nn_fields + + select case( trim( cor_ins_volume_names(mm) ) ) + + case( 'pvol_du_cor_ins' ) + do k = 1, nlayers + ukca_modal_vol(1, k, m) = ukca_modal_vol(1, k, m) + & + real( pvol_du_cor_ins( map_wth(1) + k ), r_um) + end do + + case( 'null' ) + write( log_scratch_space, '(A,A)' ) & + 'This mode should not require a contribution to pvol : ', & + modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', cor_ins_volume_names(mm) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + + end do + + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_vol : ', modal_volume_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + + end do + + ! -- ukca_modal_wtv -- + n_fields = size(modal_wtv_names) + allocate(ukca_modal_wtv(1, nlayers, n_fields)) + ukca_modal_wtv = 0.0_r_um + + do m = 1, n_fields + select case(trim(modal_wtv_names(m))) + case('fldname_pvol_wat_ait_sol') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) =real( pvol_wat_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_wat_acc_sol') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) =real( pvol_wat_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_wat_cor_sol') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) =real( pvol_wat_cor_sol(map_wth(1) + k), r_um ) + end do + case('fldname_pvol_wat_ait_ins') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) = 0.0_r_um + end do + case('fldname_pvol_wat_acc_ins') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) = 0.0_r_um + end do + case('fldname_pvol_wat_cor_ins') + do k = 1, nlayers + ukca_modal_wtv(1,k,m) = 0.0_r_um + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_modal_wtv : ', modal_wtv_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + end do + + ! -- ukca_wet_diam -- + n_fields = size(wet_diam_mode_names) + allocate(ukca_wet_diam(1, nlayers, n_fields)) + ukca_wet_diam = 0.0_r_um + + do m = 1, n_fields + select case(trim(wet_diam_mode_names(m))) + case('fldname_wetdp_ait_sol') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( wetdp_ait_sol(map_wth(1) + k), r_um ) + end do + case('fldname_wetdp_acc_sol') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( wetdp_acc_sol(map_wth(1) + k), r_um ) + end do + case('fldname_wetdp_cor_sol') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( wetdp_cor_sol(map_wth(1) + k), r_um ) + end do + !!!!! Note that wet and dry diameter are the same for insoluble modes + case('fldname_wetdp_ait_ins') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( drydp_ait_ins(map_wth(1) + k), r_um ) + end do + !!!!! Note that wet and dry diameter are the same for insoluble modes + case('fldname_wetdp_acc_ins') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( drydp_acc_ins(map_wth(1) + k), r_um ) + end do + !!!!! Note that wet and dry diameter are the same for insoluble modes + case('fldname_wetdp_cor_ins') + do k = 1, nlayers + ukca_wet_diam(1, k, m) = real( drydp_cor_ins(map_wth(1) + k), r_um ) + end do + case default + write( log_scratch_space, '(A,A)' ) & + 'Missing required ukca_wet_diam : ', wet_diam_mode_names(m) + call log_event( log_scratch_space, LOG_LEVEL_ERROR ) + end select + end do !------------------------------------------------ ! Calculate mass thickness of vertical levels @@ -1055,92 +1435,205 @@ subroutine radaer_code( nlayers, & ( .not. associated( aod_ukca_cor_ins, empty_real_data ) ) .or. & ( .not. associated( aaod_ukca_cor_ins, empty_real_data ) ) ) then - d_mass_theta_levels_um(1,1,1) = rho_in_wth( map_wth(2) ) * & + d_mass_theta_levels(1,1,1) = rho_in_wth( map_wth(2) ) * & ( dz_in_wth( map_wth(2) ) + & dz_in_wth( map_wth(1) ) ) do k = 2, nlayers - 1 - d_mass_theta_levels_um(1,1,k) = rho_in_wth( map_wth(1) + k ) * & - dz_in_wth( map_wth(1) + k ) + d_mass_theta_levels(1,1,k) = rho_in_wth( map_wth(1) + k ) * & + dz_in_wth( map_wth(1) + k ) end do - d_mass_theta_levels_um(1,1,nlayers) = p_zero * & + d_mass_theta_levels(1,1,nlayers) = p_zero * & exner_in_w3( map_w3(1) + nlayers-1 )** & ( 1.0_r_def / kappa ) / gravity end if - !------------------------------------------------ - ! Now calculate aod and aaod for Aitken Soluble mode - if ( ( .not. associated( aod_ukca_ait_sol, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_ait_sol, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_aitken, & - soluble_wanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) + !----------------------------------------------------------------------- + ! Call UKCA modules + !----------------------------------------------------------------------- + + CALL ukca_radaer_lfric_interface( & + ! Fixed array dimensions (input) + (row_length*rows), & + nlayers, & + npd_exclude_lw, & + npd_exclude_sw, & + npd_ukca_aod_wavel, & + ncp_max_x_nmodes, & + n_radaer_mode, & + ! Spectral Information + n_sw_band, & + n_lw_band, & + sw_n_band_exclude, & + lw_n_band_exclude, & + sw_index_exclude, & + lw_index_exclude, & + ! Actual array dimensions (input) + n_ukca_mode, & + n_ukca_cpnt, & + ! Prescribed SSA dimensions + nd_prof_ssa, & + nd_layr_ssa, & + nd_band_ssa, & + ! Variables related to waveband exclusion + l_exclude_lw, & + l_exclude_sw, & + ! Modal diameters from UKCA module (input) + ukca_dry_diam, & + ukca_wet_diam, & + ! Other inputs from UKCA module (input) + ukca_comp_vol, & + ukca_modal_vol, & + ukca_modal_rho, & + ukca_modal_wtv, & + ! Logical to describe orientation + l_inverted, & + ! Control option for prescribed single scattering albedo array + i_ukca_radaer_prescribe_ssa, & + ! Model level of the tropopause (input) + trindxrad, & + ! Whether we need to run shortwave band_average because lit or not + l_any_lit_points, & + ! Prescription of single-scattering albedo + ukca_radaer_presc_ssa, & + ! Input Component mass-mixing ratios + ukca_mix_ratio, & + ! Input modal number concentrations + ukca_modal_nbr, & + ! Input Pressure and temperature + p_theta_levels, t_theta_levels, & + ! Which aerosol optical depth diagnostics to calculate + l_aod_ukca_ait_sol, l_aaod_ukca_ait_sol, & + l_aod_ukca_acc_sol, l_aaod_ukca_acc_sol, & + l_aod_ukca_cor_sol, l_aaod_ukca_cor_sol, & + l_aod_ukca_ait_ins, l_aaod_ukca_ait_ins, & + l_aod_ukca_acc_ins, l_aaod_ukca_acc_ins, & + l_aod_ukca_cor_ins, l_aaod_ukca_cor_ins, & + ! Mass thickness of layers + d_mass_theta_levels, & + ! Modal mass-mixing ratios (input output) + ukca_mode_mix_ratio, & + ! Band-averaged optical properties (output) + aer_lw_absorption_radaer, & + aer_sw_absorption_radaer, & + aer_lw_scattering_radaer, & + aer_sw_scattering_radaer, & + aer_lw_asymmetry_radaer, & + aer_sw_asymmetry_radaer, & + aod_ukca_all_modes, & + aaod_ukca_all_modes ) + + !----------------------------------------------------------------------- + ! Convert back to LFRic arrays + !----------------------------------------------------------------------- + + ! MODE aerosol mixing ratios + do i_mode = 1, n_radaer_mode + do k = 1, nlayers + + aer_mix_ratio( map_mode(1) + ( (i_mode-1)*(nlayers+1) ) + k ) = & + ukca_mode_mix_ratio( 1, k, i_mode ) + end do + end do + + ! Socrates arrays filled with MODE aerosol optical properties in bands + i_rmode = 0 + do i_band = 1, n_lw_band + ! Fill the radaer modes within this band + do i_mode = 1, n_radaer_mode + i_rmode = i_rmode + 1 + do k = 1, nlayers + + aer_lw_absorption( map_rmode_lw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + aer_lw_absorption_radaer( 1, k, i_mode, i_band ) + + aer_lw_scattering( map_rmode_lw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + aer_lw_scattering_radaer( 1, k, i_mode, i_band ) + + aer_lw_asymmetry( map_rmode_lw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + max(minus1_plus_eps, min(one_minus_eps, & + aer_lw_asymmetry_radaer(1, k, i_mode, i_band ) ) ) + + end do ! n_layers + end do ! n_radaer_mode + + ! If there are additional aerosol modes not associated with radaer + ! (e.g. from easyaerosol) then i_rmode needs advancing past them + ! before starting on the next radiation band. + if (n_aer_mode_lw > n_radaer_mode) then + i_rmode = i_rmode + n_aer_mode_lw - n_radaer_mode + end if + + end do ! n_lw_band + + ! Only calculate SW on lit points + ! If superstepping (n_radaer_step>1) then need to calculate on all points + ! for use when the sun moves later + + ! Socrates arrays filled with MODE aerosol optical properties in bands + i_rmode = 0 + do i_band = 1, n_sw_band + + ! Fill the radaer modes within this band + do i_mode = 1, n_radaer_mode + i_rmode = i_rmode + 1 + + do k = 1, nlayers + if ( ( lit_fraction(map_2d(1)) > 0.0_r_def ) .or. & + n_radaer_step > 1 ) then + + aer_sw_absorption( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + aer_sw_absorption_radaer(1, k, i_mode, i_band ) + + aer_sw_scattering( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + aer_sw_scattering_radaer(1, k, i_mode, i_band ) + + aer_sw_asymmetry( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = & + max(minus1_plus_eps, min(one_minus_eps, & + aer_sw_asymmetry_radaer(1,k,i_mode, i_band ) ) ) + + ! unlit points + else + + aer_sw_absorption( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = 1.0_r_def + + aer_sw_scattering( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = 1.0_r_def + + aer_sw_asymmetry( map_rmode_sw(1) + & + ( (i_rmode-1)*(nlayers+1) ) + k ) = one_minus_eps + + end if + end do ! nlayers + end do ! n_radaer_mode + + ! If there are additional aerosol modes not associated with radaer + ! (e.g. from easyaerosol) then i_rmode needs advancing past them + ! before starting on the next radiation band. + if (n_aer_mode_sw > n_radaer_mode) then + i_rmode = i_rmode + n_aer_mode_sw - n_radaer_mode + end if + + end do ! n_sw_bands !------------------------------------------------ + ! Now calculate aod and aaod for Aitken Soluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_ait_sol, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_ait_sol( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_ait_sol-1) end do end do end if @@ -1149,85 +1642,20 @@ subroutine radaer_code( nlayers, & do k = 1, npd_ukca_aod_wavel do i = 1, row_length aaod_ukca_ait_sol( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_all_modes(i,k,mode_ait_sol-1) end do end do end if - end if ! Calculate AOD Aitken Soluble mode - - !------------------------------------------------ - ! Now calculate aod and aaod for Accumulation Soluble mode - - if ( ( .not. associated( aod_ukca_acc_sol, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_acc_sol, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_accum, & - soluble_wanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) - !------------------------------------------------ + ! Now calculate aod and aaod for Accumulation Soluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_acc_sol, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_acc_sol( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_acc_sol-1) end do end do end if @@ -1236,85 +1664,20 @@ subroutine radaer_code( nlayers, & do k = 1, npd_ukca_aod_wavel do i = 1, row_length aaod_ukca_acc_sol( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_all_modes(i,k,mode_acc_sol-1) end do end do end if - end if ! Calculate AOD Accumulation Soluble mode - - !------------------------------------------------ - ! Now calculate aod and aaod for Coarse Soluble mode - - if ( ( .not. associated( aod_ukca_cor_sol, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_cor_sol, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_coarse, & - soluble_wanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) - !------------------------------------------------ + ! Now calculate aod and aaod for Coarse Soluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_cor_sol, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_cor_sol( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_cor_sol-1) end do end do end if @@ -1323,85 +1686,20 @@ subroutine radaer_code( nlayers, & do k = 1, npd_ukca_aod_wavel do i = 1, row_length aaod_ukca_cor_sol( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_all_modes(i,k,mode_cor_sol-1) end do end do end if - end if ! Calculate AOD Coarse Soluble mode - - !------------------------------------------------ - ! Now calculate aod and aaod for Aitken Insoluble mode - - if ( ( .not. associated( aod_ukca_ait_ins, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_ait_ins, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_aitken, & - soluble_unwanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) - !------------------------------------------------ + ! Now calculate aod and aaod for Aitken Insoluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_ait_ins, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_ait_ins( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_ait_insol-1) end do end do end if @@ -1410,85 +1708,20 @@ subroutine radaer_code( nlayers, & do k = 1, npd_ukca_aod_wavel do i = 1, row_length aaod_ukca_ait_ins( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_all_modes(i,k,mode_ait_insol-1) end do end do end if - end if ! Calculate AOD Aitkin Insoluble mode - - !------------------------------------------------ - ! Now calculate aod and aaod for Accumulation Insoluble mode - - if ( ( .not. associated( aod_ukca_acc_ins, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_acc_ins, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_accum, & - soluble_unwanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) - !------------------------------------------------ + ! Now calculate aod and aaod for Accumulation Insoluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_acc_ins, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_acc_ins( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_acc_insol-1) end do end do end if @@ -1497,85 +1730,20 @@ subroutine radaer_code( nlayers, & do k = 1, npd_ukca_aod_wavel do i = 1, row_length aaod_ukca_acc_ins( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_all_modes(i,k,mode_acc_insol-1) end do end do end if - end if ! Calculate AOD Accumulation Insoluble mode - - !------------------------------------------------ - ! Now calculate aod and aaod for Coarse Insoluble mode - - if ( ( .not. associated( aod_ukca_cor_ins, empty_real_data ) ) .or. & - ( .not. associated( aaod_ukca_cor_ins, empty_real_data ) ) ) then - - call ukca_radaer_compute_aod( & - ! Fixed array dimensions (input) - npd_profile, & - nlayers, & - n_ukca_mode, & - n_ukca_cpnt, & - npd_ukca_aod_wavel, & - ! Fixed array Prescribed ssa dimensions (input) - nd_prof_ssa, & - nd_layr_ssa, & - nd_band_ssa, & - ! UKCA_RADAER structure (input) - nmodes, & - ncp_max, & - ncp_max_x_nmodes, & - i_cpnt_index, & - i_cpnt_type, & - n_cpnt_in_mode, & - l_nitrate, & - l_soluble, & - l_sustrat, & - i_mode_type, & - l_cornarrow_ins, & - ! Modal diameters from UKCA module - ukca_dry_diam_um, & - ukca_wet_diam_um, & - ! Mass thickness of layers - d_mass_theta_levels_um, & - ! Component volumes - ukca_comp_vol_um, & - ! Modal volumes, densities, and water content - ukca_modal_vol_um, & - ukca_modal_rho_um, & - ukca_modal_wtv_um, & - ! Modal mass-mixing ratios - ukca_mode_mix_ratio_um, & - ! Modal number concentrations - ukca_modal_number_um, & - ! Type selection - ip_ukca_mode_coarse, & - soluble_unwanted, & - ! Switch for if prescribed SSA is on - i_ukca_radaer_prescribe_ssa, & - ! Model level of the tropopause - trindxrad_um, & - ! Prescription of single-scattering albedo - ukca_radaer_presc_ssa, & - ! Modal extinction aerosol opt depth - column (output) - aod_ukca_this_mode_um, & - ! Modal extinction aerosol opt depth - stratosphere (output) - sod_ukca_this_mode_um, & - ! Modal absorption aerosol opt depth (output) - aaod_ukca_this_mode_um, & - ! Fixed array dimensions - npd_profile, & - nlayers, & - n_radaer_mode, & - npd_ukca_aod_wavel ) - !------------------------------------------------ + ! Now calculate aod and aaod for Coarse Insoluble mode + ! Note that we start from the second mode and so mode index has minus one. if ( .not. associated( aod_ukca_cor_ins, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length aod_ukca_cor_ins( map_aod_wavel(i) + k - 1 ) = & - aod_ukca_this_mode_um(i,k) + aod_ukca_all_modes(i,k,mode_cor_insol-1) end do end do end if @@ -1583,15 +1751,38 @@ subroutine radaer_code( nlayers, & if ( .not. associated( aaod_ukca_cor_ins, empty_real_data ) ) then do k = 1, npd_ukca_aod_wavel do i = 1, row_length - aaod_ukca_cor_ins( map_aod_wavel(i) + k - 1 ) = & - aaod_ukca_this_mode_um(i,k) + aaod_ukca_cor_ins( map_aod_wavel(i) + k - 1 ) = & + aaod_ukca_all_modes(i,k,mode_cor_insol-1) end do end do end if - end if ! Calculate AOD Coarse Insoluble mode - !------------------------------------------------ + ! This is where we would close segmentation and openmp + !------------------------------------------------ + + deallocate( ukca_modal_wtv ) + deallocate( ukca_modal_vol ) + deallocate( ukca_modal_rho ) + deallocate( ukca_modal_nbr ) + deallocate( ukca_wet_diam ) + deallocate( ukca_dry_diam ) + + deallocate( ukca_mix_ratio ) + deallocate( ukca_comp_vol ) + + deallocate( aaod_ukca_all_modes ) + deallocate( sod_ukca_all_modes ) + deallocate( aod_ukca_all_modes ) + + deallocate( aer_sw_asymmetry_radaer ) + deallocate( aer_sw_scattering_radaer ) + deallocate( aer_sw_absorption_radaer ) + deallocate( aer_lw_asymmetry_radaer ) + deallocate( aer_lw_scattering_radaer ) + deallocate( aer_lw_absorption_radaer ) + + deallocate( ukca_mode_mix_ratio ) end subroutine radaer_code diff --git a/interfaces/physics_schemes_interface/source/legacy/ukca_interface/ukca_radaer_struct_mod.F90 b/interfaces/physics_schemes_interface/source/legacy/ukca_interface/ukca_radaer_struct_mod.F90 index 244fcbc305..59d01c2e44 100644 --- a/interfaces/physics_schemes_interface/source/legacy/ukca_interface/ukca_radaer_struct_mod.F90 +++ b/interfaces/physics_schemes_interface/source/legacy/ukca_interface/ukca_radaer_struct_mod.F90 @@ -22,6 +22,7 @@ ! ! --------------------------------------------------------------------- + module ukca_radaer_struct_mod implicit none diff --git a/interfaces/physics_schemes_interface/source/support/um_physics_init_mod.f90 b/interfaces/physics_schemes_interface/source/support/um_physics_init_mod.f90 index d1ae29c5f0..193876adc0 100644 --- a/interfaces/physics_schemes_interface/source/support/um_physics_init_mod.f90 +++ b/interfaces/physics_schemes_interface/source/support/um_physics_init_mod.f90 @@ -1696,4 +1696,5 @@ subroutine um_physics_init() end subroutine um_physics_init + end module um_physics_init_mod diff --git a/interfaces/physics_schemes_interface/source/support/um_ukca_init_mod.f90 b/interfaces/physics_schemes_interface/source/support/um_ukca_init_mod.f90 index f233d3085b..b94a8b4166 100644 --- a/interfaces/physics_schemes_interface/source/support/um_ukca_init_mod.f90 +++ b/interfaces/physics_schemes_interface/source/support/um_ukca_init_mod.f90 @@ -16,7 +16,8 @@ module um_ukca_init_mod ukca_scale_marine_pom_ems, & marine_pom_ems_scaling, & ukca_scale_sea_salt_ems, & - sea_salt_ems_scaling + sea_salt_ems_scaling, & + i_mode_setup use section_choice_config_mod, only: aerosol, aerosol_um use chemistry_config_mod, only: chem_scheme, chem_scheme_offline_ox, & chem_scheme_strattrop, chem_scheme_none,& @@ -1022,7 +1023,7 @@ subroutine ukca_init( row_length, rows, model_levels, bl_levels, & i_photol_scheme_fastjx = photol_fastjx, & ! General GLOMAP configuration options i_mode_nzts=15, & - i_mode_setup=8, & + i_mode_setup=i_mode_setup, & l_mode_bhn_on=.true., & l_mode_bln_on=.false., & i_mode_nucscav=i_mode_nucscav, & @@ -1863,7 +1864,8 @@ subroutine aerosol_ukca_dust_only_init( row_length, rows, model_levels, & ! i_mode_nzts=15, & ukca_mode_seg_size=i_ukca_mode_seg_size, & - i_mode_setup=6, & + ! For dust_and_clim the GLOMAP setting must be dust only + i_mode_setup=i_mode_setup, & i_mode_nucscav=i_mode_nucscav, & l_cv_rainout=.not.(l_ukca_plume_scav), & l_dust_mp_slinn_impc_scav=.true., & @@ -2142,4 +2144,5 @@ subroutine deallocate_fastjx_filevars() end subroutine deallocate_fastjx_filevars + end module um_ukca_init_mod diff --git a/rose-stem/app/adjoint_tests/rose-app.conf b/rose-stem/app/adjoint_tests/rose-app.conf index d502809591..3810e5b560 100644 --- a/rose-stem/app/adjoint_tests/rose-app.conf +++ b/rose-stem/app/adjoint_tests/rose-app.conf @@ -118,6 +118,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +i_mode_setup=6 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/gravity_wave/rose-app.conf b/rose-stem/app/gravity_wave/rose-app.conf index e1d100b800..33f77086b9 100644 --- a/rose-stem/app/gravity_wave/rose-app.conf +++ b/rose-stem/app/gravity_wave/rose-app.conf @@ -83,6 +83,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='off' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.false. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/gungho_model/rose-app.conf b/rose-stem/app/gungho_model/rose-app.conf index 34338c88f5..af130e1242 100644 --- a/rose-stem/app/gungho_model/rose-app.conf +++ b/rose-stem/app/gungho_model/rose-app.conf @@ -103,6 +103,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='off' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.false. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/jedi_forecast/rose-app.conf b/rose-stem/app/jedi_forecast/rose-app.conf index 28d2d77cc0..1cd0ab6b45 100644 --- a/rose-stem/app/jedi_forecast/rose-app.conf +++ b/rose-stem/app/jedi_forecast/rose-app.conf @@ -113,6 +113,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='off' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.false. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/jedi_forecast_pseudo/rose-app.conf b/rose-stem/app/jedi_forecast_pseudo/rose-app.conf index ecdb3cc0ed..299948d3d3 100644 --- a/rose-stem/app/jedi_forecast_pseudo/rose-app.conf +++ b/rose-stem/app/jedi_forecast_pseudo/rose-app.conf @@ -112,6 +112,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='off' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.false. !!marine_pom_ems_scaling=1.0 murk=.false. 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 2e0c5313da..2edbbe6a05 100644 --- a/rose-stem/app/jedi_id_tlm_tests/rose-app.conf +++ b/rose-stem/app/jedi_id_tlm_tests/rose-app.conf @@ -126,6 +126,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/jedi_lfric_tests/rose-app.conf b/rose-stem/app/jedi_lfric_tests/rose-app.conf index 7408e90c3b..4a38708f84 100644 --- a/rose-stem/app/jedi_lfric_tests/rose-app.conf +++ b/rose-stem/app/jedi_lfric_tests/rose-app.conf @@ -125,6 +125,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. 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 122adf38f8..961c5210dc 100644 --- a/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf +++ b/rose-stem/app/jedi_tlm_forecast_tl/rose-app.conf @@ -126,6 +126,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/jedi_tlm_tests/rose-app.conf b/rose-stem/app/jedi_tlm_tests/rose-app.conf index 2cb16ff128..f1fa9af510 100644 --- a/rose-stem/app/jedi_tlm_tests/rose-app.conf +++ b/rose-stem/app/jedi_tlm_tests/rose-app.conf @@ -126,6 +126,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/jules/rose-app.conf b/rose-stem/app/jules/rose-app.conf index 6780b18eba..f1e61fab40 100644 --- a/rose-stem/app/jules/rose-app.conf +++ b/rose-stem/app/jules/rose-app.conf @@ -128,6 +128,7 @@ easyaerosol_sw=.false. !!emissions='GC5' glomap_mode='dust_and_clim' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. diff --git a/rose-stem/app/lfric2lfric/rose-app.conf b/rose-stem/app/lfric2lfric/rose-app.conf index ad82ed4495..73047a0b54 100644 --- a/rose-stem/app/lfric2lfric/rose-app.conf +++ b/rose-stem/app/lfric2lfric/rose-app.conf @@ -52,6 +52,7 @@ easyaerosol_sw=.false. !!emissions='GC3' glomap_mode='off' !!horiz_d=2.25 +!!i_mode_setup=0 !!l_radaer=.false. !!marine_pom_ems_scaling=1.0 murk=.false. 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 0b0299a998..7d1bed21bc 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 = 46D552C2 -Inner product checksum theta = 518ED761 -Inner product checksum u = 6AF9062A -Inner product checksum mr1 = 3FE1FDDC -Inner product checksum mr2 = 3741AD00 -Inner product checksum mr3 = 351684B6 -Inner product checksum mr4 = 36A099BE +Inner product checksum rho = 46D55979 +Inner product checksum theta = 518EDEF7 +Inner product checksum u = 6AF88297 +Inner product checksum mr1 = 3FE19392 +Inner product checksum mr2 = 372026BC +Inner product checksum mr3 = 3523D7AD +Inner product checksum mr4 = 369F3800 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 8de3d841d6..e67895d1c1 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 = 46D5578A -Inner product checksum theta = 518ED8FB -Inner product checksum u = 6AF94DEC -Inner product checksum mr1 = 3FE1FD6A -Inner product checksum mr2 = 3736FE04 -Inner product checksum mr3 = 350C5B3F -Inner product checksum mr4 = 36AF8892 +Inner product checksum rho = 46D554C2 +Inner product checksum theta = 518ECFD5 +Inner product checksum u = 6AF92581 +Inner product checksum mr1 = 3FE1BB79 +Inner product checksum mr2 = 373366D4 +Inner product checksum mr3 = 351E9D22 +Inner product checksum mr4 = 369AC44C 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_short-C12_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt index 5ac113daf6..a1098f5d89 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_clim_gal9_short-C12_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D6859D -Inner product checksum theta = 519A8C17 -Inner product checksum u = 6B2FD7B0 -Inner product checksum mr1 = 3FCB84C2 -Inner product checksum mr2 = 374F320C -Inner product checksum mr3 = 35DFD488 -Inner product checksum mr4 = 379DAF52 +Inner product checksum rho = 46D685A0 +Inner product checksum theta = 519A8C1B +Inner product checksum u = 6B2FD702 +Inner product checksum mr1 = 3FCB84EE +Inner product checksum mr2 = 3751C104 +Inner product checksum mr3 = 35E20B80 +Inner product checksum mr4 = 379DB486 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_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 219515be2c..7e62dc572d 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 = 46D870E9 -Inner product checksum theta = 518CDC70 -Inner product checksum u = 6A8B6667 -Inner product checksum mr1 = 3FCC8CF3 -Inner product checksum mr2 = 3837FCDE -Inner product checksum mr3 = 35411158 -Inner product checksum mr4 = 369FE708 -Inner product checksum mr5 = 2EAC5C04 -Inner product checksum mr6 = 353FD98D +Inner product checksum rho = 46D8730B +Inner product checksum theta = 518CD7C0 +Inner product checksum u = 6A8C0970 +Inner product checksum mr1 = 3FCD52D2 +Inner product checksum mr2 = 38370FD3 +Inner product checksum mr3 = 3564D88A +Inner product checksum mr4 = 36B16C6A +Inner product checksum mr5 = 2F194230 +Inner product checksum mr6 = 355261C0 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 49ce1075f2..bb78531bd8 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 = 46D868F4 -Inner product checksum theta = 518CDD4D -Inner product checksum u = 6A871B9A -Inner product checksum mr1 = 3FD03689 -Inner product checksum mr2 = 37F037E4 -Inner product checksum mr3 = 379AA00B -Inner product checksum mr4 = 37A424D9 -Inner product checksum mr5 = 36A77130 +Inner product checksum rho = 46D86747 +Inner product checksum theta = 518CDA74 +Inner product checksum u = 6A87A65D +Inner product checksum mr1 = 3FD023CF +Inner product checksum mr2 = 37E620D6 +Inner product checksum mr3 = 379A7ACB +Inner product checksum mr4 = 37963896 +Inner product checksum mr5 = 36B7EFE4 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 69521dedf0..ed8e813895 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 = 46D858B1 -Inner product checksum theta = 518CE449 -Inner product checksum u = 6A86DFFC -Inner product checksum mr1 = 3FD1B4B2 -Inner product checksum mr2 = 37ED7B41 -Inner product checksum mr3 = 377827F3 -Inner product checksum mr4 = 37BAAA06 -Inner product checksum mr5 = 36A37633 +Inner product checksum rho = 46D85998 +Inner product checksum theta = 518CE396 +Inner product checksum u = 6A8692AE +Inner product checksum mr1 = 3FD1F0D7 +Inner product checksum mr2 = 37DF1695 +Inner product checksum mr3 = 37889FDD +Inner product checksum mr4 = 37CAFB3B +Inner product checksum mr5 = 36AD422C 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 1edfec4885..9894b99dd0 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 = 46D85B40 -Inner product checksum theta = 518CDD3B -Inner product checksum u = 6A887414 -Inner product checksum mr1 = 3FD09281 -Inner product checksum mr2 = 37B99628 -Inner product checksum mr3 = 3584EEC7 -Inner product checksum mr4 = 36E7D8E4 +Inner product checksum rho = 46D859DC +Inner product checksum theta = 518CDC1C +Inner product checksum u = 6A88E23B +Inner product checksum mr1 = 3FD0729F +Inner product checksum mr2 = 37C5C6DB +Inner product checksum mr3 = 35A04A80 +Inner product checksum mr4 = 3728BC35 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 dee6d7e916..f7b3a2c0a5 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 = 48D8018C -Inner product checksum theta = 5392FB13 -Inner product checksum u = 6A97BE9F -Inner product checksum mr1 = 41CCFFD6 -Inner product checksum mr2 = 39CE183C -Inner product checksum mr3 = 37AA2A89 -Inner product checksum mr4 = 395B8F94 +Inner product checksum rho = 48D8019C +Inner product checksum theta = 5392FB14 +Inner product checksum u = 6A97B22A +Inner product checksum mr1 = 41CD02F1 +Inner product checksum mr2 = 39CD4904 +Inner product checksum mr3 = 37A8A4A9 +Inner product checksum mr4 = 395D3F63 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 74dbe45ef9..1787753874 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 = 46D83093 -Inner product checksum theta = 51946D1C -Inner product checksum u = 6B12D0D9 -Inner product checksum mr1 = 3FC8D0AC -Inner product checksum mr2 = 379C5134 -Inner product checksum mr3 = 3590547D -Inner product checksum mr4 = 378F98CC +Inner product checksum rho = 46D8308A +Inner product checksum theta = 51946D19 +Inner product checksum u = 6B12CF9D +Inner product checksum mr1 = 3FC8D48E +Inner product checksum mr2 = 379C1B98 +Inner product checksum mr3 = 35907C3A +Inner product checksum mr4 = 378FBCF2 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 78cd9367d5..f11a7c0dd5 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 = 48D80202 -Inner product checksum theta = 5392FB27 -Inner product checksum u = 6A97BD7E -Inner product checksum mr1 = 41CD0563 -Inner product checksum mr2 = 39CEF093 -Inner product checksum mr3 = 37A8FE76 -Inner product checksum mr4 = 395E85FC +Inner product checksum rho = 48D80216 +Inner product checksum theta = 5392FB20 +Inner product checksum u = 6A97BA73 +Inner product checksum mr1 = 41CD0373 +Inner product checksum mr2 = 39CEA5EF +Inner product checksum mr3 = 37ADA356 +Inner product checksum mr4 = 395D7408 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 cbbf0e27dd..8c3ea9dbfa 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 = 46D82088 -Inner product checksum theta = 518A7526 -Inner product checksum u = 6A8DA149 -Inner product checksum mr1 = 3FD3CCFA -Inner product checksum mr2 = 37CA11A6 -Inner product checksum mr3 = 35AC24B6 -Inner product checksum mr4 = 36DD326D +Inner product checksum rho = 46D82410 +Inner product checksum theta = 518A79DC +Inner product checksum u = 6A8C991B +Inner product checksum mr1 = 3FD43D53 +Inner product checksum mr2 = 37CEFE56 +Inner product checksum mr3 = 35B2F72F +Inner product checksum mr4 = 36D0DE45 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 9a0596bbf4..70717756e7 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 = 46D824AF +Inner product checksum rho = 46D824B3 Inner product checksum theta = 51952836 -Inner product checksum u = 6AD01B78 -Inner product checksum mr1 = 3FC89112 -Inner product checksum mr2 = 37B07EAC -Inner product checksum mr3 = 35202152 -Inner product checksum mr4 = 36A0C43E +Inner product checksum u = 6AD01BC8 +Inner product checksum mr1 = 3FC89057 +Inner product checksum mr2 = 37AE72A3 +Inner product checksum mr3 = 351DF3B3 +Inner product checksum mr4 = 36A0B8A6 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 48df79180d..0450bd8443 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 = 48D81C6C Inner product checksum theta = 53952784 -Inner product checksum u = 6AA47E12 -Inner product checksum mr1 = 41C845F8 -Inner product checksum mr2 = 3999927E -Inner product checksum mr3 = 3779DAC2 -Inner product checksum mr4 = 392E263E +Inner product checksum u = 6AA47DEA +Inner product checksum mr1 = 41C845B8 +Inner product checksum mr2 = 3999D0E1 +Inner product checksum mr3 = 3778335A +Inner product checksum mr4 = 392E22C9 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 ceb411dbae..2c6015f21e 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 = 46D82484 -Inner product checksum theta = 518A5967 -Inner product checksum u = 6A910A4E -Inner product checksum mr1 = 3FD0AF5C -Inner product checksum mr2 = 37F05781 -Inner product checksum mr3 = 3594AAC6 -Inner product checksum mr4 = 36DC48BA +Inner product checksum rho = 46D82677 +Inner product checksum theta = 518A5918 +Inner product checksum u = 6A90BD46 +Inner product checksum mr1 = 3FD0E279 +Inner product checksum mr2 = 37D9CA8F +Inner product checksum mr3 = 359E5484 +Inner product checksum mr4 = 36E1AAEC 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 52ec8a2c7d..92a34489d9 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 = 46D8212F -Inner product checksum theta = 518A731A -Inner product checksum u = 6A8CF5FA -Inner product checksum mr1 = 3FD3A181 -Inner product checksum mr2 = 37DF77FC -Inner product checksum mr3 = 35A013C2 -Inner product checksum mr4 = 36B312FE +Inner product checksum rho = 46D82185 +Inner product checksum theta = 518A73C9 +Inner product checksum u = 6A8D698F +Inner product checksum mr1 = 3FD3E4E9 +Inner product checksum mr2 = 37CD050A +Inner product checksum mr3 = 35A154D4 +Inner product checksum mr4 = 36CBA41D 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 21a46c6448..b93d155f0d 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 = 46D85E30 -Inner product checksum theta = 5193AF41 -Inner product checksum u = 6A86156B -Inner product checksum mr1 = 3FD04C1E -Inner product checksum mr2 = 37B337F6 -Inner product checksum mr3 = 3545CE28 -Inner product checksum mr4 = 36ECD0E0 +Inner product checksum rho = 46D86158 +Inner product checksum theta = 5193AF52 +Inner product checksum u = 6A85B2AF +Inner product checksum mr1 = 3FD07E63 +Inner product checksum mr2 = 37BAE553 +Inner product checksum mr3 = 354D8534 +Inner product checksum mr4 = 36C046E0 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_nudging-era-C48_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-C48_MG_azspice_gnu_fast-debug-32bit.txt index 223e55a9fb..748b3f574e 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-C48_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-C48_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D818B2 -Inner product checksum theta = 53948CAD -Inner product checksum u = 6AA1D21A -Inner product checksum mr1 = 41C960BC -Inner product checksum mr2 = 39A9CFF3 -Inner product checksum mr3 = 37844180 -Inner product checksum mr4 = 3923F952 +Inner product checksum rho = 48D818B4 +Inner product checksum theta = 53948CA8 +Inner product checksum u = 6AA1D26B +Inner product checksum mr1 = 41C9617A +Inner product checksum mr2 = 39AA4FC1 +Inner product checksum mr3 = 378392B0 +Inner product checksum mr4 = 3922D3A5 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_nudging-era-coarse-C48_MG_azspice_gnu_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-coarse-C48_MG_azspice_gnu_fast-debug-32bit.txt index 223e55a9fb..748b3f574e 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-coarse-C48_MG_azspice_gnu_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/azspice/checksum_lfric_atm_nwp_gal9_nudging-era-coarse-C48_MG_azspice_gnu_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D818B2 -Inner product checksum theta = 53948CAD -Inner product checksum u = 6AA1D21A -Inner product checksum mr1 = 41C960BC -Inner product checksum mr2 = 39A9CFF3 -Inner product checksum mr3 = 37844180 -Inner product checksum mr4 = 3923F952 +Inner product checksum rho = 48D818B4 +Inner product checksum theta = 53948CA8 +Inner product checksum u = 6AA1D26B +Inner product checksum mr1 = 41C9617A +Inner product checksum mr2 = 39AA4FC1 +Inner product checksum mr3 = 378392B0 +Inner product checksum mr4 = 3922D3A5 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 99bebb35d1..7ca9e14aea 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 = 46D82C3B -Inner product checksum theta = 5194F750 -Inner product checksum u = 6AE733CA -Inner product checksum mr1 = 3FC8CCD0 -Inner product checksum mr2 = 37A62CA6 -Inner product checksum mr3 = 35563F53 -Inner product checksum mr4 = 371D117F +Inner product checksum rho = 46D82C3A +Inner product checksum theta = 5194F74E +Inner product checksum u = 6AE733E0 +Inner product checksum mr1 = 3FC8CC4C +Inner product checksum mr2 = 37A98C55 +Inner product checksum mr3 = 355B234C +Inner product checksum mr4 = 371CBA64 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 60fdd1bb0a..4032a047d7 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 = 48399774 -Inner product checksum theta = 5135493E -Inner product checksum u = 612F454A -Inner product checksum mr1 = 4090F564 -Inner product checksum mr2 = 35AC3C55 -Inner product checksum mr3 = 2FA5F7C0 -Inner product checksum mr4 = 33F4FD5A -Inner product checksum mr5 = BEDD43D +Inner product checksum rho = 48399772 +Inner product checksum theta = 5135493D +Inner product checksum u = 612F4543 +Inner product checksum mr1 = 4090F583 +Inner product checksum mr2 = 35B8C8A6 +Inner product checksum mr3 = 2FA5F6B8 +Inner product checksum mr4 = 33F4FD6A +Inner product checksum mr5 = BEDD3C8 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 d70fddbee3..67275182cd 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 = 48399985 -Inner product checksum theta = 51354898 -Inner product checksum u = 612F4B6A -Inner product checksum mr1 = 40916361 -Inner product checksum mr2 = 3684D2A0 -Inner product checksum mr3 = 2FAD3D2F -Inner product checksum mr4 = 33F4FE0F -Inner product checksum mr5 = BF85CFF +Inner product checksum rho = 4839998F +Inner product checksum theta = 51354893 +Inner product checksum u = 612F4B5F +Inner product checksum mr1 = 4091642D +Inner product checksum mr2 = 3663B8A0 +Inner product checksum mr3 = 2FAD1046 +Inner product checksum mr4 = 33F4FE22 +Inner product checksum mr5 = BF85D9E 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 080a10a1b2..1e277fdd79 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 = 612EE1C7 -Inner product checksum mr1 = 40910314 -Inner product checksum mr2 = 358600ED -Inner product checksum mr3 = 3000FB73 -Inner product checksum mr4 = 3404ABEC -Inner product checksum mr5 = C1462BB +Inner product checksum rho = 48398C70 +Inner product checksum theta = 513542F9 +Inner product checksum u = 612EE1CC +Inner product checksum mr1 = 409102B4 +Inner product checksum mr2 = 359368AB +Inner product checksum mr3 = 3000F84C +Inner product checksum mr4 = 3404AC2B +Inner product checksum mr5 = C1462B4 Inner product checksum mr6 = 0 diff --git a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_clim_gal9-C12_ex1a_cce_fast-debug-32bit.txt index 1815adb106..e966a1c44b 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 = 46D553CA -Inner product checksum theta = 518ECEB5 -Inner product checksum u = 6AFAE9D8 -Inner product checksum mr1 = 3FE14B20 -Inner product checksum mr2 = 370F9D84 -Inner product checksum mr3 = 3523C677 -Inner product checksum mr4 = 3696A781 +Inner product checksum rho = 46D55775 +Inner product checksum theta = 518ED500 +Inner product checksum u = 6AFB1CD9 +Inner product checksum mr1 = 3FE1E8EA +Inner product checksum mr2 = 3732F689 +Inner product checksum mr3 = 35344454 +Inner product checksum mr4 = 36A27A84 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 aa9c625d7c..727e0bb115 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 = 46D66E11 -Inner product checksum theta = 5193C464 -Inner product checksum u = 6B198006 -Inner product checksum mr1 = 3FCF858E -Inner product checksum mr2 = 373E2E9C -Inner product checksum mr3 = 3541A34C -Inner product checksum mr4 = 369B731D +Inner product checksum rho = 46D66E68 +Inner product checksum theta = 5193C440 +Inner product checksum u = 6B197844 +Inner product checksum mr1 = 3FCF742A +Inner product checksum mr2 = 3734EE31 +Inner product checksum mr3 = 35537800 +Inner product checksum mr4 = 36A327FE 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 6bc6e52e57..a5bf342d44 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 = 48D660E1 -Inner product checksum theta = 539A0A3B -Inner product checksum u = 6B127765 -Inner product checksum mr1 = 41CC3BE8 -Inner product checksum mr2 = 396B3CEF -Inner product checksum mr3 = 37C4C8DA -Inner product checksum mr4 = 394747CD +Inner product checksum rho = 48D660EE +Inner product checksum theta = 539A0A3D +Inner product checksum u = 6B127747 +Inner product checksum mr1 = 41CC3C18 +Inner product checksum mr2 = 3968D85C +Inner product checksum mr3 = 37C35903 +Inner product checksum mr4 = 39476FE6 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 e0ac3a7f47..63e25c1177 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 = 46D66D86 -Inner product checksum theta = 5193C44E -Inner product checksum u = 6B1966B5 -Inner product checksum mr1 = 3FCF8519 -Inner product checksum mr2 = 371FDDA6 -Inner product checksum mr3 = 35361069 -Inner product checksum mr4 = 368EFCD2 +Inner product checksum rho = 46D66D8E +Inner product checksum theta = 5193C42E +Inner product checksum u = 6B196EB6 +Inner product checksum mr1 = 3FCF7216 +Inner product checksum mr2 = 373287E4 +Inner product checksum mr3 = 3541E12E +Inner product checksum mr4 = 3691A10A 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 a7b72cb03a..82af0af7f3 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 = 48D660F4 -Inner product checksum theta = 539A0A42 -Inner product checksum u = 6B12765E -Inner product checksum mr1 = 41CC3E3B -Inner product checksum mr2 = 396BFB5A -Inner product checksum mr3 = 37C92E26 -Inner product checksum mr4 = 394763A2 +Inner product checksum rho = 48D660F2 +Inner product checksum theta = 539A0A40 +Inner product checksum u = 6B1277B9 +Inner product checksum mr1 = 41CC3D65 +Inner product checksum mr2 = 396ADFDE +Inner product checksum mr3 = 37C61CDF +Inner product checksum mr4 = 39477BA7 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 9309f7da94..a52cdbadf6 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 = 48D660F6 -Inner product checksum theta = 539A0A3C -Inner product checksum u = 6B12774C -Inner product checksum mr1 = 41CC3A36 -Inner product checksum mr2 = 3966A9D6 -Inner product checksum mr3 = 37C15DC4 -Inner product checksum mr4 = 3946083E +Inner product checksum rho = 48D660FB +Inner product checksum theta = 539A0A40 +Inner product checksum u = 6B127743 +Inner product checksum mr1 = 41CC3CC6 +Inner product checksum mr2 = 396A08DC +Inner product checksum mr3 = 37C64996 +Inner product checksum mr4 = 39468D56 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 578ea2b9fd..60d053edf1 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 = 46D55581 -Inner product checksum theta = 518ED2B5 -Inner product checksum u = 6AFB3227 -Inner product checksum mr1 = 3FE17762 -Inner product checksum mr2 = 3720F9CA -Inner product checksum mr3 = 35365C5C -Inner product checksum mr4 = 3690D5BE +Inner product checksum rho = 46D55CE2 +Inner product checksum theta = 518EDA64 +Inner product checksum u = 6AFA0B97 +Inner product checksum mr1 = 3FE1627D +Inner product checksum mr2 = 3726D046 +Inner product checksum mr3 = 353CA0C5 +Inner product checksum mr4 = 36B92A82 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 20dff69335..7fd628712a 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 = 46D66D70 -Inner product checksum theta = 5193C3A6 -Inner product checksum u = 6B19E468 -Inner product checksum mr1 = 3FCF95B4 -Inner product checksum mr2 = 3739CE4A -Inner product checksum mr3 = 354B9996 -Inner product checksum mr4 = 369EF6F8 +Inner product checksum rho = 46D66D5F +Inner product checksum theta = 5193C3A0 +Inner product checksum u = 6B19E2AC +Inner product checksum mr1 = 3FCF93A8 +Inner product checksum mr2 = 373FA452 +Inner product checksum mr3 = 354D24EC +Inner product checksum mr4 = 36A32534 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 ea9d93b3d5..b704b9f0af 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 = 46D66E4F -Inner product checksum theta = 5193C380 -Inner product checksum u = 6B1A173A -Inner product checksum mr1 = 3FCF734B -Inner product checksum mr2 = 372C9D8C -Inner product checksum mr3 = 353F4872 -Inner product checksum mr4 = 36A0B05A +Inner product checksum rho = 46D66D9A +Inner product checksum theta = 5193C373 +Inner product checksum u = 6B19F546 +Inner product checksum mr1 = 3FCF92DF +Inner product checksum mr2 = 3734FF8E +Inner product checksum mr3 = 3554EF6E +Inner product checksum mr4 = 36A54306 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_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 be1a31281d..4c9b31ed8f 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 = 46D8710C -Inner product checksum theta = 518CD914 -Inner product checksum u = 6A8AFB8B -Inner product checksum mr1 = 3FCD851A -Inner product checksum mr2 = 3827840A -Inner product checksum mr3 = 356DE64E -Inner product checksum mr4 = 3697321A -Inner product checksum mr5 = 2E218564 -Inner product checksum mr6 = 35597E65 +Inner product checksum rho = 46D87253 +Inner product checksum theta = 518CDB51 +Inner product checksum u = 6A8B3F5C +Inner product checksum mr1 = 3FCCB9A6 +Inner product checksum mr2 = 382F8C8A +Inner product checksum mr3 = 35537DBB +Inner product checksum mr4 = 369C7042 +Inner product checksum mr5 = 2E8D7032 +Inner product checksum mr6 = 354A9D79 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 c4a03fd2a8..1104f2d3fe 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 = 46D8692A -Inner product checksum theta = 518CDF94 -Inner product checksum u = 6A87F56D -Inner product checksum mr1 = 3FD0988D -Inner product checksum mr2 = 37E807AE -Inner product checksum mr3 = 37940152 -Inner product checksum mr4 = 379E9EA4 -Inner product checksum mr5 = 36AD8928 +Inner product checksum rho = 46D8680C +Inner product checksum theta = 518CDC46 +Inner product checksum u = 6A8817BE +Inner product checksum mr1 = 3FD0483F +Inner product checksum mr2 = 37EE50C5 +Inner product checksum mr3 = 379F6DD9 +Inner product checksum mr4 = 379E7D92 +Inner product checksum mr5 = 36AF1A27 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 b829f48f9d..75095d69d8 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 = 46D85982 -Inner product checksum theta = 518CE388 -Inner product checksum u = 6A86EBB7 -Inner product checksum mr1 = 3FD1F86B -Inner product checksum mr2 = 37E77034 -Inner product checksum mr3 = 37817C8E -Inner product checksum mr4 = 37C0B965 -Inner product checksum mr5 = 36A437DA +Inner product checksum rho = 46D85A0E +Inner product checksum theta = 518CE3E8 +Inner product checksum u = 6A875E57 +Inner product checksum mr1 = 3FD1CBB8 +Inner product checksum mr2 = 37F0AFCB +Inner product checksum mr3 = 37853DF0 +Inner product checksum mr4 = 37D3206A +Inner product checksum mr5 = 36B1C48A 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 26eff6ad86..1ef8638202 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 = 46D87623 -Inner product checksum theta = 518CE954 -Inner product checksum u = 6A84C677 -Inner product checksum mr1 = 3FCEBC3D -Inner product checksum mr2 = 37ECEE7D -Inner product checksum mr3 = 37943DBB -Inner product checksum mr4 = 3761CF82 -Inner product checksum mr5 = 35FC2E2C +Inner product checksum rho = 46D87451 +Inner product checksum theta = 518CEAB4 +Inner product checksum u = 6A84E598 +Inner product checksum mr1 = 3FCEAA54 +Inner product checksum mr2 = 37F676C3 +Inner product checksum mr3 = 3785898E +Inner product checksum mr4 = 377EDD74 +Inner product checksum mr5 = 36081FEA 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 99cb6e9cfd..1704ef5980 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 = 46D85C5F -Inner product checksum theta = 518CDBDC -Inner product checksum u = 6A888B76 -Inner product checksum mr1 = 3FD08F0A -Inner product checksum mr2 = 37C3A28B -Inner product checksum mr3 = 358A0008 -Inner product checksum mr4 = 37034B0F +Inner product checksum rho = 46D858F4 +Inner product checksum theta = 518CDA09 +Inner product checksum u = 6A88881E +Inner product checksum mr1 = 3FD08737 +Inner product checksum mr2 = 37BFC569 +Inner product checksum mr3 = 35A49EF0 +Inner product checksum mr4 = 371347AE 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 ba79d7fde3..c3a2b69344 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 = 48D802A2 -Inner product checksum theta = 5392FAEE -Inner product checksum u = 6A97BE98 -Inner product checksum mr1 = 41CD11B6 -Inner product checksum mr2 = 39D29CF4 -Inner product checksum mr3 = 37ABEABC -Inner product checksum mr4 = 395797DC +Inner product checksum rho = 48D8026E +Inner product checksum theta = 5392FAF1 +Inner product checksum u = 6A97C948 +Inner product checksum mr1 = 41CD0BB2 +Inner product checksum mr2 = 39CEECFC +Inner product checksum mr3 = 37AA8952 +Inner product checksum mr4 = 395BCFA7 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 59f98ffff9..fc84e94dde 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 = 46D830AF -Inner product checksum theta = 51946D1A -Inner product checksum u = 6B12D2F4 -Inner product checksum mr1 = 3FC8D569 -Inner product checksum mr2 = 379F7E86 -Inner product checksum mr3 = 358B6A7C -Inner product checksum mr4 = 3792104C +Inner product checksum rho = 46D830A4 +Inner product checksum theta = 51946D18 +Inner product checksum u = 6B12D0C6 +Inner product checksum mr1 = 3FC8D4BE +Inner product checksum mr2 = 37A3BEF8 +Inner product checksum mr3 = 35912743 +Inner product checksum mr4 = 378EFDB6 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_1T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt index e485be1736..924ec9b73c 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D813F2 -Inner product checksum theta = 518FB71F -Inner product checksum u = 6AF7C2FE -Inner product checksum mr1 = 3FCC0E8A -Inner product checksum mr2 = 37AE6078 -Inner product checksum mr3 = 34A914FC -Inner product checksum mr4 = 36D07B9B +Inner product checksum rho = 46D81429 +Inner product checksum theta = 518FB741 +Inner product checksum u = 6AF78146 +Inner product checksum mr1 = 3FCC0ABA +Inner product checksum mr2 = 37ABDC4A +Inner product checksum mr3 = 349FD984 +Inner product checksum mr4 = 36D68944 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_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt index ba79d7fde3..c3a2b69344 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_1T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D802A2 -Inner product checksum theta = 5392FAEE -Inner product checksum u = 6A97BE98 -Inner product checksum mr1 = 41CD11B6 -Inner product checksum mr2 = 39D29CF4 -Inner product checksum mr3 = 37ABEABC -Inner product checksum mr4 = 395797DC +Inner product checksum rho = 48D8026E +Inner product checksum theta = 5392FAF1 +Inner product checksum u = 6A97C948 +Inner product checksum mr1 = 41CD0BB2 +Inner product checksum mr2 = 39CEECFC +Inner product checksum mr3 = 37AA8952 +Inner product checksum mr4 = 395BCFA7 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_2T-C12_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt index ebad551374..64fabcb2e5 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C12_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 46D81424 -Inner product checksum theta = 518FB734 -Inner product checksum u = 6AF79FAB -Inner product checksum mr1 = 3FCC17AC -Inner product checksum mr2 = 37AE9140 -Inner product checksum mr3 = 349255F8 -Inner product checksum mr4 = 36CFEC88 +Inner product checksum rho = 46D8143E +Inner product checksum theta = 518FB717 +Inner product checksum u = 6AF797B9 +Inner product checksum mr1 = 3FCC0844 +Inner product checksum mr2 = 37A2E6D6 +Inner product checksum mr3 = 34BAF1E4 +Inner product checksum mr4 = 36D4F796 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_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt index 9d3752b0a7..e53a0c8e26 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D8027C -Inner product checksum theta = 5392FAE8 -Inner product checksum u = 6A97C83E -Inner product checksum mr1 = 41CD0E2D -Inner product checksum mr2 = 39CF4B62 -Inner product checksum mr3 = 37AED380 -Inner product checksum mr4 = 395C2AA8 +Inner product checksum rho = 48D802B2 +Inner product checksum theta = 5392FAF3 +Inner product checksum u = 6A97CD5E +Inner product checksum mr1 = 41CD1657 +Inner product checksum mr2 = 39CFF348 +Inner product checksum mr3 = 37A5B47C +Inner product checksum mr4 = 395BA2F6 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_2T-C48_MG_ex1a_cce_full-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_full-debug-32bit.txt index 7f1e51d433..f26c63a9f9 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_full-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_2T-C48_MG_ex1a_cce_full-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D801A6 -Inner product checksum theta = 5392FB09 -Inner product checksum u = 6A97BA3E -Inner product checksum mr1 = 41CD0CA7 -Inner product checksum mr2 = 39CB19BA -Inner product checksum mr3 = 37A9F1CA -Inner product checksum mr4 = 395853D0 +Inner product checksum rho = 48D801A2 +Inner product checksum theta = 5392FB15 +Inner product checksum u = 6A97BE16 +Inner product checksum mr1 = 41CD0EA6 +Inner product checksum mr2 = 39CD5354 +Inner product checksum mr3 = 37A6FC56 +Inner product checksum mr4 = 395B6BB2 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_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt index c2e697ee79..2c1caf9abf 100644 --- a/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt +++ b/rose-stem/site/meto/kgos/lfric_atm/ex1a/checksum_lfric_atm_nwp_gal9_4T-C48_MG_ex1a_cce_fast-debug-32bit.txt @@ -1,9 +1,9 @@ -Inner product checksum rho = 48D802A2 -Inner product checksum theta = 5392FB04 -Inner product checksum u = 6A97BC6C -Inner product checksum mr1 = 41CD1036 -Inner product checksum mr2 = 39CE3BA5 -Inner product checksum mr3 = 37AC6552 -Inner product checksum mr4 = 3957937E +Inner product checksum rho = 48D8027B +Inner product checksum theta = 5392FAF7 +Inner product checksum u = 6A97C214 +Inner product checksum mr1 = 41CD0C8C +Inner product checksum mr2 = 39CFE7EA +Inner product checksum mr3 = 37A6F0D9 +Inner product checksum mr4 = 395B3778 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 edfe0be655..41b9b4da97 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 = 48D8031D -Inner product checksum theta = 5392FB13 -Inner product checksum u = 6A97C2A5 -Inner product checksum mr1 = 41CD07A8 -Inner product checksum mr2 = 39CFD168 -Inner product checksum mr3 = 37AB6032 -Inner product checksum mr4 = 3958F610 +Inner product checksum rho = 48D8033C +Inner product checksum theta = 5392FB0E +Inner product checksum u = 6A97C759 +Inner product checksum mr1 = 41CD0B58 +Inner product checksum mr2 = 39CE99BE +Inner product checksum mr3 = 37A8F42E +Inner product checksum mr4 = 395D16B4 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 1e37c7be49..72446a938f 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 = 48D80106 -Inner product checksum theta = 5392FB2E -Inner product checksum u = 6A97BF93 -Inner product checksum mr1 = 41CCE6F0 -Inner product checksum mr2 = 39D2731B -Inner product checksum mr3 = 37A94579 -Inner product checksum mr4 = 39714EC6 +Inner product checksum rho = 48D80122 +Inner product checksum theta = 5392FB58 +Inner product checksum u = 6A97BFFA +Inner product checksum mr1 = 41CCE649 +Inner product checksum mr2 = 39CCF794 +Inner product checksum mr3 = 37AE187D +Inner product checksum mr4 = 3970A2E9 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 1a865c06cf..5ffd9fc0e3 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 = 48D8000F -Inner product checksum theta = 5392FB21 -Inner product checksum u = 6A97B84A -Inner product checksum mr1 = 41CCE7B3 -Inner product checksum mr2 = 39D0975E -Inner product checksum mr3 = 37A94691 -Inner product checksum mr4 = 396E515C +Inner product checksum rho = 48D7FFD9 +Inner product checksum theta = 5392FB25 +Inner product checksum u = 6A97BB18 +Inner product checksum mr1 = 41CCEC0C +Inner product checksum mr2 = 39D16D01 +Inner product checksum mr3 = 37AD13C3 +Inner product checksum mr4 = 396F8671 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 1420b16ba3..69b58643f7 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 = 46D8216E -Inner product checksum theta = 518A762E -Inner product checksum u = 6A8CF11F -Inner product checksum mr1 = 3FD4046A -Inner product checksum mr2 = 37BF14E4 -Inner product checksum mr3 = 35A66CBD -Inner product checksum mr4 = 3702B356 +Inner product checksum rho = 46D820BC +Inner product checksum theta = 518A7848 +Inner product checksum u = 6A8D03E5 +Inner product checksum mr1 = 3FD3E2AE +Inner product checksum mr2 = 37BB3D6D +Inner product checksum mr3 = 35A97B9A +Inner product checksum mr4 = 36CCD7F7 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 10557ee538..95eceb2808 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 = 46D824C3 +Inner product checksum rho = 46D824BF Inner product checksum theta = 5195283B -Inner product checksum u = 6AD01B5F -Inner product checksum mr1 = 3FC894B8 -Inner product checksum mr2 = 37AFCAFA -Inner product checksum mr3 = 3520B790 -Inner product checksum mr4 = 36A0BEC3 +Inner product checksum u = 6AD01B88 +Inner product checksum mr1 = 3FC8949C +Inner product checksum mr2 = 37AFF7D6 +Inner product checksum mr3 = 3521848E +Inner product checksum mr4 = 36A0B7AA 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 c2ca2273d3..3f3506c464 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 = 48D81C6A -Inner product checksum theta = 53952785 -Inner product checksum u = 6AA47DEC -Inner product checksum mr1 = 41C845DD -Inner product checksum mr2 = 3999D1AC -Inner product checksum mr3 = 377ACE28 -Inner product checksum mr4 = 392E3B81 +Inner product checksum rho = 48D81C6C +Inner product checksum theta = 53952784 +Inner product checksum u = 6AA47E0C +Inner product checksum mr1 = 41C845C6 +Inner product checksum mr2 = 399A0803 +Inner product checksum mr3 = 377A3109 +Inner product checksum mr4 = 392E201B 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 78bb876a0a..9f10f40e80 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 = 46D82302 -Inner product checksum theta = 518A5565 -Inner product checksum u = 6A906F5F -Inner product checksum mr1 = 3FD0FD62 -Inner product checksum mr2 = 37E31AEA -Inner product checksum mr3 = 35A29AA7 -Inner product checksum mr4 = 36FC0A34 +Inner product checksum rho = 46D82261 +Inner product checksum theta = 518A5400 +Inner product checksum u = 6A90C2C4 +Inner product checksum mr1 = 3FD0D366 +Inner product checksum mr2 = 37CA793A +Inner product checksum mr3 = 35BE669E +Inner product checksum mr4 = 36F32438 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 d5cb4ee56c..53c1d065d9 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 = 46D82272 -Inner product checksum theta = 518A76EA -Inner product checksum u = 6A8CA7C6 -Inner product checksum mr1 = 3FD3D711 -Inner product checksum mr2 = 37B76C73 -Inner product checksum mr3 = 35A34C22 -Inner product checksum mr4 = 36DDD026 +Inner product checksum rho = 46D823E7 +Inner product checksum theta = 518A73B8 +Inner product checksum u = 6A8CD920 +Inner product checksum mr1 = 3FD3D23D +Inner product checksum mr2 = 37C61BA2 +Inner product checksum mr3 = 35AC49AA +Inner product checksum mr4 = 3709B4E9 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 8eff44da85..69c75f4be0 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 = 46D85F86 -Inner product checksum theta = 5193AFF4 -Inner product checksum u = 6A85CBD0 -Inner product checksum mr1 = 3FD062C8 -Inner product checksum mr2 = 37A81340 -Inner product checksum mr3 = 352DDFB0 -Inner product checksum mr4 = 36CCECD8 +Inner product checksum rho = 46D85D7F +Inner product checksum theta = 5193AF5E +Inner product checksum u = 6A85EBDE +Inner product checksum mr1 = 3FD05992 +Inner product checksum mr2 = 37AA84DD +Inner product checksum mr3 = 3527D888 +Inner product checksum mr4 = 36C16B40 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 b63e7d9c44..07d41efa57 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 = 46D82C2E +Inner product checksum rho = 46D82C30 Inner product checksum theta = 5194F74C -Inner product checksum u = 6AE739DF -Inner product checksum mr1 = 3FC8CA52 -Inner product checksum mr2 = 37A43F02 -Inner product checksum mr3 = 35571D4E -Inner product checksum mr4 = 371F5600 +Inner product checksum u = 6AE739A7 +Inner product checksum mr1 = 3FC8CAAE +Inner product checksum mr2 = 37A4A396 +Inner product checksum mr3 = 3558139A +Inner product checksum mr4 = 371FDBE0 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 1d1d7b6f1b..5bcd3e4206 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 = 483997B2 +Inner product checksum rho = 483997B8 Inner product checksum theta = 51354962 -Inner product checksum u = 612F4912 -Inner product checksum mr1 = 4090FC04 -Inner product checksum mr2 = 35B167C4 -Inner product checksum mr3 = 2FA645AF -Inner product checksum mr4 = 33F4FE48 -Inner product checksum mr5 = BECFC33 +Inner product checksum u = 612F48FD +Inner product checksum mr1 = 4090FA95 +Inner product checksum mr2 = 35B41EA8 +Inner product checksum mr3 = 2FA64477 +Inner product checksum mr4 = 33F4FE31 +Inner product checksum mr5 = BECFCC0 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 d02beb6cb8..5aa6f5e28f 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 = 483997E0 -Inner product checksum theta = 5135494E -Inner product checksum u = 612F4984 -Inner product checksum mr1 = 409110E8 -Inner product checksum mr2 = 35E540AB -Inner product checksum mr3 = 2FA98AF3 -Inner product checksum mr4 = 33F4FF5D -Inner product checksum mr5 = BF18191 +Inner product checksum rho = 483997E6 +Inner product checksum theta = 5135494C +Inner product checksum u = 612F4981 +Inner product checksum mr1 = 40911010 +Inner product checksum mr2 = 35E7733C +Inner product checksum mr3 = 2FA83F7C +Inner product checksum mr4 = 33F4FF41 +Inner product checksum mr5 = BF17D84 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 4a1ddd9a11..dc68904044 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 = 48398C6B +Inner product checksum rho = 48398C6A Inner product checksum theta = 51354302 -Inner product checksum u = 612EDCBC -Inner product checksum mr1 = 40910380 -Inner product checksum mr2 = 358489D6 -Inner product checksum mr3 = 3000F2CD -Inner product checksum mr4 = 3404AC27 -Inner product checksum mr5 = C14A272 +Inner product checksum u = 612EDCB6 +Inner product checksum mr1 = 4091033E +Inner product checksum mr2 = 358A714E +Inner product checksum mr3 = 3000FD12 +Inner product checksum mr4 = 3404AC81 +Inner product checksum mr5 = C14A273 Inner product checksum mr6 = 0 diff --git a/science/gungho/source/algorithm/timestepping/semi_implicit_timestep_alg_mod.X90 b/science/gungho/source/algorithm/timestepping/semi_implicit_timestep_alg_mod.X90 index 298decc8ba..1d060e07ae 100644 --- a/science/gungho/source/algorithm/timestepping/semi_implicit_timestep_alg_mod.X90 +++ b/science/gungho/source/algorithm/timestepping/semi_implicit_timestep_alg_mod.X90 @@ -372,6 +372,7 @@ contains end if #endif + ! Run the timestep call run_step(self, modeldb, & u, rho, theta, exner, mr, moist_dyn, & diff --git a/science/gungho/source/driver/gungho_model_mod.F90 b/science/gungho/source/driver/gungho_model_mod.F90 index b89f3f2ab1..8ff879085b 100644 --- a/science/gungho/source/driver/gungho_model_mod.F90 +++ b/science/gungho/source/driver/gungho_model_mod.F90 @@ -109,6 +109,7 @@ module gungho_model_mod use um_domain_init_mod, only : um_domain_init use um_sizes_init_mod, only : um_sizes_init use um_physics_init_mod, only : um_physics_init + use um_radaer_init_mod, only : um_radaer_init use um_radaer_lut_init_mod, only : um_radaer_lut_init use um_ukca_init_mod, only : um_ukca_init use jules_timestep_alg_mod, only : jules_timestep_type @@ -482,9 +483,6 @@ subroutine basic_initialisations(mesh,model_clock,config) ! Initialisation of UM physics variables call um_physics_init() - ! Read all the radaer lut namelist files - call um_radaer_lut_init() - ! Initialisation of Jules high-level variables call jules_control_init() @@ -495,6 +493,13 @@ subroutine basic_initialisations(mesh,model_clock,config) ! Initialisation of UKCA physics variables call um_ukca_init(ncells_ukca, model_clock) + ! This is the way into the UKCA repo + + ! Read all the radaer lut namelist files + call um_radaer_lut_init() + + ! Initialisation of UKCA RADAER variables + call um_radaer_init() end if #endif