diff --git a/applications/jedi_lfric_tests/Makefile b/applications/jedi_lfric_tests/Makefile index 2324011cc..a40096656 100644 --- a/applications/jedi_lfric_tests/Makefile +++ b/applications/jedi_lfric_tests/Makefile @@ -24,12 +24,17 @@ export EXTRA_ROSE_META = jules export META_DIR = $(WORKING_DIR)/../rose-meta export ROSE_META_DIRS = $(APPS_ROOT_DIR)/rose-meta $(META_DIR) +# Note - socrates_interface must come before jules_interface as there are dependencies on each other. export INTERNAL_DEPENDENCIES = $(CORE_ROOT_DIR)/infrastructure \ $(CORE_ROOT_DIR)/components/driver \ $(CORE_ROOT_DIR)/components/science \ $(CORE_ROOT_DIR)/components/inventory \ $(APPS_ROOT_DIR)/interfaces/jedi_lfric_interface \ $(CORE_ROOT_DIR)/components/lfric-xios \ + $(APPS_ROOT_DIR)/science/shared \ + $(APPS_ROOT_DIR)/interfaces/socrates_interface \ + $(APPS_ROOT_DIR)/interfaces/jules_interface \ + $(APPS_ROOT_DIR)/interfaces/physics_schemes_interface \ $(APPS_ROOT_DIR)/science/gungho \ $(APPS_ROOT_DIR)/science/linear \ $(APPS_ROOT_DIR)/science/adjoint @@ -46,7 +51,7 @@ ifneq ("$(PSYCLONE_TRANSFORMATION)","none") endif .PHONY: default -default: build integration-tests +default: build $(Q)echo > /dev/null .PHONY: documentation doc docs @@ -58,6 +63,11 @@ include $(CORE_ROOT_DIR)/infrastructure/build/lfric.mk include $(INTERNAL_DEPENDENCIES:=/build/import.mk) -include $(PROJECT_DIR)/build/project.mk +# Include transmute list only if not using minimum or no transformations +ifeq ($(filter "$(PSYCLONE_TRANSFORMATION)", "none" "minimum"),) + include build/psyclone_transmute_file_list.mk +endif + ############################################################################## # Documentation # @@ -102,7 +112,7 @@ build: export BIN_DIR ?= $(PROJECT_DIR)/bin build: export LIB_DIR ?= $(PROJECT_DIR)/lib build: export MOD_DIR ?= $(PROJECT_DIR)/mod build: export CXX_LINK = TRUE -build: export PROGRAMS := $(basename $(notdir $(shell find source -maxdepth 1 -name '*.[Ff]90' -print))) +build: export PROGRAMS := $(basename $(notdir $(shell find source -maxdepth 1 -name '*.[Ff]90' -exec egrep -l "^\s*program" {} \;))) build: export PROJECT = $(PROJECT_NAME) build: export WORKING_DIR := $(WORKING_DIR)/jedi_lfric_tests @@ -123,6 +133,20 @@ build: ALWAYS $(Q)for SUBPROJECT in $(INTERNAL_DEPENDENCIES) ; do \ $(MAKE) $(QUIET_ARG) -f $$SUBPROJECT/build/import.mk ; done $(call MESSAGE,========================================) + $(call MESSAGE,Extracting coupled_interface component) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/extract.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/interfaces/coupled_interface/source + $(call MESSAGE,========================================) + $(call MESSAGE,Extracting Gungho dynamical core) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/extract.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/science/gungho/source + $(call MESSAGE,========================================) + $(call MESSAGE,Extracting UM physics) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(APPS_ROOT_DIR)/build/extract/extract_physics.mk + $(call MESSAGE,========================================) $(call MESSAGE,Extracting $(PROJECT_NAME)) $(call MESSAGE,========================================) $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/extract.mk \ @@ -136,16 +160,54 @@ build: ALWAYS $(call MESSAGE,Generating $(PROJECT) namelist loaders) $(call MESSAGE,=========================================================) $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/configuration.mk \ - PROJECT=$(PROJECT) \ - SOURCE_DIR=source \ - WORKING_DIR=$(WORKING_DIR) \ + SOURCE_DIR=$(APPS_ROOT_DIR)/science/gungho/source \ META_FILE_DIR=$(META_FILE_DIR) $(call MESSAGE,========================================) + $(call MESSAGE,PSycloning interface components) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/interfaces/coupled_interface/source \ + OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/interfaces/jules_interface/source \ + OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/interfaces/socrates_interface/source \ + OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/interfaces/physics_schemes_interface/source \ + OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $(call MESSAGE,========================================) + $(call MESSAGE,PSycloning Gungho dynamical core) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ + SOURCE_DIR=$(APPS_ROOT_DIR)/science/gungho/source \ + OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $(call MESSAGE,========================================) $(call MESSAGE,PSycloning $(PROJECT_NAME)) $(call MESSAGE,========================================) $Q$(MAKE) $(QUIET_ARG) -f $(LFRIC_BUILD)/psyclone/psyclone_psykal.mk \ SOURCE_DIR=source \ OPTIMISATION_PATH=$(OPTIMISATION_PATH) + $(call MESSAGE,========================================) + $(call MESSAGE,Preprocess and PSyclone Transmute) + $(call MESSAGE,========================================) + $Q$(MAKE) $(QUIET_ARG) -f $(APPS_ROOT_DIR)/interfaces/build/pre_process_phys.mk \ + SOURCE_DIR=$(WORKING_DIR) \ + PSYCLONE_PHYSICS_FILES="$(PSYCLONE_PHYSICS_FILES)" \ + PSYCLONE_DIRECTORIES="$(PSYCLONE_DIRECTORIES)" \ + PSYCLONE_PHYSICS_EXCEPTION="$(PSYCLONE_PHYSICS_EXCEPTION)" + $Q$(MAKE) $(QUIET_ARG) -f $(APPS_ROOT_DIR)/interfaces/build/psyclone_transmute_pass.mk \ + SOURCE_DIR=$(WORKING_DIR) \ + OPTIMISATION_PATH_PSY=$(APPS_ROOT_DIR)/applications/$(PROJECT)/$(OPTIMISATION_PATH) \ + PSYCLONE_PASS_NO_SCRIPT="$(PSYCLONE_PASS_NO_SCRIPT)" + $Q$(MAKE) $(QUIET_ARG) -f $(APPS_ROOT_DIR)/interfaces/build/psyclone_transmute.mk \ + SOURCE_DIR=$(WORKING_DIR) \ + OPTIMISATION_PATH_PSY=$(APPS_ROOT_DIR)/applications/$(PROJECT)/$(OPTIMISATION_PATH) \ + PSYCLONE_PHYSICS_FILES="$(PSYCLONE_PHYSICS_FILES)" \ + PSYCLONE_PASS_NO_SCRIPT="$(PSYCLONE_PASS_NO_SCRIPT)" \ + PSYCLONE_DIRECTORIES="$(PSYCLONE_DIRECTORIES)" \ + PSYCLONE_PHYSICS_EXCEPTION="$(PSYCLONE_PHYSICS_EXCEPTION)" $(call MESSAGE,=========================================================) $(call MESSAGE,Analysing $(PROJECT) build dependencies) $(call MESSAGE,=========================================================) @@ -190,24 +252,8 @@ unit-tests/build: extract_meta unit-tests/build ############################################################################## # Integration tests # -integration-tests/%: export BIN_DIR ?= $(PROJECT_DIR)/test -integration-tests/%: export FFLAGS += -DINT_TEST -integration-tests/%: export IMPORT_PARTS = $(CORE_ROOT_DIR)/infrastructure \ - $(CORE_ROOT_DIR)/components/science \ - $(CORE_ROOT_DIR)/components/driver \ - $(CORE_ROOT_DIR)/components/inventory \ - $(CORE_ROOT_DIR)/components/lfric-xios \ - $(APPS_ROOT_DIR)/interfaces/jedi_lfric_interface \ - $(APPS_ROOT_DIR)/science/gungho \ - $(APPS_ROOT_DIR)/science/linear \ - $(APPS_ROOT_DIR)/science/adjoint -integration-tests/%: export META_FILE_DIR = rose-meta/jedi_lfric_tests/HEAD -integration-tests/%: export PROJECT = $(PROJECT_NAME) -integration-tests/%: export SOURCE_DIR = source -integration-tests/%: export TEST_DIR = integration-test -integration-tests/%: export WORKING_DIR := $(WORKING_DIR)/integration-tests -integration-tests: extract_meta integration-tests/run -integration-tests/build: extract_meta integration-tests/build +integration-tests: + $(call MESSAGE,Testing,"There are no integration tests.") ############################################################################## # Clean diff --git a/applications/jedi_lfric_tests/build/compile_options.mk b/applications/jedi_lfric_tests/build/compile_options.mk new file mode 100644 index 000000000..d9d1e0540 --- /dev/null +++ b/applications/jedi_lfric_tests/build/compile_options.mk @@ -0,0 +1,46 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## + +# NOTE: Import of compile options from LFRic infrastructure is temporarily +# suspended here as a workaround for #2340 in which application of the +# -qoverride-limits option was preventing compilation of a UKCA module. +# include $(LFRIC_BUILD)/compile_options.mk + +$(info UM physics specific compile options) + +include $(PROJECT_DIR)/build/fortran/$(FORTRAN_COMPILER).mk + +casim/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +ukca/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +jules/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +socrates/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +legacy/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +AC_assimilation/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +aerosols/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +atmosphere_service/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +boundary_layer/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +carbon/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +convection/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +diffusion_and_filtering/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +dynamics/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +dynamics_advection/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +electric/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +free_tracers/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +gravity_wave_drag/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +idealised/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +large_scale_cloud/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +large_scale_precipitation/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +physics_diagnostics/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +PWS_diagnostics/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +radiation_control/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +stochastic_physics/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +tracer_advection/%.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) +%/limited_area_constants_mod.o: private FFLAGS_EXTRA = $(FFLAGS_INTEL_FIX_ARG) + +$(info Disable warnings-turned-error caused by undeclared external functions - see ifort.mk) +%mpi_mod.o: private FFLAGS_EXTRA = $(FFLAGS_INTEL_EXTERNALS) +socrates/src/radiance_core/%.o: private FFLAGS_EXTRA = $(FFLAGS_INTEL_EXTERNALS) +socrates/src/interface_core/%.o: private FFLAGS_EXTRA = $(FFLAGS_INTEL_EXTERNALS) diff --git a/applications/jedi_lfric_tests/build/fortran/crayftn.mk b/applications/jedi_lfric_tests/build/fortran/crayftn.mk new file mode 100644 index 000000000..f70b99e21 --- /dev/null +++ b/applications/jedi_lfric_tests/build/fortran/crayftn.mk @@ -0,0 +1,13 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +# Various things specific to the Cray Fortran compiler. +############################################################################## + +$(info Project specials for Cray compiler) + +export FFLAGS_UM_PHYSICS = -s real64 + +include $(PROJECT_DIR)/build/fortran/crayftn/$(PROFILE).mk diff --git a/applications/jedi_lfric_tests/build/fortran/crayftn/fast-debug.mk b/applications/jedi_lfric_tests/build/fortran/crayftn/fast-debug.mk new file mode 100644 index 000000000..5530bd016 --- /dev/null +++ b/applications/jedi_lfric_tests/build/fortran/crayftn/fast-debug.mk @@ -0,0 +1,55 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +############################################################################## +# Various things specific to fast-debug lfric_atm when using the +# Cray Fortran compiler. +# To override flags specified in LFRic Core, use +# FFLAGS_SAFE_OPTIMISATION, to add an additional flag to what is specified +# in Core, use FFLAGS_EXTRA. If you need to add debugging flags to a module, +# modify FFLAGS_DEBUG for the target module. +# All flag modification should be `private` so they are not inherited by +# submodules. +############################################################################## + +# ========================================================================== +# NON-DEBUG FLAGS +# ========================================================================== +# UKCA +%ukca_emiss_mode_mod.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%ukca_step_control_mod.o: private FFLAGS_SAFE_OPTIMISATION = -O0 + +# UM +%parcel_ascent_5a.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) -hvector0 + +# LFRic Apps +%aerosol_ukca_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%bl_exp_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%bl_imp_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%conv_comorph_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%conv_comorph_kernel_mod.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%conv_gr_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%gungho_model_mod.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%init_aerosol_fields_alg_mod_psy.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +%jules_extra_kernel_mod.o: private FFLAGS_SAFE_OPTIMISATION = -O0 +large_scale_precipitation/%.o: private FFLAGS_SAFE_OPTIMISATION = -O2 -hfp0 -hflex_mp=strict + +# ========================================================================== +# DEBUG FLAGS +# ========================================================================== +# UKCA +%ukca_emiss_mode_mod.o: private FFLAGS_DEBUG = -G0 +%ukca_step_control_mod.o: private FFLAGS_DEBUG = -G0 + +# LFRic Apps +%aerosol_ukca_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%bl_exp_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%bl_imp_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%conv_comorph_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%conv_comorph_kernel_mod.o: private FFLAGS_DEBUG = -G0 +%conv_gr_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%gungho_model_mod.o: private FFLAGS_DEBUG = -G0 +%init_aerosol_fields_alg_mod_psy.o: private FFLAGS_DEBUG = -G0 +%jules_extra_kernel_mod.o: private FFLAGS_DEBUG = -G0 diff --git a/applications/jedi_lfric_tests/build/fortran/crayftn/full-debug.mk b/applications/jedi_lfric_tests/build/fortran/crayftn/full-debug.mk new file mode 100644 index 000000000..b556c200a --- /dev/null +++ b/applications/jedi_lfric_tests/build/fortran/crayftn/full-debug.mk @@ -0,0 +1,17 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +############################################################################## +# Various things specific to full-debug lfric_atm when using the +# Cray Fortran compiler. +############################################################################## + +# ========================================================================== +# NON-DEBUG FLAGS +# ========================================================================== + +# ========================================================================== +# DEBUG FLAGS +# ========================================================================== diff --git a/applications/jedi_lfric_tests/build/fortran/crayftn/production.mk b/applications/jedi_lfric_tests/build/fortran/crayftn/production.mk new file mode 100644 index 000000000..f82e56866 --- /dev/null +++ b/applications/jedi_lfric_tests/build/fortran/crayftn/production.mk @@ -0,0 +1,36 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +############################################################################## +# Various things specific to production lfric_atm when using the +# Cray Fortran compiler. +############################################################################## + +# ========================================================================== +# DIRECTORIES +# ========================================================================== +gravity_wave_drag/%.o: private FFLAGS_RISKY_OPTIMISATION = -O2 -hflex_mp=strict + +# ========================================================================== +# MODULES +# ========================================================================== +# UKCA +%ukca_emiss_mode_mod.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%ukca_step_control_mod.o: private FFLAGS_RISKY_OPTIMISATION = -O0 + +# UM +%parcel_ascent_5a.o: private FFLAGS_EXTRA = $(FFLAGS_UM_PHYSICS) -hvector0 + +# LFRic Apps +%aerosol_ukca_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%bl_exp_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%bl_imp_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%conv_comorph_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%conv_comorph_kernel_mod.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%conv_gr_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%gungho_model_mod.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%init_aerosol_fields_alg_mod_psy.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +%jules_extra_kernel_mod.o: private FFLAGS_RISKY_OPTIMISATION = -O0 +large_scale_precipitation/%.o: private FFLAGS_SAFE_OPTIMISATION = -O3 -hipa3 -hflex_mp=conservative diff --git a/applications/jedi_lfric_tests/build/fortran/gfortran.mk b/applications/jedi_lfric_tests/build/fortran/gfortran.mk new file mode 100644 index 000000000..797618aeb --- /dev/null +++ b/applications/jedi_lfric_tests/build/fortran/gfortran.mk @@ -0,0 +1,40 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +# Various things specific to the GNU Fortran compiler. +############################################################################## + +$(info Project specials for GNU compiler) + +export FFLAGS_UM_PHYSICS = -fdefault-real-8 -fdefault-double-8 +# Most lfric_atm dependencies contain code with implicit lossy conversions and +# unused variables. +# We reset the FFLAGS_WARNINGS variable here in order to prevent +# -Werror induced build failures. +FFLAGS_WARNINGS = -Wall -Werror=character-truncation -Werror=unused-value \ + -Werror=tabs +# But, we can apply some more lfric infrastructure checking to socrates +FFLAGS_SOCRATES_WARNINGS = -Werror=unused-variable + +science/src/socrates/%.o science/src/socrates/%.mod: private FFLAGS_EXTRA = $(FFLAGS_SOCRATES_WARNINGS) + +# We remove bounds checking (applied by -fcheck=all) and underflow checking. The +# latter is due to regular permitting of exponents going to zero for small numbers +# to imply total extinction of radiation passing through a medium +FFLAGS_RUNTIME = -fcheck=all,no-bounds -ffpe-trap=invalid,zero,overflow + +# The lfric_atm app defines an extra set of debug flags for +# fast-debug which are the same as the full-debug settings +# except for some platforms +ifdef CRAY_ENVIRONMENT +# On the EXZ these options are switched off for fast-debug +# due to an unexpected FPE in the NetCDF library +FFLAGS_FASTD_INIT = +FFLAGS_FASTD_RUNTIME = +else +# Otherwise, use the same as the default full-debug settings +FFLAGS_FASTD_INIT = $(FFLAGS_INIT) +FFLAGS_FASTD_RUNTIME = $(FFLAGS_RUNTIME) +endif diff --git a/applications/jedi_lfric_tests/build/project.mk b/applications/jedi_lfric_tests/build/project.mk index d99171780..527597e32 100644 --- a/applications/jedi_lfric_tests/build/project.mk +++ b/applications/jedi_lfric_tests/build/project.mk @@ -4,7 +4,12 @@ # under which the code may be used. ############################################################################## -# This file is for any project specific build settings to be applied -# via the Makefile. +$(info UM physics project specials) -$(info JEDI-LFRic test miniapp) +export PRE_PROCESS_INCLUDE_DIRS = \ + $(WORKING_DIR)/atmosphere_service/include \ + $(WORKING_DIR)/boundary_layer/include \ + $(WORKING_DIR)/large_scale_precipitation/include \ + $(WORKING_DIR)/free_tracers/include + +export PRE_PROCESS_MACROS += UM_PHYSICS LFRIC USSPPREC_32B LSPREC_32B UM_JULES diff --git a/applications/jedi_lfric_tests/build/psyclone_transmute_file_list.mk b/applications/jedi_lfric_tests/build/psyclone_transmute_file_list.mk new file mode 100644 index 000000000..f69100102 --- /dev/null +++ b/applications/jedi_lfric_tests/build/psyclone_transmute_file_list.mk @@ -0,0 +1,42 @@ +############################################################################## +# (c) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## + +# File lists provided will use the transmute PSyclone method. +# https://code.metoffice.gov.uk/trac/lfric_apps/ticket/724 + + +##### TRANSMUTE_INCLUDE_METHOD specify_include ##### +# For CPU OMP, we want to choose which files get run through PSyclone, +# and preserve existing hand coded optimisations. + +# Choose which files to Pre-proccess and PSyclone from physics_schemes / other +# physics source (e.g. UKCA) + +export PSYCLONE_PHYSICS_FILES = + +##### TRANSMUTE_INCLUDE_METHOD specify_include ##### + +# List to use PSyclone explicitly without any opt script +# This will remove hand written (OMP) directives in the source +# Used by both methods, specify_include and specify_exclude +export PSYCLONE_PASS_NO_SCRIPT = + +##### TRANSMUTE_INCLUDE_METHOD specify_exclude ##### +# For GPU, we may want to use more generic local.py transformation scripts +# and psyclone by directory. +# Advise which directories to pass to PSyclone. +# All files in these directories will be run through PSyclone using the +# transmute method. +# Also provide an optional exception list. +# These files will be filtered, and will NOT be run through PSyclone. + +# Directories to psyclone +export PSYCLONE_DIRECTORIES = + +# A general file exception list +export PSYCLONE_PHYSICS_EXCEPTION = + +##### TRANSMUTE_INCLUDE_METHOD specify_exclude ##### diff --git a/applications/jedi_lfric_tests/example_forecast/README b/applications/jedi_lfric_tests/example_forecast/README new file mode 100644 index 000000000..d3d0b29cc --- /dev/null +++ b/applications/jedi_lfric_tests/example_forecast/README @@ -0,0 +1,74 @@ + +# +# This configuration is based on jedi_lfric_tests: forecast_gh-si-for-linear-C12 +# which was removed from the rose-tsem configuration as part of: +# https://github.com/MetOffice/lfric_apps/pull/512 +# +# + +This "example" directory contains a configuration file that enables +you to run jedi_forecast from the command line. This directory and example +directories for the other LFRic applications within the LFRic apps code +repository are colloquially called "canned" configurations as they are +designed to be run from the command line straight out of the can +without needing to run the Rose Stem application. + +To run them without using Rose Stem, check out a working copy of a +branch, then follow the instructions found here: + +https://metoffice.github.io/lfric_apps/developer_guide/local_builds.html + +To summarise the instructions, first ensure you have your software +environment set up to build LFRic applications. Currently: + +$ ml use ~lfricadmin/lmod +$ ml lfric + +Then run the +following: + +$ cd lfricAppsClone +$ ./build/local_build.py -a jedi_lfric_tests + +$ cd applications/jedi_lfric_tests/example_forecast +$ ../bin/jedi_forecast configuration.nml ;# Runs jedi_forecast with the configuration file as input + +The application can be run on 6PEs via: +$ OMP_NUM_THREADS=1 mpiexec -n 6 ../bin/jedi_forecast configuration.nml + +configuration.nml +----------------- + +This configuration is not tested routinely in the test suite, so it +may fail due to developments in particular code configurations. + +To run other configurations +--------------------------- + +If you wish to run a different configuration , you can create a +configuration based on one of the Rose Stem configurations. The +easiest way to do this is to run the Rose Stem developer test suite +and then use the contents of one of the run directories that are +generated by the suite. + +Each such directory should contain a configuration.nml file, an +iodef.xml file, a start dump file, a mesh file and, potentially, a +directory of data files. These files are required to run the +application. Assuming the Rose Stem test passed, the directory will +contain various netCDF output files, and text output files from the +model and from XIOS. + +For example, the current form of the name for a short aquaplanet +configuration using a C12 cubed sphere mesh is: + +~/cylc-run/[your-branch-name]/run[run number]/work/1/run_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_fast-debug-64bit/ + +Some configurations may need to be run on multiple MPI ranks: + +$ mpirun -n 6 ../bin/lfric_atm configuration.nml + +Some configurations may need to be run without OpenMP threads. If so, +set the following environment variable: + +$ export OMP_NUM_THREADS=1 + diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90 b/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90 deleted file mode 100644 index af704fa3b..000000000 --- a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.f90 +++ /dev/null @@ -1,247 +0,0 @@ -!----------------------------------------------------------------------------- -! (C) Crown copyright 2023 Met Office. All rights reserved. -! The file LICENCE, distributed with this code, contains details of the terms -! under which the code may be used. -!----------------------------------------------------------------------------- - -!>@brief The top level program for the da dev algorithm -!! integration tests. -!>@details Sets up and runs the integration tests specified in -!! algorithms_test.py. Currently only -!! jedi_lfric_increment_alg_mod.x90 is tested, this algorithm -!! takes a real field and adds one to its value. -program algorithm_test - - use add_mesh_map_mod, only: assign_mesh_maps - use config_loader_mod, only: final_configuration, & - read_configuration - use config_mod, only: config_type - use constants_mod, only: i_def, r_def, str_def, l_def - use create_mesh_mod, only: create_extrusion, create_mesh - use test_algorithm_mod, only: test_algorithm_finalise, & - test_algorithm_initialise, & - test_jedi_lfric_increment_alg - use driver_collections_mod, only: init_collections, final_collections - use driver_mesh_mod, only: init_mesh - use extrusion_mod, only: extrusion_type, & - uniform_extrusion_type, & - PRIME_EXTRUSION, TWOD - use halo_comms_mod, only: initialise_halo_comms, & - finalise_halo_comms - use lfric_mpi_mod, only: global_mpi, & - create_comm, destroy_comm, & - lfric_comm_type - use log_mod, only: log_event, & - initialise_logging, & - finalise_logging, & - LOG_LEVEL_ERROR, & - LOG_LEVEL_INFO - - use base_mesh_config_mod, only: GEOMETRY_SPHERICAL, & - GEOMETRY_PLANAR - - implicit none - - ! MPI communicator - type(lfric_comm_type) :: comm - - ! Number of processes and local rank - integer(i_def) :: total_ranks, local_rank - - character(:), allocatable :: filename - - type(config_type), save :: config - - ! Variables used for parsing command line arguments - integer :: length, status, nargs - character(len=0) :: dummy - character(len=:), allocatable :: program_name, test_flag - - ! Flags which determine the tests that will be carried out - logical :: do_test_jedi_lfric_increment_alg_mod = .false. - - class(extrusion_type), allocatable :: extrusion - type(uniform_extrusion_type), allocatable :: extrusion_2d - - character(str_def) :: prime_mesh_name - - logical(l_def) :: check_partitions - logical(l_def) :: inner_halo_tiles - - integer(i_def) :: geometry - integer(i_def) :: stencil_depth(1) - integer(i_def) :: method - integer(i_def) :: number_of_layers - integer(i_def) :: tile_size_x - integer(i_def) :: tile_size_y - - real(r_def) :: domain_bottom - real(r_def) :: domain_height - real(r_def) :: scaled_radius - - integer(i_def), allocatable :: tile_size(:,:) - - integer(i_def) :: i - integer(i_def), parameter :: one_layer = 1_i_def - - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Setup for all tests - ! Usage message to print - character(len=256) :: usage_message - - character(str_def) :: base_mesh_names(1) - character(str_def), allocatable :: twod_names(:) - real(r_def), parameter :: tolerance = 1.0e-3_r_def - - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Communicators and Logging Setup - ! Initialise MPI communicatios and get a valid communicator - call create_comm(comm) - - ! Save the communicator for later use - call global_mpi%initialise(comm) - - ! Initialise halo functionality - call initialise_halo_comms(comm) - - total_ranks = global_mpi%get_comm_size() - local_rank = global_mpi%get_comm_rank() - - call initialise_logging( comm%get_comm_mpi_val(), 'jedi_lfric_test_alg' ) - - call log_event( 'da dev alg testing running ...', LOG_LEVEL_INFO ) - - ! Parse command line parameters - call get_command_argument( 0, dummy, length, status ) - allocate(character(length)::program_name) - call get_command_argument( 0, program_name, length, status ) - nargs = command_argument_count() - - ! Print out usage message if wrong number of arguments is specified - if (nargs /= 2) then - write(usage_message,*) "Usage: ",trim(program_name), & - " " // & - " test_XXX with XXX in { " // & - " jedi_lfric_increment_alg_mod, " // & - " } " - call log_event( trim(usage_message), LOG_LEVEL_ERROR ) - end if - - call get_command_argument( 1, dummy, length, status ) - allocate( character(length) :: filename ) - call get_command_argument( 1, filename, length, status ) - - call get_command_argument( 2, dummy, length, status ) - allocate(character(length)::test_flag) - call get_command_argument( 2, test_flag, length, status ) - - ! Choose test case depending on flag provided in the first command - ! line argument - select case (trim(test_flag)) - case ("test_jedi_lfric_increment_alg_mod") - do_test_jedi_lfric_increment_alg_mod = .true. - case default - call log_event( "Unknown test", LOG_LEVEL_ERROR ) - end select - - ! Setup configuration, mesh, and fem - call config%initialise( program_name ) - call read_configuration( filename, config=config ) - call init_collections() - - !-------------------------------------- - ! 0.0 Extract namelist variables - !-------------------------------------- - prime_mesh_name = config%base_mesh%prime_mesh_name() - geometry = config%base_mesh%geometry() - method = config%extrusion%method() - domain_height = config%extrusion%domain_height() - number_of_layers = config%extrusion%number_of_layers() - scaled_radius = config%planet%scaled_radius() - - tile_size_x = 1 - tile_size_y = 1 - inner_halo_tiles = .false. - - !-------------------------------------- - ! 1.0 Create the meshes - !-------------------------------------- - base_mesh_names(1) = prime_mesh_name - allocate( twod_names, source=base_mesh_names ) - - !-------------------------------------- - ! 1.1 Create the required extrusions - !-------------------------------------- - select case (geometry) - case (geometry_planar) - domain_bottom = 0.0_r_def - case (geometry_spherical) - domain_bottom = scaled_radius - case default - call log_event("Invalid geometry for mesh initialisation", LOG_LEVEL_ERROR) - end select - allocate( extrusion, source=create_extrusion( method, & - domain_height, & - domain_bottom, & - number_of_layers, & - PRIME_EXTRUSION ) ) - - extrusion_2d = uniform_extrusion_type( domain_height, & - domain_bottom, & - one_layer, TWOD ) - - !------------------------------------------------------------------------- - ! 1.2 Create the required meshes - !------------------------------------------------------------------------- - if (allocated(tile_size)) deallocate(tile_size) - allocate(tile_size(2, size(base_mesh_names))) - tile_size(1,:) = tile_size_x - tile_size(2,:) = tile_size_y - stencil_depth = 1 - check_partitions = .false. - call init_mesh( config, local_rank, total_ranks, & - base_mesh_names, extrusion, & - inner_halo_tiles, tile_size, & - stencil_depth, check_partitions ) - - do i=1, size(twod_names) - twod_names(i) = trim(twod_names(i))//'_2d' - end do - call create_mesh( base_mesh_names, extrusion_2d, & - inner_halo_tiles, tile_size, & - alt_name=twod_names ) - call assign_mesh_maps(twod_names) - - - !------------------------------------------------------------------------- - ! Tests - !------------------------------------------------------------------------- - call test_algorithm_initialise(config, prime_mesh_name) ! fem - - if ( do_test_jedi_lfric_increment_alg_mod ) then - call test_jedi_lfric_increment_alg(tolerance) - endif - - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! Finalise and close down - - call test_algorithm_finalise() - - if (allocated(program_name)) deallocate(program_name) - if (allocated(filename)) deallocate(filename) - if (allocated(test_flag)) deallocate(test_flag) - - call log_event( 'da dev alg functional testing completed ...', LOG_LEVEL_INFO ) - - ! (note that the order of the calls of the following finalisers matters) - - call final_collections() - call final_configuration() - - call finalise_halo_comms() - call global_mpi%finalise() - call destroy_comm() - - call finalise_logging() - -end program algorithm_test diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.py b/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.py deleted file mode 100755 index 6b324ad6d..000000000 --- a/applications/jedi_lfric_tests/integration-test/algorithm/algorithm_test.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -############################################################################## -# (C) Crown copyright 2023 Met Office. All rights reserved. -# The file LICENCE, distributed with this code, contains details of the terms -# under which the code may be used. -############################################################################## -''' -Run the jedi_lfric integration tests -''' - -import os -import re -import sys - -from testframework import LFRicLoggingTest, TestEngine, TestFailed - - -class JediLfricTest(LFRicLoggingTest): - ''' - Run the jedi_lfric integration tests - ''' - - def __init__(self, flag: str) -> None: - self._flag = flag - if 'MPIEXEC_BROKEN' in os.environ: - JediLfricTest.set_mpiexec_broken() - super().__init__([sys.argv[1], - 'resources/algorithm_test_configuration.nml', - 'test_' + self._flag], - processes=1, - name='JediLfricTest.Log') - - def test(self, return_code: int, out: str, err: str) -> str: - ''' - Error messages if the test failed to run - ''' - if return_code != 0: - message = 'Test program failed with exit code: {code}' - raise TestFailed(message.format(code=return_code), - stdout=out, stderr=err, - log=self.getLFRicLoggingLog()) - - # "out" becomes self.getLFRicLoggingLog() when PE>1 - if not self.test_passed(out): - message = 'Test {} failed' - raise TestFailed(message.format(self._flag), - stdout=out, stderr=err, - log=self.getLFRicLoggingLog()) - - return 'da dev test : '+self._flag - - @staticmethod - def test_passed(out: str) -> bool: - ''' - Examine the output to see if the validity test passed - ''' - success = False - pattern = re.compile(r'test\s*PASS\s*$') - for line in out.split("\n"): - match = pattern.search(line) - if match: - success = True - return success - - -class jedi_lfric_increment_alg(JediLfricTest): - ''' - Test running the jedi_lfric_increment_alg_mod.x90 algorithm - ''' - - def __init__(self): - flag = "jedi_lfric_increment_alg_mod" - super().__init__(flag) - - -if __name__ == '__main__': - TestEngine.run(jedi_lfric_increment_alg()) diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml b/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml deleted file mode 100644 index 87fc3b7fd..000000000 --- a/applications/jedi_lfric_tests/integration-test/algorithm/resources/algorithm_test_configuration.nml +++ /dev/null @@ -1,37 +0,0 @@ -&base_mesh -f_lat_deg=45.0, -file_prefix='resources/mesh_C12', -fplane=.false., -geometry='spherical', -prepartitioned=.false., -prime_mesh_name='dynamics', -topology='fully_periodic', -/ - -&extrusion -planet_radius=6371229.0, -domain_height=1000.0, -method='uniform', -number_of_layers=70, -stretching_method='linear', -/ - -&finite_element -cellshape='quadrilateral', -element_order_h=0, -element_order_v=0, -rehabilitate=.true., -coord_order=1 -coord_order_nonprime=1, -coord_space='Wchi', -coord_system='native' -/ - -&partitioning - partitioner='cubedsphere', - panel_decomposition = 'auto', -/ - -&planet - scaling_factor=125.0, -/ diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/resources/mesh_C12.nc b/applications/jedi_lfric_tests/integration-test/algorithm/resources/mesh_C12.nc deleted file mode 100644 index 6637522a3..000000000 Binary files a/applications/jedi_lfric_tests/integration-test/algorithm/resources/mesh_C12.nc and /dev/null differ diff --git a/applications/jedi_lfric_tests/integration-test/algorithm/test_algorithm_mod.x90 b/applications/jedi_lfric_tests/integration-test/algorithm/test_algorithm_mod.x90 deleted file mode 100644 index b4e487047..000000000 --- a/applications/jedi_lfric_tests/integration-test/algorithm/test_algorithm_mod.x90 +++ /dev/null @@ -1,107 +0,0 @@ -!----------------------------------------------------------------------------- -! (c) Crown copyright 2023 Met Office. All rights reserved. -! The file LICENCE, distributed with this code, contains details of the terms -! under which the code may be used. -!----------------------------------------------------------------------------- - -!>@brief Drives the execution of the da dev algorithms tests -module test_algorithm_mod - - use config_mod, only : config_type - use constants_mod, only : i_def, r_def, str_def - use driver_fem_mod, only : init_fem, final_fem - use field_mod, only : field_type, field_proxy_type - use fs_continuity_mod, only : Wtheta - use function_space_collection_mod, only : function_space_collection - use function_space_mod, only : function_space_type - use inventory_by_mesh_mod, only : inventory_by_mesh_type - use log_mod, only : log_event, & - LOG_LEVEL_INFO - use mesh_mod, only : mesh_type - use mesh_collection_mod, only : mesh_collection - - implicit none - - private - public test_algorithm_initialise, & - test_algorithm_finalise, & - test_jedi_lfric_increment_alg - - character(len=128) :: output - - ! Coordinate field - type(inventory_by_mesh_type) :: chi_inventory - type(inventory_by_mesh_type) :: panel_id_inventory - type(function_space_type), pointer :: wtheta_fs => null() - integer(i_def), parameter :: element_order_h = 0 - integer(i_def), parameter :: element_order_v = 0 - -contains - - !> @brief Initialise module. - !> @details Initialises the fem & function space wtheta_fs - !> @param[in] config Application namelist configuration object - !> @param[in] mesh Mesh to be used - subroutine test_algorithm_initialise( config, mesh_name ) - - implicit none - - type(config_type), intent(in) :: config - character(str_def), intent(in) :: mesh_name - type(mesh_type), pointer :: mesh => null() - - call init_fem( config, chi_inventory, panel_id_inventory ) - mesh => mesh_collection%get_mesh(mesh_name) - wtheta_fs => function_space_collection%get_fs( mesh, & - element_order_h, & - element_order_v, & - Wtheta ) - - end subroutine test_algorithm_initialise - - !> @brief Finalises the fem & function space - subroutine test_algorithm_finalise() - - implicit none - - call final_fem() - nullify(wtheta_fs) - - end subroutine test_algorithm_finalise - - !> @brief Tests jedi_lfric_increment_alg - !> @param[in] tolerance Tolerance - subroutine test_jedi_lfric_increment_alg( tolerance ) - - use jedi_lfric_increment_alg_mod, only : jedi_lfric_increment_alg - - implicit none - - real(r_def), intent(in) :: tolerance - - type(field_type), target :: test_field - type(field_proxy_type) :: field_proxy - - ! Initialise test field and get proxy - call test_field%initialise( wtheta_fs, name='test_field' ) - field_proxy = test_field%get_proxy() - ! Set first dof to nominal value - call invoke( setval_c(test_field, 1.0_r_def) ) - - call jedi_lfric_increment_alg(test_field) - - write ( output, '("Returned Field Values =", ES15.8)' ) field_proxy%data(1) - - ! Test if value is correct - if ( all( abs(field_proxy%data(:) - 2.0_r_def) <= tolerance ) ) then - call log_event( 'test PASS', LOG_LEVEL_INFO ) - call log_event( output, LOG_LEVEL_INFO ) - else - call log_event( 'test FAIL', LOG_LEVEL_INFO ) - call log_event( 'Expected Field Values = 2.00000000E+00', LOG_LEVEL_INFO ) - call log_event( output, LOG_LEVEL_INFO ) - end if - - end subroutine test_jedi_lfric_increment_alg - -end module test_algorithm_mod diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/HEAD/rose-meta.conf b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/HEAD/rose-meta.conf index 06cec7ef7..489521ec5 100644 --- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/HEAD/rose-meta.conf +++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/HEAD/rose-meta.conf @@ -1,4 +1,81 @@ -import=jedi_common/HEAD +import=lfric-gungho/HEAD + +#============================================================================== +# Geometry for the JEDI-LFRIC Emulator +#============================================================================== +[namelist:jedi_geometry] +compulsory=true +description=JEDI-LFRIC emulator geometry configuration +help=Configuration options for JEDI-LFRIC emulator geometry object. +ns=namelist/JEDI-LFRIC-setup/jedi_geometry +title=jedi_geometry + +[namelist:jedi_geometry=io_calender_start] +compulsory=true +description=The IO clock start date +help=Format: yyyy-mm-ddThh:mm:ss +!kind=default +sort-key= +type=character + +[namelist:jedi_geometry=io_path_state_read] +compulsory=true +description=Path to the file to be read +help=This is the lfric_diag.nc file which stores a test trajectory (set of states) +!kind=default +sort-key= +type=character + +[namelist:jedi_geometry=io_path_state_write] +compulsory=true +description=Path to the file that will be written +help=This is the file that will be written to +!kind=default +sort-key= +type=character + +[namelist:jedi_geometry=io_time_step] +compulsory=true +description=The time step duration +help=Format: PdDThHmMsS where d=day, h=hours, m=minutes and s=seconds +!kind=default +sort-key= +type=character + +#============================================================================== +# Setup for the JEDI-LFRIC Emulator application +#============================================================================== +[namelist:jedi_lfric_settings] +compulsory=true +description=JEDI-LFRIC emulator application configuration +help=Configuration option for JEDI-LFRIC emulator. +ns=namelist/JEDI-LFRIC-setup +title=JEDI-LFRIC Setings + +[namelist:jedi_lfric_settings=forecast_length] +compulsory=true +description=The forecast duration +help=Format: PdDThHmMsS where d=day, h=hours, m=minutes and s=seconds +!kind=default +sort-key= +type=character + +#============================================================================== +# jedi_lfric_tests for the JEDI-LFRIC Emulator +#============================================================================== +[namelist:jedi_lfric_tests] +compulsory=true +description= +ns=namelist/jedi_lfric_tests +title=jedi_lfric_tests + +[namelist:jedi_lfric_tests=test_field] +compulsory=true +description=Which field to apply the algorithm to +help=One of the jedi_lfric_tests fields should contain distinct data for test purposes +!kind=default +sort-key= +type=character #============================================================================== # Model for the JEDI-LFRIC Emulator @@ -16,3 +93,40 @@ help=Format PdDThHmMsS where d=day, h=hours, m=minutes and s=seconds !kind=default sort-key= type=character + +#============================================================================== +# State for the JEDI-LFRIC Emulator +#============================================================================== +[namelist:jedi_state] +compulsory=true +description=JEDI-LFRIC emulator state configuration +help=Configuration options for JEDI-LFRIC emulator state object. +ns=namelist/JEDI-LFRIC-setup/jedi_state +title=jedi_state + +[namelist:jedi_state=state_time] +compulsory=true +description=The validity date of the state +help=Format: yyyy-mm-dd hh:mm:ss +!kind=default +sort-key= +type=character + +[namelist:jedi_state=use_pseudo_model] +compulsory=true +description=A logical that defines how the state should be setup +help=A logical that when true sets the state up to be used + =with the pseudo model. This means NL model modeldb + =is not instantiated +!kind=default +sort-key= +type=logical + +[namelist:jedi_state=variables] +compulsory=true +description=List of variables to be instantiated +help=Add a comma separted list of variables to instantiate + =format: 'theta', 'rho', ... +length=: +sort-key= +type=character 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 483fe8388..60d69515a 100644 --- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py +++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/versions.py @@ -966,3 +966,13 @@ def upgrade(self, config, meta_config=None): ) return config, self.reports + + +class vn31_t512(MacroUpgrade): + # Upgrade macro for #512 by Steven Sandbach + + BEFORE_TAG = "vn3.1_t324" + AFTER_TAG = "vn3.1_t512" + + def upgrade(self, config, meta_config=None): + # Add settings diff --git a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/vn3.1/rose-meta.conf b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/vn3.1/rose-meta.conf index d191bf9f1..8dd6d6593 100644 --- a/applications/jedi_lfric_tests/rose-meta/jedi_forecast/vn3.1/rose-meta.conf +++ b/applications/jedi_lfric_tests/rose-meta/jedi_forecast/vn3.1/rose-meta.conf @@ -1,18 +1 @@ import=jedi_common/vn3.1 - -#============================================================================== -# Model for the JEDI-LFRIC Emulator -#============================================================================== -[namelist:jedi_model] -compulsory=true -description=Jedi model configuration -ns=namelist/JEDI-LFRIC-setup/jedi_model -title=jedi_model - -[namelist:jedi_model=time_step] -compulsory=true -description=The models time step duration -help=Format PdDThHmMsS where d=day, h=hours, m=minutes and s=seconds -!kind=default -sort-key= -type=character diff --git a/applications/jedi_lfric_tests/source/jedi-interface/jedi_model_mod.f90 b/applications/jedi_lfric_tests/source/jedi-interface/jedi_model_mod.f90 index f6d9b608b..3ab72c285 100644 --- a/applications/jedi_lfric_tests/source/jedi-interface/jedi_model_mod.f90 +++ b/applications/jedi_lfric_tests/source/jedi-interface/jedi_model_mod.f90 @@ -102,19 +102,6 @@ subroutine model_step(self, state) class( jedi_model_type ), target, intent(inout) :: self type( jedi_state_type ), intent(inout) :: state - ! Local - logical :: clock_running - - ! check the clock - clock_running = state%modeldb%clock%tick() - ! If the clock has finished then it will just get the - ! data at the end of the file - this prevents that - if ( .not. clock_running ) then - write ( log_scratch_space, '(A)' ) & - "Model::model_step::The LFRic clock has stopped." - call log_event( log_scratch_space, LOG_LEVEL_ERROR ) - endif - ! step gungho call step_nl( state%modeldb ) diff --git a/rose-stem/app/jedi_forecast/file/axis_def_plev.xml b/rose-stem/app/jedi_forecast/file/axis_def_plev.xml new file mode 100644 index 000000000..b1f446983 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/axis_def_plev.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_ancil_gal.xml b/rose-stem/app/jedi_forecast/file/file_def_ancil_gal.xml new file mode 100644 index 000000000..39b464568 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_ancil_gal.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_ancil_hadisst.xml b/rose-stem/app/jedi_forecast/file/file_def_ancil_hadisst.xml new file mode 100644 index 000000000..aa65c212f --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_ancil_hadisst.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_ancil_main.xml b/rose-stem/app/jedi_forecast/file/file_def_ancil_main.xml new file mode 100644 index 000000000..95eb1b5cd --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_ancil_main.xml @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_ancil_surf.xml b/rose-stem/app/jedi_forecast/file/file_def_ancil_surf.xml new file mode 100644 index 000000000..1394f4dab --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_ancil_surf.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_check_restart.xml b/rose-stem/app/jedi_forecast/file/file_def_check_restart.xml new file mode 100644 index 000000000..05ba6dcbc --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_check_restart.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_diags_gal_nwp.xml b/rose-stem/app/jedi_forecast/file/file_def_diags_gal_nwp.xml new file mode 100644 index 000000000..6b88af04e --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_diags_gal_nwp.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_diags_idealised.xml b/rose-stem/app/jedi_forecast/file/file_def_diags_idealised.xml new file mode 100644 index 000000000..76e92d218 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_diags_idealised.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_diags_name.xml b/rose-stem/app/jedi_forecast/file/file_def_diags_name.xml new file mode 100644 index 000000000..fbe16d0e1 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_diags_name.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_diags_var_ops.xml b/rose-stem/app/jedi_forecast/file/file_def_diags_var_ops.xml new file mode 100644 index 000000000..4d49c665b --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_diags_var_ops.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_diags_ver.xml b/rose-stem/app/jedi_forecast/file/file_def_diags_ver.xml new file mode 100644 index 000000000..5e28ad32e --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_diags_ver.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_iau.xml b/rose-stem/app/jedi_forecast/file/file_def_iau.xml new file mode 100644 index 000000000..92f2e15f1 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_iau.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/file_def_initial_diags.xml b/rose-stem/app/jedi_forecast/file/file_def_initial_diags.xml new file mode 100644 index 000000000..f110d6bf9 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/file_def_initial_diags.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/iodef.xml b/rose-stem/app/jedi_forecast/file/iodef.xml deleted file mode 100644 index 4c5a79ed7..000000000 --- a/rose-stem/app/jedi_forecast/file/iodef.xml +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - performance - 1.0 - - - - true - $XIOS_INFO_LEVEL - $XIOS_PRINT_FILE - - - - - diff --git a/rose-stem/app/jedi_forecast/file/iodef_gal_nwp.xml b/rose-stem/app/jedi_forecast/file/iodef_gal_nwp.xml new file mode 100644 index 000000000..953e1ff99 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/iodef_gal_nwp.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + performance + 1.0 + + + + true + $XIOS_INFO_LEVEL + $XIOS_PRINT_FILE + + + + + diff --git a/rose-stem/app/jedi_forecast/file/iodef_gal_nwp_cycling.xml b/rose-stem/app/jedi_forecast/file/iodef_gal_nwp_cycling.xml new file mode 100644 index 000000000..32258caee --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/iodef_gal_nwp_cycling.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + performance + 1.0 + + + + true + $XIOS_INFO_LEVEL + $XIOS_PRINT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rose-stem/app/jedi_forecast/file/iodef_test.xml b/rose-stem/app/jedi_forecast/file/iodef_test.xml new file mode 100644 index 000000000..a753be678 --- /dev/null +++ b/rose-stem/app/jedi_forecast/file/iodef_test.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + performance + 1.0 + + + + true + $XIOS_INFO_LEVEL + $XIOS_PRINT_FILE + + + + + diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-C12.conf b/rose-stem/app/jedi_forecast/opt/rose-app-C12.conf index 1ffc83787..d44221c5e 100644 --- a/rose-stem/app/jedi_forecast/opt/rose-app-C12.conf +++ b/rose-stem/app/jedi_forecast/opt/rose-app-C12.conf @@ -3,4 +3,17 @@ mode=auto source=$MESH_DIR/mesh_C12.nc [namelist:base_mesh] +!!f_lat_deg= file_prefix='mesh_C12' +!!fplane= + +[namelist:formulation] +l_multigrid=.false. + +[namelist:helmholtz_solver] +fail_on_non_converged=.true. +method='bicgstab' +monitor_convergence=.true. +preconditioner='tridiagonal' + +[!!namelist:multigrid] diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-C48_MG.conf b/rose-stem/app/jedi_forecast/opt/rose-app-C48_MG.conf new file mode 100644 index 000000000..19a7bfee9 --- /dev/null +++ b/rose-stem/app/jedi_forecast/opt/rose-app-C48_MG.conf @@ -0,0 +1,8 @@ +[file:mesh_C48_MG.nc] +mode=auto +source=$MESH_DIR/mesh_C48_MG.nc + +[namelist:base_mesh] +!!f_lat_deg= +file_prefix='mesh_C48_MG' +!!fplane= diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-JEDI_C48.conf b/rose-stem/app/jedi_forecast/opt/rose-app-JEDI_C48.conf new file mode 100644 index 000000000..e43344f87 --- /dev/null +++ b/rose-stem/app/jedi_forecast/opt/rose-app-JEDI_C48.conf @@ -0,0 +1,2 @@ +[namelist:jedi_geometry] +io_path_state_read='/home/users/darth/srv/mobb-data/lfric-jedi/lfric-diag/lfric_bg_mi-be607_C48_20210602_la354' diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-da.conf b/rose-stem/app/jedi_forecast/opt/rose-app-da.conf new file mode 100644 index 000000000..77497ba2a --- /dev/null +++ b/rose-stem/app/jedi_forecast/opt/rose-app-da.conf @@ -0,0 +1,35 @@ +[file:iodef.xml] +source=$ROSE_SUITE_DIR/app/jedi_forecast/file/iodef_gal_nwp_cycling.xml + +[namelist:files] +iau_path='$BIG_DATA_DIR/start_dumps/basic-gal/yak/20210324T0600Z_um2lfric_iau_000001' +sea_ice_ancil_path='$BIG_DATA_DIR/start_dumps/basic-gal/yak/glu_ice' +snow_analysis_ancil_path='$BIG_DATA_DIR/start_dumps/basic-gal/yak/20210324T0600Z_glu_snow_um2lfric_fixed' +sst_ancil_path='$BIG_DATA_DIR/start_dumps/basic-gal/yak/sst_ugrid_postqa_fixed' +start_dump_directory='$BIG_DATA_DIR/start_dumps/basic-gal/yak/PR202' +start_dump_filename='20210324T0000Z_lfric_ice_dust_t+3' + +[namelist:iau] +iau_ainc_multifile=.false. +iau_mode='instantaneous' +iau_outerloop=.false. +iau_pc2=.true. +iau_tendency_ainc=.false. +iau_use_addinf=.false. +iau_use_bcorr=.false. +iau_use_level_one_temp=.false. +iau_wet_density=.true. + +[namelist:initialization] +init_option='checkpoint_dump' +!!model_eos_height=100 +sea_ice_source='surf' +snow_source='surf' +sst_source='surf' + +[namelist:section_choice] +iau=.true. + +[namelist:time] +calendar_origin='2021-03-24 06:00:00' +calendar_start='2021-03-24 03:00:00' diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-gh-si-for-linear.conf b/rose-stem/app/jedi_forecast/opt/rose-app-gh-si-for-linear.conf deleted file mode 100644 index 9bf4cde29..000000000 --- a/rose-stem/app/jedi_forecast/opt/rose-app-gh-si-for-linear.conf +++ /dev/null @@ -1,84 +0,0 @@ -[!!namelist:damping_layer] - -[namelist:extrusion] -domain_height=10000.0 -method='uniform' -!!stretching_height=17500.0 -stretching_method='linear' - -[namelist:formulation] -dlayer_on=.false. -dry_static_adjust=.false. -exner_from_eos=.true. -lagged_orog=.false. -moisture_formulation='dry' -!!moisture_in_solver=.true. -!!solver_moisture_conservation=.false. -!!theta_moist_source=.false. -use_physics=.false. - -[namelist:helmholtz_solver] -fail_on_non_converged=.true. -gcrk=18 -method='bicgstab' -monitor_convergence=.true. -si_pressure_a_tol=1.0e-6 -si_pressure_maximum_iterations=800 - -[namelist:initial_pressure] -method='sampled' - -[namelist:initial_temperature] -pert_centre=120.0 - -[namelist:linear] -fixed_ls=.false. -transport_efficiency=.false. - -[namelist:mixed_solver] -gcrk=6 -mixed_solver_a_tol=1.0e-6 -reference_reset_time=90. -si_tolerance=1.0e-3 - -[namelist:physics] -!!limit_drag_incs=.false. -!!sample_physics_scalars=.true. -!!sample_physics_winds=.true. -!!sample_physics_winds_correction=.false. - -[namelist:planet] -scaling_factor=125.0 - -[namelist:section_choice] -!!aerosol='none' -!!boundary_layer='none' -!!chemistry='none' -!!cloud='none' -!!methane_oxidation=.false. -!!orographic_drag='none' -!!radiation='none' -!!spectral_gwd='none' -!!stochastic_physics='none' -!!surface='none' - -[namelist:solver] -maximum_iterations=13 - -[namelist:time] -timestep_end='3' -timestep_start='1' - -[namelist:timestepping] -alpha=0.5 -tau_t=0.5 -tau_u=0.5 - -[namelist:transport] -cfl_mol_1d_stab=2.0 -cfl_mol_2d_stab=2.0 -cfl_mol_3d_stab=2.0 -log_space=5*.false. -max_vert_cfl_calc='uniform' -reversible=5*.false. -runge_kutta_method='ssp5' diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-test_diags.conf b/rose-stem/app/jedi_forecast/opt/rose-app-test_diags.conf new file mode 100644 index 000000000..cd1c163e7 --- /dev/null +++ b/rose-stem/app/jedi_forecast/opt/rose-app-test_diags.conf @@ -0,0 +1,2 @@ +[file:iodef.xml] +source=$ROSE_SUITE_DIR/app/jedi_forecast/file/iodef_test.xml diff --git a/rose-stem/app/jedi_forecast/opt/rose-app-um_dump.conf b/rose-stem/app/jedi_forecast/opt/rose-app-um_dump.conf new file mode 100644 index 000000000..fb7cc9d98 --- /dev/null +++ b/rose-stem/app/jedi_forecast/opt/rose-app-um_dump.conf @@ -0,0 +1,2 @@ +[namelist:initialization] +zero_w2v_wind=.true. diff --git a/rose-stem/app/jedi_forecast/rose-app.conf b/rose-stem/app/jedi_forecast/rose-app.conf index 13193f597..f907db109 100644 --- a/rose-stem/app/jedi_forecast/rose-app.conf +++ b/rose-stem/app/jedi_forecast/rose-app.conf @@ -1,7 +1,7 @@ meta=jedi_forecast/vn3.1_t324 [command] -default=$CORE_ROOT_DIR/bin/tweak_iodef ; \ +default=$CORE_ROOT_DIR/bin/tweak_iodef; \ =$LAUNCH_SCRIPT/launch-exe [env] @@ -17,20 +17,25 @@ mode=mkdir [file:configuration.nml] mode=auto -source=namelist:adjoint - =namelist:jedi_lfric_tests +source=namelist:jedi_lfric_tests = namelist:jedi_geometry = namelist:jedi_state = namelist:jedi_model - = namelist:jedi_pseudo_model = namelist:jedi_lfric_settings + = namelist:adjoint + = (namelist:aerosol) = namelist:base_mesh + = (namelist:blayer) = namelist:boundaries = namelist:checks = namelist:section_choice + = (namelist:cloud) + = (namelist:chemistry) + = (namelist:convection) + = (namelist:cosp) = (namelist:damping_layer) = (namelist:departure_points) - = namelist:energy_correction + = (namelist:energy_correction) = (namelist:external_forcing) = namelist:extrusion = (namelist:files) @@ -41,6 +46,7 @@ source=namelist:adjoint = (namelist:iau_addinf_io(:)) = (namelist:iau_ainc_io(:)) = (namelist:iau_bcorr_io(:)) + = (namelist:iau) = (namelist:idealised) = (namelist:ideal_surface) = namelist:initialization @@ -62,84 +68,102 @@ source=namelist:adjoint = (namelist:jules_surface_types) = (namelist:jules_urban) = (namelist:jules_vegetation) - = namelist:linear - = namelist:linear_physics = namelist:logging + = (namelist:microphysics) = namelist:mixed_solver - = (namelist:mixing) + = namelist:mixing = (namelist:multigrid) = (namelist:multires_coupling) = (namelist:nudging) = namelist:esm_couple + = (namelist:orbit) = namelist:orography = (namelist:orography_agnesi_cartesian) = (namelist:orography_agnesi_spherical) - = (namelist:orography_bell_cartesian) - = (namelist:orography_bell_spherical) = (namelist:orography_dcmip200_spherical) = (namelist:orography_schar_cartesian) = (namelist:orography_schar_spherical) = namelist:partitioning = (namelist:physics) = namelist:planet + = (namelist:radiation) = namelist:radiative_gases + = (namelist:spectral_gwd) + = (namelist:orographic_drag) = namelist:solver = (namelist:specified_surface) + = (namelist:star) = (namelist:stochastic_physics) + = (namelist:surface) = (namelist:temp_tend_data) = (namelist:theta_relax) = namelist:time = namelist:timestepping = namelist:transport - = namelist:validity_test = (namelist:vapour_forcing) = (namelist:vertadvect) = (namelist:wind_forcing) +[file:iodef.xml] +mode=auto +source=$ROSE_SUITE_DIR/app/jedi_forecast/file/iodef_gal_nwp.xml + +[file:lut] +mode=symlink+ +source=$BIG_DATA_DIR/um_aux/UKCA/radaer/ga7_1 + +[file:precalc] +mode=symlink+ +source=$BIG_DATA_DIR/um_aux/spectral/ga7_1 + +[file:spec] +mode=symlink+ +source=$SOURCE_ROOT/socrates/data/spectra/ga9 + [namelist:adjoint] l_compute_annexed_dofs=.true. -[!!namelist:aerosol] -!!aclw_file='' -!!acsw_file='' -!!activation_scheme='off' -!!anlw_file='' -!!answ_file='' -!!crlw_file='' -!!crsw_file='' +[namelist:aerosol] +aclw_file='lut/nml_ac_lw' +acsw_file='lut/nml_ac_sw' +activation_scheme='jones' +anlw_file='lut/nml_an_lw' +answ_file='lut/nml_an_sw' +crlw_file='lut/nml_cr_lw' +crsw_file='lut/nml_cr_sw' easyaerosol_cdnc=.false. easyaerosol_lw=.false. easyaerosol_sw=.false. !!emissions='GC5' -glomap_mode='off' -!!horiz_d=2.25 -!!l_radaer=.false. +glomap_mode='dust_and_clim' +horiz_d=2.25 +l_radaer=.true. !!marine_pom_ems_scaling=1.0 murk=.false. !!murk_lbc=.false. !!murk_prognostic=.false. !!murk_source_scaling=1.0 !!murk_visibility=.false. -!!n_radaer_step=1 -!!prec_file='' +n_radaer_step=1 +prec_file='precalc/RADAER_pcalc.ukca' !!sea_salt_ems_scaling=1.0 -sulphuric_strat_climatology=.false. -!!sulphuric_strat_column=1.86604e-6 +sulphuric_strat_climatology=.true. +sulphuric_strat_column=1.86604e-6 ukca_mode_seg_size=4 !!ukca_scale_marine_pom_ems=.false. !!ukca_scale_sea_salt_ems=.false. -!!us_am=1.45 +us_am=1.45 [namelist:base_mesh] !!f_lat_deg=45.0 -file_prefix='mesh.nc' +file_prefix='mesh' !!fplane=.false. geometry='spherical' prepartitioned=.false. prime_mesh_name='dynamics' topology='fully_periodic' -[!!namelist:blayer] +[namelist:blayer] a_ent_2=0.056 a_ent_shr=1.6 bl_levels=50 @@ -196,7 +220,7 @@ limited_area=.false. !!rim_width_ns=1 !!solver_boundary_depth=1 !!transport_boundary_depth=6 -transport_overwrite_freq='split_step' +transport_overwrite_freq='final' [namelist:checks] limit_cfl=.false. @@ -216,81 +240,81 @@ chem_scheme='none' !!fjx_spec_file='FJX_spec_Nov11.dat' !!flexchem_opt='bs1999' i_chem_timestep_halvings=0 -!!i_ukca_chem_version=0 +!!i_ukca_chem_version=111 !!l_ukca_asad_full=.false. -!!l_ukca_linox_scaling=.false. -!!l_ukca_quasinewton=.false. +!!l_ukca_linox_scaling= +!!l_ukca_quasinewton= !!l_ukca_ro2_ntp=.false. -!!lightnox_scale_fac=0 +!!lightnox_scale_fac= !!photol_scheme='off' -!!top_bdy_opt='no_overwrt' +!!top_bdy_opt='' -[!!namelist:cloud] -!!bm_ez_opt='subcrit' -!!cff_spread_rate=1.0e-5 +[namelist:cloud] +bm_ez_opt='subcrit' +cff_spread_rate=1.0e-5 cld_fsd_hill=.true. cloud_call_b4_conv=.false. !!cloud_horizontal_ice_fsd=0.0 !!cloud_horizontal_liq_fsd=0.75 cloud_pc2_tol=0.005 cloud_pc2_tol_2=0.001 -!!dbsdtbs_turb_0=1.5E-4 +dbsdtbs_turb_0=1.5E-4 !!ent_coef_bm=0.2 -!!ez_max=400.0 +ez_max=400.0 falliceshear_method='real' filter_optical_depth=.true. -!!fsd_conv_const=2.81 -!!fsd_min_conv_frac=0.0 -!!fsd_nonconv_ice_const=1.14 -!!fsd_nonconv_liq_const=1.14 -!!ice_width=0.02 -!!l_bm_sigma_s_grad=.false. -!!l_bm_tweaks=.false. -!!l_ensure_max_in_cloud_pc2=.false. -!!max_sigmas=3.0 -!!min_sigx_ft=0.0 +fsd_conv_const=3.5 +fsd_min_conv_frac=0.0 +fsd_nonconv_ice_const=0.75 +fsd_nonconv_liq_const=1.0 +ice_width=0.02 +l_bm_sigma_s_grad=.false. +l_bm_tweaks=.false. +l_ensure_max_in_cloud_pc2=.false. +max_sigmas=3.0 +min_sigx_ft=0.0 !!mphys_erosion=.false. -!!opt_depth_thresh=0.01 -!!pc2_erosion_numerics='implicit' -!!pc2_homog_g_method='cf' -!!pc2_init_logic='original' -!!pc2_init_method='bimodal' -!!pc2_turb_horiz=.false. +opt_depth_thresh=0.01 +pc2_erosion_numerics='implicit' +pc2_homog_g_method='cf' +pc2_init_logic='original' +pc2_init_method='bimodal' +pc2_turb_horiz=.false. rh_crit=0.920,0.918,0.916,0.912,0.908,0.903,64*0.9 rh_crit_opt='tke' scheme='pc2' subgrid_qv=.true. -!!turb_var_fac_bm=1.0 -two_d_fsd_factor=1.65 +turb_var_fac_bm=1.0 +two_d_fsd_factor=1.6 use_fsd_eff_res=.true. [namelist:convection] -!!c_mass_sh=0.03 -!!cape_timescale=1800.0 -!!cca_md_scaling=0.8 -!!cpress_term=0.3 -!!cv_scheme='gregory_rowntree' +c_mass_sh=0.03 +cape_timescale=1800.0 +cca_md_scaling=0.8 +cpress_term=0.3 +cv_scheme='gregory_rowntree' !!dx_ref=50000.0 -!!efrac=1.0 -!!ent_fac_sh=1.0 -!!l_conv_prog_dq=.true. -!!l_conv_prog_dtheta=.true. +efrac=1.0 +ent_fac_sh=1.0 +l_conv_prog_dq=.true. +l_conv_prog_dtheta=.true. l_cvdiag_ctop_qmax=.false. llcs_first_outer=.false. mparwtr=1.0e-3 -!!number_of_convection_substeps=2 -!!orig_mdet_fac=1.0 +number_of_convection_substeps=2 +orig_mdet_fac=1.5 !!par_gen_mass_fac=0.25 !!par_gen_rhpert=0.05 !!par_radius_ppn_max=3.5e-4 -!!prog_ent_grad=-1.1 -!!prog_ent_int=-2.9 -!!prog_ent_max=2.5 -!!prog_ent_min=0.5 +prog_ent_grad=-1.1 +prog_ent_int=-2.9 +prog_ent_max=2.5 +prog_ent_min=0.3 qlmin=4.0e-4 -!!r_det=0.5 +r_det=0.5 !!resdep_precipramp=.false. -!!thpixs_mid=0.5 +thpixs_mid=0.5 [namelist:cosp] l_cosp=.false. @@ -300,7 +324,7 @@ l_cosp=.false. [namelist:damping_layer] dl_base=40000.0 dl_str=0.05 -dl_type='latitude' +dl_type='standard' [namelist:departure_points] horizontal_limit='cap' @@ -342,14 +366,14 @@ stretching_height=17507.0 stretching_method='smooth' [namelist:files] -!!aerosols_ancil_path='' +aerosols_ancil_path='aerosol_clims/glomap/qrclim.aerosols70.fixed' !!albedo_nir_ancil_path='' !!albedo_vis_ancil_path='' -ancil_directory='' -checkpoint_stem_name='$CYLC_SUITE_SHARE_DIR/data/restartGungho_$ROSE_TASK_NAME' +ancil_directory='$BIG_DATA_DIR/ancils/basic-gal/yak/${RESOLUTION}' +checkpoint_stem_name='$CYLC_SUITE_SHARE_DIR/data/restartLfricAtm_$ROSE_TASK_NAME' !!cloud_drop_no_conc_ancil_path='' -!!coarse_ancil_directory='' -!!diag_stem_name='' +!!coarse_ancil_directory='$BIG_DATA_DIR/ancils/basic-gal/yak/${RESOLUTION}' +diag_stem_name='diagLfricAtm' !!dms_conc_ocean_ancil_path='' !!ea_ancil_directory='' !!easy_absorption_lw_ancil_path='' @@ -389,7 +413,7 @@ checkpoint_stem_name='$CYLC_SUITE_SHARE_DIR/data/restartGungho_$ROSE_TASK_NAME' !!gas_mmr_ancil_path='' !!h2o2_limit_ancil_path='' !!ho2_ancil_path='' -!!hydtop_ancil_path='' +hydtop_ancil_path='hydrol_lsh/hydrosheds/qrparm.hydtop' !!iau_addinf_path='' !!iau_bcorr_path='' !!iau_path='' @@ -397,7 +421,7 @@ checkpoint_stem_name='$CYLC_SUITE_SHARE_DIR/data/restartGungho_$ROSE_TASK_NAME' !!iau_sst_path='' !!iau_surf_path='' !!internal_flux_ancil_path='' -!!land_area_ancil_path='' +land_area_ancil_path='land_sea_mask/etop01/qrparm.landfrac' !!lbc_directory='' !!lbc_filename='' !!ls_directory='' @@ -407,20 +431,20 @@ checkpoint_stem_name='$CYLC_SUITE_SHARE_DIR/data/restartGungho_$ROSE_TASK_NAME' !!nudging_filename='' !!o3_ancil_path='' !!oh_ancil_path='' -!!orography_mean_ancil_path='' -!!orography_subgrid_ancil_path='' -!!ozone_ancil_path='' -!!plant_func_ancil_path='' -!!sea_ancil_path='' -!!sea_ice_ancil_path='' +orography_mean_ancil_path='orography/gmted_ramp2/qrparm.orog' +orography_subgrid_ancil_path='orography/gmted_ramp2/qrparm.orog' +ozone_ancil_path='ozone/sparc/1994-2005/qrclim.ozone_L70_O70' +plant_func_ancil_path='vegetation/func_type_modis/qrparm.veg.func.fixed' +sea_ancil_path='general_sea/GlobColour/qrclim.sea' +sea_ice_ancil_path='sstice/hadisst_6190/qrclim.sstice_ice' !!snow_analysis_ancil_path='' -!!soil_ancil_path='' -!!soil_dust_ancil_path='' -!!soil_rough_ancil_path='' -!!sst_ancil_path='' -start_dump_directory='' -start_dump_filename='' -!!surface_frac_ancil_path='' +soil_ancil_path='soil_parameters/hwsd_vg/qrparm.soil.fixed' +soil_dust_ancil_path='soil_dust/hwsd/qrparm.soil.dust.one_mrel' +soil_rough_ancil_path='soil_roughness/prigent12/qrparm.soil_roughness' +sst_ancil_path='sstice/hadisst_6190/qrclim.sstice_sst' +start_dump_directory='$BIG_DATA_DIR/start_dumps/nwp-gal9/apps1.1' +start_dump_filename='nwp-gal9_N320L70_${RESOLUTION}L70' +surface_frac_ancil_path='vegetation/fractions_cci/qrparm.veg.frac.fixed' !!urban_ancil_path='' [namelist:finite_element] @@ -439,10 +463,10 @@ dlayer_on=.true. dry_static_adjust=.true. eos_method='sampled' exner_from_eos=.false. -horizontal_physics_predictor=.false. -horizontal_transport_predictor=.false. +horizontal_physics_predictor=.true. +horizontal_transport_predictor=.true. init_exner_bt=.true. -l_multigrid=.false. +l_multigrid=.true. lagged_orog=.true. moisture_formulation='traditional' moisture_in_solver=.true. @@ -451,7 +475,7 @@ rotating=.true. shallow=.true. si_momentum_equation=.false. solver_moisture_conservation=.false. -theta_moist_source=.false. +theta_moist_source=.true. use_multires_coupling=.false. use_physics=.true. use_wavedynamics=.true. @@ -473,7 +497,7 @@ gcrk=8 method='prec_only' monitor_convergence=.false. normalise=.true. -preconditioner='tridiagonal' +preconditioner='multigrid' si_pressure_a_tol=1.0e-8 si_pressure_maximum_iterations=400 si_pressure_tolerance=1.0e-4 @@ -482,14 +506,12 @@ si_pressure_tolerance=1.0e-4 !!iau_ainc_multifile=.false. !!iau_mode='instantaneous' !!iau_outerloop=.false. -iau_path='' !!iau_pc2=.false. -iau_surf_path='' !!iau_tendency_addinf=.true. !!iau_tendency_ainc=.false. !!iau_tendency_bcorr=.true. !!iau_tendency_pertinc=.false. -!!iau_ts_start=0 +!!iau_ts_start=1 !!iau_use_addinf=.false. !!iau_use_bcorr=.false. !!iau_use_level_one_temp=.false. @@ -541,15 +563,15 @@ f_lon_deg=0.0 perturb_init=.false. !!perturb_magnitude=0 !!perturb_seed=0 -test='gravity_wave' +test='none' [namelist:initial_density] density_background=0.1 density_max=2.0 -r1=0.0 -r2=0.0 -x1=0.0 -x2=0.0 +r1=0.4 +r2=0.4 +x1=0.4 +x2=-0.4 y1=0.0 y2=0.0 z1=0.0 @@ -561,25 +583,25 @@ surface_pressure=1000.0e2 [namelist:initial_temperature] bvf_square=0.0001 -pert_centre=-60.0 +pert_centre=60.0 pert_width_scaling=1.0 perturb='none' -!!profile_data=300.0 -!!profile_heights=0.0 -!!profile_size=1 +!!profile_data=300.0,300.0 +!!profile_heights=0.0,10.0e3 +!!profile_size=2 !!theta_pert_end=7000.0 !!theta_pert_size=0.5 !!theta_pert_start=5000.0 theta_surf=300.0 [namelist:initial_vapour] -!!profile_data=0.0 -!!profile_heights=0.0 -!!profile_size=1 +!!profile_data=0.0,0.0 +!!profile_heights=0.0,10.0e3 +!!profile_size=2 [namelist:initial_wind] nl_constant=0.0 -profile='none' +profile='constant_uv' !!profile_data_u=0.0 !!profile_data_v=0.0 !!profile_data_w=0.0 @@ -589,48 +611,48 @@ profile='none' !!profile_size_w=1 sbr_angle_lat=0.0 sbr_angle_lon=0.0 -smp_init_wind=.false. -u0=0.0 +smp_init_wind=.true. +u0=2.0 v0=0.0 wind_time_period=0.0 [namelist:initialization] -ancil_option='none' +ancil_option='fixed' coarse_aerosol_ancil=.false. coarse_orography_ancil=.false. coarse_ozone_ancil=.false. -init_option='analytic' +init_option='fd_start_dump' lbc_option='none' ls_option='none' -!!model_eos_height=100 +model_eos_height=100 read_w2h_wind=.false. sea_ice_source='ancillary' snow_source='start_dump' -!!sst_source='ancillary' +sst_source='ancillary' zero_w2v_wind=.false. [namelist:io] -checkpoint_read=.false. -!!checkpoint_times= -checkpoint_write=.false. +checkpoint_read=$RESTART_READ +checkpoint_times= +checkpoint_write=$RESTART_WRITE counter_output_suffix='counter.txt' diag_active_files='lfric_diag' diag_always_on_sampling=.false. -!!diagnostic_frequency=3 -!!end_of_run_checkpoint=.true. +diagnostic_frequency=1 +end_of_run_checkpoint=.true. file_convention='UGRID' multifile_io=.false. -!!nodal_output_on_w3=.true. +!!nodal_output_on_w3=.false. subroutine_counters=.false. subroutine_timers=.true. timer_output_path='timer.txt' use_xios_io=.true. write_conservation_diag=.false. -write_diag=.false. +write_diag=.true. write_dump=.false. write_fluxes=.false. write_initial=.true. -!!write_minmax_tseries=.false. +write_minmax_tseries=.false. [namelist:jedi_geometry] io_calender_start='2018-04-14T21:00:00' @@ -641,7 +663,6 @@ io_setup_increment=.false. io_time_step='P0DT1H0M0S' [namelist:jedi_lfric_settings] -adjoint_test_tolerance=1.0e-4 forecast_length='P0DT6H0M0S' [namelist:jedi_lfric_tests] @@ -650,25 +671,20 @@ test_field='theta' [namelist:jedi_model] time_step='P0DT1H0M0S' -[namelist:jedi_pseudo_model] -initial_time='2018-04-14T21:00:00' -number_of_steps=9 -time_step='P0DT1H0M0S' - [namelist:jedi_state] state_time='2018-04-14 21:00:00' use_pseudo_model=.false. variables='theta','rho','exner' -[!!namelist:jules_hydrology] +[namelist:jules_hydrology] l_hydrology=.true. l_inland=.false. -!!l_var_rainfrac=.true. +l_var_rainfrac=.true. -[!!namelist:jules_model_environment_lfric] +[namelist:jules_model_environment_lfric] l_jules_parent='lfric' -[!!namelist:jules_nvegparm] +[namelist:jules_nvegparm] albsnc_nvg_io=0.4,0.8,0.8,0.8 albsnf_nvg_io=0.18,0.12,-1.0,0.75 !!albsnf_nvgl_io=0.05,0.06,0.03,0.75 @@ -682,7 +698,7 @@ vf_nvg_io=1.0,1.0,0.0,0.0 z0_nvg_io=1.0,1.0e-4,1.0e-3,5.0e-4 z0hm_nvg_io=1.0e-7,2.5e-1,2.0e-1,2.0e-1 -[!!namelist:jules_pftparm(brd_leaf)] +[namelist:jules_pftparm(brd_leaf)] a_wl_io=0.65 a_ws_io=10.0 act_jmax_io=50.0e3 @@ -717,14 +733,14 @@ dcatch_dlai_io=0.05 !!dfp_dcuo_io=0.04 dgl_dm_io=0.0 dgl_dt_io=9.0 -!!dqcrit_io=0.090 +dqcrit_io=0.090 ds_jmax_io=646.0 ds_vcmax_io=649.0 dust_veg_scj_io=0.0 dz0v_dh_io=5.0e-2 emis_pft_io=0.98 eta_sl_io=0.01 -!!f0_io=0.875 +f0_io=0.875 fd_io=0.015 !!fef_bc_io=0.56 !!fef_c2h4_io=1.11E+00 @@ -794,10 +810,10 @@ tlow_io=0.0 tupp_io=36.0 vint_io=5.73 vsl_io=29.81 -z0hm_pft_io=1.65 -!!z0v_io=1.1 +z0hm_pft_io=1.0 +z0v_io=1.1 -[!!namelist:jules_pftparm(c3_grass)] +[namelist:jules_pftparm(c3_grass)] a_wl_io=0.005 a_ws_io=1.0 act_jmax_io=50.0e3 @@ -832,14 +848,14 @@ dcatch_dlai_io=0.05 !!dfp_dcuo_io=0.25 dgl_dm_io=0.0 dgl_dt_io=0.0 -!!dqcrit_io=0.100 +dqcrit_io=0.100 ds_jmax_io=646.0 ds_vcmax_io=649.0 dust_veg_scj_io=1.0 dz0v_dh_io=1.0e-1 emis_pft_io=0.98 eta_sl_io=0.01 -!!f0_io=0.900 +f0_io=0.900 fd_io=0.015 !!fef_bc_io=0.56 !!fef_c2h4_io=8.30E-01 @@ -909,10 +925,10 @@ tlow_io=0.0 tupp_io=36.0 vint_io=6.42 vsl_io=40.96 -z0hm_pft_io=0.1 -!!z0v_io=0.22 +z0hm_pft_io=0.01 +z0v_io=0.22 -[!!namelist:jules_pftparm(c4_grass)] +[namelist:jules_pftparm(c4_grass)] a_wl_io=0.005 a_ws_io=1.0 act_jmax_io=50.0e3 @@ -947,14 +963,14 @@ dcatch_dlai_io=0.05 !!dfp_dcuo_io=0.13 dgl_dm_io=0.0 dgl_dt_io=0.0 -!!dqcrit_io=0.075 +dqcrit_io=0.075 ds_jmax_io=646.0 ds_vcmax_io=649.0 dust_veg_scj_io=1.0 dz0v_dh_io=1.0e-1 emis_pft_io=0.98 eta_sl_io=0.01 -!!f0_io=0.800 +f0_io=0.800 fd_io=0.025 !!fef_bc_io=0.47 !!fef_c2h4_io=1.99E+00 @@ -1024,10 +1040,10 @@ tlow_io=13.0 tupp_io=45.0 vint_io=0.00 vsl_io=10.24 -z0hm_pft_io=0.1 -!!z0v_io=0.22 +z0hm_pft_io=0.01 +z0v_io=0.22 -[!!namelist:jules_pftparm(ndl_leaf)] +[namelist:jules_pftparm(ndl_leaf)] a_wl_io=0.65 a_ws_io=10.0 act_jmax_io=50.0e3 @@ -1062,14 +1078,14 @@ dcatch_dlai_io=0.05 !!dfp_dcuo_io=0.02 dgl_dm_io=0.0 dgl_dt_io=9.0 -!!dqcrit_io=0.060 +dqcrit_io=0.060 ds_jmax_io=646.0 ds_vcmax_io=649.0 dust_veg_scj_io=0.0 dz0v_dh_io=5.0e-2 emis_pft_io=0.99 eta_sl_io=0.01 -!!f0_io=0.875 +f0_io=0.875 fd_io=0.015 !!fef_bc_io=0.56 !!fef_c2h4_io=1.54E+00 @@ -1139,10 +1155,10 @@ tlow_io=-5.0 tupp_io=31.0 vint_io=6.32 vsl_io=18.15 -z0hm_pft_io=1.65 -!!z0v_io=1.1 +z0hm_pft_io=1.0 +z0v_io=1.1 -[!!namelist:jules_pftparm(shrub)] +[namelist:jules_pftparm(shrub)] a_wl_io=0.10 a_ws_io=10.0 act_jmax_io=50.0e3 @@ -1177,14 +1193,14 @@ dcatch_dlai_io=0.05 !!dfp_dcuo_io=0.03 dgl_dm_io=0.0 dgl_dt_io=9.0 -!!dqcrit_io=0.100 +dqcrit_io=0.100 ds_jmax_io=646.0 ds_vcmax_io=649.0 dust_veg_scj_io=0.5 dz0v_dh_io=1.0e-1 emis_pft_io=0.98 eta_sl_io=0.01 -!!f0_io=0.900 +f0_io=0.900 fd_io=0.015 !!fef_bc_io=0.56 !!fef_c2h4_io=8.30E-01 @@ -1254,29 +1270,29 @@ tlow_io=0.0 tupp_io=36.0 vint_io=14.71 vsl_io=23.15 -z0hm_pft_io=0.1 -!!z0v_io=1.0 +z0hm_pft_io=0.01 +z0v_io=1.0 -[!!namelist:jules_radiation] +[namelist:jules_radiation] !!fixed_sea_albedo=0.06 i_sea_alb_method='jin' l_albedo_obs=.false. l_hapke_soil=.true. -!!l_niso_direct=.true. +l_niso_direct=.true. l_partition_albsoil=.true. -!!l_sea_alb_var_chl=.true. -!!l_spec_alb_bs=.false. +l_sea_alb_var_chl=.true. +l_spec_alb_bs=.false. l_spec_albedo=.true. -!!ratio_albsoil=2.0 -!!swdn_frac_albsoil=0.5 +ratio_albsoil=2.0 +swdn_frac_albsoil=0.5 -[!!namelist:jules_sea_seaice] +[namelist:jules_sea_seaice] alpham=0.72 amip_ice_thick=.false. beta_evap=1.0 buddy_sea='On' -!!cdn_hw_sea=0.002 -!!cdn_max_sea=0.003 +cdn_hw_sea=0.002 +cdn_max_sea=0.003 dtice=2.0 emis_sea=0.985 emis_sice=0.976 @@ -1289,15 +1305,15 @@ kappai_snow=0.256 l_10m_neut=.true. l_iceformdrag_lupkes=.true. l_sice_heatflux=.true. -!!l_stability_lupkes=.true. +l_stability_lupkes=.true. l_use_dtstar_sea=.false. nice=1 -!!u_cdn_hw=55.0 -!!u_cdn_max=33.0 -!!z0h_specified=0.01 -!!z0m_specified=0.1 +u_cdn_hw=55.0 +u_cdn_max=33.0 +!!z0h_specified=0.0 +!!z0m_specified=0.0 -[!!namelist:jules_snow] +[namelist:jules_snow] can_clump=8.0,4.0,1.0,1.0,1.0 cansnowpft=.true.,.true.,.false.,.false.,.false. i_basal_melting_opt='instant' @@ -1307,21 +1323,21 @@ n_lai_exposed=5*1.0 rho_snow_fresh=109.0 unload_rate_u=2.31e-6,2.31e-6,0.0,0.0,0.0 -[!!namelist:jules_soil] +[namelist:jules_soil] l_dpsids_dsdz=.true. l_soil_sat_down=.true. l_vg_soil=.false. -[!!namelist:jules_surface] +[namelist:jules_surface] all_tiles='off' !!anthrop_heat_mean=20.0 !!anthrop_heat_option='dukes' beta1=0.83 beta2=0.93 -!!beta_cnv_bl=0.04 +beta_cnv_bl=0.04 cor_mo_iter='improved' -!!fd_hill_option='capped_lowhill' -!!fd_stability_dep='none' +fd_hill_option='capped_lowhill' +fd_stability_dep='none' formdrag='dist_drag' fwe_c3=0.5 fwe_c4=20000.0 @@ -1338,11 +1354,11 @@ l_land_ice_imp=.true. l_mo_buoyancy_calc=.true. !!l_point_data=.false. l_urban2t=.false. -l_vary_z0m_soil=.false. -!!orog_drag_param=0.15 +l_vary_z0m_soil=.true. +orog_drag_param=0.15 srf_ex_cnv_gust=.true. -[!!namelist:jules_surface_types] +[namelist:jules_surface_types] brd_leaf=1 c3_grass=3 c4_grass=4 @@ -1353,7 +1369,7 @@ nnvg=4 npft=5 shrub=5 soil=8 -!!urban=6 +urban=6 !!urban_canyon=0 !!urban_roof=0 @@ -1365,7 +1381,7 @@ l_moruses_rough=.false. l_moruses_storage=.false. !!l_moruses_storage_thin=.false. -[!!namelist:jules_vegetation] +[namelist:jules_vegetation] can_rad_mod='six' !!l_bvoc_emis=.false. !!l_inferno=.false. @@ -1378,55 +1394,37 @@ l_spec_veg_z0=.true. photo_model='collatz' stomata_model='jacobs' -[namelist:linear] -fixed_ls=.true. -l_stabilise_bl=.false. -ls_read_w2h=.false. -pert_option='analytic' -transport_efficiency=.true. - -[namelist:linear_physics] -blevs_m=15 -e_folding_levs_m=10 -l_0_m=80.0 -l_boundary_layer=.true. -log_layer=2 -u_land_m=0.4 -u_sea_m=0.4 -z_land_m=0.05 -z_sea_m=0.0005 - [namelist:logging] log_to_rank_zero_only=.true. run_log_level='info' -[!!namelist:microphysics] -!!a_ratio_exp=-0.2707 -!!a_ratio_fac=0.0517 +[namelist:microphysics] +a_ratio_exp=-0.2707 +a_ratio_fac=0.0517 ai=2.57e-2 -!!aut_qc=2.47 -!!c_r_correl=0.9 +aut_qc=2.47 +c_r_correl=0.9 !!casim_cdnc_opt='fixed' -!!ci_input=14.3 -!!cic_input=1024.0 +ci_input=14.3 +cic_input=1024.0 droplet_tpr=.false. -!!fcrit=1.0 -!!graupel_scheme='none' -!!heavy_rain_evap_fac=0.0 +fcrit=1.0 +graupel_scheme='none' +heavy_rain_evap_fac=0.0 !!l_improve_precfrac_checks=.false. -!!l_mcr_precfrac=.false. -!!l_proc_fluxes=.false. +l_mcr_precfrac=.false. +l_proc_fluxes=.false. microphysics_casim=.false. -!!mp_dz_scal=2.0 +mp_dz_scal=2.0 !!ndrop_surf=50.0e6 -!!nscalesf=1.0 -!!nsigmasf=2.82843 -!!orog_block=.true. -!!orog_rain=.true. -!!orog_rime=.true. -!!prog_tnuc=.false. -!!qcl_rime=1.0e-4 -!!shape_rime=.false. +nscalesf=1.0 +nsigmasf=2.82843 +orog_block=.true. +orog_rain=.true. +orog_rime=.true. +prog_tnuc=.true. +qcl_rime=1.0e-4 +shape_rime=.true. turb_gen_mixph=.true. !!update_precfrac_opt='homog' !!z_surf=50.0 @@ -1440,7 +1438,7 @@ guess_np1=.false. mixed_solver_a_tol=1.0e-3 monitor_convergence=.true. normalise=.true. -reference_reset_time=3600. +reference_reset_time=3600.0 si_maximum_iterations=10 si_method='block_gcr' si_preconditioner='pressure' @@ -1448,20 +1446,20 @@ si_tolerance=1.0e-1 split_w=.true. [namelist:mixing] -!!conservative_diffusion=.false. +!!conservative_diffusion=.true. !!density_weighted=.true. !!leonard_kl=2.0 leonard_term=.false. !!max_diff_factor=1.0 -!!method='blending' +!!method='blend_1dbl_fa' !!mix_factor=0.2 !!smag_l_calc='UseDx' smagorinsky=.false. viscosity=.false. viscosity_mu=0.0 -[!!namelist:multigrid] -chain_mesh_tags='','','','' +[namelist:multigrid] +chain_mesh_tags='dynamics','multigrid_l1','multigrid_l2','multigrid_l3' coarsen_multigrid_tiles=.false. !!max_tiled_multigrid_level=1 multigrid_chain_nitems=4 @@ -1471,11 +1469,19 @@ n_presmooth=2 smooth_relaxation=0.8 [!!namelist:multires_coupling] -aerosol_mesh_name='dynamics' +aerosol_mesh_name='aerosol' coarse_aerosol_transport=.false. !!coarse_nudging=.false. coarse_rad_aerosol=.false. +dynamics_mesh_name='dynamics' +!!lowest_order_aero_flag=.false. +multires_coupling_mesh_tags='dynamics' +multires_coupling_mode='test' +negative_correction='none' !!nudging_mesh_name='' +physics_mesh_name='aerosol' +reconstruction='simple' +recovery_order='linear' [!!namelist:nudging] nudge_data_levels=137 @@ -1485,7 +1491,7 @@ nudging_source='era' nudging_width_bottom=1 nudging_width_top=0 -[!!namelist:orbit] +[namelist:orbit] !!arg_periapsis=1.796767421 !!arg_periapsis_inc=0.0 !!eccentricity=1.6710222E-02 @@ -1506,23 +1512,23 @@ observer_lon=0.0 !!semimajor_axis_inc=0.0 spin='earth_day' -[!!namelist:orographic_drag] +[namelist:orographic_drag] cd_flow_blocking=4.0 fr_crit_gwd=4.0 fr_sat_gwd=0.25 gwd_scaling=0.7 include_moisture='lowmoist' -mountain_height_scaling=2.6 +mountain_height_scaling=3.1 orographic_blocking_heating=.true. orographic_gwd_heating=.true. vertical_smoothing=.true. [namelist:orography] n_orog_smooth=0 -orog_init_option='none' +orog_init_option='ancil' orography_order=2 !!profile='none' -w0_multigrid_mapping=.false. +w0_multigrid_mapping=.true. [!!namelist:orography_agnesi_cartesian] direction='x' @@ -1581,7 +1587,7 @@ phi_centre_dec=0.0 wavelength=4000.0 [namelist:partitioning] -generate_inner_halos=.true. +generate_inner_halos=.false. inner_halo_tiles=.false. panel_decomposition='auto' !!panel_xproc=1 @@ -1592,26 +1598,26 @@ partitioner='cubedsphere' [namelist:physics] bl_segment=16 -!!blayer_placement='fast' +blayer_placement='fast' configure_segments=.true. conv_gr_segment=16 -!!convection_placement='fast' +convection_placement='fast' !!electric_placement='slow' !!evap_condense_placement='fast' gw_segment=0 limit_drag_incs=.false. -!!lowest_level='gradient' +lowest_level='gradient' ls_ppn_segment=0 lw_segment_limit=32 -!!microphysics_placement='slow' -!!orographic_drag_placement='slow' +microphysics_placement='slow' +orographic_drag_placement='slow' pmsl_halo_calcs=.true. -!!radiation_placement='slow' +radiation_placement='slow' sample_physics_scalars=.true. sample_physics_winds=.true. sample_physics_winds_correction=.false. !!smagorinsky_placement='end' -!!spectral_gwd_placement='slow' +spectral_gwd_placement='slow' !!stochastic_physics_placement='fast' sw_segment_limit=32 ussp_segment=0 @@ -1624,14 +1630,14 @@ p_zero=100000.0 rd=287.05 scaling_factor=1.0 -[!!namelist:radiation] +[namelist:radiation] !!cloud_entrapment='zero' -!!cloud_inhomogeneity='mcica' -!!cloud_overlap='exponential_random' +cloud_inhomogeneity='mcica' +cloud_overlap='exponential_random' cloud_representation='combined' -!!cloud_vertical_decorr=10000.0 +cloud_vertical_decorr=4500.0 !!constant_droplet_effective_radius=7.0E-6 -!!droplet_effective_radius='liu' +droplet_effective_radius='liu' i_cloud_ice_type_lw=11 !!i_cloud_ice_type_lwinc=11 i_cloud_ice_type_sw=11 @@ -1644,8 +1650,8 @@ l_inc_radstep=.false. l_planet_grey_surface=.false. l_rayleigh_sw=.true. l_trans_zen_correction=.true. -!!liu_aparam=0.077 -!!liu_bparam=-0.1365 +liu_aparam=0.077 +liu_bparam=-0.1365 mcica_data_file='spec/mcica_data' !!n_horiz_ang=16 !!n_horiz_layer=1 @@ -1653,12 +1659,12 @@ mcica_data_file='spec/mcica_data' n_radstep=2 !!planet_albedo=0.06 !!planet_emissivity=0.985 -scatter_method_lw='full' -!!scatter_method_lwinc='full' +scatter_method_lw='hybrid' +!!scatter_method_lwinc='approx' spectral_file_lw='spec/sp_lw_ga9' -!!spectral_file_lwinc='spec/sp_lw_cloud7' +!!spectral_file_lwinc='spec/sp_lw_cloud9' spectral_file_sw='spec/sp_sw_ga9' -!!spectral_file_swinc='spec/sp_sw_cloud7' +!!spectral_file_swinc='spec/sp_sw_cloud9' topography='slope' [namelist:radiative_gases] @@ -1672,26 +1678,26 @@ cfc113_rad_opt='off' !!cfc11_clim_fcg_nyears=0 !!cfc11_clim_fcg_rates=0 !!cfc11_clim_fcg_years=0 -!!cfc11_mix_ratio=1.110e-09 -cfc11_rad_opt='off' +cfc11_mix_ratio=1.110e-09 +cfc11_rad_opt='constant' !!cfc12_clim_fcg_levls=0 !!cfc12_clim_fcg_nyears=0 !!cfc12_clim_fcg_rates=0 !!cfc12_clim_fcg_years=0 -!!cfc12_mix_ratio=2.187e-09 -cfc12_rad_opt='off' +cfc12_mix_ratio=2.187e-09 +cfc12_rad_opt='constant' !!ch4_clim_fcg_levls=0 !!ch4_clim_fcg_nyears=0 !!ch4_clim_fcg_rates=0 !!ch4_clim_fcg_years=0 -!!ch4_mix_ratio=1.006e-06 -ch4_rad_opt='off' +ch4_mix_ratio=1.006e-06 +ch4_rad_opt='constant' !!co2_clim_fcg_levls=0 !!co2_clim_fcg_nyears=0 !!co2_clim_fcg_rates=0 !!co2_clim_fcg_years=0 -!!co2_mix_ratio=6.002e-04 -co2_rad_opt='off' +co2_mix_ratio=6.002e-04 +co2_rad_opt='constant' !!co_clim_fcg_levls=0 !!co_clim_fcg_nyears=0 !!co_clim_fcg_rates=0 @@ -1763,8 +1769,8 @@ n2_rad_opt='off' !!n2o_clim_fcg_nyears=0 !!n2o_clim_fcg_rates=0 !!n2o_clim_fcg_years=0 -!!n2o_mix_ratio=4.945e-07 -n2o_rad_opt='off' +n2o_mix_ratio=4.945e-07 +n2o_rad_opt='constant' !!na_clim_fcg_levls=0 !!na_clim_fcg_nyears=0 !!na_clim_fcg_rates=0 @@ -1781,8 +1787,8 @@ nh3_rad_opt='off' !!o2_clim_fcg_nyears=0 !!o2_clim_fcg_rates=0 !!o2_clim_fcg_years=0 -!!o2_mix_ratio=0.2314 -o2_rad_opt='off' +o2_mix_ratio=0.2314 +o2_rad_opt='constant' !!o3_clim_fcg_levls=0 !!o3_clim_fcg_nyears=0 !!o3_clim_fcg_rates=0 @@ -1791,7 +1797,7 @@ o2_rad_opt='off' !!o3_profile_data=0 !!o3_profile_heights=0.0 !!o3_profile_size=0 -o3_rad_opt='off' +o3_rad_opt='ancil' !!rb_clim_fcg_levls=0 !!rb_clim_fcg_nyears=0 !!rb_clim_fcg_rates=0 @@ -1818,32 +1824,32 @@ tio_rad_opt='off' vo_rad_opt='off' [namelist:section_choice] -aerosol='none' -boundary_layer='none' +aerosol='um' +boundary_layer='um' chemistry='none' -cloud='none' -!!convection='none' +cloud='um' +convection='um' dynamics='gungho' -!!electric='none' +electric='none' external_forcing=.false. iau=.false. iau_sst=.false. iau_surf=.false. -methane_oxidation=.false. -!!microphysics='none' -orographic_drag='none' -radiation='none' -spectral_gwd='none' +methane_oxidation=.true. +microphysics='um' +orographic_drag='um' +radiation='socrates' +spectral_gwd='um' stochastic_physics='none' -surface='none' +surface='jules' [namelist:solver] -fail_on_non_converged=.false. +!!fail_on_non_converged=.false. gcrk=18 !!jacobi_relaxation=0.5 maximum_iterations=7 method='chebyshev' -monitor_convergence=.true. +monitor_convergence=.false. preconditioner='diagonal' tolerance=1.0e-6 @@ -1871,14 +1877,14 @@ tolerance=1.0e-6 !!time_units='seconds' !!time_units_sst='seconds' -[!!namelist:spectral_gwd] -add_cgw=.false. -!!cgw_scale_factor=1.0 +[namelist:spectral_gwd] +add_cgw=.true. +cgw_scale_factor=0.86 ussp_heating=.true. -ussp_launch_factor=1.3 +ussp_launch_factor=1.2 wavelstar=4300.0 -[!!namelist:star] +[namelist:star] stellar_constant=1361.0 stellar_radius=6.957e8 @@ -1928,9 +1934,9 @@ ens_memb=${ENSEMBLE_MEMBER} !!rp_lsfc_orog_drag_param=0.15,0.15,0.15 !!rp_lsfc_z0_soil=1.0e-3,1.0e-3,1.0e-3 !!rp_lsfc_z0_urban_mult=1.0,1.0,1.0 -!!rp_lsfc_z0hm_pft=1.65000,1.65000,1.00000e-2,1.00000e-2,1.00000e-1 -!!rp_lsfc_z0hm_pft_max=1.65000,1.65000,1.00000e-2,1.00000e-2,1.00000e-1 -!!rp_lsfc_z0hm_pft_min=1.65000,1.65000,1.00000e-2,1.00000e-2,1.00000e-1 +!!rp_lsfc_z0hm_pft=1.00,1.00,0.022,0.022,0.025 +!!rp_lsfc_z0hm_pft_max=1.00,1.00,0.022,0.022,0.025 +!!rp_lsfc_z0hm_pft_min=1.00,1.00,0.022,0.022,0.025 !!rp_lsfc_z0hm_soil=2.0e-1,2.0e-1,2.0e-1 !!rp_lsfc_z0v= !!rp_lsfc_z0v_max= @@ -1976,13 +1982,13 @@ ens_memb=${ENSEMBLE_MEMBER} !!spt_use_convection=.true. !!spt_use_microphysics=.true. !!spt_use_radiation=.true. -stph_n_max=22 +stph_n_max=60 stph_n_min=20 use_random_parameters=.false. use_skeb=.false. use_spt=.false. -[!!namelist:surface] +[namelist:surface] !!check_soilm_negatives=.true. emis_method_sea='fixed' emis_method_soil='fixed' @@ -2007,8 +2013,8 @@ timescale=1.0 [namelist:time] calendar='timestep' -calendar_origin='2016-01-01 15:00:00' -calendar_start='2016-01-01 15:00:00' +calendar_origin='2021-03-24 00:00:00' +calendar_start='2021-03-24 00:00:00' calendar_type='gregorian' timestep_end='$RESTART_STOP' timestep_start='$RESTART_START' @@ -2021,16 +2027,16 @@ method='semi_implicit' outer_iterations=2 runge_kutta_method='forward_euler' spinup_alpha=.false. -!!spinup_period=0 +!!spinup_period=0.0 tau_r=1.0 tau_t=1.0 tau_u=0.55 [namelist:transport] -adjust_theta=.false. -!!adjust_theta_above=30000.0 +adjust_theta=.true. +adjust_theta_above=30000.0 adjust_tracer_equation=.false. -adjust_vhv_wind=.false. +adjust_vhv_wind=.true. ageofair_reset_level=10 broken_w2_projection=.false. calculate_detj='upwind' @@ -2040,54 +2046,50 @@ cfl_mol_2d_stab=1.0 cfl_mol_3d_stab=1.0 cheap_update=.false. consistent_metric=.false. -dep_pt_stencil_extent=3 +dep_pt_stencil_extent=7 dry_field_name='density' -enforce_min_value=5*.false. -equation_form=1,2,2,2,2 +enforce_min_value=.false.,.false.,.false.,.true.,.true.,.true. +equation_form=1,3,2,3,3,3 ffsl_inner_order=0 ffsl_outer_order=1 -ffsl_splitting=5*1 -ffsl_unity_3d=.false. -ffsl_vertical_order=2,2,1,2,2 +ffsl_splitting=6*1 +ffsl_unity_3d=.true. +ffsl_vertical_order=2,2,1,2,2,2 field_names='density','potential_temperature','wind','moisture', - ='con_tracer' + ='adv_tracer','con_tracer' fv_horizontal_order=2 fv_vertical_order=2 -horizontal_method=5*1 -horizontal_monotone=5*1 -log_space=.true.,.true.,.false.,.false.,.false. +horizontal_method=6*2 +horizontal_monotone=1,5,1,5,5,5 +log_space=.true.,.true.,.false.,.false.,.false.,.false. max_vert_cfl_calc='dep_point' -min_val_abs_tol=-1.0e-12 -min_val_max_iterations=10 -min_val_method='iterative' -min_value=0.0,0.0,-99999999.0,0.0,0.0 +!!min_val_abs_tol=-1e-9 +!!min_val_max_iterations=10 +min_val_method='clipping' +min_value=0.0,0.0,-99999999.0,0.0,0.0,0.0 oned_reconstruction=.false. operators='fv' panel_edge_high_order=.true. -panel_edge_treatment='none' -profile_size=5 -reversible=.true.,.true.,.false.,.true.,.true. +panel_edge_treatment='special_edges' +profile_size=6 +reversible=.true.,.true.,.false.,.true.,.true.,.true. runge_kutta_method='ssp3' -scheme=5*1 -si_outer_transport='none' +scheme=6*3 +si_outer_transport='horizontal_sl' slice_order='parabola' -special_edges_monotone=5*1 -splitting=5*1 -substep_transport='off' -theta_dispersion_correction=.false. -theta_variable='dry' +special_edges_monotone=0,0,0,1,1,1 +splitting=6*2 +substep_transport='adaptive' +theta_dispersion_correction=.true. +theta_variable='virtual_dry' transport_ageofair=.false. use_density_predictor=.false. -vertical_method=5*1 -vertical_monotone=5*1 -vertical_monotone_order=5*3 +vertical_method=6*2 +vertical_monotone=1,5,1,5,5,5 +vertical_monotone_order=6*3 vertical_sl_order='cubic' -wind_mono_top=.false. -!!wind_mono_top_depth=5 - -[namelist:validity_test] -number_gamma_values=2 -update_ls_frequency=1 +wind_mono_top=.true. +wind_mono_top_depth=5 [!!namelist:vapour_forcing] coordinate='height' diff --git a/rose-stem/flow.cylc b/rose-stem/flow.cylc index 02b40dfc6..d5ce0808e 100644 --- a/rose-stem/flow.cylc +++ b/rose-stem/flow.cylc @@ -93,7 +93,8 @@ or "jules" in requested_applications or "linear_model" in requested_applications or "ngarch" in requested_applications - or "lfric_coupled" in requested_applications %} + or "lfric_coupled" in requested_applications + or "jedi_lfric_tests" in requested_applications %} {% do LOG.debug("Running Physics Schemes") %} diff --git a/rose-stem/site/common/jedi_lfric_tests/tasks_jedi_lfric_tests.cylc b/rose-stem/site/common/jedi_lfric_tests/tasks_jedi_lfric_tests.cylc index 25cf5232d..d8e6d7b72 100644 --- a/rose-stem/site/common/jedi_lfric_tests/tasks_jedi_lfric_tests.cylc +++ b/rose-stem/site/common/jedi_lfric_tests/tasks_jedi_lfric_tests.cylc @@ -24,18 +24,43 @@ "tsteps": 20, }) %} -{% elif task_ns.conf_name == "forecast_gh-si-for-linear-C12" %} +{% elif task_ns.conf_name == "forecast_nwp_gal9-C12" %} + # This is based on the lfric_atm: nwp_gal9-C12 configuration + {% do task_dict.update({ + "app_name": "jedi_forecast", + "opt_confs": ["um_dump"], + "resolution": "C12", + "ancil_resolution": "C12", + "DT": 1800, + "tsteps": 13, + "mpi_parts": 6, + }) %} +{% elif task_ns.conf_name == "forecast_nwp_gal9_da-C12" %} + # This is based on the lfric_atm: nwp_gal9-C12_da configuration + # This includes the IAU {% do task_dict.update({ "app_name": "jedi_forecast", - "opt_confs": ["gh-si-for-linear"], + "opt_confs": ["da"], "resolution": "C12", "ancil_resolution": "C12", - "DT": 90, + "DT": 1800, "tsteps": 13, "mpi_parts": 6, }) %} +{% elif task_ns.conf_name == "forecast_nwp_gal9-C48_MG" %} + # This is based on the lfric_atm: nwp_gal9-C48_MG configuration + {% do task_dict.update({ + "app_name": "jedi_forecast", + "opt_confs": ["um_dump","JEDI_C48","test_diags"], + "resolution": "C48_MG", + "ancil_resolution": "C48", + "DT": 1800, + "tsteps": 13, + "mpi_parts": 24, + }) %} + {% elif task_ns.conf_name == "forecast_pseudo_default-C12" %} {% do task_dict.update({ @@ -282,12 +307,6 @@ "threads": 4, }) %} -{% elif task_ns.conf_name == "integration_tests" %} - - {% do task_dict.update({ - "placeholder": true, - }) %} - {% elif task.startswith("build") %} {% do task_dict.update({ diff --git a/rose-stem/site/meto/common/default_directives.cylc b/rose-stem/site/meto/common/default_directives.cylc index 21a2f8fb7..495e6ebc6 100644 --- a/rose-stem/site/meto/common/default_directives.cylc +++ b/rose-stem/site/meto/common/default_directives.cylc @@ -27,6 +27,9 @@ "ngarch": { "build_wallclock": 45, }, + "jedi_lfric_tests": { + "build_wallclock": 45, + }, "mesh": { "mesh_wallclock": 20, "mesh_memory": [6, "GB"], @@ -57,6 +60,9 @@ "ngarch": { "build_wallclock": 45, }, + "jedi_lfric_tests": { + "build_wallclock": 45, + }, "mesh": { "mesh_wallclock": 20, "mesh_memory": [6, "GB"], diff --git a/rose-stem/site/meto/groups/groups_jedi_lfric_tests.cylc b/rose-stem/site/meto/groups/groups_jedi_lfric_tests.cylc index 1fbfc565b..14be80e6c 100644 --- a/rose-stem/site/meto/groups/groups_jedi_lfric_tests.cylc +++ b/rose-stem/site/meto/groups/groups_jedi_lfric_tests.cylc @@ -11,8 +11,12 @@ "jedi_lfric_tests_nwp_gal9-C12_MG_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_runge-kutta-C12_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_runge-kutta-C12_azspice_gnu_full-debug-64bit", - "jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit", - "jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_full-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_full-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_full-debug-64bit", "jedi_lfric_tests_forecast_pseudo_default-C12_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_pseudomodel-C12_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_pseudomodel-C12_azspice_gnu_full-debug-64bit", @@ -29,7 +33,6 @@ "jedi_lfric_tests_tlm_tests_nwp_gal9-dry-4OMP-C12_MG_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_nwp_gal9-dry-1PE-4OMP-C12_MG_azspice_gnu_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_nwp_gal9-strict_solver-4OMP-C12_MG_azspice_gnu_fast-debug-64bit-rsolver64", - "jedi_lfric_tests_azspice_integration_tests", ], "jedi_lfric_tests_op_azspice_developer": [ "jedi_lfric_tests_tlm_forecast_tl_nwp_gal9-C12_MG_op_azspice_gnu_fast-debug-64bit", @@ -39,9 +42,6 @@ "jedi_lfric_tests_azspice_developer", "jedi_lfric_tests_op_azspice_developer" ], - "jedi_lfric_tests_azspice_integration_tests": [ - "jedi_lfric_tests_integration_tests_azspice_gnu_64bit", - ], "jedi_lfric_tests_azspice_build": [ "build_jedi_lfric_tests_azspice_gnu_fast-debug-64bit", "build_jedi_lfric_tests_azspice_gnu_fast-debug-64bit-rsolver64", @@ -55,7 +55,9 @@ "jedi_lfric_tests_ex1a_developer": [ "jedi_lfric_tests_nwp_gal9-C12_MG_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_runge-kutta-C12_ex1a_cce_fast-debug-64bit", - "jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C12_ex1a_cce_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9_da-C12_ex1a_cce_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C48_MG_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_default-C12_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_pseudomodel-C12_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_tlm_forecast_tl_nwp_gal9-C12_MG_ex1a_cce_fast-debug-64bit", @@ -71,7 +73,6 @@ "jedi_lfric_tests_tlm_tests_nwp_gal9-dry-4OMP-C12_MG_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_nwp_gal9-dry-1PE-4OMP-C12_MG_ex1a_cce_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_nwp_gal9-strict_solver-4OMP-C12_MG_ex1a_cce_fast-debug-64bit-rsolver64", - "jedi_lfric_tests_ex1a_integration_tests", ], "jedi_lfric_tests_op_ex1a_developer": [ "jedi_lfric_tests_tlm_forecast_tl_nwp_gal9-C12_MG_op_ex1a_cce_fast-debug-64bit", @@ -86,9 +87,7 @@ "jedi_lfric_tests_ex1a_developer", "jedi_lfric_tests_op_ex1a_developer" ], - "jedi_lfric_tests_ex1a_integration_tests": [ - "jedi_lfric_tests_integration_tests_ex1a_cce_fast-debug-64bit", - ], + "jedi_lfric_tests_ex1a_build": [ "build_jedi_lfric_tests_ex1a_cce_fast-debug-64bit", "build_jedi_lfric_tests_ex1a_cce_fast-debug-64bit-rsolver64", @@ -101,7 +100,6 @@ "scripts", "jedi_lfric_tests_azspice_developer", "jedi_lfric_tests_ex1a_developer", - "jedi_lfric_tests_integration_tests", ], "jedi_lfric_tests_weekly": [ "jedi_lfric_tests_ex1a_weekly", @@ -111,10 +109,6 @@ "jedi_lfric_tests_azspice", "jedi_lfric_tests_ex1a", ], - "jedi_lfric_tests_integration_tests": [ - "jedi_lfric_tests_azspice_integration_tests", - "jedi_lfric_tests_ex1a_integration_tests", - ], "jedi_lfric_tests_build": [ "jedi_lfric_tests_azspice_build", "jedi_lfric_tests_ex1a_build", @@ -124,19 +118,16 @@ {# Platform Generic Extends #} {% do site_groups.developer.extend(site_groups.jedi_lfric_tests_developer) %} {% do site_groups.all.extend(site_groups.jedi_lfric_tests) %} -{% do site_groups.integration_tests.extend(site_groups.jedi_lfric_tests_integration_tests) %} {% do site_groups.build.extend(site_groups.jedi_lfric_tests_build) %} {# Azspice Extends #} {% do site_groups.azspice_developer.extend(site_groups.jedi_lfric_tests_azspice_developer) %} {% do site_groups.azspice.extend(site_groups.jedi_lfric_tests_azspice) %} -{% do site_groups.azspice_integration_tests.extend(site_groups.jedi_lfric_tests_azspice_integration_tests) %} {% do site_groups.azspice_build.extend(site_groups.jedi_lfric_tests_azspice_build) %} {# EX1A Extends #} {% do site_groups.ex1a_developer.extend(site_groups.jedi_lfric_tests_ex1a_developer) %} {% do site_groups.ex1a.extend(site_groups.jedi_lfric_tests_ex1a) %} -{% do site_groups.ex1a_integration_tests.extend(site_groups.jedi_lfric_tests_ex1a_integration_tests) %} {% do site_groups.ex1a_build.extend(site_groups.jedi_lfric_tests_ex1a_build) %} {% do LOG.debug("Finished in site/meto/groups/groups_jedi_lfric_tests.cylc") %} diff --git a/rose-stem/site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc b/rose-stem/site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc index 0e1d21dc2..bb675e869 100644 --- a/rose-stem/site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc +++ b/rose-stem/site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc @@ -5,4 +5,11 @@ {# ########################################################################### #} {% do LOG.debug("Entered site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc") %} +{% if task_ns.conf_name == "forecast_nwp_gal9-C48_MG" %} + {% do task_dict.update({ + "memory": [40, "GB"], + }) %} + +{% endif %} + {% do LOG.debug("Finised in site/meto/jedi_lfric_tests/tasks_jedi_lfric_tests_ex1a.cylc") %} diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt deleted file mode 100644 index def85323e..000000000 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_fast-debug-64bit.txt +++ /dev/null @@ -1 +0,0 @@ -Inner product checksum theta = 41F6D1230190116A diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt deleted file mode 100644 index def85323e..000000000 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_azspice_gnu_full-debug-64bit.txt +++ /dev/null @@ -1 +0,0 @@ -Inner product checksum theta = 41F6D1230190116A diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt new file mode 100644 index 000000000..9c5fd87ce --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42329EE915C4D475 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_full-debug-64bit.txt new file mode 100644 index 000000000..9c5fd87ce --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_azspice_gnu_full-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42329EE915C4D475 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_fast-debug-64bit.txt new file mode 100644 index 000000000..fb1d34ae6 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42729F91079FE233 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_full-debug-64bit.txt new file mode 100644 index 000000000..fb1d34ae6 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_azspice_gnu_full-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42729F91079FE233 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_fast-debug-64bit.txt new file mode 100644 index 000000000..a2a1f0dd6 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42327976489A3F64 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_full-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_full-debug-64bit.txt new file mode 100644 index 000000000..a2a1f0dd6 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/azspice/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_azspice_gnu_full-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42327976489A3F64 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt deleted file mode 100644 index a4abf87ad..000000000 --- a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_gh-si-for-linear-C12_ex1a_cce_fast-debug-64bit.txt +++ /dev/null @@ -1 +0,0 @@ -Inner product checksum theta = 41F6D12301909934 diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt new file mode 100644 index 000000000..3a0945839 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C12_ex1a_cce_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42329EE90D52C13D diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_ex1a_cce_fast-debug-64bit.txt new file mode 100644 index 000000000..d676c3969 --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9-C48_MG_ex1a_cce_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42729F910CEA328A diff --git a/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_ex1a_cce_fast-debug-64bit.txt b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_ex1a_cce_fast-debug-64bit.txt new file mode 100644 index 000000000..d4b6c90ac --- /dev/null +++ b/rose-stem/site/meto/kgos/jedi_lfric_tests/ex1a/checksum_jedi_lfric_tests_forecast_nwp_gal9_da-C12_ex1a_cce_fast-debug-64bit.txt @@ -0,0 +1 @@ +Inner product checksum theta = 42327976078B8580 diff --git a/rose-stem/site/nci/groups/groups_jedi_lfric_tests.cylc b/rose-stem/site/nci/groups/groups_jedi_lfric_tests.cylc index 49084f2ed..d41e365b9 100644 --- a/rose-stem/site/nci/groups/groups_jedi_lfric_tests.cylc +++ b/rose-stem/site/nci/groups/groups_jedi_lfric_tests.cylc @@ -10,7 +10,9 @@ "jedi_lfric_tests_gadi_developer": [ "jedi_lfric_tests_nwp_gal9-C12_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_runge-kutta-C12_gadi_intel_fast-debug-64bit", - "jedi_lfric_tests_forecast_gh-si-for-linear-C12_gadi_intel_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C12_gadi_intel_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9_da-C12_gadi_intel_fast-debug-64bit", + "jedi_lfric_tests_forecast_nwp_gal9-C48_MG_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_default-C12_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_forecast_pseudo_pseudomodel-C12_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_tlm_forecast_tl_default-C12_gadi_intel_fast-debug-64bit", @@ -20,14 +22,10 @@ "jedi_lfric_tests_tlm_tests_default-1PE-C12_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_default-dry-C12_gadi_intel_fast-debug-64bit", "jedi_lfric_tests_tlm_tests_default-dry-1PE-C12_gadi_intel_fast-debug-64bit", - "jedi_lfric_tests_gadi_integration_tests", ], "jedi_lfric_tests_gadi": [ "jedi_lfric_tests_gadi_developer" ], - "jedi_lfric_tests_gadi_integration_tests": [ - "jedi_lfric_tests_integration_tests_gadi_intel_64bit", - ], "jedi_lfric_tests_gadi_build": [ "build_jedi_lfric_tests_gadi_intel_fast-debug-64bit", ], @@ -38,15 +36,11 @@ "jedi_lfric_tests_developer": [ "scripts", "jedi_lfric_tests_gadi_developer", - "jedi_lfric_tests_integration_tests", ], "jedi_lfric_tests": [ "jedi_lfric_tests_developer", "jedi_lfric_tests_gadi", ], - "jedi_lfric_tests_integration_tests": [ - "jedi_lfric_tests_gadi_integration_tests", - ], "jedi_lfric_tests_build": [ "jedi_lfric_tests_gadi_build", ], @@ -55,13 +49,11 @@ {# Platform Generic Extends #} {% do site_groups.developer.extend(site_groups.jedi_lfric_tests_developer) %} {% do site_groups.all.extend(site_groups.jedi_lfric_tests) %} -{% do site_groups.integration_tests.extend(site_groups.jedi_lfric_tests_integration_tests) %} {% do site_groups.build.extend(site_groups.jedi_lfric_tests_build) %} {# gadi Extends #} {% do site_groups.gadi_developer.extend(site_groups.jedi_lfric_tests_gadi_developer) %} {% do site_groups.gadi.extend(site_groups.jedi_lfric_tests_gadi) %} -{% do site_groups.gadi_integration_tests.extend(site_groups.jedi_lfric_tests_gadi_integration_tests) %} {% do site_groups.gadi_build.extend(site_groups.jedi_lfric_tests_gadi_build) %} {% do LOG.debug("Finished iin site/meto/groups/groups_jedi_lfric_tests.cylc") %}