diff --git a/.github/workflows/api-change.yml b/.github/workflows/api-change.yml index f051071682..889516ff34 100644 --- a/.github/workflows/api-change.yml +++ b/.github/workflows/api-change.yml @@ -6,7 +6,7 @@ on: tag1: description: 'First ESMF Tag' required: true - default: 'v8.7.0' + default: 'v8.8.0' tag2: description: 'Second ESMF Tag' required: true diff --git a/.github/workflows/development-tests.yml b/.github/workflows/development-tests.yml index fb093f44f3..f2fb07b0ee 100644 --- a/.github/workflows/development-tests.yml +++ b/.github/workflows/development-tests.yml @@ -75,6 +75,8 @@ jobs: sudo apt-get -qq update sudo apt install -qq -y autoconf automake libtool elif [[ "${{matrix.config.osys}}" == "macos-"* ]]; then + sudo systemsetup -setusingnetworktime off + sudo rm -rf /etc/ntp.conf brew install autoconf automake libtool brew unlink libevent || true fi diff --git a/LICENSE b/LICENSE index 6b67fd39d4..aeefa52fb7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Earth System Modeling Framework -Copyright (c) 2002-2024 University Corporation for Atmospheric Research, +Copyright (c) 2002-2025 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/README.md b/README.md index eb7f420bea..4d1187482f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11205526.svg)](https://doi.org/10.5281/zenodo.11205526) ->Copyright (c) 2002-2024 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. +>Copyright (c) 2002-2025 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. Hello and welcome to ESMF. @@ -34,7 +34,7 @@ Pre-built binaries for ESMF and ESMPy are available through a number of channels ``` docker run -it --rm esmf/esmf-build-release:latest ``` - Replace `latest` in the above command with a valid version, like `8.8.0`, in order to access a specific ESMF version. + Replace `latest` in the above command with a valid version, like `8.9.0`, in order to access a specific ESMF version. * [Anaconda Conda-Forge](https://anaconda.org/conda-forge/): Under [conda-forge/esmpy](https://anaconda.org/conda-forge/esmpy). To install locally (_note Windows is not supported_), run: ``` diff --git a/build/README.md b/build/README.md index ad53b9eca2..6ab057915f 100644 --- a/build/README.md +++ b/build/README.md @@ -2,7 +2,7 @@ > Earth System Modeling Framework > -> Copyright (c) 2002-2024 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. +> Copyright (c) 2002-2025 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. This directory contains a single file `common.mk` that contains GNU makefile code used by the ESMF build system across all platforms. diff --git a/build/common.mk b/build/common.mk index d8d5c8c502..2366cb7d9a 100644 --- a/build/common.mk +++ b/build/common.mk @@ -1014,7 +1014,7 @@ endif ifeq ($(origin ESMF_F90LINKLIBS_ENV), environment) ESMF_F90LINKLIBS = $(ESMF_F90LINKLIBS_ENV) endif -ESMF_F90LINKLIBS += +ESMF_F90LINKLIBS += $(ESMF_F90LINKLIBSTHIRD) ESMF_F90ESMFLINKLIBS += -lesmf $(ESMF_F90LINKLIBS) ESMF_F90ESMFPRELOADLINKLIBS += -lesmf $(ESMF_TRACE_DYNAMICLINKLIBS) $(ESMF_F90LINKLIBS) @@ -1068,7 +1068,7 @@ endif ifeq ($(origin ESMF_CXXLINKLIBS_ENV), environment) ESMF_CXXLINKLIBS = $(ESMF_CXXLINKLIBS_ENV) endif -ESMF_CXXLINKLIBS += +ESMF_CXXLINKLIBS += $(ESMF_CXXLINKLIBSTHIRD) ESMF_CXXESMFLINKLIBS += -lesmf $(ESMF_CXXLINKLIBS) # - CLINKER @@ -1331,9 +1331,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_MOAB_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_MOAB_INCLUDE) endif ifdef ESMF_MOAB_LIBS -ESMF_CXXLINKLIBS += $(ESMF_MOAB_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_MOAB_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_MOAB_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_MOAB_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_MOAB_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_MOAB_LIBS)))) endif ifdef ESMF_MOAB_LIBPATH @@ -1400,9 +1400,9 @@ ifdef ESMF_LAPACK_INTERNAL ESMF_CPPFLAGS += -DESMF_LAPACK_INTERNAL=1 endif ifdef ESMF_LAPACK_LIBS -ESMF_CXXLINKLIBS += $(ESMF_LAPACK_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_LAPACK_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_LAPACK_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_LAPACK_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_LAPACK_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_LAPACK_LIBS)))) endif ifdef ESMF_LAPACK_LIBPATH @@ -1446,9 +1446,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_ACC_SOFTWARE_STACK_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_ACC_SOFTWARE_STACK_INCLUDE) endif ifdef ESMF_ACC_SOFTWARE_STACK_LIBS -ESMF_CXXLINKLIBS += $(ESMF_ACC_SOFTWARE_STACK_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_ACC_SOFTWARE_STACK_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_ACC_SOFTWARE_STACK_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_ACC_SOFTWARE_STACK_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_ACC_SOFTWARE_STACK_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_ACC_SOFTWARE_STACK_LIBS)))) endif ifdef ESMF_ACC_SOFTWARE_STACK_LIBPATH @@ -1580,12 +1580,12 @@ ifdef ESMF_NETCDF ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_NETCDFF_INCLUDE) endif ifdef ESMF_NETCDF_LIBS - ESMF_CXXLINKLIBS += $(ESMF_NETCDF_LIBS) - ESMF_F90LINKLIBS += $(ESMF_NETCDF_LIBS) + ESMF_CXXLINKLIBSTHIRD += $(ESMF_NETCDF_LIBS) + ESMF_F90LINKLIBSTHIRD += $(ESMF_NETCDF_LIBS) endif ifdef ESMF_NETCDFF_LIBS - ESMF_CXXLINKLIBS += $(ESMF_NETCDFF_LIBS) - ESMF_F90LINKLIBS += $(ESMF_NETCDFF_LIBS) + ESMF_CXXLINKLIBSTHIRD += $(ESMF_NETCDFF_LIBS) + ESMF_F90LINKLIBSTHIRD += $(ESMF_NETCDFF_LIBS) endif ifdef ESMF_NETCDF_LIBPATH ESMF_CXXLINKPATHSTHIRD += $(addprefix -L,$(ESMF_NETCDF_LIBPATH)) @@ -1623,9 +1623,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PNETCDF_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PNETCDF_INCLUDE) endif ifdef ESMF_PNETCDF_LIBS -ESMF_CXXLINKLIBS += $(ESMF_PNETCDF_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_PNETCDF_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PNETCDF_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_PNETCDF_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_PNETCDF_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PNETCDF_LIBS)))) endif ifdef ESMF_PNETCDF_LIBPATH @@ -1652,9 +1652,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_XERCES_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_XERCES_INCLUDE) endif ifdef ESMF_XERCES_LIBS -ESMF_CXXLINKLIBS += $(ESMF_XERCES_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_XERCES_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_XERCES_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_XERCES_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_XERCES_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_XERCES_LIBS)))) endif ifdef ESMF_XERCES_LIBPATH @@ -1690,9 +1690,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_YAMLCPP_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_YAMLCPP_INCLUDE) endif ifdef ESMF_YAMLCPP_LIBS -ESMF_CXXLINKLIBS += $(ESMF_YAMLCPP_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_YAMLCPP_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_YAMLCPP_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_YAMLCPP_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_YAMLCPP_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_YAMLCPP_LIBS)))) endif ifdef ESMF_YAMLCPP_LIBPATH @@ -1737,9 +1737,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE) endif ifdef ESMF_PIO_LIBS -ESMF_CXXLINKLIBS += $(ESMF_PIO_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_PIO_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_PIO_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_PIO_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PIO_LIBS)))) endif ifdef ESMF_PIO_LIBPATH @@ -1776,9 +1776,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PROJ4_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PROJ4_INCLUDE) endif ifdef ESMF_PROJ4_LIBS -ESMF_CXXLINKLIBS += $(ESMF_PROJ4_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_PROJ4_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PROJ4_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_PROJ4_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_PROJ4_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_PROJ4_LIBS)))) endif ifdef ESMF_PROJ4_LIBPATH @@ -1805,9 +1805,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_BABELTRACE_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_BABELTRACE_INCLUDE) endif ifdef ESMF_BABELTRACE_LIBS -ESMF_CXXLINKLIBS += $(ESMF_BABELTRACE_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_BABELTRACE_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_BABELTRACE_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_BABELTRACE_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_BABELTRACE_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_BABELTRACE_LIBS)))) endif ifdef ESMF_BABELTRACE_LIBPATH @@ -1841,9 +1841,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_NUMA_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_NUMA_INCLUDE) endif ifdef ESMF_NUMA_LIBS -ESMF_CXXLINKLIBS += $(ESMF_NUMA_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_NUMA_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_NUMA_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_NUMA_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_NUMA_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_NUMA_LIBS)))) endif ifdef ESMF_NUMA_LIBPATH @@ -1877,9 +1877,9 @@ ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_NVML_INCLUDE) ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_NVML_INCLUDE) endif ifdef ESMF_NVML_LIBS -ESMF_CXXLINKLIBS += $(ESMF_NVML_LIBS) +ESMF_CXXLINKLIBSTHIRD += $(ESMF_NVML_LIBS) ESMF_CXXLINKRPATHSTHIRD += $(addprefix $(ESMF_CXXRPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_NVML_LIBS)))) -ESMF_F90LINKLIBS += $(ESMF_NVML_LIBS) +ESMF_F90LINKLIBSTHIRD += $(ESMF_NVML_LIBS) ESMF_F90LINKRPATHSTHIRD += $(addprefix $(ESMF_F90RPATHPREFIX),$(subst -L,,$(filter -L%,$(ESMF_NVML_LIBS)))) endif ifdef ESMF_NVML_LIBPATH diff --git a/build_config/AIX.default.default/ESMC_Conf.h b/build_config/AIX.default.default/ESMC_Conf.h index 26814b474d..36416f1d23 100644 --- a/build_config/AIX.default.default/ESMC_Conf.h +++ b/build_config/AIX.default.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/AIX.default.default/ESMF_Conf.inc b/build_config/AIX.default.default/ESMF_Conf.inc index 03b7b87f26..46b2855bb3 100644 --- a/build_config/AIX.default.default/ESMF_Conf.inc +++ b/build_config/AIX.default.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Cygwin.g95.default/ESMC_Conf.h b/build_config/Cygwin.g95.default/ESMC_Conf.h index 91972521b3..df8d6000bd 100644 --- a/build_config/Cygwin.g95.default/ESMC_Conf.h +++ b/build_config/Cygwin.g95.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Cygwin.g95.default/ESMF_Conf.inc b/build_config/Cygwin.g95.default/ESMF_Conf.inc index 2c54647e14..3e6c06ef13 100644 --- a/build_config/Cygwin.g95.default/ESMF_Conf.inc +++ b/build_config/Cygwin.g95.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Cygwin.gfortran.default/ESMC_Conf.h b/build_config/Cygwin.gfortran.default/ESMC_Conf.h index 4b0e5eac4d..e7e16df12f 100644 --- a/build_config/Cygwin.gfortran.default/ESMC_Conf.h +++ b/build_config/Cygwin.gfortran.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Cygwin.gfortran.default/ESMF_Conf.inc b/build_config/Cygwin.gfortran.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Cygwin.gfortran.default/ESMF_Conf.inc +++ b/build_config/Cygwin.gfortran.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.absoft.default/ESMC_Conf.h b/build_config/Darwin.absoft.default/ESMC_Conf.h index 9f08a4070e..23655d7b53 100644 --- a/build_config/Darwin.absoft.default/ESMC_Conf.h +++ b/build_config/Darwin.absoft.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.absoft.default/ESMF_Conf.inc b/build_config/Darwin.absoft.default/ESMF_Conf.inc index f728dbf6f2..29b42e5f6c 100644 --- a/build_config/Darwin.absoft.default/ESMF_Conf.inc +++ b/build_config/Darwin.absoft.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.g95.default/ESMC_Conf.h b/build_config/Darwin.g95.default/ESMC_Conf.h index ffe8d429c2..13aa74d267 100644 --- a/build_config/Darwin.g95.default/ESMC_Conf.h +++ b/build_config/Darwin.g95.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.g95.default/ESMF_Conf.inc b/build_config/Darwin.g95.default/ESMF_Conf.inc index 2c54647e14..3e6c06ef13 100644 --- a/build_config/Darwin.g95.default/ESMF_Conf.inc +++ b/build_config/Darwin.g95.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.gfortran.default/ESMC_Conf.h b/build_config/Darwin.gfortran.default/ESMC_Conf.h index f6bf969f08..3b37b1e57f 100644 --- a/build_config/Darwin.gfortran.default/ESMC_Conf.h +++ b/build_config/Darwin.gfortran.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.gfortran.default/ESMF_Conf.inc b/build_config/Darwin.gfortran.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Darwin.gfortran.default/ESMF_Conf.inc +++ b/build_config/Darwin.gfortran.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.gfortranclang.default/ESMC_Conf.h b/build_config/Darwin.gfortranclang.default/ESMC_Conf.h index 0cd56ead50..4558976575 100644 --- a/build_config/Darwin.gfortranclang.default/ESMC_Conf.h +++ b/build_config/Darwin.gfortranclang.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.gfortranclang.default/ESMF_Conf.inc b/build_config/Darwin.gfortranclang.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Darwin.gfortranclang.default/ESMF_Conf.inc +++ b/build_config/Darwin.gfortranclang.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intel.default/ESMC_Conf.h b/build_config/Darwin.intel.default/ESMC_Conf.h index a8da8997ee..5d4b001d9f 100644 --- a/build_config/Darwin.intel.default/ESMC_Conf.h +++ b/build_config/Darwin.intel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intel.default/ESMF_Conf.inc b/build_config/Darwin.intel.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/Darwin.intel.default/ESMF_Conf.inc +++ b/build_config/Darwin.intel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intelclang.default/ESMC_Conf.h b/build_config/Darwin.intelclang.default/ESMC_Conf.h index a8da8997ee..5d4b001d9f 100644 --- a/build_config/Darwin.intelclang.default/ESMC_Conf.h +++ b/build_config/Darwin.intelclang.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intelclang.default/ESMF_Conf.inc b/build_config/Darwin.intelclang.default/ESMF_Conf.inc index 6996d2d1ae..e9c6386d54 100644 --- a/build_config/Darwin.intelclang.default/ESMF_Conf.inc +++ b/build_config/Darwin.intelclang.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intelgcc.default/ESMC_Conf.h b/build_config/Darwin.intelgcc.default/ESMC_Conf.h index a8da8997ee..5d4b001d9f 100644 --- a/build_config/Darwin.intelgcc.default/ESMC_Conf.h +++ b/build_config/Darwin.intelgcc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.intelgcc.default/ESMF_Conf.inc b/build_config/Darwin.intelgcc.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/Darwin.intelgcc.default/ESMF_Conf.inc +++ b/build_config/Darwin.intelgcc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.nag.default/ESMC_Conf.h b/build_config/Darwin.nag.default/ESMC_Conf.h index 8bf3edb229..fd49a5972c 100644 --- a/build_config/Darwin.nag.default/ESMC_Conf.h +++ b/build_config/Darwin.nag.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.nag.default/ESMF_Conf.inc b/build_config/Darwin.nag.default/ESMF_Conf.inc index 4aa067fb9c..e780ed75ca 100644 --- a/build_config/Darwin.nag.default/ESMF_Conf.inc +++ b/build_config/Darwin.nag.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.pgi.default/ESMC_Conf.h b/build_config/Darwin.pgi.default/ESMC_Conf.h index b911fb2a3f..9ebd79c048 100644 --- a/build_config/Darwin.pgi.default/ESMC_Conf.h +++ b/build_config/Darwin.pgi.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.pgi.default/ESMF_Conf.inc b/build_config/Darwin.pgi.default/ESMF_Conf.inc index 1e2f6916af..b10ecca1bf 100644 --- a/build_config/Darwin.pgi.default/ESMF_Conf.inc +++ b/build_config/Darwin.pgi.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.xlf.default/ESMC_Conf.h b/build_config/Darwin.xlf.default/ESMC_Conf.h index ef6a583bef..fec6e5a771 100644 --- a/build_config/Darwin.xlf.default/ESMC_Conf.h +++ b/build_config/Darwin.xlf.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.xlf.default/ESMF_Conf.inc b/build_config/Darwin.xlf.default/ESMF_Conf.inc index 6e3e8d785d..eb3889550f 100644 --- a/build_config/Darwin.xlf.default/ESMF_Conf.inc +++ b/build_config/Darwin.xlf.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.xlfgcc.default/ESMC_Conf.h b/build_config/Darwin.xlfgcc.default/ESMC_Conf.h index ef6a583bef..fec6e5a771 100644 --- a/build_config/Darwin.xlfgcc.default/ESMC_Conf.h +++ b/build_config/Darwin.xlfgcc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Darwin.xlfgcc.default/ESMF_Conf.inc b/build_config/Darwin.xlfgcc.default/ESMF_Conf.inc index 6e3e8d785d..eb3889550f 100644 --- a/build_config/Darwin.xlfgcc.default/ESMF_Conf.inc +++ b/build_config/Darwin.xlfgcc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/IRIX64.default.default/ESMC_Conf.h b/build_config/IRIX64.default.default/ESMC_Conf.h index d43362701a..f319e1be30 100644 --- a/build_config/IRIX64.default.default/ESMC_Conf.h +++ b/build_config/IRIX64.default.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/IRIX64.default.default/ESMF_Conf.inc b/build_config/IRIX64.default.default/ESMF_Conf.inc index ba96de36af..3f3598140c 100644 --- a/build_config/IRIX64.default.default/ESMF_Conf.inc +++ b/build_config/IRIX64.default.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.absoft.default/ESMC_Conf.h b/build_config/Linux.absoft.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Linux.absoft.default/ESMC_Conf.h +++ b/build_config/Linux.absoft.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.absoft.default/ESMF_Conf.inc b/build_config/Linux.absoft.default/ESMF_Conf.inc index 136cd3746f..7117070684 100644 --- a/build_config/Linux.absoft.default/ESMF_Conf.inc +++ b/build_config/Linux.absoft.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.absoftintel.default/ESMC_Conf.h b/build_config/Linux.absoftintel.default/ESMC_Conf.h index 29fb3066cc..2f7b3e4ab4 100644 --- a/build_config/Linux.absoftintel.default/ESMC_Conf.h +++ b/build_config/Linux.absoftintel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.absoftintel.default/ESMF_Conf.inc b/build_config/Linux.absoftintel.default/ESMF_Conf.inc index 617c20cfff..9660efd7f3 100644 --- a/build_config/Linux.absoftintel.default/ESMF_Conf.inc +++ b/build_config/Linux.absoftintel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.aocc.default/ESMC_Conf.h b/build_config/Linux.aocc.default/ESMC_Conf.h index f5aa2464b8..feed38c95b 100644 --- a/build_config/Linux.aocc.default/ESMC_Conf.h +++ b/build_config/Linux.aocc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.aocc.default/ESMF_Conf.inc b/build_config/Linux.aocc.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Linux.aocc.default/ESMF_Conf.inc +++ b/build_config/Linux.aocc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.arm.default/ESMC_Conf.h b/build_config/Linux.arm.default/ESMC_Conf.h index 897d7af2c3..ef2fe94497 100644 --- a/build_config/Linux.arm.default/ESMC_Conf.h +++ b/build_config/Linux.arm.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.arm.default/ESMF_Conf.inc b/build_config/Linux.arm.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Linux.arm.default/ESMF_Conf.inc +++ b/build_config/Linux.arm.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.fujitsu.default/ESMF_Conf.inc b/build_config/Linux.fujitsu.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Linux.fujitsu.default/ESMF_Conf.inc +++ b/build_config/Linux.fujitsu.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.g95.default/ESMC_Conf.h b/build_config/Linux.g95.default/ESMC_Conf.h index 756f92ea52..348a71d41b 100644 --- a/build_config/Linux.g95.default/ESMC_Conf.h +++ b/build_config/Linux.g95.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.g95.default/ESMF_Conf.inc b/build_config/Linux.g95.default/ESMF_Conf.inc index 2c54647e14..3e6c06ef13 100644 --- a/build_config/Linux.g95.default/ESMF_Conf.inc +++ b/build_config/Linux.g95.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.gfortran.default/ESMC_Conf.h b/build_config/Linux.gfortran.default/ESMC_Conf.h index f5aa2464b8..feed38c95b 100644 --- a/build_config/Linux.gfortran.default/ESMC_Conf.h +++ b/build_config/Linux.gfortran.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.gfortran.default/ESMF_Conf.inc b/build_config/Linux.gfortran.default/ESMF_Conf.inc index 0a07775231..83184ac581 100644 --- a/build_config/Linux.gfortran.default/ESMF_Conf.inc +++ b/build_config/Linux.gfortran.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.gfortranclang.default/ESMC_Conf.h b/build_config/Linux.gfortranclang.default/ESMC_Conf.h index 897d7af2c3..ef2fe94497 100644 --- a/build_config/Linux.gfortranclang.default/ESMC_Conf.h +++ b/build_config/Linux.gfortranclang.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.gfortranclang.default/ESMF_Conf.inc b/build_config/Linux.gfortranclang.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Linux.gfortranclang.default/ESMF_Conf.inc +++ b/build_config/Linux.gfortranclang.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.intel.default/ESMC_Conf.h b/build_config/Linux.intel.default/ESMC_Conf.h index 6ba012b4b6..c6ea138a70 100644 --- a/build_config/Linux.intel.default/ESMC_Conf.h +++ b/build_config/Linux.intel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.intel.default/ESMF_Conf.inc b/build_config/Linux.intel.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/Linux.intel.default/ESMF_Conf.inc +++ b/build_config/Linux.intel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.intelgcc.default/ESMC_Conf.h b/build_config/Linux.intelgcc.default/ESMC_Conf.h index 6ba012b4b6..c6ea138a70 100644 --- a/build_config/Linux.intelgcc.default/ESMC_Conf.h +++ b/build_config/Linux.intelgcc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.intelgcc.default/ESMF_Conf.inc b/build_config/Linux.intelgcc.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/Linux.intelgcc.default/ESMF_Conf.inc +++ b/build_config/Linux.intelgcc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.lahey.default/ESMC_Conf.h b/build_config/Linux.lahey.default/ESMC_Conf.h index a91cc3f38c..444e9cc742 100644 --- a/build_config/Linux.lahey.default/ESMC_Conf.h +++ b/build_config/Linux.lahey.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.lahey.default/ESMF_Conf.inc b/build_config/Linux.lahey.default/ESMF_Conf.inc index 584f2e3da2..b9d00530e3 100644 --- a/build_config/Linux.lahey.default/ESMF_Conf.inc +++ b/build_config/Linux.lahey.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.llvm.default/ESMC_Conf.h b/build_config/Linux.llvm.default/ESMC_Conf.h index 897d7af2c3..ef2fe94497 100644 --- a/build_config/Linux.llvm.default/ESMC_Conf.h +++ b/build_config/Linux.llvm.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.llvm.default/ESMF_Conf.inc b/build_config/Linux.llvm.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Linux.llvm.default/ESMF_Conf.inc +++ b/build_config/Linux.llvm.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nag.default/ESMC_Conf.h b/build_config/Linux.nag.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Linux.nag.default/ESMC_Conf.h +++ b/build_config/Linux.nag.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nag.default/ESMF_Conf.inc b/build_config/Linux.nag.default/ESMF_Conf.inc index 4aa067fb9c..e780ed75ca 100644 --- a/build_config/Linux.nag.default/ESMF_Conf.inc +++ b/build_config/Linux.nag.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nagintel.default/ESMC_Conf.h b/build_config/Linux.nagintel.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Linux.nagintel.default/ESMC_Conf.h +++ b/build_config/Linux.nagintel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nagintel.default/ESMF_Conf.inc b/build_config/Linux.nagintel.default/ESMF_Conf.inc index 4aa067fb9c..e780ed75ca 100644 --- a/build_config/Linux.nagintel.default/ESMF_Conf.inc +++ b/build_config/Linux.nagintel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nvhpc.default/ESMC_Conf.h b/build_config/Linux.nvhpc.default/ESMC_Conf.h index c7c9fd35e7..e95a475ac2 100644 --- a/build_config/Linux.nvhpc.default/ESMC_Conf.h +++ b/build_config/Linux.nvhpc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.nvhpc.default/ESMF_Conf.inc b/build_config/Linux.nvhpc.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Linux.nvhpc.default/ESMF_Conf.inc +++ b/build_config/Linux.nvhpc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pathscale.default/ESMC_Conf.h b/build_config/Linux.pathscale.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Linux.pathscale.default/ESMC_Conf.h +++ b/build_config/Linux.pathscale.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pathscale.default/ESMF_Conf.inc b/build_config/Linux.pathscale.default/ESMF_Conf.inc index dcf6bebe1c..aed92d7e5b 100644 --- a/build_config/Linux.pathscale.default/ESMF_Conf.inc +++ b/build_config/Linux.pathscale.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pgi.default/ESMC_Conf.h b/build_config/Linux.pgi.default/ESMC_Conf.h index 6411c307fa..fe73a585b6 100644 --- a/build_config/Linux.pgi.default/ESMC_Conf.h +++ b/build_config/Linux.pgi.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pgi.default/ESMF_Conf.inc b/build_config/Linux.pgi.default/ESMF_Conf.inc index 3716bcb395..ce330827ae 100644 --- a/build_config/Linux.pgi.default/ESMF_Conf.inc +++ b/build_config/Linux.pgi.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pgigcc.default/ESMC_Conf.h b/build_config/Linux.pgigcc.default/ESMC_Conf.h index 21d291b6f2..2a2b6bed68 100644 --- a/build_config/Linux.pgigcc.default/ESMC_Conf.h +++ b/build_config/Linux.pgigcc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.pgigcc.default/ESMF_Conf.inc b/build_config/Linux.pgigcc.default/ESMF_Conf.inc index 3716bcb395..ce330827ae 100644 --- a/build_config/Linux.pgigcc.default/ESMF_Conf.inc +++ b/build_config/Linux.pgigcc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.sxcross.default/ESMC_Conf.h b/build_config/Linux.sxcross.default/ESMC_Conf.h index 664823c645..2e1d5fa63e 100644 --- a/build_config/Linux.sxcross.default/ESMC_Conf.h +++ b/build_config/Linux.sxcross.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.sxcross.default/ESMF_Conf.inc b/build_config/Linux.sxcross.default/ESMF_Conf.inc index ac7575ca6a..a7b2b8fab3 100644 --- a/build_config/Linux.sxcross.default/ESMF_Conf.inc +++ b/build_config/Linux.sxcross.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.xlf.default/ESMC_Conf.h b/build_config/Linux.xlf.default/ESMC_Conf.h index 48b4931560..7787ddf64f 100644 --- a/build_config/Linux.xlf.default/ESMC_Conf.h +++ b/build_config/Linux.xlf.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Linux.xlf.default/ESMF_Conf.inc b/build_config/Linux.xlf.default/ESMF_Conf.inc index d0b5740778..e574ade9fb 100644 --- a/build_config/Linux.xlf.default/ESMF_Conf.inc +++ b/build_config/Linux.xlf.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.gfortran.default/ESMC_Conf.h b/build_config/MinGW.gfortran.default/ESMC_Conf.h index c2bea764f0..255c94be37 100644 --- a/build_config/MinGW.gfortran.default/ESMC_Conf.h +++ b/build_config/MinGW.gfortran.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.gfortran.default/ESMF_Conf.inc b/build_config/MinGW.gfortran.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/MinGW.gfortran.default/ESMF_Conf.inc +++ b/build_config/MinGW.gfortran.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.intel.default/ESMC_Conf.h b/build_config/MinGW.intel.default/ESMC_Conf.h index 2def7c35df..62c19f40ea 100644 --- a/build_config/MinGW.intel.default/ESMC_Conf.h +++ b/build_config/MinGW.intel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.intel.default/ESMF_Conf.inc b/build_config/MinGW.intel.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/MinGW.intel.default/ESMF_Conf.inc +++ b/build_config/MinGW.intel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.intelcl.default/ESMC_Conf.h b/build_config/MinGW.intelcl.default/ESMC_Conf.h index 2def7c35df..62c19f40ea 100644 --- a/build_config/MinGW.intelcl.default/ESMC_Conf.h +++ b/build_config/MinGW.intelcl.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/MinGW.intelcl.default/ESMF_Conf.inc b/build_config/MinGW.intelcl.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/MinGW.intelcl.default/ESMF_Conf.inc +++ b/build_config/MinGW.intelcl.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/OSF1.default.default/ESMC_Conf.h b/build_config/OSF1.default.default/ESMC_Conf.h index df0aeb8daf..25fb1abff1 100644 --- a/build_config/OSF1.default.default/ESMC_Conf.h +++ b/build_config/OSF1.default.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/OSF1.default.default/ESMF_Conf.inc b/build_config/OSF1.default.default/ESMF_Conf.inc index 82b2b0dd37..1b8dd7e6e3 100644 --- a/build_config/OSF1.default.default/ESMF_Conf.inc +++ b/build_config/OSF1.default.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/README.md b/build_config/README.md index 807d27b594..34069e0b0d 100644 --- a/build_config/README.md +++ b/build_config/README.md @@ -2,7 +2,7 @@ > Earth System Modeling Framework > -> Copyright (c) 2002-2024 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. +> Copyright (c) 2002-2025 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved. The files in this directory contain per-platform makefile information which is included by the ESMF build system. diff --git a/build_config/SunOS.default.default/ESMC_Conf.h b/build_config/SunOS.default.default/ESMC_Conf.h index bb77e4c4b5..ddd3dc1984 100644 --- a/build_config/SunOS.default.default/ESMC_Conf.h +++ b/build_config/SunOS.default.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/SunOS.default.default/ESMF_Conf.inc b/build_config/SunOS.default.default/ESMF_Conf.inc index 62871841e5..a595b22267 100644 --- a/build_config/SunOS.default.default/ESMF_Conf.inc +++ b/build_config/SunOS.default.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.aocc.default/ESMC_Conf.h b/build_config/Unicos.aocc.default/ESMC_Conf.h index f5aa2464b8..feed38c95b 100644 --- a/build_config/Unicos.aocc.default/ESMC_Conf.h +++ b/build_config/Unicos.aocc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.aocc.default/ESMF_Conf.inc b/build_config/Unicos.aocc.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Unicos.aocc.default/ESMF_Conf.inc +++ b/build_config/Unicos.aocc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.cce.default/ESMC_Conf.h b/build_config/Unicos.cce.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Unicos.cce.default/ESMC_Conf.h +++ b/build_config/Unicos.cce.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.cce.default/ESMF_Conf.inc b/build_config/Unicos.cce.default/ESMF_Conf.inc index 906d9d4a1b..ec71912115 100644 --- a/build_config/Unicos.cce.default/ESMF_Conf.inc +++ b/build_config/Unicos.cce.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.default.default/ESMC_Conf.h b/build_config/Unicos.default.default/ESMC_Conf.h index 48527dad58..a005d2bfe0 100644 --- a/build_config/Unicos.default.default/ESMC_Conf.h +++ b/build_config/Unicos.default.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.default.default/ESMF_Conf.inc b/build_config/Unicos.default.default/ESMF_Conf.inc index a51cdea4e0..2c27d4e133 100644 --- a/build_config/Unicos.default.default/ESMF_Conf.inc +++ b/build_config/Unicos.default.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.gfortran.default/ESMC_Conf.h b/build_config/Unicos.gfortran.default/ESMC_Conf.h index f5aa2464b8..feed38c95b 100644 --- a/build_config/Unicos.gfortran.default/ESMC_Conf.h +++ b/build_config/Unicos.gfortran.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.gfortran.default/ESMF_Conf.inc b/build_config/Unicos.gfortran.default/ESMF_Conf.inc index f4850f01c5..060eff6844 100644 --- a/build_config/Unicos.gfortran.default/ESMF_Conf.inc +++ b/build_config/Unicos.gfortran.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.intel.default/ESMC_Conf.h b/build_config/Unicos.intel.default/ESMC_Conf.h index 6b6b0e9d59..c8c384f194 100644 --- a/build_config/Unicos.intel.default/ESMC_Conf.h +++ b/build_config/Unicos.intel.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.intel.default/ESMF_Conf.inc b/build_config/Unicos.intel.default/ESMF_Conf.inc index 735226c6a5..399cdfc55e 100644 --- a/build_config/Unicos.intel.default/ESMF_Conf.inc +++ b/build_config/Unicos.intel.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.nvhpc.default/ESMC_Conf.h b/build_config/Unicos.nvhpc.default/ESMC_Conf.h index c7c9fd35e7..e95a475ac2 100644 --- a/build_config/Unicos.nvhpc.default/ESMC_Conf.h +++ b/build_config/Unicos.nvhpc.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.nvhpc.default/ESMF_Conf.inc b/build_config/Unicos.nvhpc.default/ESMF_Conf.inc index 30c58d7e8f..04d76e647d 100644 --- a/build_config/Unicos.nvhpc.default/ESMF_Conf.inc +++ b/build_config/Unicos.nvhpc.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.pathscale.default/ESMC_Conf.h b/build_config/Unicos.pathscale.default/ESMC_Conf.h index d54394d40e..d8aacbe06b 100644 --- a/build_config/Unicos.pathscale.default/ESMC_Conf.h +++ b/build_config/Unicos.pathscale.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.pathscale.default/ESMF_Conf.inc b/build_config/Unicos.pathscale.default/ESMF_Conf.inc index dcf6bebe1c..aed92d7e5b 100644 --- a/build_config/Unicos.pathscale.default/ESMF_Conf.inc +++ b/build_config/Unicos.pathscale.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.pgi.default/ESMC_Conf.h b/build_config/Unicos.pgi.default/ESMC_Conf.h index a94926d681..a29dc54104 100644 --- a/build_config/Unicos.pgi.default/ESMC_Conf.h +++ b/build_config/Unicos.pgi.default/ESMC_Conf.h @@ -5,7 +5,7 @@ #if 0 Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/build_config/Unicos.pgi.default/ESMF_Conf.inc b/build_config/Unicos.pgi.default/ESMF_Conf.inc index e424b3ab30..677c9c71fd 100644 --- a/build_config/Unicos.pgi.default/ESMF_Conf.inc +++ b/build_config/Unicos.pgi.default/ESMF_Conf.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_ccprotex b/scripts/doc_templates/templates/scripts/do_ccprotex index 168175b561..fc69b81d44 100755 --- a/scripts/doc_templates/templates/scripts/do_ccprotex +++ b/scripts/doc_templates/templates/scripts/do_ccprotex @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_chprotex b/scripts/doc_templates/templates/scripts/do_chprotex index 2dae89263f..6e9e3b97f5 100755 --- a/scripts/doc_templates/templates/scripts/do_chprotex +++ b/scripts/doc_templates/templates/scripts/do_chprotex @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_fprotex b/scripts/doc_templates/templates/scripts/do_fprotex index 249b435578..827db09ba3 100755 --- a/scripts/doc_templates/templates/scripts/do_fprotex +++ b/scripts/doc_templates/templates/scripts/do_fprotex @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_l2h b/scripts/doc_templates/templates/scripts/do_l2h index 2489ef5a03..bbe9956d98 100755 --- a/scripts/doc_templates/templates/scripts/do_l2h +++ b/scripts/doc_templates/templates/scripts/do_l2h @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_latex b/scripts/doc_templates/templates/scripts/do_latex index 5678c2e7dd..03e38f8395 100755 --- a/scripts/doc_templates/templates/scripts/do_latex +++ b/scripts/doc_templates/templates/scripts/do_latex @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_newclass b/scripts/doc_templates/templates/scripts/do_newclass index 3851217fef..6cb27ec997 100755 --- a/scripts/doc_templates/templates/scripts/do_newclass +++ b/scripts/doc_templates/templates/scripts/do_newclass @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_newcomp b/scripts/doc_templates/templates/scripts/do_newcomp index 059f39a24d..ab25b283ef 100755 --- a/scripts/doc_templates/templates/scripts/do_newcomp +++ b/scripts/doc_templates/templates/scripts/do_newcomp @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/scripts/do_newdoc b/scripts/doc_templates/templates/scripts/do_newdoc index 69c176edea..a21f16fcc2 100755 --- a/scripts/doc_templates/templates/scripts/do_newdoc +++ b/scripts/doc_templates/templates/scripts/do_newdoc @@ -1,7 +1,7 @@ #!/bin/csh -f # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/title_alldoc.tex b/scripts/doc_templates/templates/title_alldoc.tex index b279e99f37..bfe2bf5931 100644 --- a/scripts/doc_templates/templates/title_alldoc.tex +++ b/scripts/doc_templates/templates/title_alldoc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/doc_templates/templates/verstitle_alldoc.tex b/scripts/doc_templates/templates/verstitle_alldoc.tex index d8b8dfddc5..95dee82a66 100644 --- a/scripts/doc_templates/templates/verstitle_alldoc.tex +++ b/scripts/doc_templates/templates/verstitle_alldoc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/scripts/jinja2_templating/generate_templates.py b/scripts/jinja2_templating/generate_templates.py index 4feb3e0d73..f7a7306b69 100644 --- a/scripts/jinja2_templating/generate_templates.py +++ b/scripts/jinja2_templating/generate_templates.py @@ -96,7 +96,7 @@ """! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -110,7 +110,7 @@ """// $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/doc/Array_cdesc.tex b/src/Infrastructure/Array/doc/Array_cdesc.tex index 402d524b52..d25fbc708c 100644 --- a/src/Infrastructure/Array/doc/Array_cdesc.tex +++ b/src/Infrastructure/Array/doc/Array_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/doc/Array_crefdoc.ctex b/src/Infrastructure/Array/doc/Array_crefdoc.ctex index 6b8244dd33..fa79e002df 100644 --- a/src/Infrastructure/Array/doc/Array_crefdoc.ctex +++ b/src/Infrastructure/Array/doc/Array_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/doc/Array_desc.tex b/src/Infrastructure/Array/doc/Array_desc.tex index fdb80403ff..6de57906ce 100644 --- a/src/Infrastructure/Array/doc/Array_desc.tex +++ b/src/Infrastructure/Array/doc/Array_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/doc/Array_refdoc.ctex b/src/Infrastructure/Array/doc/Array_refdoc.ctex index 69ff713137..e3062a9009 100644 --- a/src/Infrastructure/Array/doc/Array_refdoc.ctex +++ b/src/Infrastructure/Array/doc/Array_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayArbHaloEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayArbHaloEx.F90 index 0f961bbc12..a081521a37 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayArbHaloEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayArbHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayCommNBEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayCommNBEx.F90 index ab7e0c808a..6e8b5ac6bc 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayCommNBEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayCommNBEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayEx.F90 index 78bceb18f9..aa6c7822f4 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayFarrayEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayFarrayEx.F90 index 247259be6d..d1c7b26903 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayFarrayEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayFarrayEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayFarrayHaloEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayFarrayHaloEx.F90 index 9c8c308062..516926a711 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayFarrayHaloEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayFarrayHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayHaloEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayHaloEx.F90 index 1e926ea29a..993f7ee1ea 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayHaloEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayLarrayEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayLarrayEx.F90 index ac20d22f7b..9cfa9a4a98 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayLarrayEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayLarrayEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayRedistEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayRedistEx.F90 index 04ec710ad6..1024938289 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayRedistEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayRedistEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherArbEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherArbEx.F90 index 5a328c4ed8..cc74464124 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherArbEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherArbEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherEx.F90 index 735819eb9e..a79ccf7d0b 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArrayScatterGatherEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/examples/ESMF_ArraySparseMatMulEx.F90 b/src/Infrastructure/Array/examples/ESMF_ArraySparseMatMulEx.F90 index 6a2ea91b80..fa736ca2fc 100644 --- a/src/Infrastructure/Array/examples/ESMF_ArraySparseMatMulEx.F90 +++ b/src/Infrastructure/Array/examples/ESMF_ArraySparseMatMulEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/include/ESMCI_Array.h b/src/Infrastructure/Array/include/ESMCI_Array.h index 197a89511d..c8ac1c5af8 100644 --- a/src/Infrastructure/Array/include/ESMCI_Array.h +++ b/src/Infrastructure/Array/include/ESMCI_Array.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/include/ESMC_Array.h b/src/Infrastructure/Array/include/ESMC_Array.h index c5189b974f..b2fce4719c 100644 --- a/src/Infrastructure/Array/include/ESMC_Array.h +++ b/src/Infrastructure/Array/include/ESMC_Array.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMCI_Array_F.C b/src/Infrastructure/Array/interface/ESMCI_Array_F.C index 28793898a8..9a46991c2e 100644 --- a/src/Infrastructure/Array/interface/ESMCI_Array_F.C +++ b/src/Infrastructure/Array/interface/ESMCI_Array_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMC_Array.C b/src/Infrastructure/Array/interface/ESMC_Array.C index 05ff2d8d87..dccacac31c 100644 --- a/src/Infrastructure/Array/interface/ESMC_Array.C +++ b/src/Infrastructure/Array/interface/ESMC_Array.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_Array.F90 b/src/Infrastructure/Array/interface/ESMF_Array.F90 index 2355cddcad..61448089eb 100644 --- a/src/Infrastructure/Array/interface/ESMF_Array.F90 +++ b/src/Infrastructure/Array/interface/ESMF_Array.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayCreate.cppF90 b/src/Infrastructure/Array/interface/ESMF_ArrayCreate.cppF90 index 0a041a8031..d15ac3c02e 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayCreate.cppF90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayCreate.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayGather.cppF90 b/src/Infrastructure/Array/interface/ESMF_ArrayGather.cppF90 index 19b09b679b..e1e2308576 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayGather.cppF90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayGather.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 b/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 index 25c2c19faf..66396b308a 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -583,6 +583,10 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below call c_ESMC_GetVM(array, vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code on the VM object before returning + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return endif ! Obtain DistGrid information diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayHa.F90 b/src/Infrastructure/Array/interface/ESMF_ArrayHa.F90 index f538e0f5c7..e7ed45bb91 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayHa.F90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayHa.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayScatter.cppF90 b/src/Infrastructure/Array/interface/ESMF_ArrayScatter.cppF90 index b86e6e39d8..a87b33a02f 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayScatter.cppF90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayScatter.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/interface/ESMF_DynamicMask.F90 b/src/Infrastructure/Array/interface/ESMF_DynamicMask.F90 index 0da60ddae2..9d920c1fd7 100644 --- a/src/Infrastructure/Array/interface/ESMF_DynamicMask.F90 +++ b/src/Infrastructure/Array/interface/ESMF_DynamicMask.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/src/ESMCI_Array.C b/src/Infrastructure/Array/src/ESMCI_Array.C index ab8b24c704..5e0b7d1e74 100644 --- a/src/Infrastructure/Array/src/ESMCI_Array.C +++ b/src/Infrastructure/Array/src/ESMCI_Array.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -4151,13 +4151,17 @@ void Array::log( msg << prefix << "--- Array::log() start -----------------------------------"; ESMC_LogDefault.Write(msg.str(), msgType); + msg.str(""); // clear + msg << prefix << this; + ESMC_LogDefault.Write(msg.str(), msgType); + if (ESMC_BaseGetStatus()!=ESMF_STATUS_READY){ msg.str(""); // clear msg << prefix << "Array object is invalid! Not created or deleted!"; ESMC_LogDefault.Write(msg.str(), msgType); }else{ msg.str(""); // clear - msg << prefix << " "; + msg << prefix << ""; ESMC_LogDefault.Write(msg.str(), msgType); if (deepFlag) getDistGrid()->log(prefix+"! ", msgType, deepFlag); } diff --git a/src/Infrastructure/Array/tests/ESMC_ArrayUTest.c b/src/Infrastructure/Array/tests/ESMC_ArrayUTest.c index a85c4405f8..0301f98989 100644 --- a/src/Infrastructure/Array/tests/ESMC_ArrayUTest.c +++ b/src/Infrastructure/Array/tests/ESMC_ArrayUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayArbIdxSMMUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayArbIdxSMMUTest.F90 index 4cea02134d..b40649f152 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayArbIdxSMMUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayArbIdxSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayCreateGetUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayCreateGetUTest.F90 index b64ecd47ea..bc9c7aa048 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayCreateGetUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayCreateGetUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayDataUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayDataUTest.F90 index 00fb1117f5..58c54dfdb9 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayDataUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayDataUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayGatherUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayGatherUTest.F90 index 2a0a61776f..4b35f3fd10 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayGatherUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayGatherUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayHaloUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayHaloUTest.F90 index b85609ab9f..d8d32ff65d 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayHaloUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayHaloUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayIOTypesUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayIOTypesUTest.F90 index 290a7799cc..fee1a2efa3 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayIOTypesUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayIOTypesUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayIOUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayIOUTest.F90 index 3f556eb86f..50f44a29cd 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayIOUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayRedistPerfUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayRedistPerfUTest.F90 index 65f12b52f9..e3e698d37a 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayRedistPerfUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayRedistPerfUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -241,7 +241,7 @@ program ESMF_ArrayRedistPerfUTest #ifdef ESMF_BOPT_g dtTest = 20.d0 ! 20s is expected to pass in debug mode #else - dtTest = 2.d0 ! 2s is expected to pass in optimized mode + dtTest = 2.5d0 ! 2.5s is expected to pass in optimized mode #endif write(failMsg, *) "ArrayRedistStore() performance problem! ", dt, ">", dtTest #ifdef ESMF_TESTPERFORMANCE diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayRedistUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayRedistUTest.F90 index 5d0faf5b3b..bd13c4fd8b 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayRedistUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayRedistUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArraySMMFromFileUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArraySMMFromFileUTest.F90 index 9bc348d560..b47acbb540 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArraySMMFromFileUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArraySMMFromFileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArraySMMUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArraySMMUTest.F90 index edbdef003c..674c431d98 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArraySMMUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArraySMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Array/tests/ESMF_ArrayScatterUTest.F90 b/src/Infrastructure/Array/tests/ESMF_ArrayScatterUTest.F90 index 228f966a66..9eb440941c 100644 --- a/src/Infrastructure/Array/tests/ESMF_ArrayScatterUTest.F90 +++ b/src/Infrastructure/Array/tests/ESMF_ArrayScatterUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/doc/ArrayBundle_refdoc.ctex b/src/Infrastructure/ArrayBundle/doc/ArrayBundle_refdoc.ctex index 57e57c2720..a0365a29db 100644 --- a/src/Infrastructure/ArrayBundle/doc/ArrayBundle_refdoc.ctex +++ b/src/Infrastructure/ArrayBundle/doc/ArrayBundle_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleEx.F90 b/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleEx.F90 index 46274ea294..d971eb6b9c 100644 --- a/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleEx.F90 +++ b/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleHaloEx.F90 b/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleHaloEx.F90 index f85b60d216..f0ec67eab8 100644 --- a/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleHaloEx.F90 +++ b/src/Infrastructure/ArrayBundle/examples/ESMF_ArrayBundleHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/include/ESMCI_ArrayBundle.h b/src/Infrastructure/ArrayBundle/include/ESMCI_ArrayBundle.h index d1f8d76dd9..6f5486bac9 100644 --- a/src/Infrastructure/ArrayBundle/include/ESMCI_ArrayBundle.h +++ b/src/Infrastructure/ArrayBundle/include/ESMCI_ArrayBundle.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/interface/ESMCI_ArrayBundle_F.C b/src/Infrastructure/ArrayBundle/interface/ESMCI_ArrayBundle_F.C index df1456e285..6ec20e02f8 100644 --- a/src/Infrastructure/ArrayBundle/interface/ESMCI_ArrayBundle_F.C +++ b/src/Infrastructure/ArrayBundle/interface/ESMCI_ArrayBundle_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 b/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 index adfd393b05..2594284cc5 100644 --- a/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 +++ b/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -44,7 +44,8 @@ module ESMF_ArrayBundleMod use ESMF_IOUtilMod use ESMF_RHandleMod use ESMF_ArrayMod - + use ESMF_VMMod + implicit none !------------------------------------------------------------------------------ @@ -883,9 +884,9 @@ end subroutine ESMF_ArrayBundleDestroy ! !IROUTINE: ESMF_ArrayBundleGet - Get object-wide information from an ArrayBundle ! ! !INTERFACE: - ! Private name; call using ESMF_ArrayBundleGet() + ! Private name; call using ESMF_ArrayBundleGet() subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & - itemorderflag, arrayCount, arrayList, arrayNameList, name, rc) + itemorderflag, arrayCount, arrayList, arrayNameList, name, vm, rc) ! ! !ARGUMENTS: type(ESMF_ArrayBundle), intent(in) :: arraybundle @@ -895,6 +896,7 @@ subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & type(ESMF_Array), intent(out), optional :: arrayList(:) character(len=*), intent(out), optional :: arrayNameList(:) character(len=*), intent(out), optional :: name + type(ESMF_VM), intent(out), optional :: vm integer, intent(out), optional :: rc ! ! !STATUS: @@ -905,6 +907,8 @@ subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & ! \item[6.1.0] Added argument {\tt itemorderflag}. ! The new argument gives the user control over the order in which ! the items are returned. +! \item[8.8.0] Added argument {\tt vm} in order to offer information about the +! VM on which the ArrayBundle was created. ! \end{description} ! \end{itemize} ! @@ -930,6 +934,8 @@ subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & ! size {\tt arrayCount}. ! \item [{[name]}] ! Name of the ArrayBundle object. +! \item [{[vm}] +! The VM on which the ArrayBundle object was created. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -1015,6 +1021,17 @@ subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & endif endif + ! Special call to get vm out of Base class + if (present(vm)) then + call c_ESMC_GetVM(arraybundle, vm, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code on the VM object before returning + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + ! Return successfully if (present(rc)) rc = ESMF_SUCCESS diff --git a/src/Infrastructure/ArrayBundle/src/ESMCI_ArrayBundle.C b/src/Infrastructure/ArrayBundle/src/ESMCI_ArrayBundle.C index 8dbd065615..73d19b8ea3 100644 --- a/src/Infrastructure/ArrayBundle/src/ESMCI_ArrayBundle.C +++ b/src/Infrastructure/ArrayBundle/src/ESMCI_ArrayBundle.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleCreateUTest.F90 b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleCreateUTest.F90 index 0f9094cf65..04336d6dad 100644 --- a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleCreateUTest.F90 +++ b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleIOUTest.F90 b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleIOUTest.F90 index 0e8b24c62b..bf4cd00d73 100644 --- a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleIOUTest.F90 +++ b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleRedistUTest.F90 b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleRedistUTest.F90 index 55fb6b6388..bd27594f1e 100644 --- a/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleRedistUTest.F90 +++ b/src/Infrastructure/ArrayBundle/tests/ESMF_ArrayBundleRedistUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/doc/ArraySpec_crefdoc.ctex b/src/Infrastructure/ArraySpec/doc/ArraySpec_crefdoc.ctex index f6fbcadc9c..a1ef1c217a 100644 --- a/src/Infrastructure/ArraySpec/doc/ArraySpec_crefdoc.ctex +++ b/src/Infrastructure/ArraySpec/doc/ArraySpec_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/examples/ESMF_ArraySpecEx.F90 b/src/Infrastructure/ArraySpec/examples/ESMF_ArraySpecEx.F90 index 8c0a3eecea..97b1fea3ec 100644 --- a/src/Infrastructure/ArraySpec/examples/ESMF_ArraySpecEx.F90 +++ b/src/Infrastructure/ArraySpec/examples/ESMF_ArraySpecEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/include/ESMCI_ArraySpec.h b/src/Infrastructure/ArraySpec/include/ESMCI_ArraySpec.h index 99ca79e222..0b9d3cc91f 100644 --- a/src/Infrastructure/ArraySpec/include/ESMCI_ArraySpec.h +++ b/src/Infrastructure/ArraySpec/include/ESMCI_ArraySpec.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/include/ESMC_ArraySpec.h b/src/Infrastructure/ArraySpec/include/ESMC_ArraySpec.h index ced9e5e5e4..b30c275643 100644 --- a/src/Infrastructure/ArraySpec/include/ESMC_ArraySpec.h +++ b/src/Infrastructure/ArraySpec/include/ESMC_ArraySpec.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/interface/ESMCI_ArraySpec.C b/src/Infrastructure/ArraySpec/interface/ESMCI_ArraySpec.C index 7cc2b28064..e325181adf 100644 --- a/src/Infrastructure/ArraySpec/interface/ESMCI_ArraySpec.C +++ b/src/Infrastructure/ArraySpec/interface/ESMCI_ArraySpec.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/interface/ESMC_ArraySpec.C b/src/Infrastructure/ArraySpec/interface/ESMC_ArraySpec.C index ff15f61fe1..dba90356a8 100644 --- a/src/Infrastructure/ArraySpec/interface/ESMC_ArraySpec.C +++ b/src/Infrastructure/ArraySpec/interface/ESMC_ArraySpec.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/interface/ESMF_ArraySpec_C.F90 b/src/Infrastructure/ArraySpec/interface/ESMF_ArraySpec_C.F90 index c50020a80d..23c582f994 100644 --- a/src/Infrastructure/ArraySpec/interface/ESMF_ArraySpec_C.F90 +++ b/src/Infrastructure/ArraySpec/interface/ESMF_ArraySpec_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/src/ESMF_ArraySpec.F90 b/src/Infrastructure/ArraySpec/src/ESMF_ArraySpec.F90 index 89a4c22dfe..5159a2eadb 100644 --- a/src/Infrastructure/ArraySpec/src/ESMF_ArraySpec.F90 +++ b/src/Infrastructure/ArraySpec/src/ESMF_ArraySpec.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/tests/ESMC_ArraySpecUTest.c b/src/Infrastructure/ArraySpec/tests/ESMC_ArraySpecUTest.c index 9d88a6bc5e..e61955896a 100644 --- a/src/Infrastructure/ArraySpec/tests/ESMC_ArraySpecUTest.c +++ b/src/Infrastructure/ArraySpec/tests/ESMC_ArraySpecUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/ArraySpec/tests/ESMF_ArraySpecUTest.F90 b/src/Infrastructure/ArraySpec/tests/ESMF_ArraySpecUTest.F90 index 7c335c4210..04626c692e 100644 --- a/src/Infrastructure/ArraySpec/tests/ESMF_ArraySpecUTest.F90 +++ b/src/Infrastructure/ArraySpec/tests/ESMF_ArraySpecUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/doc/Info_refdoc.ctex b/src/Infrastructure/Base/doc/Info_refdoc.ctex index b417597d3d..b9c5e339b4 100644 --- a/src/Infrastructure/Base/doc/Info_refdoc.ctex +++ b/src/Infrastructure/Base/doc/Info_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/examples/ESMF_InfoGetFromHostEx.F90 b/src/Infrastructure/Base/examples/ESMF_InfoGetFromHostEx.F90 index b006ae4e6e..cf223bc495 100644 --- a/src/Infrastructure/Base/examples/ESMF_InfoGetFromHostEx.F90 +++ b/src/Infrastructure/Base/examples/ESMF_InfoGetFromHostEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/examples/ESMF_InfoTutorialEx.F90 b/src/Infrastructure/Base/examples/ESMF_InfoTutorialEx.F90 index b5bfeb6d6e..517c562650 100644 --- a/src/Infrastructure/Base/examples/ESMF_InfoTutorialEx.F90 +++ b/src/Infrastructure/Base/examples/ESMF_InfoTutorialEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/include/ESMCI_Base.h b/src/Infrastructure/Base/include/ESMCI_Base.h index f7e5bc5f27..d396ea5506 100644 --- a/src/Infrastructure/Base/include/ESMCI_Base.h +++ b/src/Infrastructure/Base/include/ESMCI_Base.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/include/ESMCI_Info.h b/src/Infrastructure/Base/include/ESMCI_Info.h index 1bfdc13f56..9d26f40b42 100644 --- a/src/Infrastructure/Base/include/ESMCI_Info.h +++ b/src/Infrastructure/Base/include/ESMCI_Info.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/interface/ESMCI_Base_F.C b/src/Infrastructure/Base/interface/ESMCI_Base_F.C index c17ab6ca31..771ae41f45 100644 --- a/src/Infrastructure/Base/interface/ESMCI_Base_F.C +++ b/src/Infrastructure/Base/interface/ESMCI_Base_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/interface/ESMF_Base.F90 b/src/Infrastructure/Base/interface/ESMF_Base.F90 index f2a9749006..c67cb5712f 100644 --- a/src/Infrastructure/Base/interface/ESMF_Base.F90 +++ b/src/Infrastructure/Base/interface/ESMF_Base.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/interface/ESMF_FactorRead.F90 b/src/Infrastructure/Base/interface/ESMF_FactorRead.F90 index 624a483bb1..38e546e8bc 100644 --- a/src/Infrastructure/Base/interface/ESMF_FactorRead.F90 +++ b/src/Infrastructure/Base/interface/ESMF_FactorRead.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/interface/ESMF_Info.F90 b/src/Infrastructure/Base/interface/ESMF_Info.F90 index 339df16403..38cd838b7b 100644 --- a/src/Infrastructure/Base/interface/ESMF_Info.F90 +++ b/src/Infrastructure/Base/interface/ESMF_Info.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -223,6 +223,7 @@ module ESMF_InfoMod public ESMF_InfoSetDirty public ESMF_InfoIsSet public ESMF_InfoIsPresent +public ESMF_InfoLog public ESMF_InfoPrint public ESMF_InfoDump public ESMF_InfoUpdate @@ -2495,6 +2496,71 @@ end function ESMF_InfoIsSet !------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_InfoLog()" +!BOP +! !IROUTINE: ESMF_InfoLog - Log contents of an Info object +! +! !INTERFACE: +subroutine ESMF_InfoLog(info, keywordEnforcer, prefix, logMsgFlag, rc) +! !ARGUMENTS: + type(ESMF_Info), intent(in) :: info +type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below + character(len=*), intent(in), optional :: prefix + type(ESMF_LogMsg_Flag), intent(in), optional :: logMsgFlag + integer, intent(out), optional :: rc +! +! !DESCRIPTION: +! Write information about {\tt info} object to the ESMF default Log. +! +! The arguments are: +! \begin{description} +! \item[info] +! {\tt ESMF\_Info} object logged. +! \item [{[prefix]}] +! String to prefix the log message. Default is no prefix. +! \item [{[logMsgFlag]}] +! Type of log message generated. See section \ref{const:logmsgflag} for +! a list of valid message types. Default is {\tt ESMF\_LOGMSG\_INFO}. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +! +!EOP +!------------------------------------------------------------------------------ + integer :: localrc + character(:), allocatable :: output, local_preString + + ! initialize return code; assume routine not implemented + localrc = ESMF_RC_NOT_IMPL + if (present(rc)) rc = ESMF_RC_NOT_IMPL + + !TODO: This should really be implemented on the C++ side where we could + !TODO: correctly deal with line breaks and prepend the prefix string on + !TODO: each line, much like for ESMF_HConfigLog(). + !TODO: For now implemented quickly on the Fortran side to make available. + + if (present(prefix)) then + local_preString = prefix + else + local_preString = "" + endif + + output = ESMF_InfoDump(info, indent=2, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_LogWrite(local_preString//output, logMsgFlag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! return successfully + if (present(rc)) rc = ESMF_SUCCESS + +end subroutine ESMF_InfoLog + +!------------------------------------------------------------------------------ + #undef ESMF_METHOD #define ESMF_METHOD "ESMF_InfoPrint()" !BOP @@ -3929,4 +3995,4 @@ subroutine ESMF_InfoWriteJSON(info, filename, keywordEnforcer, rc) if (present(rc)) rc = ESMF_SUCCESS end subroutine ESMF_InfoWriteJSON -end module ESMF_InfoMod !===================================================== \ No newline at end of file +end module ESMF_InfoMod !===================================================== diff --git a/src/Infrastructure/Base/interface/ESMF_InfoCDefGeneric.F90 b/src/Infrastructure/Base/interface/ESMF_InfoCDefGeneric.F90 index ab15ea629b..a7915290a1 100644 --- a/src/Infrastructure/Base/interface/ESMF_InfoCDefGeneric.F90 +++ b/src/Infrastructure/Base/interface/ESMF_InfoCDefGeneric.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/src/ESMCI_Base.C b/src/Infrastructure/Base/src/ESMCI_Base.C index 4b363d93b7..d2b696a282 100644 --- a/src/Infrastructure/Base/src/ESMCI_Base.C +++ b/src/Infrastructure/Base/src/ESMCI_Base.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/src/ESMCI_Info.C b/src/Infrastructure/Base/src/ESMCI_Info.C index 77706d1e82..014fa14afb 100644 --- a/src/Infrastructure/Base/src/ESMCI_Info.C +++ b/src/Infrastructure/Base/src/ESMCI_Info.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/src/ESMC_InfoCDef.C b/src/Infrastructure/Base/src/ESMC_InfoCDef.C index b56ccbe224..1d78dbf28f 100644 --- a/src/Infrastructure/Base/src/ESMC_InfoCDef.C +++ b/src/Infrastructure/Base/src/ESMC_InfoCDef.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/src/ESMC_InfoCDefGeneric.C b/src/Infrastructure/Base/src/ESMC_InfoCDefGeneric.C index 64d03d2b47..64d6b151b6 100644 --- a/src/Infrastructure/Base/src/ESMC_InfoCDefGeneric.C +++ b/src/Infrastructure/Base/src/ESMC_InfoCDefGeneric.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMCI_BaseUTest.C b/src/Infrastructure/Base/tests/ESMCI_BaseUTest.C index 19eff03910..04b2b13867 100644 --- a/src/Infrastructure/Base/tests/ESMCI_BaseUTest.C +++ b/src/Infrastructure/Base/tests/ESMCI_BaseUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMCI_InfoUTest.C b/src/Infrastructure/Base/tests/ESMCI_InfoUTest.C index adcfa8de3c..3a8649de7c 100644 --- a/src/Infrastructure/Base/tests/ESMCI_InfoUTest.C +++ b/src/Infrastructure/Base/tests/ESMCI_InfoUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMCI_NlohmannJSONUTest.C b/src/Infrastructure/Base/tests/ESMCI_NlohmannJSONUTest.C index c88e2c37af..02fe0b8c4b 100644 --- a/src/Infrastructure/Base/tests/ESMCI_NlohmannJSONUTest.C +++ b/src/Infrastructure/Base/tests/ESMCI_NlohmannJSONUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMF_BaseUTest.F90 b/src/Infrastructure/Base/tests/ESMF_BaseUTest.F90 index 3d6dd388b3..70404f2a16 100644 --- a/src/Infrastructure/Base/tests/ESMF_BaseUTest.F90 +++ b/src/Infrastructure/Base/tests/ESMF_BaseUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMF_InfoArrayUTest.F90 b/src/Infrastructure/Base/tests/ESMF_InfoArrayUTest.F90 index 7073cee738..aae5150cf3 100644 --- a/src/Infrastructure/Base/tests/ESMF_InfoArrayUTest.F90 +++ b/src/Infrastructure/Base/tests/ESMF_InfoArrayUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMF_InfoProfileUTest.F90 b/src/Infrastructure/Base/tests/ESMF_InfoProfileUTest.F90 index 04caf0d001..65febbf5b2 100644 --- a/src/Infrastructure/Base/tests/ESMF_InfoProfileUTest.F90 +++ b/src/Infrastructure/Base/tests/ESMF_InfoProfileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Base/tests/ESMF_InfoUTest.F90 b/src/Infrastructure/Base/tests/ESMF_InfoUTest.F90 index 8659c62a0a..4d69a63e95 100644 --- a/src/Infrastructure/Base/tests/ESMF_InfoUTest.F90 +++ b/src/Infrastructure/Base/tests/ESMF_InfoUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -339,6 +339,29 @@ program ESMF_InfoUTest if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !---------------------------------------------------------------------------- + !---------------------------------------------------------------------------- + !NEX_UTest + write(name, *) "ESMF_InfoLog" + write(failMsg, *) "Did not return success." + + rc = ESMF_FAILURE + + info6 = ESMF_InfoCreate(rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) + + call ESMF_InfoSet(info6, "/i/am/nested", 111, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) + + call ESMF_InfoSet(info6, "top-level", 222, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) + + call ESMF_InfoLog(info6, prefix="info6: ", rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + call ESMF_InfoDestroy(info6, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) + !---------------------------------------------------------------------------- + !---------------------------------------------------------------------------- !NEX_UTest write(name, *) "ESMF_InfoRemove Child From Parent" diff --git a/src/Infrastructure/Config/doc/Config_crefdoc.ctex b/src/Infrastructure/Config/doc/Config_crefdoc.ctex index cfb70f56c0..16b5662d8d 100644 --- a/src/Infrastructure/Config/doc/Config_crefdoc.ctex +++ b/src/Infrastructure/Config/doc/Config_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/doc/Config_refdoc.ctex b/src/Infrastructure/Config/doc/Config_refdoc.ctex index ffecb662da..f5679e0bcb 100644 --- a/src/Infrastructure/Config/doc/Config_refdoc.ctex +++ b/src/Infrastructure/Config/doc/Config_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/examples/ESMC_ConfigOverviewEx.C b/src/Infrastructure/Config/examples/ESMC_ConfigOverviewEx.C index 14953008b0..99a035f476 100644 --- a/src/Infrastructure/Config/examples/ESMC_ConfigOverviewEx.C +++ b/src/Infrastructure/Config/examples/ESMC_ConfigOverviewEx.C @@ -1,6 +1,6 @@ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/examples/ESMF_ConfigOverviewEx.F90 b/src/Infrastructure/Config/examples/ESMF_ConfigOverviewEx.F90 index a60bf13df3..5fc6d05849 100644 --- a/src/Infrastructure/Config/examples/ESMF_ConfigOverviewEx.F90 +++ b/src/Infrastructure/Config/examples/ESMF_ConfigOverviewEx.F90 @@ -1,6 +1,6 @@ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/include/ESMCI_Config.h b/src/Infrastructure/Config/include/ESMCI_Config.h index bb055c9a32..ea0e1dbdd6 100644 --- a/src/Infrastructure/Config/include/ESMCI_Config.h +++ b/src/Infrastructure/Config/include/ESMCI_Config.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/include/ESMC_Config.h b/src/Infrastructure/Config/include/ESMC_Config.h index ab5a97ac38..ed4d707c77 100644 --- a/src/Infrastructure/Config/include/ESMC_Config.h +++ b/src/Infrastructure/Config/include/ESMC_Config.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/interface/ESMC_Config.C b/src/Infrastructure/Config/interface/ESMC_Config.C index a5c330ea31..00abf56ff7 100644 --- a/src/Infrastructure/Config/interface/ESMC_Config.C +++ b/src/Infrastructure/Config/interface/ESMC_Config.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/interface/ESMF_Config_C.F90 b/src/Infrastructure/Config/interface/ESMF_Config_C.F90 index 87ff9256e2..e80f4b34e1 100644 --- a/src/Infrastructure/Config/interface/ESMF_Config_C.F90 +++ b/src/Infrastructure/Config/interface/ESMF_Config_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/src/ESMF_Config.F90 b/src/Infrastructure/Config/src/ESMF_Config.F90 index e947e574f6..b65292b83c 100644 --- a/src/Infrastructure/Config/src/ESMF_Config.F90 +++ b/src/Infrastructure/Config/src/ESMF_Config.F90 @@ -2,7 +2,7 @@ !============================================================================== ! Earth System Modeling Framework ! -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/tests/ESMC_ConfigUTest.c b/src/Infrastructure/Config/tests/ESMC_ConfigUTest.c index 4cb8fd6b1f..2b22f00caa 100644 --- a/src/Infrastructure/Config/tests/ESMC_ConfigUTest.c +++ b/src/Infrastructure/Config/tests/ESMC_ConfigUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Config/tests/ESMF_ConfigUTest.F90 b/src/Infrastructure/Config/tests/ESMF_ConfigUTest.F90 index 45c363fe4c..8ae22fab7f 100644 --- a/src/Infrastructure/Config/tests/ESMF_ConfigUTest.F90 +++ b/src/Infrastructure/Config/tests/ESMF_ConfigUTest.F90 @@ -2,7 +2,7 @@ !============================================================================== ! Earth System Modeling Framework ! -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Container/include/ESMCI_Container.h b/src/Infrastructure/Container/include/ESMCI_Container.h index 4d84be6c08..393b3a2770 100644 --- a/src/Infrastructure/Container/include/ESMCI_Container.h +++ b/src/Infrastructure/Container/include/ESMCI_Container.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Container/interface/ESMCI_Container_F.C b/src/Infrastructure/Container/interface/ESMCI_Container_F.C index 01d9cc32e8..d21cabcc60 100644 --- a/src/Infrastructure/Container/interface/ESMCI_Container_F.C +++ b/src/Infrastructure/Container/interface/ESMCI_Container_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Container/interface/ESMF_Container.F90 b/src/Infrastructure/Container/interface/ESMF_Container.F90 index ff8419d61b..17eaf92945 100644 --- a/src/Infrastructure/Container/interface/ESMF_Container.F90 +++ b/src/Infrastructure/Container/interface/ESMF_Container.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Container/tests/ESMF_ContainerUTest.F90 b/src/Infrastructure/Container/tests/ESMF_ContainerUTest.F90 index 3f192a42f5..8ac6046663 100644 --- a/src/Infrastructure/Container/tests/ESMF_ContainerUTest.F90 +++ b/src/Infrastructure/Container/tests/ESMF_ContainerUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/doc/CommMem_syn.tex b/src/Infrastructure/DELayout/doc/CommMem_syn.tex index 73ace49163..a1673964e4 100644 --- a/src/Infrastructure/DELayout/doc/CommMem_syn.tex +++ b/src/Infrastructure/DELayout/doc/CommMem_syn.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/doc/DELayout_crefdoc.ctex b/src/Infrastructure/DELayout/doc/DELayout_crefdoc.ctex index a7a635bc0c..b491165574 100644 --- a/src/Infrastructure/DELayout/doc/DELayout_crefdoc.ctex +++ b/src/Infrastructure/DELayout/doc/DELayout_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/doc/DELayout_options.tex b/src/Infrastructure/DELayout/doc/DELayout_options.tex index a94b78c0a7..74a2487633 100644 --- a/src/Infrastructure/DELayout/doc/DELayout_options.tex +++ b/src/Infrastructure/DELayout/doc/DELayout_options.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/doc/DELayout_refdoc.ctex b/src/Infrastructure/DELayout/doc/DELayout_refdoc.ctex index a1f736568e..b9b6ed1b59 100644 --- a/src/Infrastructure/DELayout/doc/DELayout_refdoc.ctex +++ b/src/Infrastructure/DELayout/doc/DELayout_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90 b/src/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90 index 3483e39c6b..007b083d73 100644 --- a/src/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90 +++ b/src/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/include/ESMCI_DELayout.h b/src/Infrastructure/DELayout/include/ESMCI_DELayout.h index 994802e78d..0d392413de 100644 --- a/src/Infrastructure/DELayout/include/ESMCI_DELayout.h +++ b/src/Infrastructure/DELayout/include/ESMCI_DELayout.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/interface/ESMCI_DELayout_F.C b/src/Infrastructure/DELayout/interface/ESMCI_DELayout_F.C index 829ded04b2..5ce932ae60 100644 --- a/src/Infrastructure/DELayout/interface/ESMCI_DELayout_F.C +++ b/src/Infrastructure/DELayout/interface/ESMCI_DELayout_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/interface/ESMF_DELayout.F90 b/src/Infrastructure/DELayout/interface/ESMF_DELayout.F90 index 894b9b16a4..4572fc89e6 100644 --- a/src/Infrastructure/DELayout/interface/ESMF_DELayout.F90 +++ b/src/Infrastructure/DELayout/interface/ESMF_DELayout.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/src/ESMCI_DELayout.C b/src/Infrastructure/DELayout/src/ESMCI_DELayout.C index 056eba0300..8a9f91886d 100644 --- a/src/Infrastructure/DELayout/src/ESMCI_DELayout.C +++ b/src/Infrastructure/DELayout/src/ESMCI_DELayout.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/tests/ESMF_DELayoutUTest.F90 b/src/Infrastructure/DELayout/tests/ESMF_DELayoutUTest.F90 index d00e870cf5..bb118b3e9e 100644 --- a/src/Infrastructure/DELayout/tests/ESMF_DELayoutUTest.F90 +++ b/src/Infrastructure/DELayout/tests/ESMF_DELayoutUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90 b/src/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90 index 08400c9afa..0e267b2522 100644 --- a/src/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90 +++ b/src/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/doc/DistGrid_cdesc.tex b/src/Infrastructure/DistGrid/doc/DistGrid_cdesc.tex index 0d25fd237f..0765d1811a 100644 --- a/src/Infrastructure/DistGrid/doc/DistGrid_cdesc.tex +++ b/src/Infrastructure/DistGrid/doc/DistGrid_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/doc/DistGrid_crefdoc.ctex b/src/Infrastructure/DistGrid/doc/DistGrid_crefdoc.ctex index 37d8b1e6d1..a41e900792 100644 --- a/src/Infrastructure/DistGrid/doc/DistGrid_crefdoc.ctex +++ b/src/Infrastructure/DistGrid/doc/DistGrid_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/doc/DistGrid_desc.tex b/src/Infrastructure/DistGrid/doc/DistGrid_desc.tex index 9f513b16dc..8356998f7d 100644 --- a/src/Infrastructure/DistGrid/doc/DistGrid_desc.tex +++ b/src/Infrastructure/DistGrid/doc/DistGrid_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/doc/DistGrid_options.tex b/src/Infrastructure/DistGrid/doc/DistGrid_options.tex index e58958a598..d9781ddcd1 100644 --- a/src/Infrastructure/DistGrid/doc/DistGrid_options.tex +++ b/src/Infrastructure/DistGrid/doc/DistGrid_options.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/doc/DistGrid_refdoc.ctex b/src/Infrastructure/DistGrid/doc/DistGrid_refdoc.ctex index 75494a9fa4..5bf4b4c642 100644 --- a/src/Infrastructure/DistGrid/doc/DistGrid_refdoc.ctex +++ b/src/Infrastructure/DistGrid/doc/DistGrid_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/examples/ESMF_DistGridEx.F90 b/src/Infrastructure/DistGrid/examples/ESMF_DistGridEx.F90 index 0b6a7c3eef..00e7a3f37f 100644 --- a/src/Infrastructure/DistGrid/examples/ESMF_DistGridEx.F90 +++ b/src/Infrastructure/DistGrid/examples/ESMF_DistGridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/include/ESMCI_DistGrid.h b/src/Infrastructure/DistGrid/include/ESMCI_DistGrid.h index 822b7124aa..dcc47e5020 100644 --- a/src/Infrastructure/DistGrid/include/ESMCI_DistGrid.h +++ b/src/Infrastructure/DistGrid/include/ESMCI_DistGrid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/include/ESMC_DistGrid.h b/src/Infrastructure/DistGrid/include/ESMC_DistGrid.h index b0104f7651..db017bd8be 100644 --- a/src/Infrastructure/DistGrid/include/ESMC_DistGrid.h +++ b/src/Infrastructure/DistGrid/include/ESMC_DistGrid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/interface/ESMCI_DistGrid_F.C b/src/Infrastructure/DistGrid/interface/ESMCI_DistGrid_F.C index 1ce1bc489e..5996dfc4c9 100644 --- a/src/Infrastructure/DistGrid/interface/ESMCI_DistGrid_F.C +++ b/src/Infrastructure/DistGrid/interface/ESMCI_DistGrid_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/interface/ESMC_DistGrid.C b/src/Infrastructure/DistGrid/interface/ESMC_DistGrid.C index b88b2363ae..f61dcf782e 100644 --- a/src/Infrastructure/DistGrid/interface/ESMC_DistGrid.C +++ b/src/Infrastructure/DistGrid/interface/ESMC_DistGrid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/interface/ESMF_DistGrid.F90 b/src/Infrastructure/DistGrid/interface/ESMF_DistGrid.F90 index 5d7007ca0b..eb63d925f8 100644 --- a/src/Infrastructure/DistGrid/interface/ESMF_DistGrid.F90 +++ b/src/Infrastructure/DistGrid/interface/ESMF_DistGrid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/interface/ESMF_DistGridConnection.F90 b/src/Infrastructure/DistGrid/interface/ESMF_DistGridConnection.F90 index 349e4ff5bd..6d8661c297 100644 --- a/src/Infrastructure/DistGrid/interface/ESMF_DistGridConnection.F90 +++ b/src/Infrastructure/DistGrid/interface/ESMF_DistGridConnection.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/interface/ESMF_DistGridRegDecomp.F90 b/src/Infrastructure/DistGrid/interface/ESMF_DistGridRegDecomp.F90 index 85b5996a82..282124a6fa 100644 --- a/src/Infrastructure/DistGrid/interface/ESMF_DistGridRegDecomp.F90 +++ b/src/Infrastructure/DistGrid/interface/ESMF_DistGridRegDecomp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/src/ESMCI_DistGrid.C b/src/Infrastructure/DistGrid/src/ESMCI_DistGrid.C index cea2f6f378..7f5b8a68ec 100644 --- a/src/Infrastructure/DistGrid/src/ESMCI_DistGrid.C +++ b/src/Infrastructure/DistGrid/src/ESMCI_DistGrid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -3937,6 +3937,10 @@ void DistGrid::log( msg << prefix << "--- DistGrid::log() start --------------------------------"; ESMC_LogDefault.Write(msg.str(), msgType); + msg.str(""); // clear + msg << prefix << this; + ESMC_LogDefault.Write(msg.str(), msgType); + if (ESMC_BaseGetStatus()!=ESMF_STATUS_READY){ msg.str(""); // clear msg << prefix << "DistGrid object is invalid! Not created or deleted!"; @@ -3944,7 +3948,7 @@ void DistGrid::log( }else{ msg.str(""); // clear msg << prefix << "DistGrid object is valid!" - << " "; + << ""; ESMC_LogDefault.Write(msg.str(), msgType); } msg.str(""); // clear diff --git a/src/Infrastructure/DistGrid/tests/ESMC_DistGridUTest.c b/src/Infrastructure/DistGrid/tests/ESMC_DistGridUTest.c index 7ee53c8ba8..f3e44294ed 100644 --- a/src/Infrastructure/DistGrid/tests/ESMC_DistGridUTest.c +++ b/src/Infrastructure/DistGrid/tests/ESMC_DistGridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/DistGrid/tests/ESMF_DistGridCreateGetUTest.F90 b/src/Infrastructure/DistGrid/tests/ESMF_DistGridCreateGetUTest.F90 index 95b5360a61..ab90fead9b 100644 --- a/src/Infrastructure/DistGrid/tests/ESMF_DistGridCreateGetUTest.F90 +++ b/src/Infrastructure/DistGrid/tests/ESMF_DistGridCreateGetUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldArbGridEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldArbGridEx.F90 index c36f9a8afa..ac62209b91 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldArbGridEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldArbGridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldCommEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldCommEx.F90 index 0f257e9972..e08875647f 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldCommEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldCommEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldCreateEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldCreateEx.F90 index 8fb01273e3..5dbcb90a6e 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldCreateEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldCreateEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldEx.F90 index 0c08e9c9c0..33110a2a70 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldHaloEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldHaloEx.F90 index a2a0b02b88..372aff45e0 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldHaloEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldMeshRegridEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldMeshRegridEx.F90 index 1884e86183..e1dfed0a05 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldMeshRegridEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldMeshRegridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldRedistEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldRedistEx.F90 index 300e10568d..aa26a57588 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldRedistEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldRedistEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldRegridEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldRegridEx.F90 index 329e93044e..dc5c27368a 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldRegridEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldRegridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldRegridMaskEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldRegridMaskEx.F90 index c2c2d35207..0471e5a22b 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldRegridMaskEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldRegridMaskEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldRepDimEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldRepDimEx.F90 index 130bdd01f9..a4955bd6e0 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldRepDimEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldRepDimEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldSMMEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldSMMEx.F90 index ab0b5b3535..f0ac2f81dd 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldSMMEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldSMMEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/examples/ESMF_FieldSphereRegridEx.F90 b/src/Infrastructure/Field/examples/ESMF_FieldSphereRegridEx.F90 index 92f56d1472..fa9a06bf5f 100644 --- a/src/Infrastructure/Field/examples/ESMF_FieldSphereRegridEx.F90 +++ b/src/Infrastructure/Field/examples/ESMF_FieldSphereRegridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/include/ESMCI_Field.h b/src/Infrastructure/Field/include/ESMCI_Field.h index 1e16e7a35d..9b2457b55c 100644 --- a/src/Infrastructure/Field/include/ESMCI_Field.h +++ b/src/Infrastructure/Field/include/ESMCI_Field.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/include/ESMC_Field.h b/src/Infrastructure/Field/include/ESMC_Field.h index d4967fb0d9..5699d0d398 100644 --- a/src/Infrastructure/Field/include/ESMC_Field.h +++ b/src/Infrastructure/Field/include/ESMC_Field.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/interface/ESMCI_Field.C b/src/Infrastructure/Field/interface/ESMCI_Field.C index 80e0abda4c..633251dd51 100644 --- a/src/Infrastructure/Field/interface/ESMCI_Field.C +++ b/src/Infrastructure/Field/interface/ESMCI_Field.C @@ -1,7 +1,7 @@ //$1.10 2007/04/26 16:13:59 rosalind Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/interface/ESMCI_Field_F.C b/src/Infrastructure/Field/interface/ESMCI_Field_F.C index 4d50657cf0..1fe5f64fb8 100644 --- a/src/Infrastructure/Field/interface/ESMCI_Field_F.C +++ b/src/Infrastructure/Field/interface/ESMCI_Field_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/interface/ESMC_Field.C b/src/Infrastructure/Field/interface/ESMC_Field.C index de31141176..96cde0423e 100644 --- a/src/Infrastructure/Field/interface/ESMC_Field.C +++ b/src/Infrastructure/Field/interface/ESMC_Field.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/interface/ESMF_Field_C.F90 b/src/Infrastructure/Field/interface/ESMF_Field_C.F90 index 2d750394ed..9b33ad1208 100644 --- a/src/Infrastructure/Field/interface/ESMF_Field_C.F90 +++ b/src/Infrastructure/Field/interface/ESMF_Field_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_Field.F90 b/src/Infrastructure/Field/src/ESMF_Field.F90 index 60ce5f98a2..555664dc3a 100644 --- a/src/Infrastructure/Field/src/ESMF_Field.F90 +++ b/src/Infrastructure/Field/src/ESMF_Field.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -51,6 +51,10 @@ module ESMF_FieldMod use ESMF_StaggerLocMod use ESMF_DistGridMod use ESMF_GridMod + use ESMF_XGridMod + use ESMF_XGridCreateMod + use ESMF_MeshMod + use ESMF_LocStreamMod use ESMF_GeomMod use ESMF_ArrayMod use ESMF_ArrayCreateMod @@ -148,7 +152,8 @@ module ESMF_FieldMod public ESMF_FieldSerialize public ESMF_FieldDeserialize public ESMF_FieldInitialize ! Default initiailze field member variables - + public ESMF_FieldDestructArray + public ESMF_FieldDestructGeom !------------------------------------------------------------------------------ ! The following line turns the CVS identifier string into a printable variable. @@ -280,11 +285,12 @@ subroutine ESMF_FieldValidate(field, keywordEnforcer, rc) integer, allocatable :: distgridToGridMap(:) integer, allocatable :: distgridToPackedArrayMap(:) integer, allocatable :: arrayCompUBnd(:, :), arrayCompLBnd(:, :) - type(ESMF_DistGrid) :: arrayDistGrid, gridDistGrid - type(ESMF_GridDecompType) :: decompType - type(ESMF_GeomType_Flag) :: geomtype - type(ESMF_Grid) :: grid - type(ESMF_Status) :: basestatus + type(ESMF_DistGrid) :: arrayDistGrid, geomDistGrid + type(ESMF_GridDecompType) :: decompType + type(ESMF_GeomType_Flag) :: geomtype + type(ESMF_Grid) :: grid + type(ESMF_Status) :: basestatus + type(ESMF_DistGridMatch_Flag) :: dgMatch ! Initialize localrc = ESMF_RC_NOT_IMPL @@ -342,7 +348,7 @@ subroutine ESMF_FieldValidate(field, keywordEnforcer, rc) endif ! get grid dim and extents for the local piece call ESMF_GeomGet(ftypep%geom, dimCount=gridrank, & - distgrid=gridDistGrid, localDECount=localDECount, rc=localrc) + distgrid=geomDistGrid, localDECount=localDECount, rc=localrc) if (localrc .ne. ESMF_SUCCESS) then call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_BAD, & msg="Cannot retrieve distgrid, gridrank, localDECount from ftypep%grid", & @@ -379,13 +385,16 @@ subroutine ESMF_FieldValidate(field, keywordEnforcer, rc) msg="Cannot retrieve dimCount, localDECount, arrayDistGrid, arrayrank from ftypep%array", & ESMF_CONTEXT, rcToReturn=rc) return - endif - - ! Verify the distgrids in array and grid match. - if(ESMF_DistGridMatch(gridDistGrid, arrayDistGrid, rc=localrc) & - < ESMF_DISTGRIDMATCH_EXACT) then + endif + + ! Verify the distgrids in array and geom match. + dgMatch = ESMF_DistGridMatch(geomDistGrid, arrayDistGrid, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + if(dgMatch < ESMF_DISTGRIDMATCH_EXACT) then call ESMF_LogSetError(rcToCheck=ESMF_RC_OBJ_BAD, & - msg="grid DistGrid does not match array DistGrid", & + msg="geom DistGrid does not match array DistGrid", & ESMF_CONTEXT, rcToReturn=rc) return endif @@ -438,6 +447,226 @@ end subroutine ESMF_FieldValidate !------------------------------------------------------------------------------ +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_FieldDestruct" +!BOPI +! !IROUTINE: ESMF_FieldDestructArray - Release Field Array memory +! +! !INTERFACE: + subroutine ESMF_FieldDestructArray(ftype, noGarbage, rc) +! +! !ARGUMENTS: + type(ESMF_FieldType), pointer :: ftype + logical, intent(in), optional :: noGarbage + integer, intent(out), optional :: rc +! +! !DESCRIPTION: +! Releases Field Array memory. +! +! The arguments are: +! \begin{description} +! \item[ftype] +! Pointer to an {\tt ESMF\_Field} object. +! \item[{[noGarbage]}] +! If set to {\tt .TRUE.} the object will be fully destroyed and removed +! from the ESMF garbage collection system. Note however that under this +! condition ESMF cannot protect against accessing the destroyed object +! through dangling aliases -- a situation which may lead to hard to debug +! application crashes. +! +! It is generally recommended to leave the {\tt noGarbage} argument +! set to {\tt .FALSE.} (the default), and to take advantage of the ESMF +! garbage collection system which will prevent problems with dangling +! aliases or incorrect sequences of destroy calls. However this level of +! support requires that a small remnant of the object is kept in memory +! past the destroy call. This can lead to an unexpected increase in memory +! consumption over the course of execution in applications that use +! temporary ESMF objects. For situations where the repeated creation and +! destruction of temporary objects leads to memory issues, it is +! recommended to call with {\tt noGarbage} set to {\tt .TRUE.}, fully +! removing the entire temporary object from memory. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI +!------------------------------------------------------------------------------ + integer :: localrc ! local return code + type(ESMF_Status) :: basestatus + + ! Initialize + localrc = ESMF_RC_NOT_IMPL + if (present(rc)) rc = ESMF_RC_NOT_IMPL + + ! Only get rid of Array if complete + if(ftype%status .eq. ESMF_FIELDSTATUS_COMPLETE) then + if(ftype%is_proxy .or. ftype%array_internal) then + call ESMF_ArrayDestroy(ftype%array, noGarbage=noGarbage, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + endif + + ! Return success + if (present(rc)) rc = ESMF_SUCCESS + + end subroutine ESMF_FieldDestructArray +!------------------------------------------------------------------------------ + + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_FieldDestructGeom" +!BOPI +! !IROUTINE: ESMF_FieldDestructGeom - Clear out a Fields Geometry +! +! !INTERFACE: + subroutine ESMF_FieldDestructGeom(ftype, noGarbage, rc) +! +! !ARGUMENTS: + type(ESMF_FieldType), pointer :: ftype + logical, intent(in), optional :: noGarbage + integer, intent(out), optional :: rc +! +! !DESCRIPTION: +! Releases all geometry resources. +! +! The arguments are: +! \begin{description} +! \item[ftype] +! Pointer to an {\tt ESMF\_Field} object. +! \item[{[noGarbage]}] +! If set to {\tt .TRUE.} the object will be fully destroyed and removed +! from the ESMF garbage collection system. Note however that under this +! condition ESMF cannot protect against accessing the destroyed object +! through dangling aliases -- a situation which may lead to hard to debug +! application crashes. +! +! It is generally recommended to leave the {\tt noGarbage} argument +! set to {\tt .FALSE.} (the default), and to take advantage of the ESMF +! garbage collection system which will prevent problems with dangling +! aliases or incorrect sequences of destroy calls. However this level of +! support requires that a small remnant of the object is kept in memory +! past the destroy call. This can lead to an unexpected increase in memory +! consumption over the course of execution in applications that use +! temporary ESMF objects. For situations where the repeated creation and +! destruction of temporary objects leads to memory issues, it is +! recommended to call with {\tt noGarbage} set to {\tt .TRUE.}, fully +! removing the entire temporary object from memory. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI +!------------------------------------------------------------------------------ + integer :: localrc ! local return code + type(ESMF_GeomType_Flag):: geomtype + type(ESMF_Grid) :: grid + type(ESMF_Mesh) :: mesh + type(ESMF_LocStream) :: locstream + type(ESMF_Xgrid) :: xgrid + + ! Initialize + localrc = ESMF_RC_NOT_IMPL + if (present(rc)) rc = ESMF_RC_NOT_IMPL + + ! Field only has Geom if complete or gridset + if ((ftype%status .eq. ESMF_FIELDSTATUS_GRIDSET) .or. & + (ftype%status .eq. ESMF_FIELDSTATUS_COMPLETE)) then + + if (ftype%is_proxy .or. ftype%geomb_internal) then + + if (ftype%is_proxy) then +#if 1 +!gjt: Destroying geom object for proxies might not be a good idea. If this +!gjt: ever causes issues, then we might want to disable it here. +!gjt: Disable, because proxy geoms might be used outside the original the +!gjt: proxy field... cannot destroy here, but instead must keep proxy the +!gjt: geom alive!!! + + ! Proxies destroy their actual geometry object, but must leave + ! in garbage collection because multiple fields might be referencing + ! the same actual geometry object, and try to destroy. Garbage + ! collection makes those double destroy calls safe noops. + + call ESMF_GeomGet(ftype%geom, geomtype=geomtype, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! call into the GEOMTYPE specific Destroy() method + if (geomtype .eq. ESMF_GEOMTYPE_GRID) then + call ESMF_GeomGet(ftype%geom, grid=grid, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! destroy the Grid proxy + call ESMF_GridDestroy(grid, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + else if (geomtype .eq. ESMF_GEOMTYPE_MESH) then + call ESMF_GeomGet(ftype%geom, mesh=mesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! destroy the Mesh proxy + call ESMF_MeshDestroy(mesh, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + else if (geomtype .eq. ESMF_GEOMTYPE_LOCSTREAM) then + call ESMF_GeomGet(ftype%geom, locstream=locstream, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! destroy the LocStream proxy + call ESMF_LocStreamDestroy(locstream, noGarbage=.false., & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + else if (geomtype .eq. ESMF_GEOMTYPE_XGRID) then + call ESMF_GeomGet(ftype%geom, xgrid=xgrid, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! destroy the XGrid proxy + call ESMF_XGridDestroy(xgrid, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_INTNRL_BAD, & + msg="Unvalid GeomType detected. Garbage collection issue?", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + ! the Geom needs to be destroyed + call ESMF_GeomDestroy(ftype%geom, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return +#endif + else + ! the Geom needs to be destroyed + call ESMF_GeomDestroy(ftype%geom, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + endif + endif + + ! Return success + if (present(rc)) rc = ESMF_SUCCESS + + end subroutine ESMF_FieldDestructGeom +!------------------------------------------------------------------------------ + + !------------------------------------------------------------------------------ #undef ESMF_METHOD #define ESMF_METHOD "ESMF_FieldSerialize" diff --git a/src/Infrastructure/Field/src/ESMF_FieldCreate.cppF90 b/src/Infrastructure/Field/src/ESMF_FieldCreate.cppF90 index be1f75a76f..b6b4a44b55 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldCreate.cppF90 +++ b/src/Infrastructure/Field/src/ESMF_FieldCreate.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -5336,11 +5336,6 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below !------------------------------------------------------------------------------ integer :: localrc ! local return code type(ESMF_Status) :: basestatus - type(ESMF_GeomType_Flag):: geomtype - type(ESMF_Grid) :: grid - type(ESMF_Mesh) :: mesh - type(ESMF_LocStream) :: locstream - type(ESMF_Xgrid) :: xgrid ! Initialize localrc = ESMF_RC_NOT_IMPL @@ -5352,87 +5347,22 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ESMF_CONTEXT, rcToReturn=rc)) return if (basestatus .eq. ESMF_STATUS_READY) then - if(ftype%status .eq. ESMF_FIELDSTATUS_COMPLETE) then - if(ftype%is_proxy .or. ftype%array_internal) then - call ESMF_ArrayDestroy(ftype%array, noGarbage=noGarbage, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif - - if (ftype%is_proxy .or. ftype%geomb_internal) then - - if (ftype%is_proxy) then - ! proxies destroy their actual geometry object, but must leave - ! in garbage collection because multiple fields might be referencing - ! the same actual geometry object, and try to destroy - - call ESMF_GeomGet(ftype%geom, geomtype=geomtype, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - - ! call into the GEOMTYPE specific Destroy() method - if (geomtype .eq. ESMF_GEOMTYPE_GRID) then - call ESMF_GeomGet(ftype%geom, grid=grid, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! destroy the Grid proxy - call ESMF_GridDestroy(grid, noGarbage=.false., rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - else if (geomtype .eq. ESMF_GEOMTYPE_MESH) then - call ESMF_GeomGet(ftype%geom, mesh=mesh, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! destroy the Mesh proxy - call ESMF_MeshDestroy(mesh, noGarbage=.false., rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - else if (geomtype .eq. ESMF_GEOMTYPE_LOCSTREAM) then - call ESMF_GeomGet(ftype%geom, locstream=locstream, & - rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! destroy the LocStream proxy - call ESMF_LocStreamDestroy(locstream, noGarbage=.false., & - rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - else if (geomtype .eq. ESMF_GEOMTYPE_XGRID) then - call ESMF_GeomGet(ftype%geom, xgrid=xgrid, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! destroy the XGrid proxy - call ESMF_XGridDestroy(xgrid, noGarbage=.false., rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - else - call ESMF_LogSetError(rcToCheck=ESMF_RC_INTNRL_BAD, & - msg="Unvalid GeomType detected. Garbage collection issue?", & - ESMF_CONTEXT, rcToReturn=rc) - return - endif - - endif + if(ftype%status .eq. ESMF_FIELDSTATUS_COMPLETE) then - ! proxy or not, the Geom needs to be destroyed - call ESMF_GeomDestroy(ftype%geom, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif - - ftype%status = ESMF_FIELDSTATUS_UNINIT ! mark invalid + ! Destroy Array + call ESMF_FieldDestructArray(ftype, noGarbage, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Destroy geometry + call ESMF_FieldDestructGeom(ftype, noGarbage, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! Mark invalid + ftype%status = ESMF_FIELDSTATUS_UNINIT endif endif diff --git a/src/Infrastructure/Field/src/ESMF_FieldEmpty.cppF90 b/src/Infrastructure/Field/src/ESMF_FieldEmpty.cppF90 index 19886384ef..c6fdff7f0c 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldEmpty.cppF90 +++ b/src/Infrastructure/Field/src/ESMF_FieldEmpty.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -53,6 +53,7 @@ module ESMF_FieldEmptyMod !------------------------------------------------------------------------------ ! !PUBLIC MEMBER FUNCTIONS: public ESMF_FieldEmptyCreate + public ESMF_FieldEmptyReset public ESMF_FieldEmptySet public ESMF_FieldEmptyComplete public ESMF_FieldConstructIANew ! For internal ESMF use only @@ -4314,6 +4315,199 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below end function ESMF_FieldEmptyCreate !------------------------------------------------------------------------------ +!------------------------------------------------------------------------------ +^undef ESMF_METHOD +^define ESMF_METHOD "ESMF_FieldEmptyReset" +!BOP +! !IROUTINE: ESMF_FieldEmptyReset - Reset a Field back to an earlier status + +! !INTERFACE: + subroutine ESMF_FieldEmptyReset(field, keywordEnforcer, status, vm, rc) + +! +! !ARGUMENTS: + type(ESMF_Field), intent(inout) :: field +type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below + type(ESMF_FieldStatus_Flag), intent(in), optional :: status + type(ESMF_VM), intent(in), optional :: vm + integer, intent(out), optional :: rc +! +! +! !DESCRIPTION: +! Reset an {\tt ESMF\_Field} to a less complete status. After this +! operation, methods appropriate to the new status can be used on the Field. +! For example, if reset to status {\tt ESMF\_FIELDSTATUS\_EMPTY}, then {\tt ESMF\_FieldEmptySet()} +! could be used to set a new Grid in the Field. +! +! Note that if used improperly, this method can cause inconsistencies. For example, creating a routeHandle +! on a Field and then using this method to change the geometry (e.g. Grid) under the Field could lead to the +! routeHandle no longer being valid for the Field. +! +! The arguments are: +! \begin{description} +! \item [field] +! The {\tt ESMF\_Field} object to reset. +! \item [{[status]}] +! The new status to set the Field to. +! See section \ref{const:fieldstatus} for a complete list of values. +! The default is {\tt ESMF\_FIELDSTATUS\_EMPTY}. +! \item[{[vm]}] +! If present, the Field object will only be accessed, and the Grid object +! set, on those PETs contained in the specified {\tt ESMF\_VM} object. +! The default is to assume the VM of the current context. +! \item [{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +! +!EOP + !------------------------------------------------------------------------------ + type(ESMF_FieldType), pointer :: ftypep + type(ESMF_FieldStatus_Flag) :: currStatus, setStatus + integer :: localrc + type(ESMF_Pointer) :: vmThis + logical :: actualFlag + + if(present(rc)) rc = ESMF_RC_NOT_IMPL + localrc = ESMF_RC_NOT_IMPL + + ESMF_INIT_CHECK_DEEP(ESMF_FieldGetInit,field,rc) + + ! Handle option status argument + setStatus = ESMF_FIELDSTATUS_EMPTY ! default + if (present(status)) setStatus = status + + ! Error check status + if(setStatus == ESMF_FIELDSTATUS_UNINIT) then + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="FieldEmptyReset - cannot reset a Field to an uninitialized status.", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + ! Must make sure the local PET is associated with an actual member + actualFlag = .true. + if (present(vm)) then + ESMF_INIT_CHECK_DEEP(ESMF_VMGetInit, vm, rc) + call ESMF_VMGetThis(vm, vmThis) + if (vmThis == ESMF_NULL_POINTER) then + actualFlag = .false. ! local PET is not for an actual member + endif + endif + + ! Just return success, if not an actual member + if (.not. actualFlag) then + if(present(rc)) rc = ESMF_SUCCESS + return + endif + + ! Get pointer to internal Field + ftypep => field%ftypep + + ! Get field's current status + currStatus=ftypep%status + + ! Change Field based on current status and new status + if (currStatus == ESMF_FIELDSTATUS_EMPTY) then + + if (setStatus == ESMF_FIELDSTATUS_EMPTY) then + ! Don't do anything, since no change in status + else if (setStatus == ESMF_FIELDSTATUS_GRIDSET) then + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="a Field can't be reset to be more complete than its current status.", & + ESMF_CONTEXT, rcToReturn=rc) + return + else if (setStatus == ESMF_FIELDSTATUS_COMPLETE) then + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="a Field can't be reset to be more complete than its current status.", & + ESMF_CONTEXT, rcToReturn=rc) + return + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="unknown status type", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + else if (currStatus == ESMF_FIELDSTATUS_GRIDSET) then + + if (setStatus == ESMF_FIELDSTATUS_EMPTY) then + + ! Destroy Geometry to go back to empty status + call ESMF_FieldDestructGeom(ftypep, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set flag back to it's inital setting + ftypep%geomb_internal = .false. + + else if (setStatus == ESMF_FIELDSTATUS_GRIDSET) then + ! Don't do anything, since no change in status + else if (setStatus == ESMF_FIELDSTATUS_COMPLETE) then + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="a Field can't be reset to be more complete than its current status.", & + ESMF_CONTEXT, rcToReturn=rc) + return + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="unknown status type", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + else if (currStatus == ESMF_FIELDSTATUS_COMPLETE) then + + if (setStatus == ESMF_FIELDSTATUS_EMPTY) then + + ! Destroy Array + call ESMF_FieldDestructArray(ftypep, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set Array internal flag back to it's inital setting + ftypep%array_internal = .false. + + ! Destroy Geometry + call ESMF_FieldDestructGeom(ftypep, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set geom internal flag back to it's inital setting + ftypep%geomb_internal = .false. + + else if (setStatus == ESMF_FIELDSTATUS_GRIDSET) then + + ! Destroy Array + call ESMF_FieldDestructArray(ftypep, noGarbage=.false., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set Array internal flag back to it's inital setting + ftypep%array_internal = .false. + + else if (setStatus == ESMF_FIELDSTATUS_COMPLETE) then + ! Don't do anything, since no change in status + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="unknown status type", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_WRONG, & + msg="unknown status type", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + + ! Set new status + ftypep%status = setStatus + + ! Return success + if(present(rc)) rc = ESMF_SUCCESS + + end subroutine ESMF_FieldEmptyReset +!------------------------------------------------------------------------------ !------------------------------------------------------------------------------ ^undef ESMF_METHOD ^define ESMF_METHOD "ESMF_FieldEmptySetGeom" diff --git a/src/Infrastructure/Field/src/ESMF_FieldGather.cppF90 b/src/Infrastructure/Field/src/ESMF_FieldGather.cppF90 index f662061f9b..8ade7b3a64 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldGather.cppF90 +++ b/src/Infrastructure/Field/src/ESMF_FieldGather.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldGet.cppF90 b/src/Infrastructure/Field/src/ESMF_FieldGet.cppF90 index a4b1b77304..f71b43f329 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldGet.cppF90 +++ b/src/Infrastructure/Field/src/ESMF_FieldGet.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldGetAllocBounds.F90 b/src/Infrastructure/Field/src/ESMF_FieldGetAllocBounds.F90 index d97eeb2285..e71089cc1f 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldGetAllocBounds.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldGetAllocBounds.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldHalo.F90 b/src/Infrastructure/Field/src/ESMF_FieldHalo.F90 index a0e79daea8..bf8e9be05c 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldHalo.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldHalo.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -482,6 +482,7 @@ subroutine ESMF_FieldLog(field, keywordEnforcer, prefix, logMsgFlag, deepFlag, r integer :: rank, dimCount character(ESMF_MAXSTR) :: name, tempString character(800) :: msgString + type(ESMF_Array) :: array ! initialize return code; assume routine not implemented localrc = ESMF_RC_NOT_IMPL @@ -539,6 +540,8 @@ subroutine ESMF_FieldLog(field, keywordEnforcer, prefix, logMsgFlag, deepFlag, r ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + call c_esmc_vmlogpointer(field, prefix, logMsg) + if (fieldStatus == ESMF_FIELDSTATUS_COMPLETE) then call ESMF_FieldGet(field, typekind=typekind, rank=rank, & dimCount=dimCount, rc=localrc) @@ -558,6 +561,20 @@ subroutine ESMF_FieldLog(field, keywordEnforcer, prefix, logMsgFlag, deepFlag, r if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + + if (deepLog) then + call ESMF_FieldGet(field, array=array, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_ArrayLog(array, & + prefix=ESMF_StringConcat(prefix, "! "), & + logMsgFlag=logMsg, deepFlag=deepLog, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + endif endif diff --git a/src/Infrastructure/Field/src/ESMF_FieldPr.F90 b/src/Infrastructure/Field/src/ESMF_FieldPr.F90 index bd84703cad..49037d2bc3 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldPr.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldPr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldRedist.F90 b/src/Infrastructure/Field/src/ESMF_FieldRedist.F90 index c9aae2c0aa..f96c07e76f 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldRedist.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldRedist.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldRegrid.F90 b/src/Infrastructure/Field/src/ESMF_FieldRegrid.F90 index 34846258e4..742640c135 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldRegrid.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldRegrid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -379,6 +379,7 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & routehandle, & factorList, factorIndexList, & weights, indices, & ! DEPRECATED ARGUMENTS + transposeRoutehandle, & srcFracField, dstFracField, & dstStatusField, & unmappedDstList, & @@ -410,6 +411,7 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & integer(ESMF_KIND_I4), pointer, optional :: factorIndexList(:,:) real(ESMF_KIND_R8), pointer, optional :: weights(:) ! DEPRECATED ARG integer(ESMF_KIND_I4), pointer, optional :: indices(:,:) ! DEPRECATED ARG + type(ESMF_RouteHandle), intent(inout), optional :: transposeRoutehandle type(ESMF_Field), intent(inout), optional :: srcFracField type(ESMF_Field), intent(inout), optional :: dstFracField type(ESMF_Field), intent(inout), optional :: dstStatusField @@ -463,7 +465,10 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & ! \item[8.6.0] Added argument {\tt vectorRegrid} to enable the user to turn on vector regridding. This ! functionality treats an undistributed dimension of the input Fields as the components of a vector and ! maps it through 3D Cartesian space to give more consistent results (especially near the pole) than -! just regridding the components individually. +! just regridding the components individually. +! +! \item[8.8.0] Added argument {\tt transposeRoutehandle} to enable the user to retrieve +! a routeHandle containing the transpose of the regrid sparse matrix. ! ! \end{description} ! \end{itemize} @@ -660,8 +665,11 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & ! The {\tt factorIndexList} array is allocated by the method and the user is responsible for deallocating it. ! \item [{[weights]}] ! \apiDeprecatedArgWithReplacement{factorList} -! \item [{[indices]}] +! \item [{[indices]}] ! \apiDeprecatedArgWithReplacement{factorIndexList} +! \item [transposeRoutehandle] +! A routeHandle for the transpose of the regrid sparse matrix. The +! transposed operation goes from {\tt dstField} to {\tt srcField}. ! \item [{[srcFracField]}] ! The fraction of each source cell participating in the regridding. Only ! valid when regridmethod is {\tt ESMF\_REGRIDMETHOD\_CONSERVE} or {\tt regridmethod=ESMF\_REGRIDMETHOD\_CONSERVE\_2ND}. @@ -1207,6 +1215,7 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & unmappedaction, localIgnoreDegenerate, & srcTermProcessing, pipeLineDepth, & routehandle, tmp_indices, tmp_weights, & + transposeRoutehandle, & unmappedDstList, & localCheckFlag, & localrc) @@ -1239,6 +1248,7 @@ subroutine ESMF_FieldRegridStoreNX(srcField, dstField, keywordEnforcer, & unmappedaction, localIgnoreDegenerate, & srcTermProcessing, pipeLineDepth, & routehandle, & + transposeRoutehandle=transposeRoutehandle, & unmappedDstList=unmappedDstList, & checkFlag=localCheckFlag, & rc=localrc) @@ -3468,7 +3478,7 @@ subroutine ESMF_FieldRegridStoreX(xgrid, srcField, dstField, keywordEnforcer, & type(ESMF_GeomType_Flag) :: geomtype, srcgeomtype, dstgeomtype type(ESMF_XGrid) :: srcXGrid, dstXGrid type(ESMF_Mesh) :: srcMesh, dstMesh - + type(ESMF_Array) :: srcArray, dstArray integer :: srcIdx, dstIdx, ngrid_a, ngrid_b integer :: sideAGC, sideAMC, sideBGC, sideBMC type(ESMF_XGridSide_Flag) :: srcSide, dstSide @@ -3482,17 +3492,20 @@ subroutine ESMF_FieldRegridStoreX(xgrid, srcField, dstField, keywordEnforcer, & type(ESMF_STAGGERLOC):: interpFieldStaggerloc, fracFieldStaggerloc type(ESMF_MESHLOC) :: interpFieldMeshloc, fracFieldMeshloc type(ESMF_RegridMethod_Flag) :: lregridmethod - type(ESMF_Mesh) :: superMesh - type(ESMF_Field) :: tmpSrcField, tmpDstField - type(ESMF_Typekind_Flag) :: fieldTypeKind + type(ESMF_Mesh) :: xgridMesh, sideMesh + logical :: sideMeshDestroy + integer :: xgridSide, xgridInd, sideMeshSide, sideMeshInd + type(ESMF_PointList) :: dstPointList, srcPointList + type(ESMF_Array) :: statusArray + ! Initialize return code; assume failure until success is certain localrc = ESMF_SUCCESS if (present(rc)) rc = ESMF_RC_NOT_IMPL ! Set optional method argument if (present(regridmethod)) then - lregridmethod=regridmethod + Lregridmethod=regridmethod else lregridmethod=ESMF_REGRIDMETHOD_CONSERVE endif @@ -3528,6 +3541,7 @@ subroutine ESMF_FieldRegridStoreX(xgrid, srcField, dstField, keywordEnforcer, & ESMF_CONTEXT, rcToReturn=rc)) return srcgeomtype = geomtype + ! locate the Grid or XGrid contained in srcField if(geomtype == ESMF_GEOMTYPE_GRID) then call ESMF_FieldGet(srcField, grid=srcGrid, & @@ -3565,6 +3579,7 @@ subroutine ESMF_FieldRegridStoreX(xgrid, srcField, dstField, keywordEnforcer, & endif enddo + ! If found create Mesh from Grid if(.not. found) then call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_BAD, & msg="- cannot Locate src Field Grid in XGrid", & @@ -3977,92 +3992,233 @@ subroutine ESMF_FieldRegridStoreX(xgrid, srcField, dstField, keywordEnforcer, & rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - else + + else if (lregridmethod .eq. ESMF_REGRIDMETHOD_CONSERVE_2ND) then - ! Set temporary field for source - if (srcSide == ESMF_XGRIDSIDE_BALANCED) then + ! Get Super Mesh + call ESMF_XGridGet(xgrid, mesh=xgridMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return - ! Get Field typekind - call ESMF_FieldGet(srcField, typekind=fieldTypeKind, & - rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ! Set XGrid side and ind information + xgridSide=3 + xgridInd=0 + call c_esmc_meshsetxgridinfo(xgridMesh, xgridSide, xgridInd, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + - ! Get Super Mesh - call ESMF_XGridGet(xgrid, mesh=superMesh, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! Create temporary field - tmpSrcField=ESMF_FieldCreate(superMesh, & - typekind=fieldTypeKind, & - meshloc=ESMF_MESHLOC_ELEMENT, & + ! Init side info + sideMeshDestroy=.false. + sideMeshSide=0 + sideMeshInd=0 + + ! Get srcMesh + if (srcSide == ESMF_XGRIDSIDE_BALANCED) then ! Src is XGrid + + ! SrcMesh is super mesh + srcMesh=xgridMesh + + else ! src is side mesh + + ! Set side info + sideMeshSide=1 ! side A + if (srcSide == ESMF_XGRIDSIDE_B) sideMeshSide=2 ! side B + sideMeshInd=srcIdx + + ! Get/create sideMesh + call ESMF_FieldGet(srcField, geomtype=geomtype, & rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - else - tmpSrcField=srcField - endif - ! Set temporary field for dst - if (dstSide == ESMF_XGRIDSIDE_BALANCED) then + if (geomtype == ESMF_GEOMTYPE_GRID) then + call ESMF_FieldGet(srcField, grid=srcGrid, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create Mesh from Grid + sideMesh=conserve_GridToMesh(srcGrid, & + !maskValues, turnedOnMeshElemMask, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Record that we created the mesh + sideMeshDestroy=.true. - ! Get Field typekind - call ESMF_FieldGet(dstField, typekind=fieldTypeKind, & - rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ! srcMesh is sideMesh + srcMesh=sideMesh + + else if (geomtype == ESMF_GEOMTYPE_MESH) then + + ! Get side Mesh + call ESMF_FieldGet(srcField, mesh=sideMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! srcMesh is sideMesh + srcMesh=sideMesh + + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_BAD, & + msg="srcField is not built on Grid, or Mesh.", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + endif + + ! Get srcArray + call ESMF_FieldGet(srcField, array=srcArray, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return - ! Get Super Mesh - call ESMF_XGridGet(xgrid, mesh=superMesh, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! Create temporary field - tmpDstField=ESMF_FieldCreate(superMesh, & - typekind=fieldTypeKind, & - meshloc=ESMF_MESHLOC_ELEMENT, & + + ! Get dstMesh + if (dstSide == ESMF_XGRIDSIDE_BALANCED) then ! Dst is XGrid + + ! DstMesh is super mesh + dstMesh=xgridMesh + + else ! dst is side mesh + + ! Set side info + sideMeshSide=1 ! side A + if (dstSide == ESMF_XGRIDSIDE_B) sideMeshSide=2 ! side B + sideMeshInd=dstIdx + + ! Get/create sideMesh + call ESMF_FieldGet(dstField, geomtype=geomtype, & rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - else - tmpDstField=dstField - endif - ! Generate routehandle other that 1st order conserve - call ESMF_FieldRegridStoreNX(& - srcField=tmpSrcField, & - dstField=tmpDstField, & -! ?? srcMaskValues, dstMaskValues, & - regridmethod=lregridmethod, & - srcTermProcessing=srcTermProcessing, & - pipeLineDepth=pipeLineDepth, & - routehandle=routehandle, & - srcFracField=srcFracField, & - dstFracField=dstFracField, & - rc=localrc) + if (geomtype == ESMF_GEOMTYPE_GRID) then + call ESMF_FieldGet(dstField, grid=dstGrid, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create Mesh from Grid + sideMesh=conserve_GridToMesh(dstGrid, & + !maskValues, turnedOnMeshElemMask, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Record that we created the mesh + sideMeshDestroy=.true. + + ! dstMesh is sideMesh + dstMesh=sideMesh + + else if (geomtype == ESMF_GEOMTYPE_MESH) then + + ! Get side Mesh + call ESMF_FieldGet(dstField, mesh=sideMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! dstMesh is sideMesh + dstMesh=sideMesh + + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_BAD, & + msg="dstField is not built on Grid, or Mesh.", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + endif + + ! Get dstArray + call ESMF_FieldGet(dstField, array=dstArray, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Set side Mesh info + call c_esmc_meshsetxgridinfo(sideMesh, sideMeshSide, sideMeshInd, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Generate routehandle for 2nd order conservative + call ESMF_RegridStore(srcMesh, srcArray, & + srcPointList, .false., & + dstMesh, dstArray, & + dstPointList, .false. , & + regridMethod=ESMF_REGRIDMETHOD_CONSERVE_2ND, & + lineType=ESMF_LINETYPE_GREAT_CIRCLE, & + normType=ESMF_NORMTYPE_DSTAREA, & + vectorRegrid=.false., & + polemethod=ESMF_POLEMETHOD_NONE, regridPoleNPnts=4, & + hasStatusArray=.false., statusArray=statusArray, & + extrapMethod=ESMF_EXTRAPMETHOD_NONE, & + extrapNumSrcPnts=8, extrapDistExponent=2.0_ESMF_KIND_R8, & + extrapNumLevels=2, extrapNumInputLevels=2, & + unmappedaction=ESMF_UNMAPPEDACTION_IGNORE, & ! Otherwise, dst = sideMesh will often lead to unmapped errors + ignoreDegenerate=.true., & + srcTermProcessing=srcTermProcessing, & + pipeLineDepth=pipeLineDepth, & + routehandle=routeHandle, & + checkFlag=.false., & + rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - ! Get rid of temporary source Field if necessary - if (srcSide == ESMF_XGRIDSIDE_BALANCED) then - - call ESMF_FieldDestroy(tmpSrcField, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ! The fraction information should be the same as stored in the XGrid. However, + ! use the version actually calculated during 2nd order calc, so that it matches more + ! precisely the values used during that calculation. + + ! If present, copy src fraction information + if (present(srcFracField)) then + call copyFracsIntoOutputField(srcField, srcMesh, srcFracField, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return endif - ! Get rid of temporary destination Field if necessary - if (dstSide == ESMF_XGRIDSIDE_BALANCED) then + ! If present, copy dst fraction information + if (present(dstFracField)) then + call copyFracsIntoOutputField(dstField, dstMesh, dstFracField, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif - call ESMF_FieldDestroy(tmpDstField, rc=localrc) + + ! Reset Mesh side info so that it doesn't interfere elsewhere + call c_esmc_meshsetxgridinfo(xgridMesh, -1, -1, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call c_esmc_meshsetxgridinfo(sideMesh, -1, -1, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Get rid of temporary sideMesh if necessary + if (sideMeshDestroy) then + call ESMF_MeshDestroy(sideMesh, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ESMF_CONTEXT, rcToReturn=rc)) return endif + else + call ESMF_LogSetError(rcToCheck=ESMF_RC_ARG_BAD, & + msg=" unsupported regridMethod with XGrid version of ESMF_FieldRegridStore().", & + ESMF_CONTEXT, rcToReturn=rc) + return endif - + ! Return success if(present(rc)) rc = ESMF_SUCCESS end subroutine ESMF_FieldRegridStoreX diff --git a/src/Infrastructure/Field/src/ESMF_FieldSMM.F90 b/src/Infrastructure/Field/src/ESMF_FieldSMM.F90 index a01157c5d8..cfb5374b0c 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldSMM.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldSMM.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldScatter.cppF90 b/src/Infrastructure/Field/src/ESMF_FieldScatter.cppF90 index b0bbe14a63..97b2c091a6 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldScatter.cppF90 +++ b/src/Infrastructure/Field/src/ESMF_FieldScatter.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldSet.F90 b/src/Infrastructure/Field/src/ESMF_FieldSet.F90 index 1c61cd2afa..49640d8b07 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldSet.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldSet.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_FieldWr.F90 b/src/Infrastructure/Field/src/ESMF_FieldWr.F90 index 4c1538c58c..386b1b5b08 100644 --- a/src/Infrastructure/Field/src/ESMF_FieldWr.F90 +++ b/src/Infrastructure/Field/src/ESMF_FieldWr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/src/ESMF_UtilRWG.F90 b/src/Infrastructure/Field/src/ESMF_UtilRWG.F90 index 73132f6ca2..8609457cf9 100644 --- a/src/Infrastructure/Field/src/ESMF_UtilRWG.F90 +++ b/src/Infrastructure/Field/src/ESMF_UtilRWG.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridCsrvUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridCsrvUTest.c index b9509c198c..780bba1394 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridCsrvUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridCsrvUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridUTest.c index 1c38411212..95aa77235e 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridGridRegridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridRegrid2UTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridRegrid2UTest.c index 03c11eccb3..aee1ada555 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridRegrid2UTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridRegrid2UTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrv2UTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrv2UTest.c index 28453d54a9..10de3006ac 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrv2UTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrv2UTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrvUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrvUTest.c index 2c880b64da..0596c9e3f4 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrvUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridCsrvUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridParUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridParUTest.c index 03393d8c83..8f39a9b3b2 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridParUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridParUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridUTest.c index f909fc4cf3..07ca179dff 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldGridRegridUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldGridRegridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldRegridCsrvUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldRegridCsrvUTest.c index fe818293b5..d2403e13bd 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldRegridCsrvUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldRegridCsrvUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldRegridUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldRegridUTest.c index 7dd11bfabf..8edddf815d 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldRegridUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldRegridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldSMMFromFileUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldSMMFromFileUTest.c index 372c932397..e50e60a6e0 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldSMMFromFileUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldSMMFromFileUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldTripoleRegridUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldTripoleRegridUTest.c index 163d31f754..9b57864374 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldTripoleRegridUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldTripoleRegridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMC_FieldUTest.c b/src/Infrastructure/Field/tests/ESMC_FieldUTest.c index 7b606761d4..092722eb61 100644 --- a/src/Infrastructure/Field/tests/ESMC_FieldUTest.c +++ b/src/Infrastructure/Field/tests/ESMC_FieldUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldArbGridUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldArbGridUTest.F90 index c9661e07b2..386c3dea02 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldArbGridUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldArbGridUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldCreateGetUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldCreateGetUTest.F90 index 4dd6f8571c..87eab5e2ad 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldCreateGetUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldCreateGetUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -2389,6 +2389,13 @@ program ESMF_FieldCreateGetUTest write(name, *) "Testing completing a Field from a Geom object and a typekind" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + !NEX_UTest_Multi_Proc_Only + ! Testing ESMF_FieldEmptyReset() + call test_FieldEmptyReset(rc) + write(failMsg, *) "" + write(name, *) "Test resetting a Field back to a less complete status" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) call ESMF_TestEnd(ESMF_SRCLINE) @@ -9079,6 +9086,120 @@ subroutine test_geom_comp_tkr(rc) end subroutine test_geom_comp_tkr + + subroutine test_FieldEmptyReset(rc) + integer, intent(out) :: rc + integer :: localrc + type(ESMF_Field) :: field + type(ESMF_Grid) :: grid1, grid2, tmpGrid + real, dimension(:,:), allocatable :: farray + + type(ESMF_VM) :: vm + integer :: lpe + integer, dimension(2) :: ec, cc + integer, dimension(2) :: gelb, geub, gclb, gcub + type(ESMF_StaggerLoc) :: sloc + type (ESMF_TypeKind_Flag) :: typekind + character(len = 20) :: tmpName + + rc = ESMF_SUCCESS + localrc = ESMF_SUCCESS + + ! Create Grids + grid1 = ESMF_GridCreateNoPeriDim(minIndex=(/1,1/), maxIndex=(/16,20/), & + regDecomp=(/4,1/), name="testgrid1", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + grid2 = ESMF_GridCreateNoPeriDim(minIndex=(/1,1/), maxIndex=(/32,40/), & + regDecomp=(/4,1/), name="testgrid2", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create Empty Field + field = ESMF_FieldEmptyCreate(rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Add a Grid + call ESMF_FieldEmptySet(field, grid1, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Complete + call ESMF_FieldEmptyComplete(field, ESMF_TYPEKIND_R8, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Reset + call ESMF_FieldEmptyReset(field, status=ESMF_FIELDSTATUS_EMPTY, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set a different Grid + call ESMF_FieldEmptySet(field, grid2, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Complete again with a different type + call ESMF_FieldEmptyComplete(field, ESMF_TYPEKIND_I4, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Get info to check if Field was reset + call ESMF_FieldGet(field, typekind=typekind, grid=tmpGrid, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Check type + if (typekind /= ESMF_TYPEKIND_I4) then + rc= ESMF_FAILURE + return + endif + + ! Check Grid + call ESMF_GridGet(tmpGrid, name=tmpName, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + if (trim(tmpName) /= "testgrid2") then + rc= ESMF_FAILURE + return + endif + + + ! Get rid of Field and Grid + call ESMF_FieldDestroy(field, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_GridDestroy(grid1, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_GridDestroy(grid2, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + end subroutine test_FieldEmptyReset + + diff --git a/src/Infrastructure/Field/tests/ESMF_FieldGatherUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldGatherUTest.F90 index 43c6786df8..a4edc30513 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldGatherUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldGatherUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldHaloUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldHaloUTest.F90 index d301082729..32905edb39 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldHaloUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldHaloUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldIOUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldIOUTest.F90 index 0de1f4ce27..bd617dd505 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldIOUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldLSSMMUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldLSSMMUTest.F90 index b5bfd02e75..7918625ca5 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldLSSMMUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldLSSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldMeshSMMUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldMeshSMMUTest.F90 index a4c56309d3..4ce3aeeef7 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldMeshSMMUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldMeshSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRedistArbUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRedistArbUTest.F90 index 5d04dd7a96..de96c8d0de 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRedistArbUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRedistArbUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRedistUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRedistUTest.F90 index 922a33d430..619f58b49a 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRedistUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRedistUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridCSUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridCSUTest.F90 index ed569bbed2..63cf79e77f 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridCSUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridCSUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrv2ndUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrv2ndUTest.F90 index bb88507ecc..f409878718 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrv2ndUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrv2ndUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrvUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrvUTest.F90 index f74e8c2583..9be284d93b 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrvUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridCsrvUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridUTest.F90 index 97007e3763..9fc3fec9d9 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1549,6 +1549,22 @@ program ESMF_FieldRegridUTest ! return result call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + ! Test regrid matrix + write(failMsg, *) "Test unsuccessful" + write(name, *) "Test transpose regrid routeHandle." + + ! initialize + rc=ESMF_SUCCESS + + ! do test + call test_regrid_transpose(rc) + + ! return result + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ #endif #endif @@ -46924,8 +46940,589 @@ end subroutine test_sph_vec_blnr_csG_to_llG_p + subroutine test_regrid_transpose(rc) + integer, intent(out) :: rc + logical :: correct + integer :: localrc + type(ESMF_Grid) :: srcGrid + type(ESMF_Grid) :: dstGrid + type(ESMF_Field) :: srcField + type(ESMF_Field) :: dstField + type(ESMF_Field) :: tmpField + type(ESMF_Field) :: xdstField + type(ESMF_Field) :: xsrcField + type(ESMF_Array) :: dstArray + type(ESMF_Array) :: srcArray + type(ESMF_Array) :: tmpArray + type(ESMF_RouteHandle) :: routeHandle + type(ESMF_RouteHandle) :: transposeRouteHandle + type(ESMF_ArraySpec) :: arrayspec + type(ESMF_VM) :: vm + real(ESMF_KIND_R8), pointer :: farrayPtrXC(:,:) + real(ESMF_KIND_R8), pointer :: farrayPtrYC(:,:) + real(ESMF_KIND_R8), pointer :: farrayPtr1DXC(:) + real(ESMF_KIND_R8), pointer :: farrayPtr1DYC(:) + real(ESMF_KIND_R8), pointer :: farrayPtr(:,:,:), farrayPtr2(:,:) + real(ESMF_KIND_R8), pointer :: xfarrayPtr(:,:,:) + real(ESMF_KIND_R8), pointer :: tmpfarrayPtr(:,:) + integer :: clbnd(2),cubnd(2) + integer :: fclbnd(3),fcubnd(3) + integer :: i1,i2,i3, index(2) + integer :: lDE, srclocalDECount, dstlocalDECount + real(ESMF_KIND_R8) :: coord(2) + character(len=ESMF_MAXSTR) :: string + integer src_nx, src_ny, dst_nx, dst_ny + integer num_arrays + real(ESMF_KIND_R8) :: dx,dy - - + real(ESMF_KIND_R8) :: src_dx, src_dy + real(ESMF_KIND_R8) :: dst_dx, dst_dy + + real(ESMF_KIND_R8) :: lon, lat, theta, phi + real(ESMF_KIND_R8), parameter :: DEG2RAD = 3.141592653589793/180.0_ESMF_KIND_R8 + + integer :: localPet, petCount + + ! result code + integer :: finalrc + + ! init success flag + correct=.true. + + rc=ESMF_SUCCESS + + ! get pet info + call ESMF_VMGetGlobal(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMGet(vm, petCount=petCount, localPet=localpet, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + + ! Src Grid + srcGrid=ESMF_GridCreate1PeriDimUfrm(maxIndex=(/180,180/),& + minCornerCoord=(/0.0_ESMF_KIND_R8,-90.0_ESMF_KIND_R8/), & + maxCornerCoord=(/360.0_ESMF_KIND_R8,90.0_ESMF_KIND_R8/), & + regDecomp=(/1,petCount/), & + staggerLocList=(/ESMF_STAGGERLOC_CENTER/), & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Src Field + srcField = ESMF_FieldCreate(srcGrid, typekind=ESMF_TYPEKIND_R8, & + ungriddedLBound=(/1/), ungriddedUBound=(/2/), & ! 2D vector + staggerloc=ESMF_STAGGERLOC_CENTER, name="source", rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Exact src Field + xsrcField = ESMF_FieldCreate(srcGrid, typekind=ESMF_TYPEKIND_R8, & + ungriddedLBound=(/1/), ungriddedUBound=(/2/), & ! 2D vector + staggerloc=ESMF_STAGGERLOC_CENTER, name="source exact", rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Get srcArray from Field + call ESMF_FieldGet(srcField, array=srcArray, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Get number of local DEs + call ESMF_GridGet(srcGrid, localDECount=srclocalDECount, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Destination grid + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + + ! Setup dest. grid + ! Make a grid that still matches up with identical points, but is + ! only the center, so that matrix is identity, but the src/dst indices aren't + ! the same, this'll let us test the transponse where the indices will change. + dstGrid=ESMF_GridCreate1PeriDimUfrm(maxIndex=(/180,90/),& + minCornerCoord=(/0.0_ESMF_KIND_R8,-45.0_ESMF_KIND_R8/), & + maxCornerCoord=(/360.0_ESMF_KIND_R8,45.0_ESMF_KIND_R8/), & + regDecomp=(/1,petCount/), & + staggerLocList=(/ESMF_STAGGERLOC_CENTER/), & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Create Fields + dstField = ESMF_FieldCreate(dstGrid, typekind=ESMF_TYPEKIND_R8, & + ungriddedLBound=(/1/), ungriddedUBound=(/2/), & ! 2D vector + staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + xdstField = ESMF_FieldCreate(dstGrid, typekind=ESMF_TYPEKIND_R8, & + ungriddedLBound=(/1/), ungriddedUBound=(/2/), & ! 2D vector + staggerloc=ESMF_STAGGERLOC_CENTER, name="xdest", rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Get dstArray from Field + call ESMF_FieldGet(dstField, array=dstArray, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Get number of local DEs + call ESMF_GridGet(dstGrid, localDECount=dstlocalDECount, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + +#if 0 + call ESMF_GridWriteVTK(srcGrid,staggerloc=ESMF_STAGGERLOC_CENTER, & + filename="srcGrid", rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif +#endif + + !! Create routehandles + call ESMF_FieldRegridStore( & + srcField, & + dstField=dstField, & + routeHandle=routeHandle, & + transposeRouteHandle=transposeRouteHandle, & + regridmethod=ESMF_REGRIDMETHOD_NEAREST_STOD, & ! Gives a nice matrix full of just 1.0 + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + + !!!!! Forward direction fill Src and init Dst and check results !!!! + + + ! Fill src data + do lDE=0,srclocalDECount-1 + + !! get coord 1 + call ESMF_GridGetCoord(srcGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=1, & + farrayPtr=farrayPtr1DXC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridGetCoord(srcGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=2, & + farrayPtr=farrayPtr1DYC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! get src pointer + call ESMF_FieldGet(srcField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + !! Set Field value + do i1=fclbnd(1),fcubnd(1) + + ! Get X coord from Grid + lon = farrayPtr1DXC(i1) + theta = DEG2RAD*(lon) + + do i2=fclbnd(2),fcubnd(2) + + ! Get Y coord from Grid + lat = farrayPtr1DYC(i2) + phi = DEG2RAD*(90.-lat) + + ! initialize source field to lon and lat + farrayPtr(i1,i2,1)=lon + farrayPtr(i1,i2,2)=lat + enddo + enddo + + enddo ! lDE + + ! Init Dst and set exact answers + do lDE=0,dstlocalDECount-1 + + !! get coords + call ESMF_GridGetCoord(dstGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=1, & + farrayPtr=farrayPtr1DXC,rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridGetCoord(dstGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=2, & + farrayPtr=farrayPtr1DYC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + call ESMF_FieldGet(dstField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + call ESMF_FieldGet(xdstField, lDE, xfarrayPtr, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !! Set Field value + do i1=fclbnd(1),fcubnd(1) + + ! Get X coord from Grid + lon = farrayPtr1DXC(i1) + theta = DEG2RAD*(lon) + + do i2=fclbnd(2),fcubnd(2) + + ! Get Y coord from Grid + lat = farrayPtr1DYC(i2) + phi = DEG2RAD*(90.-lat) + + ! Init exact field to lon and lat + xfarrayPtr(i1,i2,1) = lon + xfarrayPtr(i1,i2,2) = lat + + ! initialize destination field + farrayPtr(i1,i2,1)=1000.0 + farrayPtr(i1,i2,2)=1000.0 + enddo + enddo + + enddo ! lDE + + ! Do regrid + call ESMF_FieldRegrid(srcField, dstField, routeHandle, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Check results + do lDE=0,dstlocalDECount-1 + + call ESMF_FieldGet(dstField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_FieldGet(xdstField, lDE, xfarrayPtr, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !! Make sure things look ok + do i1=fclbnd(1),fcubnd(1) + do i2=fclbnd(2),fcubnd(2) + do i3=fclbnd(3),fcubnd(3) + ! if working everything should be close to exact answer + if (abs(farrayPtr(i1,i2,i3)-xfarrayPtr(i1,i2,i3)) .gt. 1.0E-10) then + ! write(*,*) i1,i2,i3," ",farrayPtr(i1,i2,i3),xfarrayPtr(i1,i2,i3) + correct=.false. + endif + enddo + enddo + enddo + + enddo ! lDE + +#if 0 + call ESMF_GridWriteVTK(srcGrid,staggerloc=ESMF_STAGGERLOC_CENTER, & + filename="srcGrid", array1=srcArray, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridWriteVTK(dstGrid,staggerloc=ESMF_STAGGERLOC_CENTER, & + filename="dstGrid", array1=dstArray, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif +#endif + + ! Get rid of forward routehandle + call ESMF_FieldRegridRelease(routeHandle, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + + !!!!! Backward direction fill Dst and init Src and check results !!!! + + + ! Fill dst data + do lDE=0,dstlocalDECount-1 + + !! get coords + call ESMF_GridGetCoord(dstGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=1, & + farrayPtr=farrayPtr1DXC,rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridGetCoord(dstGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=2, & + farrayPtr=farrayPtr1DYC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + call ESMF_FieldGet(dstField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !! Set Field value + do i1=fclbnd(1),fcubnd(1) + + ! Get X coord from Grid + lon = farrayPtr1DXC(i1) + theta = DEG2RAD*(lon) + + do i2=fclbnd(2),fcubnd(2) + + ! Get Y coord from Grid + lat = farrayPtr1DYC(i2) + phi = DEG2RAD*(90.-lat) + + ! initialize destination field + farrayPtr(i1,i2,1)=lon + farrayPtr(i1,i2,2)=lat + enddo + enddo + + enddo ! lDE + + + ! Init Src and set exact answers + do lDE=0,srclocalDECount-1 + + !! get coord 1 + call ESMF_GridGetCoord(srcGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=1, & + farrayPtr=farrayPtr1DXC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridGetCoord(srcGrid, localDE=lDE, staggerLoc=ESMF_STAGGERLOC_CENTER, coordDim=2, & + farrayPtr=farrayPtr1DYC, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! get src pointer + call ESMF_FieldGet(srcField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + ! Get exact src pointer + call ESMF_FieldGet(xsrcField, lDE, xfarrayPtr, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !! Set Field value + do i1=fclbnd(1),fcubnd(1) + + ! Get X coord from Grid + lon = farrayPtr1DXC(i1) + theta = DEG2RAD*(lon) + + do i2=fclbnd(2),fcubnd(2) + + ! Get Y coord from Grid + lat = farrayPtr1DYC(i2) + phi = DEG2RAD*(90.-lat) + + ! initialize source field to bad value + farrayPtr(i1,i2,1)=1000.00 + farrayPtr(i1,i2,2)=1000.00 + + ! initialize exact source field to lon,lat + xfarrayPtr(i1,i2,1)=lon + xfarrayPtr(i1,i2,2)=lat + + enddo + enddo + + enddo ! lDE + + + ! Do traspose regrid + call ESMF_FieldRegrid(dstField, srcField, transposeRouteHandle, & + zeroregion=ESMF_REGION_SELECT, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + + ! Check results + do lDE=0,srclocalDECount-1 + + call ESMF_FieldGet(srcField, lDE, farrayPtr, & + computationalLBound=fclbnd, computationalUBound=fcubnd, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_FieldGet(xsrcField, lDE, xfarrayPtr, & + rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + !! Make sure things look ok + do i1=fclbnd(1),fcubnd(1) + do i2=fclbnd(2),fcubnd(2) + do i3=fclbnd(3),fcubnd(3) + + ! Skip values close to 1000.0 because those are the ones that + ! won't have been regridded to. + if (abs(farrayPtr(i1,i2,i3) - 1000.0) .lt. 1.0E-10) cycle + + ! if working everything should be close to exact answer + if (abs(farrayPtr(i1,i2,i3)-xfarrayPtr(i1,i2,i3)) .gt. 1.0E-10) then +! write(*,*) "T:",i1,i2,i3," ",farrayPtr(i1,i2,i3),xfarrayPtr(i1,i2,i3) + correct=.false. + endif + enddo + enddo + enddo + + enddo ! lDE + + + + ! Get rid of transpose routehandle + call ESMF_FieldRegridRelease(transposeRouteHandle, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Destroy the Fields + call ESMF_FieldDestroy(srcField, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_FieldDestroy(dstField, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + + ! Free the grids + call ESMF_GridDestroy(srcGrid, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + call ESMF_GridDestroy(dstGrid, rc=localrc) + if (localrc /=ESMF_SUCCESS) then + rc=ESMF_FAILURE + return + endif + + ! return answer based on correct flag + if (correct) then + rc=ESMF_SUCCESS + else + rc=ESMF_FAILURE + endif + + end subroutine test_regrid_transpose end program ESMF_FieldRegridUTest diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridXGSMMUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridXGSMMUTest.F90 index 62bd63713d..3f32fe02d1 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridXGSMMUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridXGSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldRegridXGUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldRegridXGUTest.F90 index 535837c66a..2961d3991c 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldRegridXGUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldRegridXGUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldSMMFromFileUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldSMMFromFileUTest.F90 index f38e0dce2a..81bb4cead1 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldSMMFromFileUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldSMMFromFileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldSMMUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldSMMUTest.F90 index 5bc49211ab..54726c3d8c 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldSMMUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldStressUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldStressUTest.F90 index b83884e235..81e401016e 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldStressUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldStressUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Field/tests/ESMF_FieldUTest.F90 b/src/Infrastructure/Field/tests/ESMF_FieldUTest.F90 index abd460cf34..574d6b715d 100644 --- a/src/Infrastructure/Field/tests/ESMF_FieldUTest.F90 +++ b/src/Infrastructure/Field/tests/ESMF_FieldUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleHaloEx.F90 b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleHaloEx.F90 index 87e82b7cfb..6fc0676ac5 100644 --- a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleHaloEx.F90 +++ b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleHaloEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleRedistEx.F90 b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleRedistEx.F90 index 45267d9248..c7cb92340b 100644 --- a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleRedistEx.F90 +++ b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleRedistEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleSMMEx.F90 b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleSMMEx.F90 index e0864f80ed..16ac45fb59 100644 --- a/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleSMMEx.F90 +++ b/src/Infrastructure/FieldBundle/examples/ESMF_FieldBundleSMMEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/interface/ESMCI_FieldBundle_F.C b/src/Infrastructure/FieldBundle/interface/ESMCI_FieldBundle_F.C index 1f0edf7a88..4a37320b3b 100644 --- a/src/Infrastructure/FieldBundle/interface/ESMCI_FieldBundle_F.C +++ b/src/Infrastructure/FieldBundle/interface/ESMCI_FieldBundle_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/interface/ESMF_FieldBundle_C.F90 b/src/Infrastructure/FieldBundle/interface/ESMF_FieldBundle_C.F90 index 6cbba80a56..eff7405379 100644 --- a/src/Infrastructure/FieldBundle/interface/ESMF_FieldBundle_C.F90 +++ b/src/Infrastructure/FieldBundle/interface/ESMF_FieldBundle_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/src/ESMF_FieldBundle.cppF90 b/src/Infrastructure/FieldBundle/src/ESMF_FieldBundle.cppF90 index 9e2a21aab0..7616cf659e 100644 --- a/src/Infrastructure/FieldBundle/src/ESMF_FieldBundle.cppF90 +++ b/src/Infrastructure/FieldBundle/src/ESMF_FieldBundle.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1705,7 +1705,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ! Private name; call using ESMF_FieldBundleGet() subroutine ESMF_FieldBundleGetListAll(fieldbundle, keywordEnforcer, & itemorderflag, geomtype, grid, locstream, mesh, xgrid, & - fieldCount, fieldList, fieldNameList, isPacked, name, rc) + fieldCount, fieldList, fieldNameList, isPacked, name, vm, rc) ! ! !ARGUMENTS: type(ESMF_FieldBundle), intent(in) :: fieldbundle @@ -1721,6 +1721,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below character(len=*), intent(out), optional :: fieldNameList(:) logical, intent(out), optional :: isPacked character(len=*), intent(out), optional :: name + type(ESMF_VM), intent(out), optional :: vm integer, intent(out), optional :: rc ! ! !STATUS: @@ -1733,6 +1734,8 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ! the items are returned. ! \item[8.0.0] Added argument {\tt isPacked}. ! The new argument allows the user to query if this is a packed FieldBundle. +! \item[8.8.0] Added argument {\tt vm} in order to offer information about the +! VM on which the FieldBundle was created. ! \end{description} ! \end{itemize} ! @@ -1771,7 +1774,9 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ! \item [{[isPacked]}] ! Upon return holds the information if this FieldBundle is packed. ! \item [{[name]}] -! Name of the fieldbundle object. +! Name of the FieldBundle object. +! \item [{[vm}] +! The VM on which the FieldBundle object was created. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -1960,7 +1965,13 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ESMF_CONTEXT, rcToReturn=rc)) return endif endif - + + if (present(vm)) then + call ESMF_GetVM(fieldbundle%this%base, vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + ! Return successfully if (present(rc)) rc = ESMF_SUCCESS diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleCrGetUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleCrGetUTest.F90 index 3dcdb65e19..0760eaf92b 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleCrGetUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleCrGetUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleIOUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleIOUTest.F90 index c629b23202..659f349d64 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleIOUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRedistUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRedistUTest.F90 index 9f84c98bfb..abbc72ada9 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRedistUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRedistUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRegridUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRegridUTest.F90 index 826b44e16b..a0c0bcd16b 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRegridUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleRegridUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleSMMUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleSMMUTest.F90 index cb62487666..e756b4e6db 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleSMMUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleSMMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleUTest.F90 b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleUTest.F90 index 478f13742b..d14cad6a73 100644 --- a/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleUTest.F90 +++ b/src/Infrastructure/FieldBundle/tests/ESMF_FieldBundleUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Geom/interface/ESMCI_Geom_F.C b/src/Infrastructure/Geom/interface/ESMCI_Geom_F.C index 69dcf63896..dc971587ff 100644 --- a/src/Infrastructure/Geom/interface/ESMCI_Geom_F.C +++ b/src/Infrastructure/Geom/interface/ESMCI_Geom_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Geom/src/ESMF_Geom.F90 b/src/Infrastructure/Geom/src/ESMF_Geom.F90 index 353a95b840..dfdc64de20 100644 --- a/src/Infrastructure/Geom/src/ESMF_Geom.F90 +++ b/src/Infrastructure/Geom/src/ESMF_Geom.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Geom/tests/ESMF_GeomUTest.F90 b/src/Infrastructure/Geom/tests/ESMF_GeomUTest.F90 index d8f70af5d6..4e484124e6 100644 --- a/src/Infrastructure/Geom/tests/ESMF_GeomUTest.F90 +++ b/src/Infrastructure/Geom/tests/ESMF_GeomUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -75,6 +75,7 @@ program ESMF_GeomUTest !------------------------------------------------------------------------ !NEX_UTest + ! Testing ESMF_GeomOperator(==)() write(name, *) "Geom equality before assignment Test" write(failMsg, *) "Did not return ESMF_SUCCESS" shouldBeFalse = (geom1 == geom2) @@ -89,6 +90,7 @@ program ESMF_GeomUTest !------------------------------------------------------------------------ !NEX_UTest + ! Testing ESMF_GeomAssignment(=)() write(name, *) "Geom equality with alias test" write(failMsg, *) "Did not return ESMF_SUCCESS" @@ -113,6 +115,7 @@ program ESMF_GeomUTest !------------------------------------------------------------------------ !NEX_UTest + ! Testing ESMF_GeomOperator(/=)() write(name, *) "Geom inequality with two different geoms" write(failMsg, *) "Did not return ESMF_SUCCESS" diff --git a/src/Infrastructure/Grid/doc/Grid.bib b/src/Infrastructure/Grid/doc/Grid.bib index 377b0d3bec..16c533c192 100644 --- a/src/Infrastructure/Grid/doc/Grid.bib +++ b/src/Infrastructure/Grid/doc/Grid.bib @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_cdesc.tex b/src/Infrastructure/Grid/doc/Grid_cdesc.tex index 7f37cc3510..a574b12dc0 100644 --- a/src/Infrastructure/Grid/doc/Grid_cdesc.tex +++ b/src/Infrastructure/Grid/doc/Grid_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_crefdoc.ctex b/src/Infrastructure/Grid/doc/Grid_crefdoc.ctex index 1b4844109c..d961b4665f 100644 --- a/src/Infrastructure/Grid/doc/Grid_crefdoc.ctex +++ b/src/Infrastructure/Grid/doc/Grid_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_desc.tex b/src/Infrastructure/Grid/doc/Grid_desc.tex index 41b0adeeef..95a1c2f0a7 100644 --- a/src/Infrastructure/Grid/doc/Grid_desc.tex +++ b/src/Infrastructure/Grid/doc/Grid_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_desdoc.bib b/src/Infrastructure/Grid/doc/Grid_desdoc.bib index 6743e655b6..23b7f86529 100644 --- a/src/Infrastructure/Grid/doc/Grid_desdoc.bib +++ b/src/Infrastructure/Grid/doc/Grid_desdoc.bib @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_glos.tex b/src/Infrastructure/Grid/doc/Grid_glos.tex index 59cf840c00..9d113d1652 100644 --- a/src/Infrastructure/Grid/doc/Grid_glos.tex +++ b/src/Infrastructure/Grid/doc/Grid_glos.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_obj.tex b/src/Infrastructure/Grid/doc/Grid_obj.tex index 230e8802a4..fac4a14646 100644 --- a/src/Infrastructure/Grid/doc/Grid_obj.tex +++ b/src/Infrastructure/Grid/doc/Grid_obj.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_refdoc.ctex b/src/Infrastructure/Grid/doc/Grid_refdoc.ctex index 46669dce87..3bbd0d35bc 100644 --- a/src/Infrastructure/Grid/doc/Grid_refdoc.ctex +++ b/src/Infrastructure/Grid/doc/Grid_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/doc/Grid_req.tex b/src/Infrastructure/Grid/doc/Grid_req.tex index 433f20c3b6..ed470ee7c7 100644 --- a/src/Infrastructure/Grid/doc/Grid_req.tex +++ b/src/Infrastructure/Grid/doc/Grid_req.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/examples/ESMF_GridCreateFromF90ArraysEx.F90 b/src/Infrastructure/Grid/examples/ESMF_GridCreateFromF90ArraysEx.F90 index 372cc5b5ce..147ed28dd2 100644 --- a/src/Infrastructure/Grid/examples/ESMF_GridCreateFromF90ArraysEx.F90 +++ b/src/Infrastructure/Grid/examples/ESMF_GridCreateFromF90ArraysEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/examples/ESMF_GridCreateRegFromDGEx.F90 b/src/Infrastructure/Grid/examples/ESMF_GridCreateRegFromDGEx.F90 index ad941ed850..20fc0a761a 100644 --- a/src/Infrastructure/Grid/examples/ESMF_GridCreateRegFromDGEx.F90 +++ b/src/Infrastructure/Grid/examples/ESMF_GridCreateRegFromDGEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/examples/ESMF_GridCreateSph2DPlus1Ex.F90 b/src/Infrastructure/Grid/examples/ESMF_GridCreateSph2DPlus1Ex.F90 index 1447cd4196..f6083b49ca 100644 --- a/src/Infrastructure/Grid/examples/ESMF_GridCreateSph2DPlus1Ex.F90 +++ b/src/Infrastructure/Grid/examples/ESMF_GridCreateSph2DPlus1Ex.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/examples/ESMF_GridCreateTripoleEx.F90 b/src/Infrastructure/Grid/examples/ESMF_GridCreateTripoleEx.F90 index 696f8c696a..01a01e3ddd 100644 --- a/src/Infrastructure/Grid/examples/ESMF_GridCreateTripoleEx.F90 +++ b/src/Infrastructure/Grid/examples/ESMF_GridCreateTripoleEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/examples/ESMF_GridUsageEx.F90 b/src/Infrastructure/Grid/examples/ESMF_GridUsageEx.F90 index 84c2c760b5..771b8861bc 100644 --- a/src/Infrastructure/Grid/examples/ESMF_GridUsageEx.F90 +++ b/src/Infrastructure/Grid/examples/ESMF_GridUsageEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/include/ESMCI_Grid.h b/src/Infrastructure/Grid/include/ESMCI_Grid.h index cd7c2c46e0..d347321b17 100644 --- a/src/Infrastructure/Grid/include/ESMCI_Grid.h +++ b/src/Infrastructure/Grid/include/ESMCI_Grid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/include/ESMC_Grid.h b/src/Infrastructure/Grid/include/ESMC_Grid.h index f2b929279c..cc8ae19d5c 100644 --- a/src/Infrastructure/Grid/include/ESMC_Grid.h +++ b/src/Infrastructure/Grid/include/ESMC_Grid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/interface/ESMCI_Grid_F.C b/src/Infrastructure/Grid/interface/ESMCI_Grid_F.C index edfaf56bdc..63357bd21e 100644 --- a/src/Infrastructure/Grid/interface/ESMCI_Grid_F.C +++ b/src/Infrastructure/Grid/interface/ESMCI_Grid_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -474,254 +474,265 @@ void c_esmc_grid_get_from_proto(ESMCI::Grid **_grid, // Get Grid pointer grid=*_grid; - decompType = grid->getDecompType(); - - //Initialize return code - localrc = ESMC_RC_NOT_IMPL; - if (_rc!=NULL) *_rc = ESMC_RC_NOT_IMPL; - - // make sure status is correct - if (grid->getStatus() < ESMC_GRIDSTATUS_SHAPE_READY) { - - // Get information from the protogrid - c_esmc_grid_get_from_proto(_grid, - _coordTypeKind, - _dimCount, - _tileCount, - _distgrid, - _staggerLocCount, - _distgridToGridMap, - _coordSys, - _coordDimCount, - _arbDim, - _rank, - _arbDimCount, - _coordDimMap, - _gridEdgeLWidth, - _gridEdgeUWidth, - _gridAlign, - _indexflag, - _localDECount, - &localrc); - if(ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU, - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc))) return; - - // return success - if (_rc!=NULL) *_rc = ESMF_SUCCESS; - return; - } - - // Use grid access methods to retrieve information separately - // I'm a little leary of putting this much logic in an interface call, but - // it makes things less convoluted to do it this way. - - // get some useful info - distDimCount=grid->getDistDimCount(); - dimCount = grid->getDimCount(); - - // coordTypeKind - if (ESMC_NOT_PRESENT_FILTER(_coordTypeKind) != ESMC_NULL_POINTER) - *_coordTypeKind = grid->getTypeKind(); - - // dimCount - if (ESMC_NOT_PRESENT_FILTER(_dimCount) != ESMC_NULL_POINTER) - *_dimCount = dimCount; - - // localDeCount - if (ESMC_NOT_PRESENT_FILTER(_localDECount) != ESMC_NULL_POINTER) - *_localDECount = grid->getDistGrid()->getDELayout()->getLocalDeCount(); - - // tileCount - if (ESMC_NOT_PRESENT_FILTER(_tileCount) != ESMC_NULL_POINTER) - *_tileCount = grid->getTileCount(); - - // distgrid - if (ESMC_NOT_PRESENT_FILTER(_distgrid) != ESMC_NULL_POINTER) - *_distgrid = (ESMCI::DistGrid *)grid->getDistGrid(); - - // staggerLocCount - if (ESMC_NOT_PRESENT_FILTER(_staggerLocCount) != ESMC_NULL_POINTER) - *_staggerLocCount = grid->getStaggerLocCount(); - - // coordSys - if (ESMC_NOT_PRESENT_FILTER(_coordSys) != ESMC_NULL_POINTER) - *_coordSys = grid->getCoordSys(); - - // get distgridToGridMap - if (present(_distgridToGridMap)){ - // Error check - if ((_distgridToGridMap)->dimCount != 1){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- distgridToGridMap array must be of rank 1", ESMC_CONTEXT, - ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } + try{ + decompType = grid->getDecompType(); + + //Initialize return code + localrc = ESMC_RC_NOT_IMPL; + if (_rc!=NULL) *_rc = ESMC_RC_NOT_IMPL; + + // make sure status is correct + if (grid->getStatus() < ESMC_GRIDSTATUS_SHAPE_READY) { + + // Get information from the protogrid + c_esmc_grid_get_from_proto(_grid, + _coordTypeKind, + _dimCount, + _tileCount, + _distgrid, + _staggerLocCount, + _distgridToGridMap, + _coordSys, + _coordDimCount, + _arbDim, + _rank, + _arbDimCount, + _coordDimMap, + _gridEdgeLWidth, + _gridEdgeUWidth, + _gridAlign, + _indexflag, + _localDECount, + &localrc); + if(ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU, + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc))) return; + + // return success + if (_rc!=NULL) *_rc = ESMF_SUCCESS; + return; + } + + // Use grid access methods to retrieve information separately + // I'm a little leary of putting this much logic in an interface call, but + // it makes things less convoluted to do it this way. + + // get some useful info + distDimCount=grid->getDistDimCount(); + dimCount = grid->getDimCount(); + + // coordTypeKind + if (ESMC_NOT_PRESENT_FILTER(_coordTypeKind) != ESMC_NULL_POINTER) + *_coordTypeKind = grid->getTypeKind(); + + // dimCount + if (ESMC_NOT_PRESENT_FILTER(_dimCount) != ESMC_NULL_POINTER) + *_dimCount = dimCount; + + // localDeCount + if (ESMC_NOT_PRESENT_FILTER(_localDECount) != ESMC_NULL_POINTER) + *_localDECount = grid->getDistGrid()->getDELayout()->getLocalDeCount(); + + // tileCount + if (ESMC_NOT_PRESENT_FILTER(_tileCount) != ESMC_NULL_POINTER) + *_tileCount = grid->getTileCount(); + + // distgrid + if (ESMC_NOT_PRESENT_FILTER(_distgrid) != ESMC_NULL_POINTER) + *_distgrid = (ESMCI::DistGrid *)grid->getDistGrid(); + + // staggerLocCount + if (ESMC_NOT_PRESENT_FILTER(_staggerLocCount) != ESMC_NULL_POINTER) + *_staggerLocCount = grid->getStaggerLocCount(); + + // coordSys + if (ESMC_NOT_PRESENT_FILTER(_coordSys) != ESMC_NULL_POINTER) + *_coordSys = grid->getCoordSys(); + + // get distgridToGridMap + if (present(_distgridToGridMap)){ + // Error check + if ((_distgridToGridMap)->dimCount != 1){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- distgridToGridMap array must be of rank 1", ESMC_CONTEXT, + ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } - if (decompType == ESMC_GRID_NONARBITRARY) { - if ((_distgridToGridMap)->extent[0] < dimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- distgridToGridMap array must be of size = the distributed rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - // fill in distgridToGridMap, and convert it to 1-based - distgridToGridMap=grid->getDistgridToGridMap(); - for (int i=0; iarray[i]=distgridToGridMap[i]+1; - } - } else { - int totaldim = (_distgridToGridMap)->extent[0]; - if (totaldim < distDimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- distgridToGridMap array must be of size = the distributed rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - // fill in distgridToGridMap, and convert it to 1-based - distgridToGridMap=grid->getDistgridToGridMap(); - for (int i=0; iarray[i]=distgridToGridMap[i]+1; - } - for (int i=distDimCount; iarray[i]=0; - } + if (decompType == ESMC_GRID_NONARBITRARY) { + if ((_distgridToGridMap)->extent[0] < dimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- distgridToGridMap array must be of size = the distributed rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in distgridToGridMap, and convert it to 1-based + distgridToGridMap=grid->getDistgridToGridMap(); + for (int i=0; iarray[i]=distgridToGridMap[i]+1; + } + } else { + int totaldim = (_distgridToGridMap)->extent[0]; + if (totaldim < distDimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- distgridToGridMap array must be of size = the distributed rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in distgridToGridMap, and convert it to 1-based + distgridToGridMap=grid->getDistgridToGridMap(); + for (int i=0; iarray[i]=distgridToGridMap[i]+1; + } + for (int i=distDimCount; iarray[i]=0; + } + } } - } - // get coordDimCount - if (present(_coordDimCount)){ - // Error check - if ((_coordDimCount)->dimCount != 1){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- coordDimCount array must be of rank 1", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - if ((_coordDimCount)->extent[0] < dimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- coordDimCount array must be of size = the rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; + // get coordDimCount + if (present(_coordDimCount)){ + // Error check + if ((_coordDimCount)->dimCount != 1){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- coordDimCount array must be of rank 1", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + if ((_coordDimCount)->extent[0] < dimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- coordDimCount array must be of size = the rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in coordDimCount + memcpy((_coordDimCount)->array, grid->getCoordDimCount(), sizeof(int) * dimCount); } - // fill in coordDimCount - memcpy((_coordDimCount)->array, grid->getCoordDimCount(), sizeof(int) * dimCount); - } - // get coordDimMap - if (present(_coordDimMap)){ - // Error check - if ((_coordDimMap)->dimCount != 2){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- coordDimMap array must be of rank 2", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - if (((_coordDimMap)->extent[0] < dimCount) || ((_coordDimMap)->extent[1] < dimCount)){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- coordDimMap array must be of size = the rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - // fill in coordDimMap - int k=0; - int **coordDimMap=grid->getCoordDimMap(); - for (int i=0; iarray[k]=coordDimMap[j][i]+1; // Convert back to 1-based - k++; + // get coordDimMap + if (present(_coordDimMap)){ + // Error check + if ((_coordDimMap)->dimCount != 2){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- coordDimMap array must be of rank 2", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + if (((_coordDimMap)->extent[0] < dimCount) || ((_coordDimMap)->extent[1] < dimCount)){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- coordDimMap array must be of size = the rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in coordDimMap + int k=0; + int **coordDimMap=grid->getCoordDimMap(); + for (int i=0; iarray[k]=coordDimMap[j][i]+1; // Convert back to 1-based + k++; + } } } - } - // find number of dimensions distributed arbitrarily - dimCount1 = grid->getDistGrid()->getDimCount(); - distDimCount = dimCount - dimCount1 + 1; + // find number of dimensions distributed arbitrarily + dimCount1 = grid->getDistGrid()->getDimCount(); + distDimCount = dimCount - dimCount1 + 1; - // get arbDim - if (ESMC_NOT_PRESENT_FILTER(_arbDim) != ESMC_NULL_POINTER) { - *_arbDim = grid->getArbDim(); - } - - // get rank -- same as distGrid dimCount - if (ESMC_NOT_PRESENT_FILTER(_rank) != ESMC_NULL_POINTER) { - *_rank = dimCount1; - } - - // get arbDimCount - if (ESMC_NOT_PRESENT_FILTER(_arbDimCount) != ESMC_NULL_POINTER) { - if (decompType == ESMC_GRID_NONARBITRARY) { - *_arbDimCount = 0; - } else { - *_arbDimCount = distDimCount; + // get arbDim + if (ESMC_NOT_PRESENT_FILTER(_arbDim) != ESMC_NULL_POINTER) { + *_arbDim = grid->getArbDim(); } - } - // get gridEdgeLWidth - if (present(_gridEdgeLWidth)){ - // Error check - if ((_gridEdgeLWidth)->dimCount != 1){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- gridEdgeLWidth array must be of rank 1", ESMC_CONTEXT, - ESMC_NOT_PRESENT_FILTER(_rc)); - return; + // get rank -- same as distGrid dimCount + if (ESMC_NOT_PRESENT_FILTER(_rank) != ESMC_NULL_POINTER) { + *_rank = dimCount1; } - if ((_gridEdgeLWidth)->extent[0] < dimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- gridEdgeLWidth array must be of size = the rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - // fill in gridEdgeLWidth - memcpy((_gridEdgeLWidth)->array, grid->getGridEdgeLWidth(), sizeof(int) * dimCount); - } - // get gridEdgeUWidth - if (present(_gridEdgeUWidth)){ - // Error check - if ((_gridEdgeUWidth)->dimCount != 1){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- gridEdgeUWidth array must be of rank 1", ESMC_CONTEXT, - ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - if ((_gridEdgeUWidth)->extent[0] < dimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- gridEdgeUWidth array must be of size = the rank of the Grid", - ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); - return; + // get arbDimCount + if (ESMC_NOT_PRESENT_FILTER(_arbDimCount) != ESMC_NULL_POINTER) { + if (decompType == ESMC_GRID_NONARBITRARY) { + *_arbDimCount = 0; + } else { + *_arbDimCount = distDimCount; + } } - // fill in gridEdgeUWidth - memcpy((_gridEdgeUWidth)->array, grid->getGridEdgeUWidth(), sizeof(int) * dimCount); - } - // get gridAlign - if (present(_gridAlign)){ - // Error check - if ((_gridAlign)->dimCount != 1){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, - "- gridAlign array must be of rank 1", ESMC_CONTEXT, - ESMC_NOT_PRESENT_FILTER(_rc)); - return; - } - if ((_gridAlign)->extent[0] < dimCount){ - ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, - "- gridAlign array must be of size = the rank of the Grid", ESMC_CONTEXT, - ESMC_NOT_PRESENT_FILTER(_rc)); - return; + // get gridEdgeLWidth + if (present(_gridEdgeLWidth)){ + // Error check + if ((_gridEdgeLWidth)->dimCount != 1){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- gridEdgeLWidth array must be of rank 1", ESMC_CONTEXT, + ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + if ((_gridEdgeLWidth)->extent[0] < dimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- gridEdgeLWidth array must be of size = the rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in gridEdgeLWidth + memcpy((_gridEdgeLWidth)->array, grid->getGridEdgeLWidth(), sizeof(int) * dimCount); + } + + // get gridEdgeUWidth + if (present(_gridEdgeUWidth)){ + // Error check + if ((_gridEdgeUWidth)->dimCount != 1){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- gridEdgeUWidth array must be of rank 1", ESMC_CONTEXT, + ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + if ((_gridEdgeUWidth)->extent[0] < dimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- gridEdgeUWidth array must be of size = the rank of the Grid", + ESMC_CONTEXT, ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in gridEdgeUWidth + memcpy((_gridEdgeUWidth)->array, grid->getGridEdgeUWidth(), sizeof(int) * dimCount); + } + + // get gridAlign + if (present(_gridAlign)){ + // Error check + if ((_gridAlign)->dimCount != 1){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_RANK, + "- gridAlign array must be of rank 1", ESMC_CONTEXT, + ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + if ((_gridAlign)->extent[0] < dimCount){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_SIZE, + "- gridAlign array must be of size = the rank of the Grid", ESMC_CONTEXT, + ESMC_NOT_PRESENT_FILTER(_rc)); + return; + } + // fill in gridAlign + memcpy((_gridAlign)->array, grid->getGridAlign(), sizeof(int) * dimCount); } - // fill in gridAlign - memcpy((_gridAlign)->array, grid->getGridAlign(), sizeof(int) * dimCount); - } - - - - // indexflag - if (ESMC_NOT_PRESENT_FILTER(_indexflag) != ESMC_NULL_POINTER) - *_indexflag = grid->getIndexFlag(); + // indexflag + if (ESMC_NOT_PRESENT_FILTER(_indexflag) != ESMC_NULL_POINTER) + *_indexflag = grid->getIndexFlag(); + }catch(int localrc){ + if (ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU, + ESMC_CONTEXT, _rc)) + return; // bail out + }catch(std::exception &x){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_INTNRL_BAD, x.what(), ESMC_CONTEXT, + _rc); + return; // bail out + }catch(...){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_INTNRL_BAD, "- Caught exception", + ESMC_CONTEXT, _rc); + return; + } // return success if (_rc!=NULL) *_rc = ESMF_SUCCESS; } diff --git a/src/Infrastructure/Grid/interface/ESMC_Grid.C b/src/Infrastructure/Grid/interface/ESMC_Grid.C index ba3f4ab832..e1ded0466e 100644 --- a/src/Infrastructure/Grid/interface/ESMC_Grid.C +++ b/src/Infrastructure/Grid/interface/ESMC_Grid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/interface/ESMF_Grid.F90 b/src/Infrastructure/Grid/interface/ESMF_Grid.F90 index 2eb34ef289..1f7a6869e6 100644 --- a/src/Infrastructure/Grid/interface/ESMF_Grid.F90 +++ b/src/Infrastructure/Grid/interface/ESMF_Grid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/interface/ESMF_Grid_C.F90 b/src/Infrastructure/Grid/interface/ESMF_Grid_C.F90 index c2b309e964..56579c89a1 100644 --- a/src/Infrastructure/Grid/interface/ESMF_Grid_C.F90 +++ b/src/Infrastructure/Grid/interface/ESMF_Grid_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/interface/ESMF_StaggerLoc.F90 b/src/Infrastructure/Grid/interface/ESMF_StaggerLoc.F90 index d9b695efce..f07b85254e 100644 --- a/src/Infrastructure/Grid/interface/ESMF_StaggerLoc.F90 +++ b/src/Infrastructure/Grid/interface/ESMF_StaggerLoc.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/src/ESMCI_Grid.C b/src/Infrastructure/Grid/src/ESMCI_Grid.C index ead8fa3c1a..22c5af4295 100644 --- a/src/Infrastructure/Grid/src/ESMCI_Grid.C +++ b/src/Infrastructure/Grid/src/ESMCI_Grid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/tests/ESMC_GridUTest.c b/src/Infrastructure/Grid/tests/ESMC_GridUTest.c index 33fde6eda0..b76c3114dd 100644 --- a/src/Infrastructure/Grid/tests/ESMC_GridUTest.c +++ b/src/Infrastructure/Grid/tests/ESMC_GridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/tests/ESMF_GridArbitraryUTest.F90 b/src/Infrastructure/Grid/tests/ESMF_GridArbitraryUTest.F90 index a084625b9d..b4f7fe7723 100644 --- a/src/Infrastructure/Grid/tests/ESMF_GridArbitraryUTest.F90 +++ b/src/Infrastructure/Grid/tests/ESMF_GridArbitraryUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/tests/ESMF_GridCoordUTest.F90 b/src/Infrastructure/Grid/tests/ESMF_GridCoordUTest.F90 index 2749495634..1e4d9ce487 100644 --- a/src/Infrastructure/Grid/tests/ESMF_GridCoordUTest.F90 +++ b/src/Infrastructure/Grid/tests/ESMF_GridCoordUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/tests/ESMF_GridCreateUTest.F90 b/src/Infrastructure/Grid/tests/ESMF_GridCreateUTest.F90 index aefef96e73..3dffdc0eaf 100644 --- a/src/Infrastructure/Grid/tests/ESMF_GridCreateUTest.F90 +++ b/src/Infrastructure/Grid/tests/ESMF_GridCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Grid/tests/ESMF_GridItemUTest.F90 b/src/Infrastructure/Grid/tests/ESMF_GridItemUTest.F90 index 2e7cb2f2dc..20c0fba09d 100644 --- a/src/Infrastructure/Grid/tests/ESMF_GridItemUTest.F90 +++ b/src/Infrastructure/Grid/tests/ESMF_GridItemUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/include/ESMCI_GridToMesh.h b/src/Infrastructure/GridUtil/include/ESMCI_GridToMesh.h index 4b3cbdca74..9e0fcced72 100644 --- a/src/Infrastructure/GridUtil/include/ESMCI_GridToMesh.h +++ b/src/Infrastructure/GridUtil/include/ESMCI_GridToMesh.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/include/ESMCI_Ptypes.h b/src/Infrastructure/GridUtil/include/ESMCI_Ptypes.h index 17bd2de3e0..3eb64b8bea 100644 --- a/src/Infrastructure/GridUtil/include/ESMCI_Ptypes.h +++ b/src/Infrastructure/GridUtil/include/ESMCI_Ptypes.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/interface/ESMCI_GridUtil_F.C b/src/Infrastructure/GridUtil/interface/ESMCI_GridUtil_F.C index 077801faeb..a93a7e5bdd 100644 --- a/src/Infrastructure/GridUtil/interface/ESMCI_GridUtil_F.C +++ b/src/Infrastructure/GridUtil/interface/ESMCI_GridUtil_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/interface/ESMF_GridUtil.F90 b/src/Infrastructure/GridUtil/interface/ESMF_GridUtil.F90 index 1a2d6e757e..060eabde18 100644 --- a/src/Infrastructure/GridUtil/interface/ESMF_GridUtil.F90 +++ b/src/Infrastructure/GridUtil/interface/ESMF_GridUtil.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/src/ESMCI_GridToMesh.C b/src/Infrastructure/GridUtil/src/ESMCI_GridToMesh.C index 799867792d..b07764b324 100644 --- a/src/Infrastructure/GridUtil/src/ESMCI_GridToMesh.C +++ b/src/Infrastructure/GridUtil/src/ESMCI_GridToMesh.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/GridUtil/tests/ESMF_GridToMeshUTest.F90 b/src/Infrastructure/GridUtil/tests/ESMF_GridToMeshUTest.F90 index 2078c2dbed..14998d0dc1 100644 --- a/src/Infrastructure/GridUtil/tests/ESMF_GridToMeshUTest.F90 +++ b/src/Infrastructure/GridUtil/tests/ESMF_GridToMeshUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/doc/HConfig_desc.tex b/src/Infrastructure/HConfig/doc/HConfig_desc.tex index 34146b0905..05e9a8bcb9 100644 --- a/src/Infrastructure/HConfig/doc/HConfig_desc.tex +++ b/src/Infrastructure/HConfig/doc/HConfig_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/doc/HConfig_options.tex b/src/Infrastructure/HConfig/doc/HConfig_options.tex index 6ddb2ac4e6..8422249b31 100644 --- a/src/Infrastructure/HConfig/doc/HConfig_options.tex +++ b/src/Infrastructure/HConfig/doc/HConfig_options.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/doc/HConfig_refdoc.ctex b/src/Infrastructure/HConfig/doc/HConfig_refdoc.ctex index 9ff240e97f..57bd1a21f3 100644 --- a/src/Infrastructure/HConfig/doc/HConfig_refdoc.ctex +++ b/src/Infrastructure/HConfig/doc/HConfig_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/examples/ESMF_HConfigEx.F90 b/src/Infrastructure/HConfig/examples/ESMF_HConfigEx.F90 index b3469f7a59..e6d2131876 100644 --- a/src/Infrastructure/HConfig/examples/ESMF_HConfigEx.F90 +++ b/src/Infrastructure/HConfig/examples/ESMF_HConfigEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/include/ESMCI_HConfig.h b/src/Infrastructure/HConfig/include/ESMCI_HConfig.h index cc51f2ec95..48739e34cc 100644 --- a/src/Infrastructure/HConfig/include/ESMCI_HConfig.h +++ b/src/Infrastructure/HConfig/include/ESMCI_HConfig.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/interface/ESMCI_HConfig_F.C b/src/Infrastructure/HConfig/interface/ESMCI_HConfig_F.C index c8cec1773b..e72488aaec 100644 --- a/src/Infrastructure/HConfig/interface/ESMCI_HConfig_F.C +++ b/src/Infrastructure/HConfig/interface/ESMCI_HConfig_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/interface/ESMF_HConfig.F90 b/src/Infrastructure/HConfig/interface/ESMF_HConfig.F90 index 1c0d076bcc..81e3ab23d6 100644 --- a/src/Infrastructure/HConfig/interface/ESMF_HConfig.F90 +++ b/src/Infrastructure/HConfig/interface/ESMF_HConfig.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/src/ESMCI_HConfig.C b/src/Infrastructure/HConfig/src/ESMCI_HConfig.C index 8a523a75a0..918fe7e786 100644 --- a/src/Infrastructure/HConfig/src/ESMCI_HConfig.C +++ b/src/Infrastructure/HConfig/src/ESMCI_HConfig.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/HConfig/tests/ESMF_HConfigUTest.F90 b/src/Infrastructure/HConfig/tests/ESMF_HConfigUTest.F90 index 8f0d6596b4..f9123b7fd3 100644 --- a/src/Infrastructure/HConfig/tests/ESMF_HConfigUTest.F90 +++ b/src/Infrastructure/HConfig/tests/ESMF_HConfigUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO.h b/src/Infrastructure/IO/include/ESMCI_IO.h index 32300ee41f..c18051816f 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO.h +++ b/src/Infrastructure/IO/include/ESMCI_IO.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_Gridspec.h b/src/Infrastructure/IO/include/ESMCI_IO_Gridspec.h index 633e10b5fa..fb26c0b8e3 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_Gridspec.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_Gridspec.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_Handler.h b/src/Infrastructure/IO/include/ESMCI_IO_Handler.h index c61dea7df1..2b679a52a0 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_Handler.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_Handler.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_NetCDF.h b/src/Infrastructure/IO/include/ESMCI_IO_NetCDF.h index dc5df458ac..a98a93c0d3 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_NetCDF.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_NetCDF.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_Schema.h b/src/Infrastructure/IO/include/ESMCI_IO_Schema.h index 434070dc22..e0e3673911 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_Schema.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_Schema.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_Scrip.h b/src/Infrastructure/IO/include/ESMCI_IO_Scrip.h index 57500f601e..5669c5a841 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_Scrip.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_Scrip.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_XML.h b/src/Infrastructure/IO/include/ESMCI_IO_XML.h index a7660a5139..ff077ded1e 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_XML.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_XML.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_IO_YAML.h b/src/Infrastructure/IO/include/ESMCI_IO_YAML.h index 6b2e581870..2b0638be45 100644 --- a/src/Infrastructure/IO/include/ESMCI_IO_YAML.h +++ b/src/Infrastructure/IO/include/ESMCI_IO_YAML.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_PIO_Handler.h b/src/Infrastructure/IO/include/ESMCI_PIO_Handler.h index dc5f3dd0b2..08400a40f1 100644 --- a/src/Infrastructure/IO/include/ESMCI_PIO_Handler.h +++ b/src/Infrastructure/IO/include/ESMCI_PIO_Handler.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_SAX2ReadHandler.h b/src/Infrastructure/IO/include/ESMCI_SAX2ReadHandler.h index 9afef46f38..718d43341d 100644 --- a/src/Infrastructure/IO/include/ESMCI_SAX2ReadHandler.h +++ b/src/Infrastructure/IO/include/ESMCI_SAX2ReadHandler.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMCI_SAX2WriteHandler.h b/src/Infrastructure/IO/include/ESMCI_SAX2WriteHandler.h index 6fa95124d4..0f2229e660 100644 --- a/src/Infrastructure/IO/include/ESMCI_SAX2WriteHandler.h +++ b/src/Infrastructure/IO/include/ESMCI_SAX2WriteHandler.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/ESMC_IOScrip2ESMF.h b/src/Infrastructure/IO/include/ESMC_IOScrip2ESMF.h index dc4bd6850e..969a890753 100644 --- a/src/Infrastructure/IO/include/ESMC_IOScrip2ESMF.h +++ b/src/Infrastructure/IO/include/ESMC_IOScrip2ESMF.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/include/esmf_io_debug.h b/src/Infrastructure/IO/include/esmf_io_debug.h index aa0013a1da..958b79a40b 100644 --- a/src/Infrastructure/IO/include/esmf_io_debug.h +++ b/src/Infrastructure/IO/include/esmf_io_debug.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMCI_IO_F.C b/src/Infrastructure/IO/interface/ESMCI_IO_F.C index 2c016e0c21..9b86abef12 100644 --- a/src/Infrastructure/IO/interface/ESMCI_IO_F.C +++ b/src/Infrastructure/IO/interface/ESMCI_IO_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMCI_IO_NetCDF_F.C b/src/Infrastructure/IO/interface/ESMCI_IO_NetCDF_F.C index bc64fd18d8..2da20e1593 100644 --- a/src/Infrastructure/IO/interface/ESMCI_IO_NetCDF_F.C +++ b/src/Infrastructure/IO/interface/ESMCI_IO_NetCDF_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMCI_IO_XML_F.C b/src/Infrastructure/IO/interface/ESMCI_IO_XML_F.C index 44d89f13a5..4ea602a84c 100644 --- a/src/Infrastructure/IO/interface/ESMCI_IO_XML_F.C +++ b/src/Infrastructure/IO/interface/ESMCI_IO_XML_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMCI_IO_YAML_F.C b/src/Infrastructure/IO/interface/ESMCI_IO_YAML_F.C index 9f21b0ddb2..818864db7a 100644 --- a/src/Infrastructure/IO/interface/ESMCI_IO_YAML_F.C +++ b/src/Infrastructure/IO/interface/ESMCI_IO_YAML_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMC_IOScrip2ESMF.C b/src/Infrastructure/IO/interface/ESMC_IOScrip2ESMF.C index 020d3adbcd..dc3d1111a3 100644 --- a/src/Infrastructure/IO/interface/ESMC_IOScrip2ESMF.C +++ b/src/Infrastructure/IO/interface/ESMC_IOScrip2ESMF.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMC_IO_Gridspec.C b/src/Infrastructure/IO/interface/ESMC_IO_Gridspec.C index 1646db50bd..b94c04671c 100644 --- a/src/Infrastructure/IO/interface/ESMC_IO_Gridspec.C +++ b/src/Infrastructure/IO/interface/ESMC_IO_Gridspec.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMC_IO_Scrip.C b/src/Infrastructure/IO/interface/ESMC_IO_Scrip.C index 8d04d8736e..fe0bd42978 100644 --- a/src/Infrastructure/IO/interface/ESMC_IO_Scrip.C +++ b/src/Infrastructure/IO/interface/ESMC_IO_Scrip.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO.F90 b/src/Infrastructure/IO/interface/ESMF_IO.F90 index ff1bfb4f71..b393765bad 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IO.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IOFileTypeCheck.F90 b/src/Infrastructure/IO/interface/ESMF_IOFileTypeCheck.F90 index 40c0e7a523..942cb7b77b 100644 --- a/src/Infrastructure/IO/interface/ESMF_IOFileTypeCheck.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IOFileTypeCheck.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IOGridmosaic.F90 b/src/Infrastructure/IO/interface/ESMF_IOGridmosaic.F90 index 9a09c0d0e3..b32fbf2a47 100644 --- a/src/Infrastructure/IO/interface/ESMF_IOGridmosaic.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IOGridmosaic.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IOGridspec.F90 b/src/Infrastructure/IO/interface/ESMF_IOGridspec.F90 index d7c30ac8e9..e36f38226e 100644 --- a/src/Infrastructure/IO/interface/ESMF_IOGridspec.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IOGridspec.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IOScrip.F90 b/src/Infrastructure/IO/interface/ESMF_IOScrip.F90 index 8d2890f8a0..2cbe7afb63 100644 --- a/src/Infrastructure/IO/interface/ESMF_IOScrip.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IOScrip.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IOUGrid.F90 b/src/Infrastructure/IO/interface/ESMF_IOUGrid.F90 index bd35afd7a8..4e8ce964e1 100644 --- a/src/Infrastructure/IO/interface/ESMF_IOUGrid.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IOUGrid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO_Gridspec_C.F90 b/src/Infrastructure/IO/interface/ESMF_IO_Gridspec_C.F90 index 5d9380124e..ba2e4f3889 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO_Gridspec_C.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IO_Gridspec_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO_NCPutGet.cppF90 b/src/Infrastructure/IO/interface/ESMF_IO_NCPutGet.cppF90 index 3aa68ac893..34092f2b61 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO_NCPutGet.cppF90 +++ b/src/Infrastructure/IO/interface/ESMF_IO_NCPutGet.cppF90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO_NetCDF.F90 b/src/Infrastructure/IO/interface/ESMF_IO_NetCDF.F90 index de48e325e6..c49295372a 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO_NetCDF.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IO_NetCDF.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO_Scrip_C.F90 b/src/Infrastructure/IO/interface/ESMF_IO_Scrip_C.F90 index 18a8496bd4..7cb3d167c2 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO_Scrip_C.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IO_Scrip_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/interface/ESMF_IO_YAML.F90 b/src/Infrastructure/IO/interface/ESMF_IO_YAML.F90 index a662fd5088..48ffe1274b 100644 --- a/src/Infrastructure/IO/interface/ESMF_IO_YAML.F90 +++ b/src/Infrastructure/IO/interface/ESMF_IO_YAML.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO.C b/src/Infrastructure/IO/src/ESMCI_IO.C index 9bbb7ceb77..3c9e5187f2 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO.C +++ b/src/Infrastructure/IO/src/ESMCI_IO.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_Gridspec.C b/src/Infrastructure/IO/src/ESMCI_IO_Gridspec.C index 59294db4dc..c3767060fd 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_Gridspec.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_Gridspec.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_Handler.C b/src/Infrastructure/IO/src/ESMCI_IO_Handler.C index d46b746204..65d80bd83d 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_Handler.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_Handler.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_NetCDF.C b/src/Infrastructure/IO/src/ESMCI_IO_NetCDF.C index 28d0d9fdac..88acb53dd5 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_NetCDF.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_NetCDF.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_Schema.C b/src/Infrastructure/IO/src/ESMCI_IO_Schema.C index 25cc6345e9..384c0805f7 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_Schema.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_Schema.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_Scrip.C b/src/Infrastructure/IO/src/ESMCI_IO_Scrip.C index c017586c48..3fb1bf32cb 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_Scrip.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_Scrip.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_XML.C b/src/Infrastructure/IO/src/ESMCI_IO_XML.C index 9072eb94a9..eaedd1c0da 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_XML.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_XML.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_IO_YAML.C b/src/Infrastructure/IO/src/ESMCI_IO_YAML.C index 409f3acfe4..8a9f554cd7 100644 --- a/src/Infrastructure/IO/src/ESMCI_IO_YAML.C +++ b/src/Infrastructure/IO/src/ESMCI_IO_YAML.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_PIO_Handler.C b/src/Infrastructure/IO/src/ESMCI_PIO_Handler.C index 5bd1b6adda..4bc42d3001 100644 --- a/src/Infrastructure/IO/src/ESMCI_PIO_Handler.C +++ b/src/Infrastructure/IO/src/ESMCI_PIO_Handler.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_SAX2ReadHandler.C b/src/Infrastructure/IO/src/ESMCI_SAX2ReadHandler.C index 953dcffe40..094f4dd736 100644 --- a/src/Infrastructure/IO/src/ESMCI_SAX2ReadHandler.C +++ b/src/Infrastructure/IO/src/ESMCI_SAX2ReadHandler.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/src/ESMCI_SAX2WriteHandler.C b/src/Infrastructure/IO/src/ESMCI_SAX2WriteHandler.C index ae96884588..db2ad46685 100644 --- a/src/Infrastructure/IO/src/ESMCI_SAX2WriteHandler.C +++ b/src/Infrastructure/IO/src/ESMCI_SAX2WriteHandler.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMCI_IO_NetCDFUTest.C b/src/Infrastructure/IO/tests/ESMCI_IO_NetCDFUTest.C index 08b27165f6..33dec39639 100644 --- a/src/Infrastructure/IO/tests/ESMCI_IO_NetCDFUTest.C +++ b/src/Infrastructure/IO/tests/ESMCI_IO_NetCDFUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMCI_IO_PIOUTest.C b/src/Infrastructure/IO/tests/ESMCI_IO_PIOUTest.C index 05d33007d2..0f60610475 100644 --- a/src/Infrastructure/IO/tests/ESMCI_IO_PIOUTest.C +++ b/src/Infrastructure/IO/tests/ESMCI_IO_PIOUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMC_IO_InqUTest.c b/src/Infrastructure/IO/tests/ESMC_IO_InqUTest.c index fe8d3ec5f6..412ee72080 100644 --- a/src/Infrastructure/IO/tests/ESMC_IO_InqUTest.c +++ b/src/Infrastructure/IO/tests/ESMC_IO_InqUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMF_IOUTest.F90 b/src/Infrastructure/IO/tests/ESMF_IOUTest.F90 index a524c7ff88..b1740870fd 100644 --- a/src/Infrastructure/IO/tests/ESMF_IOUTest.F90 +++ b/src/Infrastructure/IO/tests/ESMF_IOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMF_IO_FileTypeCheckUTest.F90 b/src/Infrastructure/IO/tests/ESMF_IO_FileTypeCheckUTest.F90 index 99d3b5e038..bbb531895c 100644 --- a/src/Infrastructure/IO/tests/ESMF_IO_FileTypeCheckUTest.F90 +++ b/src/Infrastructure/IO/tests/ESMF_IO_FileTypeCheckUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMF_IO_MultitileUTest.F90 b/src/Infrastructure/IO/tests/ESMF_IO_MultitileUTest.F90 index f94989b125..f66d447839 100644 --- a/src/Infrastructure/IO/tests/ESMF_IO_MultitileUTest.F90 +++ b/src/Infrastructure/IO/tests/ESMF_IO_MultitileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/IO/tests/ESMF_IO_YAMLUTest.F90 b/src/Infrastructure/IO/tests/ESMF_IO_YAMLUTest.F90 index db9f0dbe23..319122b286 100644 --- a/src/Infrastructure/IO/tests/ESMF_IO_YAMLUTest.F90 +++ b/src/Infrastructure/IO/tests/ESMF_IO_YAMLUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/doc/LocStream_crefdoc.ctex b/src/Infrastructure/LocStream/doc/LocStream_crefdoc.ctex index e087d60a32..c3603abc12 100644 --- a/src/Infrastructure/LocStream/doc/LocStream_crefdoc.ctex +++ b/src/Infrastructure/LocStream/doc/LocStream_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/doc/LocStream_desc.tex b/src/Infrastructure/LocStream/doc/LocStream_desc.tex index 09d7fb1e60..f84d43e284 100644 --- a/src/Infrastructure/LocStream/doc/LocStream_desc.tex +++ b/src/Infrastructure/LocStream/doc/LocStream_desc.tex @@ -1,6 +1,6 @@ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/doc/LocStream_refdoc.ctex b/src/Infrastructure/LocStream/doc/LocStream_refdoc.ctex index a2174c8469..029973da59 100644 --- a/src/Infrastructure/LocStream/doc/LocStream_refdoc.ctex +++ b/src/Infrastructure/LocStream/doc/LocStream_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/examples/ESMF_LocStreamEx.F90 b/src/Infrastructure/LocStream/examples/ESMF_LocStreamEx.F90 index 5ccd7230da..4dd4579334 100644 --- a/src/Infrastructure/LocStream/examples/ESMF_LocStreamEx.F90 +++ b/src/Infrastructure/LocStream/examples/ESMF_LocStreamEx.F90 @@ -1,6 +1,6 @@ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/include/ESMCI_LocStream.h b/src/Infrastructure/LocStream/include/ESMCI_LocStream.h index c06a2ab832..8c46f9de01 100644 --- a/src/Infrastructure/LocStream/include/ESMCI_LocStream.h +++ b/src/Infrastructure/LocStream/include/ESMCI_LocStream.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/include/ESMC_LocStream.h b/src/Infrastructure/LocStream/include/ESMC_LocStream.h index dd1506430d..0f3d3197d4 100644 --- a/src/Infrastructure/LocStream/include/ESMC_LocStream.h +++ b/src/Infrastructure/LocStream/include/ESMC_LocStream.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/interface/ESMCI_LocStream.C b/src/Infrastructure/LocStream/interface/ESMCI_LocStream.C index 98ca09bb6d..79d8724d40 100644 --- a/src/Infrastructure/LocStream/interface/ESMCI_LocStream.C +++ b/src/Infrastructure/LocStream/interface/ESMCI_LocStream.C @@ -1,7 +1,7 @@ //$1.10 2007/04/26 16:13:59 rosalind Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/interface/ESMCI_LocStream_F.C b/src/Infrastructure/LocStream/interface/ESMCI_LocStream_F.C index 4f56648c55..bce61d56cb 100644 --- a/src/Infrastructure/LocStream/interface/ESMCI_LocStream_F.C +++ b/src/Infrastructure/LocStream/interface/ESMCI_LocStream_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/interface/ESMC_LocStream.C b/src/Infrastructure/LocStream/interface/ESMC_LocStream.C index e8463b9e9b..3f78ca5997 100644 --- a/src/Infrastructure/LocStream/interface/ESMC_LocStream.C +++ b/src/Infrastructure/LocStream/interface/ESMC_LocStream.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/interface/ESMF_LocStream_C.F90 b/src/Infrastructure/LocStream/interface/ESMF_LocStream_C.F90 index e3e3210550..285a8e84ff 100644 --- a/src/Infrastructure/LocStream/interface/ESMF_LocStream_C.F90 +++ b/src/Infrastructure/LocStream/interface/ESMF_LocStream_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/src/ESMF_LocStream.F90 b/src/Infrastructure/LocStream/src/ESMF_LocStream.F90 index 3f828e318e..d23d42b5c8 100644 --- a/src/Infrastructure/LocStream/src/ESMF_LocStream.F90 +++ b/src/Infrastructure/LocStream/src/ESMF_LocStream.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/tests/ESMC_LocStreamUTest.c b/src/Infrastructure/LocStream/tests/ESMC_LocStreamUTest.c index 9001e7afa8..9a6956953e 100644 --- a/src/Infrastructure/LocStream/tests/ESMC_LocStreamUTest.c +++ b/src/Infrastructure/LocStream/tests/ESMC_LocStreamUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocStream/tests/ESMF_LocStreamUTest.F90 b/src/Infrastructure/LocStream/tests/ESMF_LocStreamUTest.F90 index 5873cad56a..10bb0c15a1 100644 --- a/src/Infrastructure/LocStream/tests/ESMF_LocStreamUTest.F90 +++ b/src/Infrastructure/LocStream/tests/ESMF_LocStreamUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/doc/LocalArray_refdoc.ctex b/src/Infrastructure/LocalArray/doc/LocalArray_refdoc.ctex index 9a69fc714e..321cab0d7b 100644 --- a/src/Infrastructure/LocalArray/doc/LocalArray_refdoc.ctex +++ b/src/Infrastructure/LocalArray/doc/LocalArray_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/include/ESMCI_LocalArray.h b/src/Infrastructure/LocalArray/include/ESMCI_LocalArray.h index c0d5acea81..156f8f4e77 100644 --- a/src/Infrastructure/LocalArray/include/ESMCI_LocalArray.h +++ b/src/Infrastructure/LocalArray/include/ESMCI_LocalArray.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMCI_LocalArray_F.C b/src/Infrastructure/LocalArray/interface/ESMCI_LocalArray_F.C index 8b8bb25a4a..f69ee02132 100644 --- a/src/Infrastructure/LocalArray/interface/ESMCI_LocalArray_F.C +++ b/src/Infrastructure/LocalArray/interface/ESMCI_LocalArray_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMF_LocalArray.F90 b/src/Infrastructure/LocalArray/interface/ESMF_LocalArray.F90 index 03d7968d98..5894a92985 100644 --- a/src/Infrastructure/LocalArray/interface/ESMF_LocalArray.F90 +++ b/src/Infrastructure/LocalArray/interface/ESMF_LocalArray.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayCreate.cppF90 b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayCreate.cppF90 index 5cdde2eb43..ebf0777008 100644 --- a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayCreate.cppF90 +++ b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayCreate.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayGet.cppF90 b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayGet.cppF90 index 9387b0c906..8b8082c65d 100644 --- a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayGet.cppF90 +++ b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayGet.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayWrapperType.cppF90 b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayWrapperType.cppF90 index aa54eb1705..ce228368a0 100644 --- a/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayWrapperType.cppF90 +++ b/src/Infrastructure/LocalArray/interface/ESMF_LocalArrayWrapperType.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/interface/ESMF_LocalArray_C.F90 b/src/Infrastructure/LocalArray/interface/ESMF_LocalArray_C.F90 index a45d27cfdc..1826aa67c9 100644 --- a/src/Infrastructure/LocalArray/interface/ESMF_LocalArray_C.F90 +++ b/src/Infrastructure/LocalArray/interface/ESMF_LocalArray_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/src/ESMCI_LocalArray.C b/src/Infrastructure/LocalArray/src/ESMCI_LocalArray.C index e0364648d2..c7dffa4c3d 100644 --- a/src/Infrastructure/LocalArray/src/ESMCI_LocalArray.C +++ b/src/Infrastructure/LocalArray/src/ESMCI_LocalArray.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LocalArray/tests/ESMF_LocalArrayDataUTest.F90 b/src/Infrastructure/LocalArray/tests/ESMF_LocalArrayDataUTest.F90 index e3d90c1600..1b36669357 100644 --- a/src/Infrastructure/LocalArray/tests/ESMF_LocalArrayDataUTest.F90 +++ b/src/Infrastructure/LocalArray/tests/ESMF_LocalArrayDataUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_background.tex b/src/Infrastructure/LogErr/doc/LogErr_background.tex index e6f44afda6..6b6aff3758 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_background.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_background.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_cdesc.tex b/src/Infrastructure/LogErr/doc/LogErr_cdesc.tex index 78b4398066..dc4b484f25 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_cdesc.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_cex.tex b/src/Infrastructure/LogErr/doc/LogErr_cex.tex index acb99a1e0a..68ddbc5235 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_cex.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_cex.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_coptions.tex b/src/Infrastructure/LogErr/doc/LogErr_coptions.tex index 97a4c53bf6..f4d891eca1 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_coptions.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_coptions.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_crefdoc.ctex b/src/Infrastructure/LogErr/doc/LogErr_crefdoc.ctex index 3db0fc9647..85e422922c 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_crefdoc.ctex +++ b/src/Infrastructure/LogErr/doc/LogErr_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_desc.tex b/src/Infrastructure/LogErr/doc/LogErr_desc.tex index 14847421eb..ec01d03da8 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_desc.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_desc.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_design.tex b/src/Infrastructure/LogErr/doc/LogErr_design.tex index 0858cb34a6..d87b52ab1c 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_design.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_design.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_implnotes.tex b/src/Infrastructure/LogErr/doc/LogErr_implnotes.tex index 83701cdd04..7dac1516e5 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_implnotes.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_implnotes.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_obj.tex b/src/Infrastructure/LogErr/doc/LogErr_obj.tex index 14da8d52bd..d9b20be256 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_obj.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_obj.tex @@ -1,7 +1,7 @@ %$Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_options.tex b/src/Infrastructure/LogErr/doc/LogErr_options.tex index ff749388c8..77b1a3233c 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_options.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_options.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_refdoc.ctex b/src/Infrastructure/LogErr/doc/LogErr_refdoc.ctex index e69af766e5..e1507d64b4 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_refdoc.ctex +++ b/src/Infrastructure/LogErr/doc/LogErr_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/doc/LogErr_rest.tex b/src/Infrastructure/LogErr/doc/LogErr_rest.tex index 67a429471d..23a98daeeb 100644 --- a/src/Infrastructure/LogErr/doc/LogErr_rest.tex +++ b/src/Infrastructure/LogErr/doc/LogErr_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/examples/ESMF_LogErrEx.F90 b/src/Infrastructure/LogErr/examples/ESMF_LogErrEx.F90 index f01994718b..b655c163e1 100644 --- a/src/Infrastructure/LogErr/examples/ESMF_LogErrEx.F90 +++ b/src/Infrastructure/LogErr/examples/ESMF_LogErrEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/include/ESMCI_ErrMsgs.C b/src/Infrastructure/LogErr/include/ESMCI_ErrMsgs.C index b013306c86..30403ca74a 100644 --- a/src/Infrastructure/LogErr/include/ESMCI_ErrMsgs.C +++ b/src/Infrastructure/LogErr/include/ESMCI_ErrMsgs.C @@ -1,7 +1,7 @@ //$Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/include/ESMCI_LogErr.h b/src/Infrastructure/LogErr/include/ESMCI_LogErr.h index 7f8c5e645c..e243cdba82 100644 --- a/src/Infrastructure/LogErr/include/ESMCI_LogErr.h +++ b/src/Infrastructure/LogErr/include/ESMCI_LogErr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/include/ESMC_LogErr.h b/src/Infrastructure/LogErr/include/ESMC_LogErr.h index 6130a5e670..3a21ef6ddb 100644 --- a/src/Infrastructure/LogErr/include/ESMC_LogErr.h +++ b/src/Infrastructure/LogErr/include/ESMC_LogErr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/interface/ESMCI_LogErr_F.C b/src/Infrastructure/LogErr/interface/ESMCI_LogErr_F.C index 92e6261b9c..861194e0c1 100644 --- a/src/Infrastructure/LogErr/interface/ESMCI_LogErr_F.C +++ b/src/Infrastructure/LogErr/interface/ESMCI_LogErr_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/interface/ESMC_LogErr.C b/src/Infrastructure/LogErr/interface/ESMC_LogErr.C index 93fe3cd7bb..2d58658c4f 100644 --- a/src/Infrastructure/LogErr/interface/ESMC_LogErr.C +++ b/src/Infrastructure/LogErr/interface/ESMC_LogErr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/interface/ESMF_LogErr_C.F90 b/src/Infrastructure/LogErr/interface/ESMF_LogErr_C.F90 index 6b71bce8a8..a5b8a256f9 100644 --- a/src/Infrastructure/LogErr/interface/ESMF_LogErr_C.F90 +++ b/src/Infrastructure/LogErr/interface/ESMF_LogErr_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/interface/ESMF_LogPublic.F90 b/src/Infrastructure/LogErr/interface/ESMF_LogPublic.F90 index 63681251ab..68027e4dbb 100644 --- a/src/Infrastructure/LogErr/interface/ESMF_LogPublic.F90 +++ b/src/Infrastructure/LogErr/interface/ESMF_LogPublic.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/src/ESMCI_LogErr.C b/src/Infrastructure/LogErr/src/ESMCI_LogErr.C index 579736934a..c59a996ff2 100644 --- a/src/Infrastructure/LogErr/src/ESMCI_LogErr.C +++ b/src/Infrastructure/LogErr/src/ESMCI_LogErr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMCI_LogErrPerfUTest.C b/src/Infrastructure/LogErr/tests/ESMCI_LogErrPerfUTest.C index f0176254ed..675130a7ca 100644 --- a/src/Infrastructure/LogErr/tests/ESMCI_LogErrPerfUTest.C +++ b/src/Infrastructure/LogErr/tests/ESMCI_LogErrPerfUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMCI_TestError.C b/src/Infrastructure/LogErr/tests/ESMCI_TestError.C index 19e24d9a3c..b5e708a6be 100644 --- a/src/Infrastructure/LogErr/tests/ESMCI_TestError.C +++ b/src/Infrastructure/LogErr/tests/ESMCI_TestError.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMC_LogErrUTest.c b/src/Infrastructure/LogErr/tests/ESMC_LogErrUTest.c index f267597491..823cacf97e 100644 --- a/src/Infrastructure/LogErr/tests/ESMC_LogErrUTest.c +++ b/src/Infrastructure/LogErr/tests/ESMC_LogErrUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMF_LogErrHaltUTest.F90 b/src/Infrastructure/LogErr/tests/ESMF_LogErrHaltUTest.F90 index 89ad88adc8..3dca1fc5c0 100644 --- a/src/Infrastructure/LogErr/tests/ESMF_LogErrHaltUTest.F90 +++ b/src/Infrastructure/LogErr/tests/ESMF_LogErrHaltUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMF_LogErrPerfUTest.F90 b/src/Infrastructure/LogErr/tests/ESMF_LogErrPerfUTest.F90 index 121f3a57fb..b232b8dae3 100644 --- a/src/Infrastructure/LogErr/tests/ESMF_LogErrPerfUTest.F90 +++ b/src/Infrastructure/LogErr/tests/ESMF_LogErrPerfUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/LogErr/tests/ESMF_LogErrUTest.F90 b/src/Infrastructure/LogErr/tests/ESMF_LogErrUTest.F90 index e3a72014a1..4ec0c03514 100644 --- a/src/Infrastructure/LogErr/tests/ESMF_LogErrUTest.F90 +++ b/src/Infrastructure/LogErr/tests/ESMF_LogErrUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/doc/Mesh_crefdoc.ctex b/src/Infrastructure/Mesh/doc/Mesh_crefdoc.ctex index 370ce1e19b..16c2195be3 100644 --- a/src/Infrastructure/Mesh/doc/Mesh_crefdoc.ctex +++ b/src/Infrastructure/Mesh/doc/Mesh_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/ESMCI_DCatEx.C b/src/Infrastructure/Mesh/examples/ESMCI_DCatEx.C index 99caa935f1..6d59e33f1f 100644 --- a/src/Infrastructure/Mesh/examples/ESMCI_DCatEx.C +++ b/src/Infrastructure/Mesh/examples/ESMCI_DCatEx.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/ESMCI_DPart.C b/src/Infrastructure/Mesh/examples/ESMCI_DPart.C index e1f41cc1a0..c0e9dd0cac 100644 --- a/src/Infrastructure/Mesh/examples/ESMCI_DPart.C +++ b/src/Infrastructure/Mesh/examples/ESMCI_DPart.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/ESMCI_RefineEx.C b/src/Infrastructure/Mesh/examples/ESMCI_RefineEx.C index 02a81c424e..5a1d8beb7c 100644 --- a/src/Infrastructure/Mesh/examples/ESMCI_RefineEx.C +++ b/src/Infrastructure/Mesh/examples/ESMCI_RefineEx.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/ESMCI_RendEx.C b/src/Infrastructure/Mesh/examples/ESMCI_RendEx.C index b9bd6104d8..16e8e20b99 100644 --- a/src/Infrastructure/Mesh/examples/ESMCI_RendEx.C +++ b/src/Infrastructure/Mesh/examples/ESMCI_RendEx.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/ESMF_MeshEx.F90 b/src/Infrastructure/Mesh/examples/ESMF_MeshEx.F90 index 4ce3565c7e..abe808780c 100644 --- a/src/Infrastructure/Mesh/examples/ESMF_MeshEx.F90 +++ b/src/Infrastructure/Mesh/examples/ESMF_MeshEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/examples/MeshCat b/src/Infrastructure/Mesh/examples/MeshCat index 9d6fc43f19..0159fe332e 100755 --- a/src/Infrastructure/Mesh/examples/MeshCat +++ b/src/Infrastructure/Mesh/examples/MeshCat @@ -2,7 +2,7 @@ # $Id$ # # Earth System Modeling Framework -# Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +# Copyright (c) 2002-2025, University Corporation for Atmospheric Research, # Massachusetts Institute of Technology, Geophysical Fluid Dynamics # Laboratory, University of Michigan, National Centers for Environmental # Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_ClumpPnts.h b/src/Infrastructure/Mesh/include/ESMCI_ClumpPnts.h index 1cb65bf0d8..fe7f68ba54 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_ClumpPnts.h +++ b/src/Infrastructure/Mesh/include/ESMCI_ClumpPnts.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_ESMFMesh_Util.h b/src/Infrastructure/Mesh/include/ESMCI_ESMFMesh_Util.h index 58408dc2e3..11b9ce1199 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_ESMFMesh_Util.h +++ b/src/Infrastructure/Mesh/include/ESMCI_ESMFMesh_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_FileIO_Util.h b/src/Infrastructure/Mesh/include/ESMCI_FileIO_Util.h index 53afbb0eda..74944ce4aa 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_FileIO_Util.h +++ b/src/Infrastructure/Mesh/include/ESMCI_FileIO_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_GToM_Util.h b/src/Infrastructure/Mesh/include/ESMCI_GToM_Util.h index 7910a42932..39eb18d156 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_GToM_Util.h +++ b/src/Infrastructure/Mesh/include/ESMCI_GToM_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh.h index 6fc5ed7c81..6fdaecd194 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_BBox.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_BBox.h index 11e26f6585..9239533483 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_BBox.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_BBox.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Bilinear.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Bilinear.h index b02e458c9f..fec98f8c2a 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Bilinear.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Bilinear.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Conserve.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Conserve.h index e00b8531f1..414aed9274 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Conserve.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Conserve.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Dual.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Dual.h index ab22c184de..d3adeaf6f9 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Dual.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Dual.h @@ -1,6 +1,6 @@ // $Id: ESMCI_Search.h,v 1.13 2012/11/13 22:22:41 oehmke Exp $ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Extrapolation.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Extrapolation.h index dbcf1a7753..a87220a773 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Extrapolation.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Extrapolation.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_GToM_Glue.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_GToM_Glue.h index 03b63f2586..cb0391dcf6 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_GToM_Glue.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_GToM_Glue.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Glue.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Glue.h index e961602095..d281a391d1 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Glue.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Glue.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Mapping.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Mapping.h index c49074ee71..1ea40ffcc8 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Mapping.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Mapping.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Patch.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Patch.h index 1f7a7aab03..c8f757c505 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Patch.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Patch.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Redist.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Redist.h index 91e1b4ca8a..b080e9eadc 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Redist.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Redist.h @@ -1,6 +1,6 @@ // $Id: ESMCI_Search.h,v 1.13 2012/11/13 22:22:41 oehmke Exp $ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Regrid_Glue.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Regrid_Glue.h index a60fc59c8b..d2ed294ae2 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Regrid_Glue.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Regrid_Glue.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_Elem.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_Elem.h index 83c56654c7..c3f71bf8ea 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_Elem.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_Elem.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_EtoP.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_EtoP.h index dc866e6555..3c691fdd03 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_EtoP.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Rendez_EtoP.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search.h index 0de3117fd4..9cb744ad5b 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoE.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoE.h index f194a9a9a7..727ac2ef43 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoE.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoE.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoP.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoP.h index 3f9c5688bd..9d2d9e67b9 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoP.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Search_EtoP.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_ShapeFunc.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_ShapeFunc.h index 40aaafcf30..4c5f49efad 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_ShapeFunc.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_ShapeFunc.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Types.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Types.h index c1ac3876b1..a1676320b2 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Types.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Types.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Util.h b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Util.h index 46618ede62..bfd75596a4 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Util.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MBMesh_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_MathUtil.h b/src/Infrastructure/Mesh/include/ESMCI_MathUtil.h index 41e2df7579..f3364c4270 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_MathUtil.h +++ b/src/Infrastructure/Mesh/include/ESMCI_MathUtil.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/ESMCI_Mesh.h b/src/Infrastructure/Mesh/include/ESMCI_Mesh.h index fe24b9ca8a..cbc601146d 100644 --- a/src/Infrastructure/Mesh/include/ESMCI_Mesh.h +++ b/src/Infrastructure/Mesh/include/ESMCI_Mesh.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -148,8 +148,8 @@ ESMCI::PointList *MeshToPointList(ESMC_MeshLoc_Flag meshLoc, ESMCI::InterArray #include #include +#include namespace ESMCI { + + /** *\brief generate a mesh based on the nodes and cells vector. The cells are unique and refer to the nodes. * @param[in] sintd_nodes vector to allocated intersecting nodal points @@ -291,7 +294,7 @@ double gcdistance(double * v1, double * v2); void calc_wgts_from_side_mesh_to_xgrid(Mesh *src_side_mesh, Mesh *dst_xgrid_mesh, IWeights &wts); void calc_wgts_from_xgrid_to_side_mesh(Mesh *src_xgrid_mesh, Mesh *dst_side_mesh, IWeights &wts); - +void XGridGatherOverlappingElems(Mesh &srcMesh, Mesh &dstMesh, SearchResult &result); // Debugging apis void cart2sph(int num_p, const double *p, double *lonlat); @@ -305,7 +308,12 @@ void test_clip3D(int pdim, int sdim, int num_s, double * s_coord, int num_c, dou void dump_sph_coords(int num, const double * coord); void dump_cart_coords(int num, const double * coord, bool only_sph=false); void dump_polygon(const polygon & poly, bool only_sph=false); - + + // Whether XGrid is being used for regridding + enum XGRID_USE {XGRID_USE_NONE, XGRID_USE_SRC, XGRID_USE_DST}; + + // Deterimine if the input meshes have XGrid regridding information and if so what type + XGRID_USE detect_xgrid_regrid_info_type(Mesh &srcmesh, Mesh &dstmesh); } // namespace diff --git a/src/Infrastructure/Mesh/include/ESMC_Mesh.h b/src/Infrastructure/Mesh/include/ESMC_Mesh.h index 44846e8474..211f5f9915 100644 --- a/src/Infrastructure/Mesh/include/ESMC_Mesh.h +++ b/src/Infrastructure/Mesh/include/ESMC_Mesh.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Attr.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Attr.h index 557d823755..ef8976dd0f 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Attr.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Attr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_BBox.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_BBox.h index 743b441d7e..21db18fefc 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_BBox.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_BBox.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommReg.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommReg.h index 0511ffc99f..a958815d19 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommReg.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommReg.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommRel.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommRel.h index a698edea49..80407e421a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommRel.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_CommRel.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Context.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Context.h index ca8d379695..cf3e748278 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Context.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Context.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_DDir.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_DDir.h index e3ecfe781c..9061706d0c 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_DDir.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_DDir.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Exception.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Exception.h index c4552a758f..cf2d0d24f8 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Exception.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Exception.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_FieldReg.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_FieldReg.h index 7e4dc9380a..de3c172ecc 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_FieldReg.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_FieldReg.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_FindPnts.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_FindPnts.h index e79ed5633c..429e59f196 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_FindPnts.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_FindPnts.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Ftn.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Ftn.h index b351ba5b16..bbce75f049 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Ftn.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Ftn.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_GeomRendezvous.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_GeomRendezvous.h index 14022deafc..51c52adf45 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_GeomRendezvous.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_GeomRendezvous.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_GlobalIds.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_GlobalIds.h index fbc51a06f8..50412bfb27 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_GlobalIds.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_GlobalIds.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_HAdapt.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_HAdapt.h index c670d4a15b..8e5a34f1b5 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_HAdapt.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_HAdapt.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_IOField.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_IOField.h index ab9a88f904..dd8a08745d 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_IOField.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_IOField.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Iterator.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Iterator.h index f13003b7fd..92d80fcc51 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Iterator.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Iterator.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Kernel.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Kernel.h index 232735067e..d664e03978 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Kernel.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Kernel.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_List.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_List.h index 0fe272a848..5bfd42fd00 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_List.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_List.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MCoord.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MCoord.h index 52438bc64e..fc975ced20 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MCoord.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MCoord.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEFamily.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEFamily.h index e3651b9d0c..bfd7d090de 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEFamily.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEFamily.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEField.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEField.h index d681998fd6..c7b5739450 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEField.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEField.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEImprint.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEImprint.h index a3d4cc4e37..dafc3d831a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEImprint.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEImprint.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEValues.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEValues.h index 6b3bb00010..c297b23245 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEValues.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MEValues.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Mask.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Mask.h index 45afeccdc4..8070ea8c3f 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Mask.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Mask.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MasterElement.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MasterElement.h index c9a03e611c..7373f98fc3 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MasterElement.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MasterElement.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshContext.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshContext.h index 808fc2d9e8..db0f3d3ce6 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshContext.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshContext.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshDB.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshDB.h index 1e84122346..6cb74b2adf 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshDB.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshDB.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshExodus.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshExodus.h index 5ffd54af70..afe2ae496b 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshExodus.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshExodus.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshField.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshField.h index 0cfc1f5eb0..d7772c3707 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshField.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshField.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshGen.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshGen.h index e00540aada..cb07e2783f 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshGen.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshGen.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshMerge.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshMerge.h index b1174d0ce2..7747ead208 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshMerge.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshMerge.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshNC.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshNC.h index 8abed95352..4be2788997 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshNC.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshNC.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObj.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObj.h index 3ba7463db2..57bbc9e56b 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObj.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObj.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjConn.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjConn.h index 2173e1e07a..bea6e71939 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjConn.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjConn.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjPack.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjPack.h index c08939bcbc..6b0230e702 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjPack.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjPack.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjTopo.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjTopo.h index 50afa71654..5d1f8ecfb1 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjTopo.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshObjTopo.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPNC.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPNC.h index 4af39fb62d..10f6b6decc 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPNC.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPNC.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPartition.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPartition.h index 2e3a4e003d..aa29d5e6fd 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPartition.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshPartition.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRead.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRead.h index b28e0f5141..daa140df1a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRead.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRead.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRefine.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRefine.h index ca37e29e93..30de6f1e3d 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRefine.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshRefine.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSet.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSet.h index aa9a0eb502..5a41378ebb 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSet.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSet.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSkin.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSkin.h index ac2f5017b9..f9fe54e3c8 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSkin.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshSkin.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTests.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTests.h index f65abe680e..b51d6406fd 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTests.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTests.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTypes.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTypes.h index 377cb83b0f..078ca0942a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTypes.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshTypes.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshUtils.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshUtils.h index f44a300c25..33df53506a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshUtils.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshUtils.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshVTK.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshVTK.h index 7ac6138437..3ba949b6b6 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshVTK.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshVTK.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshllField.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshllField.h index 7d6578f708..305e874149 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshllField.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_MeshllField.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Migrator.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Migrator.h index a7d723e7c1..853ee62a89 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Migrator.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Migrator.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParEnv.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParEnv.h index a2879a88f9..a6f8375911 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParEnv.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParEnv.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParLog.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParLog.h index 91f50413ef..55f12388c1 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParLog.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ParLog.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Polynomial.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Polynomial.h index 28d8fdef3b..1ec33c38fe 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Polynomial.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Polynomial.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Quadrature.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Quadrature.h index f7ec4a40ff..38ac1bfd00 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Quadrature.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Quadrature.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Rebalance.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Rebalance.h index 8fbb3c1abb..a60860857e 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Rebalance.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Rebalance.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_RefineTopo.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_RefineTopo.h index 383f12cbfa..206bd8d9b3 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_RefineTopo.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_RefineTopo.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SFuncAdaptor.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SFuncAdaptor.h index 7265f646d6..f5802f4851 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SFuncAdaptor.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SFuncAdaptor.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SM.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SM.h index 1197ac7133..2a4bf18e2d 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SM.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SM.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -20,6 +20,9 @@ namespace ESMCI { int dst_index; } SM_CELL; + + void sort_SM_CELLS_by_dst_id(std::vector *sm_cells, std::vector &dst_elems); + void create_SM_cells_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, double *src_elem_area, @@ -28,6 +31,21 @@ namespace ESMCI { std::vector *tmp_valid, std::vector *tmp_sintd_areas_out, std::vector *tmp_dst_areas_out, std::vector *sm_cells); + void create_dst_xgrid_SM_cells_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells); + + void create_src_xgrid_SM_cells_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells); + + void create_SM_cells_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, @@ -37,6 +55,22 @@ namespace ESMCI { std::vector *tmp_valid, std::vector *tmp_sintd_areas_out, std::vector *tmp_dst_areas_out, std::vector *sm_cells); + void create_dst_xgrid_SM_cells_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells); + + void create_src_xgrid_SM_cells_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells); + + + } // namespace #endif diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ShapeLagrange.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ShapeLagrange.h index 3bba07ae28..163a699e3c 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_ShapeLagrange.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_ShapeLagrange.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Sintdnode.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Sintdnode.h index 1e9047cef0..15924a80ba 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Sintdnode.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Sintdnode.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SmallAlloc.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SmallAlloc.h index b92e978776..b79a9f7722 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SmallAlloc.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SmallAlloc.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SparseMsg.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SparseMsg.h index 288b442c82..2f29a478c9 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_SparseMsg.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_SparseMsg.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Tree.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Tree.h index 383278f61b..d2ec471d3a 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_Tree.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_Tree.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeights.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeights.h index 4a85e718a2..8d433c2f94 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeights.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeights.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeightsPar.h b/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeightsPar.h index 994fcfa942..2d251ffcfa 100644 --- a/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeightsPar.h +++ b/src/Infrastructure/Mesh/include/Legacy/ESMCI_WriteWeightsPar.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Conserve2ndInterp.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Conserve2ndInterp.h index 8976903683..5ddebae0f5 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Conserve2ndInterp.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Conserve2ndInterp.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -21,6 +21,7 @@ #include #include #include +#include #include @@ -53,7 +54,7 @@ namespace ESMCI { #endif void calc_2nd_order_weights_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, MEField<> *src_mask_field, - std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, XGRID_USE xgrid_use, double *src_elem_area, std::vector *valid, std::vector *wgts, @@ -64,7 +65,7 @@ namespace ESMCI { ); void calc_2nd_order_weights_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, MEField<> *src_mask_field, - std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, XGRID_USE xgrid_use, double *src_elem_area, std::vector *valid, std::vector *wgts, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ConserveInterp.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ConserveInterp.h index 4661ca7955..302326d1c7 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ConserveInterp.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ConserveInterp.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_CreepFill.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_CreepFill.h index ce9e272a37..392d77c5ea 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_CreepFill.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_CreepFill.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Extrap.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Extrap.h index 8ea195870e..9903a40550 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Extrap.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Extrap.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ExtrapolationPoleLGC.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ExtrapolationPoleLGC.h index 28441ea5ff..769b8dfbbf 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ExtrapolationPoleLGC.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ExtrapolationPoleLGC.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Integrate.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Integrate.h index 61e927abe5..7b77722af2 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Integrate.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Integrate.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Interp.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Interp.h index 6644a025a8..ff129ece69 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Interp.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Interp.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Mapping.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Mapping.h index 906c32a269..ea489b8c11 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Mapping.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Mapping.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_MeshRegrid.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_MeshRegrid.h index 4cc3bbec47..bdbec9abb3 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_MeshRegrid.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_MeshRegrid.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_PatchRecovery.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_PatchRecovery.h index beabd27d35..26144ef40e 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_PatchRecovery.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_PatchRecovery.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Regrid_Helper.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Regrid_Helper.h index ce01d44325..7d95ff4078 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Regrid_Helper.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Regrid_Helper.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Search.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Search.h index deaa87a172..d1101fde71 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_Search.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_Search.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_SearchFlags.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_SearchFlags.h index 477359f1df..5211b24f69 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_SearchFlags.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_SearchFlags.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ShapeFunc.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ShapeFunc.h index 89f50892ed..0a38e931e1 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_ShapeFunc.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_ShapeFunc.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_SpaceDir.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_SpaceDir.h index efae7436e2..f42e21955a 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_SpaceDir.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_SpaceDir.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/include/Regridding/ESMCI_WMat.h b/src/Infrastructure/Mesh/include/Regridding/ESMCI_WMat.h index c079854439..bea3820718 100644 --- a/src/Infrastructure/Mesh/include/Regridding/ESMCI_WMat.h +++ b/src/Infrastructure/Mesh/include/Regridding/ESMCI_WMat.h @@ -1,6 +1,6 @@ // $Id$ // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/interface/ESMCI_Mesh_F.C b/src/Infrastructure/Mesh/interface/ESMCI_Mesh_F.C index c5e0440bf9..b22854fd12 100644 --- a/src/Infrastructure/Mesh/interface/ESMCI_Mesh_F.C +++ b/src/Infrastructure/Mesh/interface/ESMCI_Mesh_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/interface/ESMC_Mesh.C b/src/Infrastructure/Mesh/interface/ESMC_Mesh.C index 485617379b..afa1b77567 100644 --- a/src/Infrastructure/Mesh/interface/ESMC_Mesh.C +++ b/src/Infrastructure/Mesh/interface/ESMC_Mesh.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/interface/ESMF_Mesh.F90 b/src/Infrastructure/Mesh/interface/ESMF_Mesh.F90 index 33a4576ae0..8fd6e2b5c5 100644 --- a/src/Infrastructure/Mesh/interface/ESMF_Mesh.F90 +++ b/src/Infrastructure/Mesh/interface/ESMF_Mesh.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/interface/ESMF_Mesh_C.F90 b/src/Infrastructure/Mesh/interface/ESMF_Mesh_C.F90 index 5f3d495564..68fb9e21d7 100644 --- a/src/Infrastructure/Mesh/interface/ESMF_Mesh_C.F90 +++ b/src/Infrastructure/Mesh/interface/ESMF_Mesh_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_ClumpPnts.C b/src/Infrastructure/Mesh/src/ESMCI_ClumpPnts.C index 5898a01f54..165beeb062 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_ClumpPnts.C +++ b/src/Infrastructure/Mesh/src/ESMCI_ClumpPnts.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_ESMFMesh_Util.C b/src/Infrastructure/Mesh/src/ESMCI_ESMFMesh_Util.C index d1426915a8..07102466ab 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_ESMFMesh_Util.C +++ b/src/Infrastructure/Mesh/src/ESMCI_ESMFMesh_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_FileIO_Util.C b/src/Infrastructure/Mesh/src/ESMCI_FileIO_Util.C index 7c0dd37a8c..08a3484834 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_FileIO_Util.C +++ b/src/Infrastructure/Mesh/src/ESMCI_FileIO_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_GToM_Util.C b/src/Infrastructure/Mesh/src/ESMCI_GToM_Util.C index 9416df9e6e..a7feca69f6 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_GToM_Util.C +++ b/src/Infrastructure/Mesh/src/ESMCI_GToM_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh.C index cb4a12f93a..bd56c93aa7 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_BBox.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_BBox.C index 33fe1faa97..a7b67c9d20 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_BBox.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_BBox.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Bilinear.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Bilinear.C index e133148de8..04379776af 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Bilinear.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Bilinear.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Conserve.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Conserve.C index 3f4e733053..33dec154ed 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Conserve.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Conserve.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Dual.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Dual.C index c52c113797..f1788e0859 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Dual.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Dual.C @@ -1,7 +1,7 @@ // $Id: ESMCI_MeshRedist.C,v 1.23 2012/01/06 20:17:51 svasquez Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Extrapolation.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Extrapolation.C index 9f4b0b1521..75c9d3075b 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Extrapolation.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Extrapolation.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_GToM_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_GToM_Glue.C index 85de9a5e47..6595ca6574 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_GToM_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_GToM_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Glue.C index 68b7e74a8f..07f3d9485c 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Mapping.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Mapping.C index 6b02183d47..7414396982 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Mapping.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Mapping.C @@ -1,6 +1,6 @@ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Patch.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Patch.C index 4469c95c0c..a855170391 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Patch.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Patch.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Redist.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Redist.C index be5ac10ea5..f89b9e1575 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Redist.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Redist.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Regrid_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Regrid_Glue.C index 23bc3d807c..a3c33711f8 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Regrid_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Regrid_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_Elem.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_Elem.C index 8c505ec458..c18e199b05 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_Elem.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_Elem.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_EtoP.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_EtoP.C index 45463cdb36..6d389f61d7 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_EtoP.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Rendez_EtoP.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoE.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoE.C index 3aa9e07b46..a778204d8e 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoE.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoE.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoP.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoP.C index 600181d974..d585b508c7 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoP.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Search_EtoP.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_ShapeFunc.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_ShapeFunc.C index 756302b4b8..583972c53b 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_ShapeFunc.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_ShapeFunc.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Util.C b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Util.C index 4bea59b114..d669e25416 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Util.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MBMesh_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MathUtil.C b/src/Infrastructure/Mesh/src/ESMCI_MathUtil.C index f25a21282a..3df2f2f2c0 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MathUtil.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MathUtil.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh.C index 9ca20f813a..b38a52e18f 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MeshCXX.C b/src/Infrastructure/Mesh/src/ESMCI_MeshCXX.C index c028a9e852..4cca2411c8 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MeshCXX.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MeshCXX.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MeshCap.C b/src/Infrastructure/Mesh/src/ESMCI_MeshCap.C index 6fadeeaa7a..9d0d959d1b 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MeshCap.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MeshCap.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1576,8 +1576,9 @@ void MeshCap::regrid_create( int *extrapNumInputLevels, int *unmappedaction, int *_ignoreDegenerate, int *srcTermProcessing, int *pipelineDepth, - ESMCI::RouteHandle **rh, int *has_rh, int *has_iw, - int *nentries, ESMCI::TempWeights **tweights, + ESMCI::RouteHandle **rh, int *has_rh, + int *has_iw, int *nentries, ESMCI::TempWeights **tweights, + ESMCI::RouteHandle **trh, int *has_trh, int *has_udl, int *_num_udl, ESMCI::TempUDL **_tudl, int *has_statusArray, ESMCI::Array **statusArray, int *checkFlag, @@ -1668,8 +1669,9 @@ void MeshCap::regrid_create( extrapNumInputLevels, unmappedaction, _ignoreDegenerate, srcTermProcessing, pipelineDepth, - rh, has_rh, has_iw, - nentries, tweights, + rh, has_rh, + has_iw, nentries, tweights, + trh, has_trh, has_udl, _num_udl, _tudl, has_statusArray, statusArray, checkFlag, diff --git a/src/Infrastructure/Mesh/src/ESMCI_MeshDual.C b/src/Infrastructure/Mesh/src/ESMCI_MeshDual.C index 61fc91ea6e..d9c56758af 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MeshDual.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MeshDual.C @@ -1,7 +1,7 @@ // $Id: ESMCI_MeshRedist.C,v 1.23 2012/01/06 20:17:51 svasquez Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -105,7 +105,7 @@ void MeshDual(Mesh *src_mesh, Mesh **_dual_mesh) { // Don't currently support duals of 3D Meshes if (src_mesh->parametric_dim()>2) { - Throw() <<" Creation of a dual mesh isn't supported for Meshes of parametric dim greater than 3.\n"; + Throw() <<" Creation of a dual mesh isn't supported for Meshes of parametric dim greater than 2.\n"; } // Need element coordinates diff --git a/src/Infrastructure/Mesh/src/ESMCI_MeshRedist.C b/src/Infrastructure/Mesh/src/ESMCI_MeshRedist.C index f3bdcbc66b..b6983ce84d 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_MeshRedist.C +++ b/src/Infrastructure/Mesh/src/ESMCI_MeshRedist.C @@ -1,7 +1,7 @@ // $Id: ESMCI_MeshRedist.C,v 1.23 2012/01/06 20:17:51 svasquez Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh_FileIO.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh_FileIO.C index dbd867642e..946d6f1340 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh_FileIO.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh_FileIO.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh_GToM_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh_GToM_Glue.C index 869014c0b3..c56d5b24cd 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh_GToM_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh_GToM_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1784,7 +1784,7 @@ Par::Out() << "\tnot in mesh!!" << std::endl; // Init fracs if (efields[GTOM_EFIELD_FRAC]) { double *d=efields[GTOM_EFIELD_FRAC]->data(elem); - *d=1.0; + *d=0.0; } if (efields[GTOM_EFIELD_FRAC2]) { diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh_Glue.C index 08f764546a..6c323c1aba 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -3367,7 +3367,8 @@ void ESMCI_meshdeserialize(Mesh **meshpp, meshp->max_non_split_id=max_non_split_id; // printf(" is_split=%d mnsi=%d\n",meshp->is_split,meshp->max_non_split_id); - + + // Register fields Context ctxt; ctxt.flip(); // Needed below for element registration if (fields_present[0]) meshp->RegisterNodalField(*meshp, "coordinates", spatial_dim); @@ -4925,10 +4926,8 @@ void ESMCI_meshturnoncellmask(Mesh **meshpp, ESMCI::InterArray *maskValuesA if ((elem_mask_val!=NULL) && (elem_mask !=NULL)) { - // Loop through elements setting values - // Here we depend on the fact that data index for elements - // is set as the position in the local array above - Mesh::iterator ei = mesh.elem_begin(), ee = mesh.elem_end(); + // Loop through all elements setting values + Mesh::iterator ei = mesh.elem_begin_all(), ee = mesh.elem_end_all(); for (; ei != ee; ++ei) { MeshObj &elem = *ei; @@ -5024,10 +5023,8 @@ void ESMCI_meshturnoffcellmask(Mesh **meshpp, int *rc) { if ((elem_mask_val!=NULL) && (elem_mask !=NULL)) { - // Loop through elements setting values - // Here we depend on the fact that data index for elements - // is set as the position in the local array above - Mesh::iterator ei = mesh.elem_begin(), ee = mesh.elem_end(); + // Loop through all elements setting values + Mesh::iterator ei = mesh.elem_begin_all(), ee = mesh.elem_end_all(); for (; ei != ee; ++ei) { MeshObj &elem = *ei; @@ -5124,8 +5121,8 @@ void ESMCI_meshturnonnodemask(Mesh **meshpp, ESMCI::InterArray *maskValuesA if ((node_mask_val!=NULL) && (node_mask !=NULL)) { - // Loop through nodes setting values - Mesh::iterator ni = mesh.node_begin(), ne = mesh.node_end(); + // Loop through all nodes setting values + Mesh::iterator ni = mesh.node_begin_all(), ne = mesh.node_end_all(); for (; ni != ne; ++ni) { MeshObj &node = *ni; @@ -5219,10 +5216,8 @@ void ESMCI_meshturnoffnodemask(Mesh **meshpp, int *rc) { if ((node_mask_val!=NULL) && (node_mask !=NULL)) { - // Loop through elements setting values - // Here we depend on the fact that data index for elements - // is set as the position in the local array above - Mesh::iterator ni = mesh.node_begin(), ne = mesh.node_end(); + // Loop through all nodes setting values + Mesh::iterator ni = mesh.node_begin_all(), ne = mesh.node_end_all(); for (; ni != ne; ++ni) { MeshObj &node = *ni; diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh_Regrid_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh_Regrid_Glue.C index 982698e777..96a5111a2e 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh_Regrid_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh_Regrid_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -99,8 +99,9 @@ void ESMCI_regrid_create( int *extrapNumInputLevels, int *unmappedaction, int *_ignoreDegenerate, int *srcTermProcessing, int *pipelineDepth, - ESMCI::RouteHandle **rh, int *has_rh, int *has_iw, - int *nentries, ESMCI::TempWeights **tweights, + ESMCI::RouteHandle **rh, int *has_rh, + int *has_iw, int *nentries, ESMCI::TempWeights **tweights, + ESMCI::RouteHandle **trh, int *has_trh, int *has_udl, int *_num_udl, ESMCI::TempUDL **_tudl, int *_has_statusArray, ESMCI::Array **_statusArray, int *_checkFlag, @@ -612,6 +613,10 @@ void ESMCI_regrid_create( //TODO: also drop PointList objects here if possible to reduce Store() memory footrint #endif + + + //// Creation of routeHandle //// + #ifdef MEMLOG_on VM::logMemInfo(std::string("RegridCreate5.2")); #endif @@ -619,7 +624,7 @@ void ESMCI_regrid_create( ESMCI_REGRID_TRACE_ENTER("NativeMesh ArraySMMStore"); // Build the RouteHandle using ArraySMMStore() - if (*has_rh != 0) { + if (*has_rh) { // Set some flags enum ESMC_TypeKind_Flag tk = ESMC_TYPEKIND_R8; @@ -644,18 +649,99 @@ void ESMCI_regrid_create( ESMC_LogDefault.Write("c_esmc_regrid_create(): Returned from ArraySMMStore().", ESMC_LOGMSG_INFO); #endif + + + //// Creation of transpose routeHandle //// + #ifdef MEMLOG_on VM::logMemInfo(std::string("RegridCreate6.0")); #endif + + + // If requested, build the transpose RouteHandle using ArraySMMStore() + if (*has_trh) { - *nentries = num_entries; - // Clean up. If has_iw, then we will use the arrays to - // fill out the users pointers. These will be deleted following a copy. - if (*has_iw == 0) { - delete [] factors; - delete [] iientries; - *nentries = 0; - } else { + ESMCI_REGRID_TRACE_ENTER("NativeMesh Transpose ArraySMMStore"); + + // Allocate transpose matrix + int *transpose_iientries = new int[iientries_entry_size*num_entries]; + + // Init to beginning entries of factor index lists + int *entry=iientries; + int *t_entry=transpose_iientries; + + // Depending on size of matrix entries, loop constructing transpose matrix + if (iientries_entry_size == 2) { + + // Loop through entries + for (int i=0; i transpose_ii(transpose_iientries, 2, transpose_larg); + + // Call into Array sparse matrix multiply store to create RouteHandle + FTN_X(c_esmc_arraysmmstoreind4)(arraydstpp, arraysrcpp, trh, &tk, factors, + &num_entries, &transpose_ii, &ignoreUnmatched, + srcTermProcessing, pipelineDepth, &localrc); + if (ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU, + ESMC_CONTEXT, NULL)) throw localrc; // bail out with exception + + // Get rid of transposed factor index list + delete [] transpose_iientries; + + ESMCI_REGRID_TRACE_EXIT("NativeMesh Transpose ArraySMMStore"); + +#ifdef PROGRESSLOG_on + ESMC_LogDefault.Write("c_esmc_regrid_create(): Returned from transpose ArraySMMStore().", ESMC_LOGMSG_INFO); +#endif + +#ifdef MEMLOG_on + VM::logMemInfo(std::string("RegridCreate7.0")); +#endif + } + + + + //// Output of weight matrix //// + + // If user has requested weights, then save them + if (*has_iw) { + // Record the number of entries + *nentries = num_entries; + // Save off the weights so the F90 caller can allocate arrays and // copy the values. if (num_entries>0) { @@ -668,11 +754,21 @@ void ESMCI_regrid_create( // Make sure copying method below takes this into account *tweights = NULL; } + + } else { //...else get rid of them + *nentries = 0; + delete [] factors; + delete [] iientries; } - // Setup structure to transfer unmappedDstList + + //// Handle output of unmapped destination list //// + + // Init info for transferring list *_num_udl=0; *_tudl=NULL; + + // If user wants umappedDstList, then setup structure to transfer it if (*has_udl) { // Get number of unmapped points int num_udl=unmappedDstList.size(); diff --git a/src/Infrastructure/Mesh/src/ESMCI_Mesh_XGrid_Glue.C b/src/Infrastructure/Mesh/src/ESMCI_Mesh_XGrid_Glue.C index 5a97002b96..5bbec26bb2 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Mesh_XGrid_Glue.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Mesh_XGrid_Glue.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_OTree.C b/src/Infrastructure/Mesh/src/ESMCI_OTree.C index b7772a4ff4..e35eb6c441 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_OTree.C +++ b/src/Infrastructure/Mesh/src/ESMCI_OTree.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Regrid_Nearest.C b/src/Infrastructure/Mesh/src/ESMCI_Regrid_Nearest.C index 7812c818d4..c98b645595 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Regrid_Nearest.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Regrid_Nearest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Rendez_Nearest.C b/src/Infrastructure/Mesh/src/ESMCI_Rendez_Nearest.C index e4491c032a..e2f3bcd43e 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Rendez_Nearest.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Rendez_Nearest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Search_Nearest.C b/src/Infrastructure/Mesh/src/ESMCI_Search_Nearest.C index 69c8dbbaff..b702e8a145 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Search_Nearest.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Search_Nearest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_Search_NearestNPnts.C b/src/Infrastructure/Mesh/src/ESMCI_Search_NearestNPnts.C index a10e0741df..a040b6bf0f 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_Search_NearestNPnts.C +++ b/src/Infrastructure/Mesh/src/ESMCI_Search_NearestNPnts.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_UGRID_Util.C b/src/Infrastructure/Mesh/src/ESMCI_UGRID_Util.C index b231c63283..39cde3aa7a 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_UGRID_Util.C +++ b/src/Infrastructure/Mesh/src/ESMCI_UGRID_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/ESMCI_XGridUtil.C b/src/Infrastructure/Mesh/src/ESMCI_XGridUtil.C index 6d4a654042..7118ea8124 100644 --- a/src/Infrastructure/Mesh/src/ESMCI_XGridUtil.C +++ b/src/Infrastructure/Mesh/src/ESMCI_XGridUtil.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -24,6 +24,8 @@ #include #include #include +#include + #include #include @@ -39,6 +41,7 @@ #include #include +#include #include #include "ESMCI_Macros.h" @@ -2798,5 +2801,207 @@ void calc_wgts_from_xgrid_to_side_mesh(Mesh *src_xgrid_mesh, Mesh *dst_side_mesh } } + void srcXGridGatherOverlappingElems(Mesh &srcXGridMesh, Mesh &dstMesh, SearchResult &result) { + + // Get dst side mesh info + int side=dstMesh.side; + int ind=dstMesh.ind; + + // Check side and ind info to make sure it's valid + if ((side != 1) && (side !=2)) Throw() << "side (for an xgrid side mesh) should be 1 or 2"; + if (ind < 1) Throw() <<"ind (for an xgrid side mesh) should be >=1."; + + // Get data fields corresponding to side + MEField<> *mesh_ind_field = NULL; + MEField<> *orig_elem_id_field = NULL; + if (side == 1) { + mesh_ind_field = srcXGridMesh.GetField("side1_mesh_ind"); + orig_elem_id_field = srcXGridMesh.GetField("side1_orig_elem_id"); + } else if (side ==2) { + mesh_ind_field = srcXGridMesh.GetField("side2_mesh_ind"); + orig_elem_id_field = srcXGridMesh.GetField("side2_orig_elem_id"); + } else { + Throw() << "Invalid mesh side: "<data(src_elem); + int elem_mesh_ind = (int)(*elem_mesh_ind_dbl + 0.5); + + // if the ind matches, then attempt to add entry + if (elem_mesh_ind == ind) { + + // Get orig elem id + // (Round to nearest to take care of possible representation issues) + double *dst_orig_elem_id_dbl = orig_elem_id_field->data(src_elem); + int dst_orig_elem_id = (int)(*dst_orig_elem_id_dbl+0.5); + + // If the orig dst id is in the side mesh, then add it + Mesh::MeshObjIDMap::iterator mi = dstMesh.map_find(MeshObj::ELEMENT, dst_orig_elem_id); + if (mi != dstMesh.map_end(MeshObj::ELEMENT)) { + MeshObj *dst_elem=&*mi; + + // Skip non-active (e.g. ghostcell) elements + if (!GetAttr(*dst_elem).GetContext().is_set(Attr::ACTIVE_ID)) continue; + + // Create Search result + Search_result *sr=new Search_result(); + sr->elem=&src_elem; // Add src elem + sr->elems.push_back(dst_elem); // Add dst elem + + // Add it to results list + result.push_back(sr); + } + } + } + + } + + void dstXGridGatherOverlappingElems(Mesh &srcMesh, Mesh &dstXGridMesh, SearchResult &result) { + + // Get dst side mesh info + int side=srcMesh.side; + int ind=srcMesh.ind; + + // Check side and ind info to make sure it's valid + if ((side != 1) && (side !=2)) Throw() << "side (for an xgrid side mesh) should be 1 or 2"; + if (ind < 1) Throw() <<"ind (for an xgrid side mesh) should be >=1."; + + // Get data fields corresponding to side + MEField<> *mesh_ind_field = NULL; + MEField<> *orig_elem_id_field = NULL; + if (side == 1) { + mesh_ind_field = dstXGridMesh.GetField("side1_mesh_ind"); + orig_elem_id_field = dstXGridMesh.GetField("side1_orig_elem_id"); + } else if (side ==2) { + mesh_ind_field = dstXGridMesh.GetField("side2_mesh_ind"); + orig_elem_id_field = dstXGridMesh.GetField("side2_orig_elem_id"); + } else { + Throw() << "Invalid mesh side: "< id_to_sr_map; + + // Iterate through dst XGrid Mesh + Mesh::iterator dxei = dstXGridMesh.elem_begin(), dxee = dstXGridMesh.elem_end(); + for (; dxei != dxee; ++dxei) { + MeshObj &dst_elem = *dxei; + + /* XMRKX */ + // Skip non-active (e.g. ghostcell) elements + if (!GetAttr(dst_elem).GetContext().is_set(Attr::ACTIVE_ID)) continue; + + // Get XGrid element ind + // (Round to nearest to take care of possible representation issues) + double *elem_mesh_ind_dbl = mesh_ind_field->data(dst_elem); + int elem_mesh_ind = (int)(*elem_mesh_ind_dbl + 0.5); + + // if the ind matches, then attempt to add entry + if (elem_mesh_ind == ind) { + + // Get orig elem id + // (Round to nearest to take care of possible representation issues) + double *src_orig_elem_id_dbl = orig_elem_id_field->data(dst_elem); + int src_orig_elem_id = (int)(*src_orig_elem_id_dbl+0.5); + + // If the orig dst id is in the side mesh, then add it + Mesh::MeshObjIDMap::iterator mi = srcMesh.map_find(MeshObj::ELEMENT, src_orig_elem_id); + if (mi != srcMesh.map_end(MeshObj::ELEMENT)) { + MeshObj *src_elem=&*mi; + + // Skip non-active (e.g. ghostcell) elements + if (!GetAttr(*src_elem).GetContext().is_set(Attr::ACTIVE_ID)) continue; + + // Find search result to add to + std::map::iterator itsr=id_to_sr_map.find(src_elem->get_id()); + + // Get search result based on whether it was found + Search_result *sr; + if (itsr == id_to_sr_map.end()) { + // Create new Search_result + sr=new Search_result(); + sr->elem=src_elem; // Add src elem + + // Add to map + id_to_sr_map[src_elem->get_id()]=sr; + + // Add to result + result.push_back(sr); + + } else { + // Get from map + sr=itsr->second; + } + + // Add dst element to search result + sr->elems.push_back(&dst_elem); + + } + } + } + + } + + + + // Used when one of src or dst Mesh is an XGrid. Uses XGrid + // information to gather elements of dstMesh that overlap with srcMesh + void XGridGatherOverlappingElems(Mesh &srcMesh, Mesh &dstMesh, SearchResult &result) { + + // Error check + if (srcMesh.spatial_dim() != dstMesh.spatial_dim()) { + Throw() << "Meshes must have same spatial dim for search"; + } + + // Branch depending on which is the XGrid + if (srcMesh.side==3) srcXGridGatherOverlappingElems(srcMesh, dstMesh, result); + else if (dstMesh.side==3) dstXGridGatherOverlappingElems(srcMesh, dstMesh, result); + else Throw() << "Unexpectedly neither src or dst Mesh is an XGrid."; + + } + + // Detect if we should use XGrid information for regridding and how + XGRID_USE detect_xgrid_regrid_info_type(Mesh &srcmesh, Mesh &dstmesh) { + + XGRID_USE xgrid_use=XGRID_USE_NONE; + if (srcmesh.side==3) { + // Extra check to ensure that it's actually a side mesh going to XGrid + if ((dstmesh.side == 1) || (dstmesh.side == 2)) { + xgrid_use=XGRID_USE_SRC; + } + } else if (dstmesh.side==3) { + // Extra check to ensure that it's actually a side mesh going to XGrid + if ((srcmesh.side == 1) || (srcmesh.side == 2)) { + xgrid_use=XGRID_USE_DST; + } + } + + return xgrid_use; + } + + + + + + } //namespace diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Attr.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Attr.C index 48e82df97e..bd04504111 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Attr.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Attr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_BBox.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_BBox.C index d64911effc..48b7e4bd2c 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_BBox.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_BBox.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommReg.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommReg.C index e3291e1301..0d9c4453fc 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommReg.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommReg.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommRel.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommRel.C index 74e41a32cd..b4c7eb1f9e 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommRel.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_CommRel.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Context.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Context.C index 5d7db3b9a6..7857d46984 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Context.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Context.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_DDir.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_DDir.C index 477b6232b5..0bfaf86e06 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_DDir.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_DDir.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Exception.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Exception.C index 8a1af8a808..2e6a0d47e8 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Exception.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Exception.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_FieldReg.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_FieldReg.C index 4cc7ddec1c..28019dd6ee 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_FieldReg.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_FieldReg.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_FindPnts.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_FindPnts.C index 8d4eed0fdc..6dfacec42b 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_FindPnts.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_FindPnts.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_GeomRendezvous.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_GeomRendezvous.C index 9ededb47e4..be753ee959 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_GeomRendezvous.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_GeomRendezvous.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_GlobalIds.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_GlobalIds.C index d9b4a22d04..023e1a35b4 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_GlobalIds.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_GlobalIds.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_HAdapt.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_HAdapt.C index 78b46d02c7..0d98c55854 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_HAdapt.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_HAdapt.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_IOField.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_IOField.C index c4c8d7f694..b6d42f641d 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_IOField.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_IOField.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Kernel.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Kernel.C index 68612131ea..2ea9253711 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Kernel.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Kernel.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MCoord.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MCoord.C index 6aba05801b..49c74a98d0 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MCoord.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MCoord.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEFamily.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEFamily.C index c0393bd309..19424a115d 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEFamily.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEFamily.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEField.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEField.C index 6e16872772..1630766cc9 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEField.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEField.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEImprint.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEImprint.C index 6fddd0a397..8d0a3fa2b8 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEImprint.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEImprint.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEValues.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEValues.C index 40ffd487b4..faa18a635e 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEValues.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MEValues.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElement.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElement.C index 631ca8e05e..37b75d2cbb 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElement.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElement.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElementV.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElementV.C index 128f4ba549..9d07e54909 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElementV.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MasterElementV.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshDB.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshDB.C index 6ba3e191a7..9176f93a52 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshDB.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshDB.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshExodus.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshExodus.C index b08c24efa6..e1254c33f9 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshExodus.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshExodus.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshField.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshField.C index 1caf06f63e..b3de851448 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshField.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshField.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshGen.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshGen.C index f885c0c0c5..06ad9f3941 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshGen.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshGen.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshMerge.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshMerge.C index 199dd9fa24..6052c5d903 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshMerge.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshMerge.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshNC.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshNC.C index 2358dba07b..9070fc5348 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshNC.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshNC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObj.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObj.C index 29b47a0cda..eb871272e1 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObj.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObj.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjConn.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjConn.C index f6355d20d2..a3ea3628bb 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjConn.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjConn.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjPack.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjPack.C index 46e2acdc4c..23b535473f 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjPack.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjPack.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjTopo.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjTopo.C index 60afbe1811..793e9a3507 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjTopo.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshObjTopo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPNC.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPNC.C index 3d8e8eb8fc..6fcfc84ae4 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPNC.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPNC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPartition.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPartition.C index c7d2a771f7..af38b65c4e 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPartition.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshPartition.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRead.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRead.C index 8161b74dde..10dbe1e76a 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRead.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRead.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRefine.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRefine.C index 6622758f4b..f4b7fe33ce 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRefine.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshRefine.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshSkin.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshSkin.C index 6daa415c66..0c0b271ec2 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshSkin.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshSkin.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshUtils.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshUtils.C index f031cbe33e..71e4f6d29b 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshUtils.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshUtils.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshVTK.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshVTK.C index 68d267ff30..8ad072c3c3 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshVTK.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshVTK.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshllField.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshllField.C index 622bc1770f..5f3d7ae005 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshllField.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_MeshllField.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Migrator.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Migrator.C index 4b73a89793..2cf9ab23d6 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Migrator.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Migrator.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParEnv.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParEnv.C index b643a95930..8b5d77562e 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParEnv.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParEnv.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParLog.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParLog.C index 1326f3855c..bce45b598b 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParLog.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ParLog.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Polynomial.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Polynomial.C index 315ffef104..bc1c5bc140 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Polynomial.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Polynomial.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Quadrature.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Quadrature.C index 37e8b84d59..7caed7a9ba 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Quadrature.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Quadrature.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Rebalance.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Rebalance.C index 7f42dbf8e7..d0cecb9b86 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_Rebalance.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_Rebalance.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_RefineTopo.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_RefineTopo.C index 17131a61d1..7abcb67a6f 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_RefineTopo.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_RefineTopo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SFuncAdaptor.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SFuncAdaptor.C index db0b277f45..0db3e2f54c 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SFuncAdaptor.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SFuncAdaptor.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SM.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SM.C index 76970520f7..de1732d7aa 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SM.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SM.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -47,6 +47,26 @@ static const char *const version = "$Id$"; namespace ESMCI { + // Comparison functor used to sort SM_CELLs by dst id + class SMDstIdsLess { + public: + SMDstIdsLess(std::vector &_dst_elems) : dst_elems(_dst_elems) {} + bool operator()(const SM_CELL &lhs, const SM_CELL &rhs) { + return (dst_elems[lhs.dst_index]->get_id() < dst_elems[rhs.dst_index]->get_id()); + } + private: + std::vector &dst_elems; + }; + + // Sort SM cells by dst id + void sort_SM_CELLS_by_dst_id(std::vector *sm_cells, std::vector &dst_elems) { + + // Sort using dst ids + std::sort(sm_cells->begin(), sm_cells->end(), SMDstIdsLess(dst_elems)); + } + + + //////////////// BEGIN CALC 2D 2D CELLS //////////////// void _calc_centroid_2D_2D_cart(int num_p, double *p, double *cntr) { @@ -549,6 +569,311 @@ namespace ESMCI { } + // This method creates sm cells for a 2nd order interpolation going from a side mesh to an XGrid + // Since the destination is an XGrid by definition all the destination cells are the SM cells. + // Because of that, we just have to loop through the destination cells and fill in the SM + // info. + + // Here valid and wghts need to be resized to the same size as dst_elems before being passed into + // this call. + void create_dst_xgrid_SM_cells_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells) { +// Maximum size for a supported polygon +// Since the elements are of a small +// limited size. Fixed sized buffers seem +// the best way to handle them + +#define MAX_NUM_SRC_POLY_NODES 40 +#define MAX_NUM_SRC_POLY_COORDS_2D (2*MAX_NUM_SRC_POLY_NODES) + + // Declaration for src polygon + int num_src_nodes; + double src_coords[MAX_NUM_SRC_POLY_COORDS_2D]; + double tmp_coords[MAX_NUM_SRC_POLY_COORDS_2D]; + + // Get src coords + get_elem_coords_2D_ccw(src_elem, src_cfield, MAX_NUM_SRC_POLY_NODES, tmp_coords, &num_src_nodes, src_coords); + + // Get rid of degenerate edges + remove_0len_edges2D(&num_src_nodes, src_coords); + + // If less than a triangle invalidate everything and leave because it won't results in weights + // Decision about returning error for degeneracy is made above this subroutine + if (num_src_nodes<3) { + *src_elem_area=0.0; + for (int i=0; idata(*dst_elem); + if (*msk>0.5) { + // Init to 0's above + continue; + } + } + + // Invalidate creeped out dst element + if(dst_frac2_field){ + double *dst_frac2=dst_frac2_field->data(*dst_elem); + if (*dst_frac2 == 0.0){ + // Init to 0's above + continue; + } + } + + // Get dst coords + get_elem_coords_2D_ccw(dst_elem, dst_cfield, MAX_NUM_DST_POLY_NODES, tmp_coords, &num_dst_nodes, dst_coords); + + // Get rid of degenerate edges + remove_0len_edges2D(&num_dst_nodes, dst_coords); + + // if less than a triangle skip + if (num_dst_nodes<3) { + // Init to 0's above + continue; + } + + // if a smashed quad skip + if (is_smashed_quad2D(num_dst_nodes, dst_coords)) { + // Init to 0's above + continue; + } + + // Put dst cell information directly into SM cells and list + + // Calculate dst area + double dst_area=area_of_flat_2D_polygon(num_dst_nodes, dst_coords); + + // Declare temporary supermesh cell info structure + SM_CELL tmp_smc; + + // Add destination cell index + tmp_smc.dst_index=i; + + // Add area to supermesh cell info + tmp_smc.area=dst_area; + + // Add centroid to supermesh cell info + _calc_centroid_2D_2D_cart(num_dst_nodes, dst_coords, tmp_smc.cntr); + + // Add to list + sm_cells->push_back(tmp_smc); + + // Set information into other lists + (*valid)[i]=1; + (*sintd_areas_out)[i]=dst_area; // because dst is XGrid sintd area = dst area + (*dst_areas_out)[i]=dst_area; + +#undef MAX_NUM_DST_POLY_NODES +#undef MAX_NUM_DST_POLY_COORDS_2D + } + + + +#undef MAX_NUM_SRC_POLY_NODES +#undef MAX_NUM_SRC_POLY_COORDS_2D + } + + + // This method creates sm cells for a 2nd order interpolation going from an XGrid to a side mesh + // Since the source is an XGrid by definition the source cell is the SM cell. + // Because of that, we just have to set the + + // Here valid and wghts need to be resized to the same size as dst_elems before being passed into + // this call. + void create_src_xgrid_SM_cells_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells) { + + +// Maximum size for a supported polygon +// Since the elements are of a small +// limited size. Fixed sized buffers seem +// the best way to handle them + +#define MAX_NUM_SRC_POLY_NODES 40 +#define MAX_NUM_SRC_POLY_COORDS_2D (2*MAX_NUM_SRC_POLY_NODES) + + // Declaration for src polygon + int num_src_nodes; + double src_coords[MAX_NUM_SRC_POLY_COORDS_2D]; + double tmp_coords[MAX_NUM_SRC_POLY_COORDS_2D]; + + // Get src coords + get_elem_coords_2D_ccw(src_elem, src_cfield, MAX_NUM_SRC_POLY_NODES, tmp_coords, &num_src_nodes, src_coords); + + // Get rid of degenerate edges + remove_0len_edges2D(&num_src_nodes, src_coords); + + // If less than a triangle invalidate everything and leave because it won't results in weights + // Decision about returning error for degeneracy is made above this subroutine + if (num_src_nodes<3) { + *src_elem_area=0.0; + for (int i=0; idata(*dst_elem); + if (*msk>0.5) { + // Init to 0's above + return; + } + } + + // Invalidate creeped out dst element + if(dst_frac2_field){ + double *dst_frac2=dst_frac2_field->data(*dst_elem); + if (*dst_frac2 == 0.0){ + // Init to 0's above + return; + } + } + + // Defs for dst polygon +#define MAX_NUM_DST_POLY_NODES 40 +#define MAX_NUM_DST_POLY_COORDS_2D (2*MAX_NUM_DST_POLY_NODES) + + // Declaration for dst polygon + int num_dst_nodes; + double dst_coords[MAX_NUM_DST_POLY_COORDS_2D]; + + // Get dst coords + get_elem_coords_2D_ccw(dst_elem, dst_cfield, MAX_NUM_DST_POLY_NODES, tmp_coords, &num_dst_nodes, dst_coords); + + // Get rid of degenerate edges + remove_0len_edges2D(&num_dst_nodes, dst_coords); + + // if less than a triangle skip + if (num_dst_nodes<3) { + // Init to 0's above + return; + } + + // if a smashed quad skip + if (is_smashed_quad2D(num_dst_nodes, dst_coords)) { + // Init to 0's above + return; + } + + // Calc dst area + double dst_area=area_of_flat_2D_polygon(num_dst_nodes, dst_coords); + + + // Dst looks ok, so put information into SM cell and lists + + // Declare temporary supermesh cell info structure + SM_CELL tmp_smc; + + // Add destination cell index + tmp_smc.dst_index=0; + + // Add area to supermesh cell info + tmp_smc.area=src_area; + + // Add centroid to supermesh cell info + _calc_centroid_2D_2D_cart(num_src_nodes, src_coords, tmp_smc.cntr); + + // Add to list + sm_cells->push_back(tmp_smc); + + // Set information into other lists + (*valid)[0]=1; + (*sintd_areas_out)[0]=src_area; // because src is XGrid sintd area = src area + (*dst_areas_out)[0]=dst_area; + + +#undef MAX_NUM_DST_POLY_NODES +#undef MAX_NUM_DST_POLY_COORDS_2D + +#undef MAX_NUM_SRC_POLY_NODES +#undef MAX_NUM_SRC_POLY_COORDS_2D + } + + + + //////////////// END CALC 2D 2D WEIGHTS ////////////////// @@ -1067,7 +1392,314 @@ namespace ESMCI { } + + // This method creates sm cells for a 2nd order interpolation going from a side mesh to an XGrid + // Since the destination is an XGrid by definition all the destination cells are the SM cells. + // Because of that, we just have to loop through the destination cells and fill in the SM + // info. + + // Here valid and wghts need to be resized to the same size as dst_elems before being passed into + // this call. + void create_dst_xgrid_SM_cells_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells) { +// Maximum size for a supported polygon +// Since the elements are of a small +// limited size. Fixed sized buffers seem +// the best way to handle them + +#define MAX_NUM_SRC_POLY_NODES 40 +#define MAX_NUM_SRC_POLY_COORDS_3D (3*MAX_NUM_SRC_POLY_NODES) + + // Declaration for src polygon + int num_src_nodes; + double src_coords[MAX_NUM_SRC_POLY_COORDS_3D]; + double tmp_coords[MAX_NUM_SRC_POLY_COORDS_3D]; + + // Get src coords + get_elem_coords_3D_ccw(src_elem, src_cfield, MAX_NUM_SRC_POLY_NODES, tmp_coords, &num_src_nodes, src_coords); + + // Get rid of degenerate edges + remove_0len_edges3D(&num_src_nodes, src_coords); + + // If less than a triangle invalidate everything and leave because it won't results in weights + // Decision about returning error for degeneracy is made above this subroutine + if (num_src_nodes<3) { + *src_elem_area=0.0; + for (int i=0; idata(*dst_elem); + if (*msk>0.5) { + // Init to 0's above + continue; + } + } + + // Invalidate creeped out dst element + if(dst_frac2_field){ + double *dst_frac2=dst_frac2_field->data(*dst_elem); + if (*dst_frac2 == 0.0){ + // Init to 0's above + continue; + } + } + + // Get dst coords + get_elem_coords_3D_ccw(dst_elem, dst_cfield, MAX_NUM_DST_POLY_NODES, tmp_coords, &num_dst_nodes, dst_coords); + + // Get rid of degenerate edges + remove_0len_edges3D(&num_dst_nodes, dst_coords); + + // if less than a triangle skip + if (num_dst_nodes<3) { + // Init to 0's above + continue; + } + + // if a smashed quad skip + if (is_smashed_quad3D(num_dst_nodes, dst_coords)) { + // Init to 0's above + continue; + } + + // Put dst cell information directly into SM cells and list + + // Calculate dst area + double dst_area=great_circle_area(num_dst_nodes, dst_coords); + + // Declare temporary supermesh cell info structure + SM_CELL tmp_smc; + + // Add destination cell index + tmp_smc.dst_index=i; + + // Add area to supermesh cell info + tmp_smc.area=dst_area; + + // Add centroid to supermesh cell info + _calc_centroid_2D_3D_sph(num_dst_nodes, dst_coords, tmp_smc.cntr); + + // Add to list + sm_cells->push_back(tmp_smc); + + // Set information into other lists + (*valid)[i]=1; + (*sintd_areas_out)[i]=dst_area; // because dst is XGrid sintd area = dst area + (*dst_areas_out)[i]=dst_area; + +#undef MAX_NUM_DST_POLY_NODES +#undef MAX_NUM_DST_POLY_COORDS_3D + } + + + +#undef MAX_NUM_SRC_POLY_NODES +#undef MAX_NUM_SRC_POLY_COORDS_3D + } + + + // This method creates sm cells for a 2nd order interpolation going from an XGrid to a side mesh + // Since the source is an XGrid by definition the source cell is the SM cell. + // Because of that, we just have to set the + + // Here valid and wghts need to be resized to the same size as dst_elems before being passed into + // this call. + void create_src_xgrid_SM_cells_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + double *src_elem_area, + std::vector *valid, + std::vector *sintd_areas_out, std::vector *dst_areas_out, + std::vector *sm_cells) { + + +// Maximum size for a supported polygon +// Since the elements are of a small +// limited size. Fixed sized buffers seem +// the best way to handle them + +#define MAX_NUM_SRC_POLY_NODES 40 +#define MAX_NUM_SRC_POLY_COORDS_3D (3*MAX_NUM_SRC_POLY_NODES) + + // Declaration for src polygon + int num_src_nodes; + double src_coords[MAX_NUM_SRC_POLY_COORDS_3D]; + double tmp_coords[MAX_NUM_SRC_POLY_COORDS_3D]; + + // Get src coords + get_elem_coords_3D_ccw(src_elem, src_cfield, MAX_NUM_SRC_POLY_NODES, tmp_coords, &num_src_nodes, src_coords); + + // Get rid of degenerate edges + remove_0len_edges3D(&num_src_nodes, src_coords); + + // If less than a triangle invalidate everything and leave because it won't results in weights + // Decision about returning error for degeneracy is made above this subroutine + if (num_src_nodes<3) { + *src_elem_area=0.0; + for (int i=0; idata(*dst_elem); + if (*msk>0.5) { + // Init to 0's above + return; + } + } + + // Invalidate creeped out dst element + if(dst_frac2_field){ + double *dst_frac2=dst_frac2_field->data(*dst_elem); + if (*dst_frac2 == 0.0){ + // Init to 0's above + return; + } + } + + // Defs for dst polygon +#define MAX_NUM_DST_POLY_NODES 40 +#define MAX_NUM_DST_POLY_COORDS_3D (3*MAX_NUM_DST_POLY_NODES) + + // Declaration for dst polygon + int num_dst_nodes; + double dst_coords[MAX_NUM_DST_POLY_COORDS_3D]; + + // Get dst coords + get_elem_coords_3D_ccw(dst_elem, dst_cfield, MAX_NUM_DST_POLY_NODES, tmp_coords, &num_dst_nodes, dst_coords); + + // Get rid of degenerate edges + remove_0len_edges3D(&num_dst_nodes, dst_coords); + + // if less than a triangle skip + if (num_dst_nodes<3) { + // Init to 0's above + return; + } + + // if a smashed quad skip + if (is_smashed_quad3D(num_dst_nodes, dst_coords)) { + // Init to 0's above + return; + } + + // Calc dst area + double dst_area=great_circle_area(num_dst_nodes, dst_coords); + + + // Dst looks ok, so put information into SM cell and lists + + // Declare temporary supermesh cell info structure + SM_CELL tmp_smc; + + // Add destination cell index + tmp_smc.dst_index=0; + + // Add area to supermesh cell info + tmp_smc.area=src_area; + + // Add centroid to supermesh cell info + _calc_centroid_2D_3D_sph(num_src_nodes, src_coords, tmp_smc.cntr); + + // Add to list + sm_cells->push_back(tmp_smc); + + // Set information into other lists + (*valid)[0]=1; + (*sintd_areas_out)[0]=src_area; // because src is XGrid sintd area = src area + (*dst_areas_out)[0]=dst_area; + + +#undef MAX_NUM_DST_POLY_NODES +#undef MAX_NUM_DST_POLY_COORDS_3D + +#undef MAX_NUM_SRC_POLY_NODES +#undef MAX_NUM_SRC_POLY_COORDS_3D + } + + + //////////////// END CALC 2D 3D WEIGHTS ////////////////// + + } // namespace diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ShapeLagrange.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ShapeLagrange.C index f507372f7b..94f58fee00 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_ShapeLagrange.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_ShapeLagrange.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SmallAlloc.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SmallAlloc.C index 844d7d5c0a..7f39c6d324 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SmallAlloc.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SmallAlloc.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SparseMsg.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SparseMsg.C index 3f3513471c..84ab4b0bcd 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_SparseMsg.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_SparseMsg.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeights.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeights.C index 4a65040592..4d6fdca0aa 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeights.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeights.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeightsPar.C b/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeightsPar.C index 843eb79915..cf9e67d21c 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeightsPar.C +++ b/src/Infrastructure/Mesh/src/Legacy/ESMCI_WriteWeightsPar.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Legacy/ESMF_SolverUtil_C.F90 b/src/Infrastructure/Mesh/src/Legacy/ESMF_SolverUtil_C.F90 index 6c1b5cb71a..eebce91fa1 100644 --- a/src/Infrastructure/Mesh/src/Legacy/ESMF_SolverUtil_C.F90 +++ b/src/Infrastructure/Mesh/src/Legacy/ESMF_SolverUtil_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Conserve2ndInterp.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Conserve2ndInterp.C index 79866c6623..a7afb7f5cf 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Conserve2ndInterp.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Conserve2ndInterp.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -497,7 +497,7 @@ namespace ESMCI { // Main Call void calc_2nd_order_weights_2D_2D_cart(const MeshObj *src_elem, MEField<> *src_cfield, MEField<> *src_mask_field, - std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, XGRID_USE xgrid_use, double *src_elem_area, std::vector *valid, std::vector *wgts, @@ -507,17 +507,47 @@ namespace ESMCI { std::vector *nbrs ) { - // Create super mesh cells by intersecting src_elem and list of dst_elems - create_SM_cells_2D_2D_cart(src_elem, src_cfield, - dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, - src_elem_area, - valid, sintd_areas_out, dst_areas_out, - tmp_valid, tmp_sintd_areas_out, tmp_dst_areas_out, - sm_cells); - + // Create super mesh cells depending on situation + switch(xgrid_use) { + case XGRID_USE_NONE: + // Create super mesh cells by intersecting src_elem and list of dst_elems + create_SM_cells_2D_2D_cart(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + tmp_valid, tmp_sintd_areas_out, tmp_dst_areas_out, + sm_cells); + break; + + case XGRID_USE_SRC: + // Create super mesh cells by getting src xgrid cell + create_src_xgrid_SM_cells_2D_2D_cart(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + sm_cells); + break; + + case XGRID_USE_DST: + // Create super mesh cells by getting dst xgrid cells + create_dst_xgrid_SM_cells_2D_2D_cart(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + sm_cells); + break; + + default: + Throw() << "Unrecognized xgrid use type."; + } + + // If there are no sm cells then leave if (sm_cells->empty()) return; + // Sort SM cells by dst id to keep things consistent + sort_SM_CELLS_by_dst_id(sm_cells, dst_elems); + // Get list of source elements surrounding this one _get_neighbor_elems_2D_2D_cart(src_elem, src_cfield, src_mask_field, nbrs); @@ -1236,7 +1266,7 @@ namespace ESMCI { // Main Call void calc_2nd_order_weights_2D_3D_sph(const MeshObj *src_elem, MEField<> *src_cfield, MEField<> *src_mask_field, - std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, + std::vector dst_elems, MEField<> *dst_cfield, MEField<> * dst_mask_field, MEField<> * dst_frac2_field, XGRID_USE xgrid_use, double *src_elem_area, std::vector *valid, std::vector *wgts, @@ -1245,17 +1275,47 @@ namespace ESMCI { std::vector *sm_cells, std::vector *nbrs ) { - // Create super mesh cells by intersecting src_elem and list of dst_elems - create_SM_cells_2D_3D_sph(src_elem, src_cfield, - dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, - src_elem_area, - valid, sintd_areas_out, dst_areas_out, - tmp_valid, tmp_sintd_areas_out, tmp_dst_areas_out, - sm_cells); - + + // Create super mesh cells depending on situation + switch(xgrid_use) { + case XGRID_USE_NONE: + // Create super mesh cells by intersecting src_elem and list of dst_elems + create_SM_cells_2D_3D_sph(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + tmp_valid, tmp_sintd_areas_out, tmp_dst_areas_out, + sm_cells); + break; + + case XGRID_USE_SRC: + // Create super mesh cells by getting src xgrid cell + create_src_xgrid_SM_cells_2D_3D_sph(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + sm_cells); + break; + + case XGRID_USE_DST: + // Create super mesh cells by getting dst xgrid cells + create_dst_xgrid_SM_cells_2D_3D_sph(src_elem, src_cfield, + dst_elems, dst_cfield, dst_mask_field, dst_frac2_field, + src_elem_area, + valid, sintd_areas_out, dst_areas_out, + sm_cells); + break; + + default: + Throw() << "Unrecognized xgrid use type."; + } + // If there are no sm cells then leave if (sm_cells->empty()) return; + // Sort SM cells by dst id to keep things consistent + sort_SM_CELLS_by_dst_id(sm_cells, dst_elems); + // Get list of source elements surrounding this one _get_neighbor_elems_2D_3D_sph(src_elem, src_cfield, src_mask_field, nbrs); diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ConserveInterp.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ConserveInterp.C index 82622c3061..925e058b9a 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ConserveInterp.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ConserveInterp.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_CreepFill.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_CreepFill.C index 59d977f409..f5987e4d62 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_CreepFill.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_CreepFill.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Extrap.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Extrap.C index 48a3b8a850..aedcd7d4d4 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Extrap.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Extrap.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ExtrapolationPoleLGC.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ExtrapolationPoleLGC.C index a5679f2338..b52a24756a 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ExtrapolationPoleLGC.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ExtrapolationPoleLGC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Integrate.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Integrate.C index 7829338985..28592a411a 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Integrate.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Integrate.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Interp.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Interp.C index 38a223adda..dfa1b566f7 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Interp.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Interp.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -767,6 +767,9 @@ void calc_2nd_order_conserve_mat_serial_2D_3D_sph(Mesh &srcmesh, Mesh &dstmesh, struct Zoltan_Struct * zz, bool set_dst_status, WMat &dst_status) { Trace __trace("calc_conserve_mat_serial(Mesh &srcmesh, Mesh &dstmesh, SearchResult &sres, IWeights &iw)"); + // See if we're using an XGrid + XGRID_USE xgrid_use=detect_xgrid_regrid_info_type(srcmesh, dstmesh); + // Get src coord field MEField<> *src_cfield = srcmesh.GetCoordField(); @@ -881,9 +884,10 @@ void calc_2nd_order_conserve_mat_serial_2D_3D_sph(Mesh &srcmesh, Mesh &dstmesh, // Calculate weights calc_2nd_order_weights_2D_3D_sph(sr.elem,src_cfield,src_mask_field, - sr.elems,dst_cfield,dst_mask_field, dst_frac2_field, - &src_elem_area, &valid, &wgts, &areas, &dst_areas, - &tmp_valid, &tmp_areas, &tmp_dst_areas, &sm_cells, &nbrs); + sr.elems,dst_cfield,dst_mask_field, dst_frac2_field, + xgrid_use, + &src_elem_area, &valid, &wgts, &areas, &dst_areas, + &tmp_valid, &tmp_areas, &tmp_dst_areas, &sm_cells, &nbrs); // Invalidate masked destination elements @@ -1085,6 +1089,9 @@ void calc_2nd_order_conserve_mat_serial_2D_2D_cart(Mesh &srcmesh, Mesh &dstmesh, struct Zoltan_Struct * zz, bool set_dst_status, WMat &dst_status) { Trace __trace("calc_conserve_mat_serial(Mesh &srcmesh, Mesh &dstmesh, SearchResult &sres, IWeights &iw)"); + // See if we're using an XGrid + XGRID_USE xgrid_use=detect_xgrid_regrid_info_type(srcmesh, dstmesh); + // Get src coord field MEField<> *src_cfield = srcmesh.GetCoordField(); @@ -1199,7 +1206,7 @@ void calc_2nd_order_conserve_mat_serial_2D_2D_cart(Mesh &srcmesh, Mesh &dstmesh, // Calculate weights calc_2nd_order_weights_2D_2D_cart(sr.elem,src_cfield,src_mask_field, - sr.elems,dst_cfield,dst_mask_field, dst_frac2_field, + sr.elems,dst_cfield,dst_mask_field, dst_frac2_field, xgrid_use, &src_elem_area, &valid, &wgts, &areas, &dst_areas, &tmp_valid, &tmp_areas, &tmp_dst_areas, &sm_cells, &nbrs); @@ -3010,7 +3017,18 @@ interp_method(imethod) if(freeze_src_) { OctSearchElems(*src, ESMCI_UNMAPPEDACTION_IGNORE, grend.GetDstRend(), unmappedaction, 1e-8, sres); } else { - OctSearchElems(grend.GetSrcRend(), ESMCI_UNMAPPEDACTION_IGNORE, grend.GetDstRend(), unmappedaction, 1e-8, sres); + // If 2nd order see if it's an XGrid and then use that + if (interp_method == Interp::INTERP_CONSERVE_2ND) { + + // If an XGrid isn't involved, then do a search using regular method + if (detect_xgrid_regrid_info_type(grend.GetSrcRend(), grend.GetDstRend()) == XGRID_USE_NONE) { + OctSearchElems(grend.GetSrcRend(), ESMCI_UNMAPPEDACTION_IGNORE, grend.GetDstRend(), unmappedaction, 1e-8, sres); + } else { // ...otherwise use XGrid information + XGridGatherOverlappingElems(grend.GetSrcRend(), grend.GetDstRend(), sres); + } + } else { // ...otherwise just use the regular search + OctSearchElems(grend.GetSrcRend(), ESMCI_UNMAPPEDACTION_IGNORE, grend.GetDstRend(), unmappedaction, 1e-8, sres); + } } } } @@ -3045,7 +3063,18 @@ interp_method(imethod) _check_mesh(*dest, "destination"); } - OctSearchElems(*src, ESMCI_UNMAPPEDACTION_IGNORE, *dest, unmappedaction, 1e-8, sres); + // If 2nd order see if it's an XGrid and then use that + if (interp_method == Interp::INTERP_CONSERVE_2ND) { + + // If an XGrid isn't involved, then do a search using regular method + if (detect_xgrid_regrid_info_type(*src, *dest) == XGRID_USE_NONE) { + OctSearchElems(*src, ESMCI_UNMAPPEDACTION_IGNORE, *dest, unmappedaction, 1e-8, sres); + } else { // ...otherwise use XGrid info to do search + XGridGatherOverlappingElems(*src, *dest, sres); + } + } else { // ...otherwise just use the regular search + OctSearchElems(*src, ESMCI_UNMAPPEDACTION_IGNORE, *dest, unmappedaction, 1e-8, sres); + } } } diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Mapping.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Mapping.C index 21c0e125a8..b80d6457aa 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Mapping.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Mapping.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_MeshRegrid.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_MeshRegrid.C index f0ff264eea..ee111ec1a1 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_MeshRegrid.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_MeshRegrid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_PatchRecovery.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_PatchRecovery.C index f571d5d436..2bf0a8a610 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_PatchRecovery.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_PatchRecovery.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Regrid_Helper.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Regrid_Helper.C index 44c932fe9f..855aaef034 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Regrid_Helper.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Regrid_Helper.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Search.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Search.C index 236a12e52e..be5e4f1e9f 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_Search.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_Search.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestDToSLGC.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestDToSLGC.C index 0707bbad22..65955f337f 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestDToSLGC.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestDToSLGC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestLGC.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestLGC.C index 5ed274351c..e555de13b8 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestLGC.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestLGC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestNPntsLGC.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestNPntsLGC.C index ff09e3007f..4f4684ac83 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestNPntsLGC.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SearchNearestNPntsLGC.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ShapeFunc.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ShapeFunc.C index 034730464d..67a15e7823 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_ShapeFunc.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_ShapeFunc.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SpaceDir.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SpaceDir.C index 5dafe37d25..43a8406b51 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_SpaceDir.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_SpaceDir.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/src/Regridding/ESMCI_WMat.C b/src/Infrastructure/Mesh/src/Regridding/ESMCI_WMat.C index 19e9537345..b9876a6d86 100644 --- a/src/Infrastructure/Mesh/src/Regridding/ESMCI_WMat.C +++ b/src/Infrastructure/Mesh/src/Regridding/ESMCI_WMat.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_IntegrateUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_IntegrateUTest.C index 44cb45c302..bdc4e87d20 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_IntegrateUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_IntegrateUTest.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_ExtrapolateUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_ExtrapolateUTest.C index 12d30d722a..a65f8ab0c9 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_ExtrapolateUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_ExtrapolateUTest.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_UtilUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_UtilUTest.C index 9bcd59c067..b493f281d9 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_UtilUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MBMesh_UtilUTest.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MCT.C b/src/Infrastructure/Mesh/tests/ESMCI_MCT.C index a7d80b4fa9..0a6ce0d91e 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MCT.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MCT.C @@ -1,7 +1,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -861,6 +861,8 @@ class MCT { int has_iw = 0; int nentries = 0; ESMCI::TempWeights *tweights = NULL; + ESMCI::RouteHandle *trh = NULL; + int has_trh = 0; int has_udl = 0; int num_udl = 0; ESMCI::TempUDL *tudl = NULL; @@ -885,7 +887,8 @@ class MCT { &ignore_degenerate, &src_term_processing, &pipeline_depth, &rh, &has_rh, - &has_iw, &nentries, &tweights, + &has_iw, &nentries, &tweights, + &trh, &has_trh, &has_udl, &num_udl, &tudl, &has_status_array, &dummy_status_array, &check_flag, &localrc); diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MCTGen.C b/src/Infrastructure/Mesh/tests/ESMCI_MCTGen.C index bf82fb164b..9581253bea 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MCTGen.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MCTGen.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MeshCapRegridUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MeshCapRegridUTest.C index 928b5cdbf1..7ce05d9c0d 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MeshCapRegridUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MeshCapRegridUTest.C @@ -1,7 +1,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MeshCapUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MeshCapUTest.C index aa17e894c5..d81699e9c0 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MeshCapUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MeshCapUTest.C @@ -1,7 +1,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MeshMOABUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MeshMOABUTest.C index 3b64547bcb..343f0e12e9 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MeshMOABUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MeshMOABUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MeshTestGenPL.C b/src/Infrastructure/Mesh/tests/ESMCI_MeshTestGenPL.C index 40e6af42da..0971e35c0d 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MeshTestGenPL.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MeshTestGenPL.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_MeshUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_MeshUTest.C index 728c853131..6bbff33535 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_MeshUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_MeshUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_NearestUTest.C b/src/Infrastructure/Mesh/tests/ESMCI_NearestUTest.C index 34e35e1355..0378add421 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_NearestUTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_NearestUTest.C @@ -2,7 +2,7 @@ //============================================================================== // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMCI_Proj4UTest.C b/src/Infrastructure/Mesh/tests/ESMCI_Proj4UTest.C index ad2c50940e..b6761bd4d9 100644 --- a/src/Infrastructure/Mesh/tests/ESMCI_Proj4UTest.C +++ b/src/Infrastructure/Mesh/tests/ESMCI_Proj4UTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMC_MeshUTest.c b/src/Infrastructure/Mesh/tests/ESMC_MeshUTest.c index b2aaf9339b..cccf14726c 100644 --- a/src/Infrastructure/Mesh/tests/ESMC_MeshUTest.c +++ b/src/Infrastructure/Mesh/tests/ESMC_MeshUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMC_MeshVTKUTest.c b/src/Infrastructure/Mesh/tests/ESMC_MeshVTKUTest.c index 138b6bee51..9d0efecae4 100644 --- a/src/Infrastructure/Mesh/tests/ESMC_MeshVTKUTest.c +++ b/src/Infrastructure/Mesh/tests/ESMC_MeshVTKUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMF_MeshFileIOUTest.F90 b/src/Infrastructure/Mesh/tests/ESMF_MeshFileIOUTest.F90 index a56d9e67e1..a31ede7ad8 100644 --- a/src/Infrastructure/Mesh/tests/ESMF_MeshFileIOUTest.F90 +++ b/src/Infrastructure/Mesh/tests/ESMF_MeshFileIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMF_MeshOpUTest.F90 b/src/Infrastructure/Mesh/tests/ESMF_MeshOpUTest.F90 index ba3db4fbf2..f766e9437a 100644 --- a/src/Infrastructure/Mesh/tests/ESMF_MeshOpUTest.F90 +++ b/src/Infrastructure/Mesh/tests/ESMF_MeshOpUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Mesh/tests/ESMF_MeshUTest.F90 b/src/Infrastructure/Mesh/tests/ESMF_MeshUTest.F90 index 82439f1c7d..8a4efe0938 100644 --- a/src/Infrastructure/Mesh/tests/ESMF_MeshUTest.F90 +++ b/src/Infrastructure/Mesh/tests/ESMF_MeshUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/PointList/include/ESMCI_PointList.h b/src/Infrastructure/PointList/include/ESMCI_PointList.h index c9a8238ae7..853bbc1bae 100644 --- a/src/Infrastructure/PointList/include/ESMCI_PointList.h +++ b/src/Infrastructure/PointList/include/ESMCI_PointList.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/PointList/interface/ESMCI_PointList_F.C b/src/Infrastructure/PointList/interface/ESMCI_PointList_F.C index b25f4ef7a2..4c3e467594 100644 --- a/src/Infrastructure/PointList/interface/ESMCI_PointList_F.C +++ b/src/Infrastructure/PointList/interface/ESMCI_PointList_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/PointList/interface/ESMF_PointList.F90 b/src/Infrastructure/PointList/interface/ESMF_PointList.F90 index 6becbdd8e3..a46ce46381 100644 --- a/src/Infrastructure/PointList/interface/ESMF_PointList.F90 +++ b/src/Infrastructure/PointList/interface/ESMF_PointList.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/PointList/src/ESMCI_PointList.C b/src/Infrastructure/PointList/src/ESMCI_PointList.C index b46cef8430..40c47d4fbd 100644 --- a/src/Infrastructure/PointList/src/ESMCI_PointList.C +++ b/src/Infrastructure/PointList/src/ESMCI_PointList.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/PointList/tests/ESMF_PointListUTest.F90 b/src/Infrastructure/PointList/tests/ESMF_PointListUTest.F90 index 6500921d7c..ee03d2f6c1 100644 --- a/src/Infrastructure/PointList/tests/ESMF_PointListUTest.F90 +++ b/src/Infrastructure/PointList/tests/ESMF_PointListUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid.bib b/src/Infrastructure/Regrid/doc/Regrid.bib index af43d3dd4b..cf87b3ff44 100644 --- a/src/Infrastructure/Regrid/doc/Regrid.bib +++ b/src/Infrastructure/Regrid/doc/Regrid.bib @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid_desc.tex b/src/Infrastructure/Regrid/doc/Regrid_desc.tex index c96f09c96c..6f6f6bb9e0 100644 --- a/src/Infrastructure/Regrid/doc/Regrid_desc.tex +++ b/src/Infrastructure/Regrid/doc/Regrid_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid_glos.tex b/src/Infrastructure/Regrid/doc/Regrid_glos.tex index 14d5034c92..cff7260844 100644 --- a/src/Infrastructure/Regrid/doc/Regrid_glos.tex +++ b/src/Infrastructure/Regrid/doc/Regrid_glos.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid_obj.tex b/src/Infrastructure/Regrid/doc/Regrid_obj.tex index 89caa671ce..93a05cf4ee 100644 --- a/src/Infrastructure/Regrid/doc/Regrid_obj.tex +++ b/src/Infrastructure/Regrid/doc/Regrid_obj.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid_refdoc.ctex b/src/Infrastructure/Regrid/doc/Regrid_refdoc.ctex index 06a7f58825..ce023be1b5 100644 --- a/src/Infrastructure/Regrid/doc/Regrid_refdoc.ctex +++ b/src/Infrastructure/Regrid/doc/Regrid_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/doc/Regrid_req.tex b/src/Infrastructure/Regrid/doc/Regrid_req.tex index 44521130e3..4f0f4ce4f4 100644 --- a/src/Infrastructure/Regrid/doc/Regrid_req.tex +++ b/src/Infrastructure/Regrid/doc/Regrid_req.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/examples/ESMF_RegridEx.F90 b/src/Infrastructure/Regrid/examples/ESMF_RegridEx.F90 index 7a1f481f4c..6ef47345c2 100644 --- a/src/Infrastructure/Regrid/examples/ESMF_RegridEx.F90 +++ b/src/Infrastructure/Regrid/examples/ESMF_RegridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/interface/ESMCI_Regrid_F.C b/src/Infrastructure/Regrid/interface/ESMCI_Regrid_F.C index deb33b93e9..bf500758c0 100644 --- a/src/Infrastructure/Regrid/interface/ESMCI_Regrid_F.C +++ b/src/Infrastructure/Regrid/interface/ESMCI_Regrid_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -66,6 +66,7 @@ extern "C" void FTN_X(c_esmc_regrid_create)(MeshCap **meshsrcpp, int *srcTermProcessing, int *pipelineDepth, ESMCI::RouteHandle **rh, int *has_rh, int *has_iw, int *nentries, ESMCI::TempWeights **tweights, + ESMCI::RouteHandle **trh, int *has_trh, int *has_udl, int *_num_udl, ESMCI::TempUDL **_tudl, int *has_statusArray, ESMCI::Array **statusArray, int *checkFlag, @@ -103,8 +104,9 @@ MeshCap::regrid_create(meshsrcpp, arraysrcpp, plsrcpp, extrapNumInputLevels, unmappedaction, _ignoreDegenerate, srcTermProcessing, pipelineDepth, - rh, has_rh, has_iw, - nentries, tweights, + rh, has_rh, + has_iw, nentries, tweights, + trh, has_trh, has_udl, _num_udl, _tudl, has_statusArray, statusArray, checkFlag, diff --git a/src/Infrastructure/Regrid/interface/ESMF_Regrid_C.F90 b/src/Infrastructure/Regrid/interface/ESMF_Regrid_C.F90 index 1b64131d0a..4df0ca0fd2 100644 --- a/src/Infrastructure/Regrid/interface/ESMF_Regrid_C.F90 +++ b/src/Infrastructure/Regrid/interface/ESMF_Regrid_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Regrid/src/ESMF_Regrid.F90 b/src/Infrastructure/Regrid/src/ESMF_Regrid.F90 index 3ace9bbee7..cbff74a812 100644 --- a/src/Infrastructure/Regrid/src/ESMF_Regrid.F90 +++ b/src/Infrastructure/Regrid/src/ESMF_Regrid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -165,6 +165,7 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & pipelineDepth, & routehandle, & indices, weights, & + transposeRoutehandle, & unmappedDstList, & checkFlag, & rc) @@ -194,6 +195,7 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & integer, intent(inout), optional :: srcTermProcessing integer, intent(inout), optional :: pipelineDepth type(ESMF_RouteHandle), intent(inout), optional :: routehandle + type(ESMF_RouteHandle), intent(inout), optional :: transposeRoutehandle integer(ESMF_KIND_I4), pointer, optional :: indices(:,:) real(ESMF_KIND_R8), pointer, optional :: weights(:) integer(ESMF_KIND_I4), pointer, optional :: unmappedDstList(:) @@ -239,7 +241,7 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & ! \end{description} !EOPI integer :: localrc - integer :: has_rh, has_iw, nentries + integer :: has_rh, has_trh, has_iw, nentries type(ESMF_TempWeights) :: tweights integer :: has_udl, num_udl type(ESMF_TempUDL) :: tudl @@ -262,7 +264,9 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & endif ! Next, we require that the user request at least something - if (.not.(present(routehandle) .or. present(indices))) then + if (.not.(present(routehandle) .or. & + present(transposeRoutehandle) .or. & + present(indices))) then localrc = ESMF_RC_ARG_BAD if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return @@ -282,6 +286,10 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & if (present(indices)) has_iw = 1 if (present(unmappedDstList)) has_udl = 1 + ! Record if transpose routehandle is present + has_trh = 0 + if (present(transposeRoutehandle)) has_trh = 1 + if (present(unmappedaction)) then localunmappedaction=unmappedaction else @@ -366,6 +374,7 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & srcTermProcessing, pipelineDepth, & routehandle, has_rh, has_iw, & nentries, tweights, & + transposeRoutehandle, has_trh, & has_udl, num_udl, tudl, & has_statusArrayInt, statusArray, & checkFlagInt, & @@ -401,13 +410,20 @@ subroutine ESMF_RegridStore(srcMesh, srcArray, srcPointList, src_pl_used, & endif endif - ! Mark route handle created + ! Mark routeHandle created if (present(routeHandle)) then call ESMF_RouteHandleSetInitCreated(routeHandle, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return endif + ! Mark transpose routeHandle created + if (present(transposeRoutehandle)) then + call ESMF_RouteHandleSetInitCreated(transposeRoutehandle, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + rc = ESMF_SUCCESS end subroutine ESMF_RegridStore diff --git a/src/Infrastructure/Route/doc/RHandle_crefdoc.ctex b/src/Infrastructure/Route/doc/RHandle_crefdoc.ctex index 9d6957cc3c..b079e63bfc 100644 --- a/src/Infrastructure/Route/doc/RHandle_crefdoc.ctex +++ b/src/Infrastructure/Route/doc/RHandle_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/doc/RHandle_desc.tex b/src/Infrastructure/Route/doc/RHandle_desc.tex index cfee81d541..1351796b95 100644 --- a/src/Infrastructure/Route/doc/RHandle_desc.tex +++ b/src/Infrastructure/Route/doc/RHandle_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/doc/RHandle_refdoc.ctex b/src/Infrastructure/Route/doc/RHandle_refdoc.ctex index eaaf20a6f6..3bdcf5be05 100644 --- a/src/Infrastructure/Route/doc/RHandle_refdoc.ctex +++ b/src/Infrastructure/Route/doc/RHandle_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleBitForBitEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleBitForBitEx.F90 index d5d8fd56ac..cd72f42693 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleBitForBitEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleBitForBitEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleDynamicMaskingEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleDynamicMaskingEx.F90 index 14d1f86729..45547bb431 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleDynamicMaskingEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleDynamicMaskingEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleFromFileEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleFromFileEx.F90 index 1aa5d6997d..eb19dfe432 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleFromFileEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleFromFileEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleFromRHandleEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleFromRHandleEx.F90 index a328967f92..183ddafc8b 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleFromRHandleEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleFromRHandleEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleReusabilityEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleReusabilityEx.F90 index 9e4528c8b3..e9a78c7e5f 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleReusabilityEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleReusabilityEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/examples/ESMF_RHandleVMEpochEx.F90 b/src/Infrastructure/Route/examples/ESMF_RHandleVMEpochEx.F90 index 8380240bf0..b93a898da4 100644 --- a/src/Infrastructure/Route/examples/ESMF_RHandleVMEpochEx.F90 +++ b/src/Infrastructure/Route/examples/ESMF_RHandleVMEpochEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/include/ESMCI_RHandle.h b/src/Infrastructure/Route/include/ESMCI_RHandle.h index c5cf437ed4..beec0a8309 100644 --- a/src/Infrastructure/Route/include/ESMCI_RHandle.h +++ b/src/Infrastructure/Route/include/ESMCI_RHandle.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/include/ESMC_RHandle.h b/src/Infrastructure/Route/include/ESMC_RHandle.h index d14d2d0a4e..5a85b02a32 100644 --- a/src/Infrastructure/Route/include/ESMC_RHandle.h +++ b/src/Infrastructure/Route/include/ESMC_RHandle.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/interface/ESMCI_RHandle_F.C b/src/Infrastructure/Route/interface/ESMCI_RHandle_F.C index bfe95d1d86..1544c2d72b 100644 --- a/src/Infrastructure/Route/interface/ESMCI_RHandle_F.C +++ b/src/Infrastructure/Route/interface/ESMCI_RHandle_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/interface/ESMC_RHandle.C b/src/Infrastructure/Route/interface/ESMC_RHandle.C index c16b56ef7b..6d167d8f8f 100644 --- a/src/Infrastructure/Route/interface/ESMC_RHandle.C +++ b/src/Infrastructure/Route/interface/ESMC_RHandle.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/interface/ESMF_RHandle.F90 b/src/Infrastructure/Route/interface/ESMF_RHandle.F90 index aaa5906319..52194d3b35 100644 --- a/src/Infrastructure/Route/interface/ESMF_RHandle.F90 +++ b/src/Infrastructure/Route/interface/ESMF_RHandle.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -43,6 +43,7 @@ module ESMF_RHandleMod use ESMF_LogErrMod ! ESMF error handling use ESMF_F90InterfaceMod ! ESMF F90-C++ interface helper use ESMF_IOUtilMod ! ESMF I/O utility layer + use ESMF_VMMod implicit none @@ -755,12 +756,13 @@ end subroutine ESMF_RouteHandleDestroy ! !INTERFACE: ! Private name; call using ESMF_RouteHandleGet() - subroutine ESMF_RouteHandleGetP(routehandle, keywordEnforcer, name, rc) + subroutine ESMF_RouteHandleGetP(routehandle, keywordEnforcer, name, vm, rc) ! ! !ARGUMENTS: type(ESMF_RouteHandle), intent(in) :: routehandle type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below character(len=*), intent(out), optional :: name + type(ESMF_VM), intent(out), optional :: vm integer, intent(out), optional :: rc ! @@ -773,6 +775,8 @@ subroutine ESMF_RouteHandleGetP(routehandle, keywordEnforcer, name, rc) ! {\tt ESMF\_RouteHandle} to be queried. ! \item [{[name]}] ! Name of the RouteHandle object. +! \item [{[vm}] +! The VM on which the RouteHandle object was created. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -794,6 +798,16 @@ subroutine ESMF_RouteHandleGetP(routehandle, keywordEnforcer, name, rc) ESMF_CONTEXT, rcToReturn=rc)) return endif + if (present(vm)) then + call c_ESMC_GetVM(routehandle, vm, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code on the VM object before returning + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + ! Return successfully if (present(rc)) rc = ESMF_SUCCESS diff --git a/src/Infrastructure/Route/src/ESMCI_RHandle.C b/src/Infrastructure/Route/src/ESMCI_RHandle.C index d00626a75b..701d0a0dfe 100644 --- a/src/Infrastructure/Route/src/ESMCI_RHandle.C +++ b/src/Infrastructure/Route/src/ESMCI_RHandle.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/tests/ESMC_RouteHandleUTest.c b/src/Infrastructure/Route/tests/ESMC_RouteHandleUTest.c index 3997382bcb..b4f7d30fab 100644 --- a/src/Infrastructure/Route/tests/ESMC_RouteHandleUTest.c +++ b/src/Infrastructure/Route/tests/ESMC_RouteHandleUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/tests/ESMF_RouteHandleAdvancedUTest.F90 b/src/Infrastructure/Route/tests/ESMF_RouteHandleAdvancedUTest.F90 index 8a5851128a..a7c354af04 100644 --- a/src/Infrastructure/Route/tests/ESMF_RouteHandleAdvancedUTest.F90 +++ b/src/Infrastructure/Route/tests/ESMF_RouteHandleAdvancedUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Route/tests/ESMF_RouteHandleUTest.F90 b/src/Infrastructure/Route/tests/ESMF_RouteHandleUTest.F90 index 40824f89dd..392127af99 100644 --- a/src/Infrastructure/Route/tests/ESMF_RouteHandleUTest.F90 +++ b/src/Infrastructure/Route/tests/ESMF_RouteHandleUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMC_ClockEx.C b/src/Infrastructure/TimeMgr/examples/ESMC_ClockEx.C index 0f67967746..add55a3f0c 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMC_ClockEx.C +++ b/src/Infrastructure/TimeMgr/examples/ESMC_ClockEx.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMF_AlarmEx.F90 b/src/Infrastructure/TimeMgr/examples/ESMF_AlarmEx.F90 index b15e818c30..9582cdc502 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMF_AlarmEx.F90 +++ b/src/Infrastructure/TimeMgr/examples/ESMF_AlarmEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMF_CalendarEx.F90 b/src/Infrastructure/TimeMgr/examples/ESMF_CalendarEx.F90 index fa38239969..7b54cdaa2c 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMF_CalendarEx.F90 +++ b/src/Infrastructure/TimeMgr/examples/ESMF_CalendarEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMF_ClockEx.F90 b/src/Infrastructure/TimeMgr/examples/ESMF_ClockEx.F90 index a02b609c57..5a70856031 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMF_ClockEx.F90 +++ b/src/Infrastructure/TimeMgr/examples/ESMF_ClockEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMF_TimeEx.F90 b/src/Infrastructure/TimeMgr/examples/ESMF_TimeEx.F90 index 50ba368f2a..9e1525165f 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMF_TimeEx.F90 +++ b/src/Infrastructure/TimeMgr/examples/ESMF_TimeEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/examples/ESMF_TimeIntervalEx.F90 b/src/Infrastructure/TimeMgr/examples/ESMF_TimeIntervalEx.F90 index d1b064df17..968cb1b405 100644 --- a/src/Infrastructure/TimeMgr/examples/ESMF_TimeIntervalEx.F90 +++ b/src/Infrastructure/TimeMgr/examples/ESMF_TimeIntervalEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_Alarm.h b/src/Infrastructure/TimeMgr/include/ESMCI_Alarm.h index 730ee83763..f51db1e542 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_Alarm.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_Alarm.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_BaseTime.h b/src/Infrastructure/TimeMgr/include/ESMCI_BaseTime.h index 41b3581832..40fa216c11 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_BaseTime.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_BaseTime.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_Calendar.h b/src/Infrastructure/TimeMgr/include/ESMCI_Calendar.h index 231dcf5807..93d24b2ca2 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_Calendar.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_Calendar.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_Clock.h b/src/Infrastructure/TimeMgr/include/ESMCI_Clock.h index 58cffa138b..690bf0d390 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_Clock.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_Clock.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_Time.h b/src/Infrastructure/TimeMgr/include/ESMCI_Time.h index 9da21b54cf..8dbaa70aba 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_Time.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_Time.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMCI_TimeInterval.h b/src/Infrastructure/TimeMgr/include/ESMCI_TimeInterval.h index ab2186830c..c087663ae1 100644 --- a/src/Infrastructure/TimeMgr/include/ESMCI_TimeInterval.h +++ b/src/Infrastructure/TimeMgr/include/ESMCI_TimeInterval.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMC_Calendar.h b/src/Infrastructure/TimeMgr/include/ESMC_Calendar.h index ec88058753..6a679b5f75 100644 --- a/src/Infrastructure/TimeMgr/include/ESMC_Calendar.h +++ b/src/Infrastructure/TimeMgr/include/ESMC_Calendar.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMC_Clock.h b/src/Infrastructure/TimeMgr/include/ESMC_Clock.h index c906868388..23e676865f 100644 --- a/src/Infrastructure/TimeMgr/include/ESMC_Clock.h +++ b/src/Infrastructure/TimeMgr/include/ESMC_Clock.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMC_Time.h b/src/Infrastructure/TimeMgr/include/ESMC_Time.h index 2f3732081e..a7572ba124 100644 --- a/src/Infrastructure/TimeMgr/include/ESMC_Time.h +++ b/src/Infrastructure/TimeMgr/include/ESMC_Time.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMC_TimeInterval.h b/src/Infrastructure/TimeMgr/include/ESMC_TimeInterval.h index 38ca52a31a..4fc7864dd6 100644 --- a/src/Infrastructure/TimeMgr/include/ESMC_TimeInterval.h +++ b/src/Infrastructure/TimeMgr/include/ESMC_TimeInterval.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/include/ESMF_TimeMgr.inc b/src/Infrastructure/TimeMgr/include/ESMF_TimeMgr.inc index c76a303088..3010c9c154 100644 --- a/src/Infrastructure/TimeMgr/include/ESMF_TimeMgr.inc +++ b/src/Infrastructure/TimeMgr/include/ESMF_TimeMgr.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_Alarm_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_Alarm_F.C index 590d2add4f..7da127c18a 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_Alarm_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_Alarm_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_BaseTime_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_BaseTime_F.C index 3065185585..79001fae72 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_BaseTime_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_BaseTime_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_Calendar_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_Calendar_F.C index 8503b07bee..2f60c18a31 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_Calendar_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_Calendar_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_Clock_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_Clock_F.C index 47bf246736..30fe371eb6 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_Clock_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_Clock_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_TimeInterval_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_TimeInterval_F.C index b165e99d75..4aab8ad452 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_TimeInterval_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_TimeInterval_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMCI_Time_F.C b/src/Infrastructure/TimeMgr/interface/ESMCI_Time_F.C index 141ba29a2d..cabf56cdb5 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMCI_Time_F.C +++ b/src/Infrastructure/TimeMgr/interface/ESMCI_Time_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMC_Calendar.C b/src/Infrastructure/TimeMgr/interface/ESMC_Calendar.C index ece397653e..31cebecd51 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMC_Calendar.C +++ b/src/Infrastructure/TimeMgr/interface/ESMC_Calendar.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMC_Clock.C b/src/Infrastructure/TimeMgr/interface/ESMC_Clock.C index 6b2a9e66bd..f0c5f2decb 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMC_Clock.C +++ b/src/Infrastructure/TimeMgr/interface/ESMC_Clock.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMC_Time.C b/src/Infrastructure/TimeMgr/interface/ESMC_Time.C index 9e982f15f7..28b1348b5b 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMC_Time.C +++ b/src/Infrastructure/TimeMgr/interface/ESMC_Time.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMC_TimeInterval.C b/src/Infrastructure/TimeMgr/interface/ESMC_TimeInterval.C index c7b8a2d734..d825177b2a 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMC_TimeInterval.C +++ b/src/Infrastructure/TimeMgr/interface/ESMC_TimeInterval.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_Alarm.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_Alarm.F90 index 574f609b69..aa79755ad6 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_Alarm.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_Alarm.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_AlarmType.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_AlarmType.F90 index 53c82a0991..8d2656c926 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_AlarmType.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_AlarmType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_Calendar.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_Calendar.F90 index 24dcc7a356..6e1aaabf62 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_Calendar.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_Calendar.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_Clock.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_Clock.F90 index 322628fe41..8048c6f8ac 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_Clock.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_Clock.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_ClockType.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_ClockType.F90 index 1bd1f3adc0..18f7080417 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_ClockType.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_ClockType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_Time.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_Time.F90 index 5b565fd8e8..d2c9f56c35 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_Time.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_Time.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -662,6 +662,16 @@ subroutine ESMF_TimeGet(time, keywordEnforcer, & ! and {\tt ESMF\_TimeGet(yy = year, s=seconds)} would return ! {\tt year = 2004}, {\tt seconds = 2772000} (770 * 3600). ! +! However, double precision time units are not considered in this normalization: +! Double precision time units are still bound by units of a day or larger, but double +! precision time units of an hour or smaller neither bind nor are bound by other time +! units of an hour or smaller (either integer or double precision). For example, +! with the same time setting as above (2:00 am on February 2, 2004), +! {\tt ESMF\_TimeGet(dd=day, h\_r8=hours\_r8, s=seconds)} would return +! {\tt day = 2}, {\tt hours\_r8 = 2.0}, {\tt seconds = 7200}, and +! {\tt ESMF\_TimeGet(dd=day, h=hours, s\_r8=seconds\_r8)} would return +! {\tt day = 2}, {\tt hours = 2}, {\tt seconds\_r8 = 7200.0}. +! ! For {\tt timeString}, {\tt timeStringISOFrac}, {\tt dayOfWeek}, ! {\tt midMonth}, {\tt dayOfYear}, {\tt dayOfYear\_intvl}, and ! {\tt dayOfYear\_r8} described below, valid calendars are Gregorian, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_TimeInterval.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_TimeInterval.F90 index 646aabc445..629be1f4e4 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_TimeInterval.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_TimeInterval.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1086,6 +1086,10 @@ subroutine ESMF_TimeIntervalGetDur(timeinterval, keywordEnforcer, & ! {\tt days = 1}, {\tt seconds = 0}, ! whereas {\tt ESMF\_TimeIntervalGet(s = seconds)} would return ! {\tt seconds = 86400}. +! However, double precision time units are not considered in this normalization: +! Double precision time units are still bound by units of a day or larger, but double +! precision time units of an hour or smaller neither bind nor are bound by other time +! units of an hour or smaller (either integer or double precision). ! ! For timeString, converts {\tt ESMF\_TimeInterval}'s value into ! partial ISO 8601 format PyYmMdDThHmMs[:n/d]S. See ~\cite{ISO} and @@ -1313,6 +1317,10 @@ subroutine ESMF_TimeIntervalGetDurStart(timeinterval, startTimeIn, & ! {\tt days = 1}, {\tt seconds = 0}, ! whereas {\tt ESMF\_TimeIntervalGet(s = seconds)} would return ! {\tt seconds = 86400}. +! However, double precision time units are not considered in this normalization: +! Double precision time units are still bound by units of a day or larger, but double +! precision time units of an hour or smaller neither bind nor are bound by other time +! units of an hour or smaller (either integer or double precision). ! ! For timeString, converts {\tt ESMF\_TimeInterval}'s value into ! partial ISO 8601 format PyYmMdDThHmMs[:n/d]S. See ~\cite{ISO} and @@ -1548,6 +1556,10 @@ subroutine ESMF_TimeIntervalGetDurCal(timeinterval, calendarIn, & ! {\tt days = 1}, {\tt seconds = 0}, ! whereas {\tt ESMF\_TimeIntervalGet(s = seconds)} would return ! {\tt seconds = 86400}. +! However, double precision time units are not considered in this normalization: +! Double precision time units are still bound by units of a day or larger, but double +! precision time units of an hour or smaller neither bind nor are bound by other time +! units of an hour or smaller (either integer or double precision). ! ! For timeString, converts {\tt ESMF\_TimeInterval}'s value into ! partial ISO 8601 format PyYmMdDThHmMs[:n/d]S. See ~\cite{ISO} and @@ -1785,6 +1797,10 @@ subroutine ESMF_TimeIntervalGetDurCalTyp(timeinterval, calkindflagIn, & ! {\tt days = 1}, {\tt seconds = 0}, ! whereas {\tt ESMF\_TimeIntervalGet(s = seconds)} would return ! {\tt seconds = 86400}. +! However, double precision time units are not considered in this normalization: +! Double precision time units are still bound by units of a day or larger, but double +! precision time units of an hour or smaller neither bind nor are bound by other time +! units of an hour or smaller (either integer or double precision). ! ! For timeString, converts {\tt ESMF\_TimeInterval}'s value into ! partial ISO 8601 format PyYmMdDThHmMs[:n/d]S. See ~\cite{ISO} and diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_TimeIntervalType.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_TimeIntervalType.F90 index c38a7578fb..9d2ab22c96 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_TimeIntervalType.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_TimeIntervalType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/interface/ESMF_TimeType.F90 b/src/Infrastructure/TimeMgr/interface/ESMF_TimeType.F90 index 92eeea6e16..0171fa188b 100644 --- a/src/Infrastructure/TimeMgr/interface/ESMF_TimeType.F90 +++ b/src/Infrastructure/TimeMgr/interface/ESMF_TimeType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_Alarm.C b/src/Infrastructure/TimeMgr/src/ESMCI_Alarm.C index ed2bb7ca41..c7d171b6c9 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_Alarm.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_Alarm.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_BaseTime.C b/src/Infrastructure/TimeMgr/src/ESMCI_BaseTime.C index 324dd94b1e..636cac533b 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_BaseTime.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_BaseTime.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_Calendar.C b/src/Infrastructure/TimeMgr/src/ESMCI_Calendar.C index fbf95c53a9..152639cafe 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_Calendar.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_Calendar.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_Clock.C b/src/Infrastructure/TimeMgr/src/ESMCI_Clock.C index d53497bb34..a24c98f2c4 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_Clock.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_Clock.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_Time.C b/src/Infrastructure/TimeMgr/src/ESMCI_Time.C index eb3febdd48..db04d785b8 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_Time.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_Time.C @@ -1,7 +1,7 @@ // $Id$" // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/src/ESMCI_TimeInterval.C b/src/Infrastructure/TimeMgr/src/ESMCI_TimeInterval.C index 7d9ea05b0f..69c1c6b17c 100644 --- a/src/Infrastructure/TimeMgr/src/ESMCI_TimeInterval.C +++ b/src/Infrastructure/TimeMgr/src/ESMCI_TimeInterval.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMC_CalendarUTest.c b/src/Infrastructure/TimeMgr/tests/ESMC_CalendarUTest.c index 60d5c6c9c0..1a69bd6ad1 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMC_CalendarUTest.c +++ b/src/Infrastructure/TimeMgr/tests/ESMC_CalendarUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMC_ClockUTest.c b/src/Infrastructure/TimeMgr/tests/ESMC_ClockUTest.c index 56e25e0883..eb5210deec 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMC_ClockUTest.c +++ b/src/Infrastructure/TimeMgr/tests/ESMC_ClockUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMC_TimeIntervalUTest.c b/src/Infrastructure/TimeMgr/tests/ESMC_TimeIntervalUTest.c index cb6c3c2b37..ff84721f6e 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMC_TimeIntervalUTest.c +++ b/src/Infrastructure/TimeMgr/tests/ESMC_TimeIntervalUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMC_TimeUTest.c b/src/Infrastructure/TimeMgr/tests/ESMC_TimeUTest.c index 56367e9f4b..e918c9d30d 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMC_TimeUTest.c +++ b/src/Infrastructure/TimeMgr/tests/ESMC_TimeUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_AlarmUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_AlarmUTest.F90 index 9b8422ae37..6f866fe6b5 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_AlarmUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_AlarmUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_CalRangeUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_CalRangeUTest.F90 index 47eab142e2..7d2f5b1a8b 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_CalRangeUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_CalRangeUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_CalendarUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_CalendarUTest.F90 index 9d9b768193..e217dec18c 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_CalendarUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_CalendarUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_ClockUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_ClockUTest.F90 index 3abe7872be..717d2ff623 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_ClockUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_ClockUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_TimeIntervalUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_TimeIntervalUTest.F90 index ad2669cd28..065d1f441f 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_TimeIntervalUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_TimeIntervalUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/TimeMgr/tests/ESMF_TimeUTest.F90 b/src/Infrastructure/TimeMgr/tests/ESMF_TimeUTest.F90 index 1ac112ae6e..812ee462d3 100644 --- a/src/Infrastructure/TimeMgr/tests/ESMF_TimeUTest.F90 +++ b/src/Infrastructure/TimeMgr/tests/ESMF_TimeUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -45,6 +45,7 @@ program ESMF_TimeUTest ! individual test result code integer :: rc, H, M, S, MM, DD, YY + real(ESMF_KIND_R8) :: D_r8, H_r8, M_r8, S_r8 ! individual test name character(ESMF_MAXSTR) :: name @@ -74,8 +75,8 @@ program ESMF_TimeUTest logical :: bool integer :: dayOfYear, dayOfWeek, D, sD, sN, MS, NS, & US - real(ESMF_KIND_R8) :: NS_r8, S_r8, US_r8, MS_r8 - real(ESMF_KIND_R8) :: dayOfYear_r8, M_r8, D_r8, H_r8 + real(ESMF_KIND_R8) :: NS_r8, US_r8, MS_r8 + real(ESMF_KIND_R8) :: dayOfYear_r8 integer(ESMF_KIND_I8) :: year, SN_I8, SD_i8 ! instantitate some general times and timeintervals @@ -146,6 +147,72 @@ program ESMF_TimeUTest !print *, "startTime = ", timeString19 + ! ---------------------------------------------------------------------------- + !NEX_UTest + ! If you don't ask for all coarser time units, then the full remaining time gets + ! packed into the units you ask for + write(name, *) "Get Time Test - hours without all coarser time units" + write(failMsg, *) " Did not return correct un-normalized hours or ESMF_SUCCESS" + ! Do ask for years here, because otherwise we get the arbitrary baseline for years + ! folded into the result; but don't ask for any units between years and hours: + call ESMF_TimeGet(startTime, yy=YY, h=H, rc=rc) + ! Hours = (28 days)*(24 hours/day) + 12 + call ESMF_Test((YY==2004 .and. H==684 .and. rc==ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! ---------------------------------------------------------------------------- + !NEX_UTest + ! When asking for double precision time variables, they are still normalized by + ! days, but they are NOT normalized by time units finer than days. Furthermore, all + ! times include the full, fractional time (so hours, minutes and seconds all give + ! the same time value, just in different units). + write(name, *) "Get Time Test - real-valued time variables with int-valued date variables" + write(failMsg, *) " Did not return correct time values or ESMF_SUCCESS" + call ESMF_TimeGet(startTime, yy=YY, mm=MM, dd=DD, h_r8=H_r8, m_r8=M_r8, s_r8=S_r8, rc=rc) + ! Note that times are normalized by days; all times include the full time - with the + ! same value, just in different units + ! S = (12*60 + 17)*60 + 58 + ! M = ((12*60 + 17)*60 + 58) / 60 + ! H = (((12*60 + 17)*60 + 58) / 60) / 60 + call ESMF_Test((YY==2004 .and. MM==1 .and. DD==29 .and. & + abs(H_r8 - 12.299444444444445d0) < 1d-14 .and. & + abs(M_r8 - 737.9666666666667d0) < 1d-12 .and. & + abs(S_r8 - 44278.0d0) < 1d-11 .and. & + rc==ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! ---------------------------------------------------------------------------- + !NEX_UTest + ! Double precision time units include the full time even when asking for some time + ! units in integer. This contrasts with the behavior when asking for all things in + ! integer, where the finer time units are normalized by the coarser time units. + write(name, *) "Get Time Test - mix of coarser int-valued and finer real-valued time variables" + write(failMsg, *) " Did not return correct time values or ESMF_SUCCESS" + call ESMF_TimeGet(startTime, yy=YY, mm=MM, dd=DD, h=H, m_r8=M_r8, s_r8=S_r8, rc=rc) + ! Note that real-valued times include the full time - with the same value, just in + ! different units + ! S = (12*60 + 17)*60 + 58 + ! M = ((12*60 + 17)*60 + 58) / 60 + call ESMF_Test((YY==2004 .and. MM==1 .and. DD==29 .and. H==12 .and. & + abs(M_r8 - 737.9666666666667d0) < 1d-12 .and. & + abs(S_r8 - 44278.0d0) < 1d-11 .and. & + rc==ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! ---------------------------------------------------------------------------- + !NEX_UTest + ! When asking for coarser time units as double precision, days are still used to + ! normalize finer-valued time units, but time variables (e.g., hours) in double + ! precision are NOT used to normalize finer-valued time units in integer. This + ! contrasts with the behavior when asking for all things in integer, where the finer + ! time units are normalized by the coarser time units. + write(name, *) "Get Time Test - mix of coarser real-valued and finer int-valued time variables" + write(failMsg, *) " Did not return correct time values or ESMF_SUCCESS" + call ESMF_TimeGet(startTime, yy=YY, mm=MM, dd=DD, h_r8=H_r8, m=M, s=S, rc=rc) + ! M = (12 hours)*(60 minutes/hour) + 17 + ! S is normalized by M, so simply the remaining seconds, 58 + call ESMF_Test((YY==2004 .and. MM==1 .and. DD==29 .and. & + abs(H_r8 - 12.299444444444445d0) < 1d-14 .and. & + M==737 .and. S==58 .and. & + rc==ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + ! ---------------------------------------------------------------------------- !NEX_UTest diff --git a/src/Infrastructure/Trace/doc/Trace_crefdoc.ctex b/src/Infrastructure/Trace/doc/Trace_crefdoc.ctex index 66a676e41f..30880051c5 100644 --- a/src/Infrastructure/Trace/doc/Trace_crefdoc.ctex +++ b/src/Infrastructure/Trace/doc/Trace_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/doc/Trace_desc.tex b/src/Infrastructure/Trace/doc/Trace_desc.tex index f3865536f5..2be3e8c983 100644 --- a/src/Infrastructure/Trace/doc/Trace_desc.tex +++ b/src/Infrastructure/Trace/doc/Trace_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/doc/Trace_refdoc.ctex b/src/Infrastructure/Trace/doc/Trace_refdoc.ctex index e678d8b513..d15f0aef6b 100644 --- a/src/Infrastructure/Trace/doc/Trace_refdoc.ctex +++ b/src/Infrastructure/Trace/doc/Trace_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/doc/Trace_rest.tex b/src/Infrastructure/Trace/doc/Trace_rest.tex index 1bb94f21cf..ef92808467 100644 --- a/src/Infrastructure/Trace/doc/Trace_rest.tex +++ b/src/Infrastructure/Trace/doc/Trace_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/doc/Trace_usage.tex b/src/Infrastructure/Trace/doc/Trace_usage.tex index 9ce5c12a1c..2dbb6df2fa 100644 --- a/src/Infrastructure/Trace/doc/Trace_usage.tex +++ b/src/Infrastructure/Trace/doc/Trace_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/examples/ESMF_TraceEx.F90 b/src/Infrastructure/Trace/examples/ESMF_TraceEx.F90 index ed72457e64..82a093f90a 100644 --- a/src/Infrastructure/Trace/examples/ESMF_TraceEx.F90 +++ b/src/Infrastructure/Trace/examples/ESMF_TraceEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/examples/ESMF_TraceUserEx.F90 b/src/Infrastructure/Trace/examples/ESMF_TraceUserEx.F90 index ec3bd0d629..b31ac9782a 100644 --- a/src/Infrastructure/Trace/examples/ESMF_TraceUserEx.F90 +++ b/src/Infrastructure/Trace/examples/ESMF_TraceUserEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/gen_trace_metadata.py b/src/Infrastructure/Trace/gen_trace_metadata.py index a3e2979530..31d1687865 100644 --- a/src/Infrastructure/Trace/gen_trace_metadata.py +++ b/src/Infrastructure/Trace/gen_trace_metadata.py @@ -15,7 +15,7 @@ * Standard trace metadata used by all ESMF traces. * * Earth System Modeling Framework - * Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + * Copyright (c) 2002-2025, University Corporation for Atmospheric Research, * Massachusetts Institute of Technology, Geophysical Fluid Dynamics * Laboratory, University of Michigan, National Centers for Environmental * Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_RegionNode.h b/src/Infrastructure/Trace/include/ESMCI_RegionNode.h index b6c9969c17..787b0cb8ca 100644 --- a/src/Infrastructure/Trace/include/ESMCI_RegionNode.h +++ b/src/Infrastructure/Trace/include/ESMCI_RegionNode.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_RegionSummary.h b/src/Infrastructure/Trace/include/ESMCI_RegionSummary.h index 31bac1b5aa..17e2f925c4 100644 --- a/src/Infrastructure/Trace/include/ESMCI_RegionSummary.h +++ b/src/Infrastructure/Trace/include/ESMCI_RegionSummary.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_Trace.h b/src/Infrastructure/Trace/include/ESMCI_Trace.h index b0feeea8c0..2ebfc19c27 100644 --- a/src/Infrastructure/Trace/include/ESMCI_Trace.h +++ b/src/Infrastructure/Trace/include/ESMCI_Trace.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_TraceMacros.h b/src/Infrastructure/Trace/include/ESMCI_TraceMacros.h index 7dec63c8d1..2c26ee7fc9 100644 --- a/src/Infrastructure/Trace/include/ESMCI_TraceMacros.h +++ b/src/Infrastructure/Trace/include/ESMCI_TraceMacros.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_TraceRegion.h b/src/Infrastructure/Trace/include/ESMCI_TraceRegion.h index 9203e6c0c1..dc5eaf8e6b 100644 --- a/src/Infrastructure/Trace/include/ESMCI_TraceRegion.h +++ b/src/Infrastructure/Trace/include/ESMCI_TraceRegion.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMCI_TraceUtil.h b/src/Infrastructure/Trace/include/ESMCI_TraceUtil.h index 37f0057788..e06efca8d0 100644 --- a/src/Infrastructure/Trace/include/ESMCI_TraceUtil.h +++ b/src/Infrastructure/Trace/include/ESMCI_TraceUtil.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMC_Trace.h b/src/Infrastructure/Trace/include/ESMC_Trace.h index 3363c17791..e9c575680f 100644 --- a/src/Infrastructure/Trace/include/ESMC_Trace.h +++ b/src/Infrastructure/Trace/include/ESMC_Trace.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/include/ESMF_TraceRegion.inc b/src/Infrastructure/Trace/include/ESMF_TraceRegion.inc index 3bc38b97c2..7e054a7a1a 100644 --- a/src/Infrastructure/Trace/include/ESMF_TraceRegion.inc +++ b/src/Infrastructure/Trace/include/ESMF_TraceRegion.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/interface/ESMC_Trace.C b/src/Infrastructure/Trace/interface/ESMC_Trace.C index 38c467e012..db52e9d238 100644 --- a/src/Infrastructure/Trace/interface/ESMC_Trace.C +++ b/src/Infrastructure/Trace/interface/ESMC_Trace.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/interface/ESMF_Trace.F90 b/src/Infrastructure/Trace/interface/ESMF_Trace.F90 index 384d723439..b57886a05f 100644 --- a/src/Infrastructure/Trace/interface/ESMF_Trace.F90 +++ b/src/Infrastructure/Trace/interface/ESMF_Trace.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/src/ESMCI_Trace.C b/src/Infrastructure/Trace/src/ESMCI_Trace.C index 2425665ed3..150bb5faef 100644 --- a/src/Infrastructure/Trace/src/ESMCI_Trace.C +++ b/src/Infrastructure/Trace/src/ESMCI_Trace.C @@ -3,7 +3,7 @@ * Writes trace events to the file system. * * Earth System Modeling Framework - * Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + * Copyright (c) 2002-2025, University Corporation for Atmospheric Research, * Massachusetts Institute of Technology, Geophysical Fluid Dynamics * Laboratory, University of Michigan, National Centers for Environmental * Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/src/ESMCI_TraceClock.C b/src/Infrastructure/Trace/src/ESMCI_TraceClock.C index 3b00679e42..d6da349bc3 100644 --- a/src/Infrastructure/Trace/src/ESMCI_TraceClock.C +++ b/src/Infrastructure/Trace/src/ESMCI_TraceClock.C @@ -3,7 +3,7 @@ * Functions to get the timestamps from the system for trace events * * Earth System Modeling Framework - * Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + * Copyright (c) 2002-2025, University Corporation for Atmospheric Research, * Massachusetts Institute of Technology, Geophysical Fluid Dynamics * Laboratory, University of Michigan, National Centers for Environmental * Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/src/ESMCI_TraceMetadata.C b/src/Infrastructure/Trace/src/ESMCI_TraceMetadata.C index 834a850022..30c3fd312d 100644 --- a/src/Infrastructure/Trace/src/ESMCI_TraceMetadata.C +++ b/src/Infrastructure/Trace/src/ESMCI_TraceMetadata.C @@ -5,7 +5,7 @@ * Standard trace metadata used by all ESMF traces. * * Earth System Modeling Framework - * Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + * Copyright (c) 2002-2025, University Corporation for Atmospheric Research, * Massachusetts Institute of Technology, Geophysical Fluid Dynamics * Laboratory, University of Michigan, National Centers for Environmental * Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/src/ESMCI_TraceWrap.C b/src/Infrastructure/Trace/src/ESMCI_TraceWrap.C index 03cad3051e..6a140f2348 100644 --- a/src/Infrastructure/Trace/src/ESMCI_TraceWrap.C +++ b/src/Infrastructure/Trace/src/ESMCI_TraceWrap.C @@ -1,7 +1,7 @@ // $Id$ /* * Earth System Modeling Framework - * Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + * Copyright (c) 2002-2025, University Corporation for Atmospheric Research, * Massachusetts Institute of Technology, Geophysical Fluid Dynamics * Laboratory, University of Michigan, National Centers for Environmental * Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMCI_TraceRegionUTest.C b/src/Infrastructure/Trace/tests/ESMCI_TraceRegionUTest.C index 1f26d5eef2..2c4b8f1c08 100644 --- a/src/Infrastructure/Trace/tests/ESMCI_TraceRegionUTest.C +++ b/src/Infrastructure/Trace/tests/ESMCI_TraceRegionUTest.C @@ -3,7 +3,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMC_TraceRegionUTest.c b/src/Infrastructure/Trace/tests/ESMC_TraceRegionUTest.c index 8c850ec605..26a41335a6 100644 --- a/src/Infrastructure/Trace/tests/ESMC_TraceRegionUTest.c +++ b/src/Infrastructure/Trace/tests/ESMC_TraceRegionUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_ProfileUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_ProfileUTest.F90 index bd2e33a02f..3602d8f555 100644 --- a/src/Infrastructure/Trace/tests/ESMF_ProfileUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_ProfileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_SimpleComp.F90 b/src/Infrastructure/Trace/tests/ESMF_SimpleComp.F90 index 0b3a2f65b3..c25a523f2e 100644 --- a/src/Infrastructure/Trace/tests/ESMF_SimpleComp.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_SimpleComp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_SimpleCompB.F90 b/src/Infrastructure/Trace/tests/ESMF_SimpleCompB.F90 index 9725c6022a..7eef566f4a 100644 --- a/src/Infrastructure/Trace/tests/ESMF_SimpleCompB.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_SimpleCompB.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoSyncUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoSyncUTest.F90 index 2070f1e351..e9832695df 100644 --- a/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoSyncUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoSyncUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoUTest.F90 index 5c54655f29..d0219ce95a 100644 --- a/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_TraceClkMonoUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_TraceIOUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_TraceIOUTest.F90 index b312a2ee24..e896b8955f 100644 --- a/src/Infrastructure/Trace/tests/ESMF_TraceIOUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_TraceIOUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_TraceMPIUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_TraceMPIUTest.F90 index 51514e429a..47e6e559e6 100644 --- a/src/Infrastructure/Trace/tests/ESMF_TraceMPIUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_TraceMPIUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Trace/tests/ESMF_TraceUTest.F90 b/src/Infrastructure/Trace/tests/ESMF_TraceUTest.F90 index d6236574c8..1e57e5c96d 100644 --- a/src/Infrastructure/Trace/tests/ESMF_TraceUTest.F90 +++ b/src/Infrastructure/Trace/tests/ESMF_TraceUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/doc/IOUtil_refdoc.ctex b/src/Infrastructure/Util/doc/IOUtil_refdoc.ctex index 5a3321c915..7d2528956b 100644 --- a/src/Infrastructure/Util/doc/IOUtil_refdoc.ctex +++ b/src/Infrastructure/Util/doc/IOUtil_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_Arg.h b/src/Infrastructure/Util/include/ESMCI_Arg.h index 24e71e0a2f..f600afe5fc 100644 --- a/src/Infrastructure/Util/include/ESMCI_Arg.h +++ b/src/Infrastructure/Util/include/ESMCI_Arg.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_CoordSys.h b/src/Infrastructure/Util/include/ESMCI_CoordSys.h index 29e30d5415..3e2bc75f79 100644 --- a/src/Infrastructure/Util/include/ESMCI_CoordSys.h +++ b/src/Infrastructure/Util/include/ESMCI_CoordSys.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_F90Interface.h b/src/Infrastructure/Util/include/ESMCI_F90Interface.h index fcde25a853..3eee415f10 100644 --- a/src/Infrastructure/Util/include/ESMCI_F90Interface.h +++ b/src/Infrastructure/Util/include/ESMCI_F90Interface.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_Fraction.h b/src/Infrastructure/Util/include/ESMCI_Fraction.h index 501ad99738..ff65df6d31 100644 --- a/src/Infrastructure/Util/include/ESMCI_Fraction.h +++ b/src/Infrastructure/Util/include/ESMCI_Fraction.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_Macros.h b/src/Infrastructure/Util/include/ESMCI_Macros.h index 7b9f61de46..6c067f1113 100644 --- a/src/Infrastructure/Util/include/ESMCI_Macros.h +++ b/src/Infrastructure/Util/include/ESMCI_Macros.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMCI_Util.h b/src/Infrastructure/Util/include/ESMCI_Util.h index 995bc9b5cc..36596ed3ce 100644 --- a/src/Infrastructure/Util/include/ESMCI_Util.h +++ b/src/Infrastructure/Util/include/ESMCI_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMC_Arg.h b/src/Infrastructure/Util/include/ESMC_Arg.h index 30df60a306..1d5d290243 100644 --- a/src/Infrastructure/Util/include/ESMC_Arg.h +++ b/src/Infrastructure/Util/include/ESMC_Arg.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMC_CoordSys.h b/src/Infrastructure/Util/include/ESMC_CoordSys.h index 06b46bf88d..031699c6df 100644 --- a/src/Infrastructure/Util/include/ESMC_CoordSys.h +++ b/src/Infrastructure/Util/include/ESMC_CoordSys.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMC_Interface.h b/src/Infrastructure/Util/include/ESMC_Interface.h index bcd9dbdb4f..10550140ed 100644 --- a/src/Infrastructure/Util/include/ESMC_Interface.h +++ b/src/Infrastructure/Util/include/ESMC_Interface.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMC_Macros.h b/src/Infrastructure/Util/include/ESMC_Macros.h index 6c1eac73e2..43ca70ba5b 100644 --- a/src/Infrastructure/Util/include/ESMC_Macros.h +++ b/src/Infrastructure/Util/include/ESMC_Macros.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -51,13 +51,13 @@ #define ESMF_VERSION_MAJOR 8 -#define ESMF_VERSION_MINOR 8 +#define ESMF_VERSION_MINOR 9 #define ESMF_VERSION_REVISION 0 #define ESMF_VERSION_PATCHLEVEL 0 #define ESMF_VERSION_PUBLIC 'F' #define ESMF_VERSION_BETASNAPSHOT 'T' -#define ESMF_VERSION_STRING "8.8.0 beta snapshot" +#define ESMF_VERSION_STRING "8.9.0 beta snapshot" #endif // ESMC_MACROS_H diff --git a/src/Infrastructure/Util/include/ESMC_ReturnCodes.h b/src/Infrastructure/Util/include/ESMC_ReturnCodes.h index 9848dc52e5..d5a43d075c 100644 --- a/src/Infrastructure/Util/include/ESMC_ReturnCodes.h +++ b/src/Infrastructure/Util/include/ESMC_ReturnCodes.h @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework - Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMC_Util.h b/src/Infrastructure/Util/include/ESMC_Util.h index f47b624d44..f5e0c3c23e 100644 --- a/src/Infrastructure/Util/include/ESMC_Util.h +++ b/src/Infrastructure/Util/include/ESMC_Util.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF.h b/src/Infrastructure/Util/include/ESMF.h index fe3ca18e9f..e21242ef3d 100644 --- a/src/Infrastructure/Util/include/ESMF.h +++ b/src/Infrastructure/Util/include/ESMF.h @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_ErrReturnCodes.inc b/src/Infrastructure/Util/include/ESMF_ErrReturnCodes.inc index 015913a8e8..d071f68bf6 100644 --- a/src/Infrastructure/Util/include/ESMF_ErrReturnCodes.inc +++ b/src/Infrastructure/Util/include/ESMF_ErrReturnCodes.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_InitMacros.inc b/src/Infrastructure/Util/include/ESMF_InitMacros.inc index 2f64ec0315..a39f387b68 100644 --- a/src/Infrastructure/Util/include/ESMF_InitMacros.inc +++ b/src/Infrastructure/Util/include/ESMF_InitMacros.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_LogConstants.inc b/src/Infrastructure/Util/include/ESMF_LogConstants.inc index cdb04a0786..8fa687bb10 100644 --- a/src/Infrastructure/Util/include/ESMF_LogConstants.inc +++ b/src/Infrastructure/Util/include/ESMF_LogConstants.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework - Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_LogErr.inc b/src/Infrastructure/Util/include/ESMF_LogErr.inc index 7cd8984d3a..40b1327dfd 100644 --- a/src/Infrastructure/Util/include/ESMF_LogErr.inc +++ b/src/Infrastructure/Util/include/ESMF_LogErr.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework - Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_LogMacros.inc b/src/Infrastructure/Util/include/ESMF_LogMacros.inc index 4dc410fd24..569cdca410 100644 --- a/src/Infrastructure/Util/include/ESMF_LogMacros.inc +++ b/src/Infrastructure/Util/include/ESMF_LogMacros.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework - Copyright (c) 2002-2024, University Corporation for Atmospheric Research, + Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_Macros.inc b/src/Infrastructure/Util/include/ESMF_Macros.inc index d744091734..dd311b1b95 100644 --- a/src/Infrastructure/Util/include/ESMF_Macros.inc +++ b/src/Infrastructure/Util/include/ESMF_Macros.inc @@ -2,7 +2,7 @@ $Id$ Earth System Modeling Framework -Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_TypeKindMacros.hcppF90 b/src/Infrastructure/Util/include/ESMF_TypeKindMacros.hcppF90 index 0b87096790..ab4941f3fe 100644 --- a/src/Infrastructure/Util/include/ESMF_TypeKindMacros.hcppF90 +++ b/src/Infrastructure/Util/include/ESMF_TypeKindMacros.hcppF90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/ESMF_TypeKindRankMacros.hcppF90 b/src/Infrastructure/Util/include/ESMF_TypeKindRankMacros.hcppF90 index f77191c2cc..5709406d1c 100644 --- a/src/Infrastructure/Util/include/ESMF_TypeKindRankMacros.hcppF90 +++ b/src/Infrastructure/Util/include/ESMF_TypeKindRankMacros.hcppF90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/include/dmp_diff.hpp b/src/Infrastructure/Util/include/dmp_diff.hpp new file mode 100644 index 0000000000..7d98ce6cf0 --- /dev/null +++ b/src/Infrastructure/Util/include/dmp_diff.hpp @@ -0,0 +1,1223 @@ +/* + * Diff (without the Match and Patch) + * Copyright 2018 The diff-match-patch Authors. + * Copyright 2019 Victor Grishchenko + * https://github.com/google/diff-match-patch + * https://github.com/gritzko/myers-diff + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MyersDiff_HPP +#define MyersDiff_HPP + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +enum Operation : int8_t { EQUAL=0, INSERT=1, DELETE=2 }; + +inline char op2chr(Operation op) { + switch (op) { + case DELETE: + return '-'; + case INSERT: + return '+'; + case EQUAL: + return '='; + default: + return '?'; + } +} + +/* + * Computes the difference between two texts to create a patch. + * Also contains the behaviour settings. + */ +template +class MyersDiff { + public: + // Defaults. + // Set these on your diff_match_patch instance to override the defaults. + + /** + * Number of milliseconds to map a diff before giving up (0 for infinity). + */ + long Diff_Timeout = 1000; + /** + * Cost of an empty edit operation in terms of edit characters. + */ + uint16_t Diff_EditCost = 4; + /** + * At what point is no match declared (0.0 = perfection, 1.0 = very loose). + */ + float Match_Threshold = 0.5f; + /** + * How far to search for a match (0 = exact location, 1000+ = broad match). + * A match this many characters away from the expected location will add + * 1.0 to the score (0.0 is a perfect match). + */ + int Match_Distance = 1000; + /** + * When deleting a large block of text (over ~64 characters), how close do + * the contents have to be to match the expected contents. (0.0 = + * perfection, 1.0 = very loose). Note that Match_Threshold controls how + * closely the end points of a delete need to match. + */ + float Patch_DeleteThreshold = 0.5f; + /** + * Chunk size for context length. + */ + uint16_t Patch_Margin = 4; + + public: + using Char = typename String::value_type; + using Time = chrono::time_point; + using Size = typename String::size_type; + using ConstIter = typename String::const_iterator; + + struct Range { + ConstIter from, till; + Range(ConstIter begin, ConstIter end) : from{begin}, till{end} {} + explicit Range(const String& str) + : from{str.begin()}, till{str.end()} {} + bool operator==(Range b) const { + if (till - from != b.till - b.from) return false; + for (auto i = from, j = b.from; i < till; ++i, ++j) + if (*i != *j) return false; + return true; + } + Size size() const { return till - from; } + Range substr(Size start) const { + assert(start <= size()); + return Range{from + start, till}; + } + Range substr(Size start, Size end) const { + assert(end >= start); + assert(start <= size()); + if (end >= size()) end = size(); + return Range{from + start, from + end}; + } + Char operator[](Size idx) const { + assert(idx < size()); + return *(from + idx); + } + Size find(Range b) const { + auto at = std::search(from, till, b.from, b.till); + return at < till ? at - from : -1; + } + }; + + struct Diff { + Operation operation; + Range text; + Diff(Operation op, Range text_range) + : operation{op}, text{text_range} {} + std::string str() const { + string ret; + ret.push_back(op2chr(operation)); + ret.push_back('\t'); + ret.append(text.from, text.till); + return ret; + } + }; + + using Diffs = std::vector; + + private: + const String& text1; + const String& text2; + Diffs result; + + public: + MyersDiff(const String& original_text, const String& changed_text) + : text1{original_text}, text2{changed_text} { + result = diff_main(Range{text1}, Range{text2}); + } + + typename Diffs::const_iterator begin() const { return result.begin(); } + typename Diffs::const_iterator end() const { return result.end(); } + + const Diffs& diffs() const { return result; } + + // DIFF FUNCTIONS + + /** + * Find the differences between two texts. + * @return std::vector of Diff objects. + */ + Diffs diff_main(Range text1, Range text2) { + // Set a deadline by which time the diff must be complete. + Time deadline; + if (Diff_Timeout <= 0) { + deadline = Time::max(); + } else { + deadline = chrono::steady_clock::now() + + chrono::milliseconds(Diff_Timeout); + } + return diff_main(text1, text2, deadline); + } + + /** + * Find the differences between two texts. Simplifies the problem by + * stripping any common prefix or suffix off the texts before diffing. + * @param deadline Time when the diff should be complete by. Used + * internally for recursive calls. Users should set DiffTimeout + * instead. + * @return std::vector of Diff objects. + */ + Diffs diff_main(Range text1, Range text2, Time deadline) { + // Check for equality (speedup). + Diffs diffs{}; + if (text1 == text2) { + if (text1.size() != 0) { + diffs.push_back(Diff(EQUAL, text1)); + } + return diffs; + } + + // Trim off common prefix (speedup). + int commonlength = diff_commonPrefix(text1, text2); + Range commonprefix = text1.substr(0, commonlength); + text1 = text1.substr(commonlength); + text2 = text2.substr(commonlength); + + // Trim off common suffix (speedup). + commonlength = diff_commonSuffix(text1, text2); + Range commonsuffix = text1.substr(text1.size() - commonlength); + text1 = text1.substr(0, text1.size() - commonlength); + text2 = text2.substr(0, text2.size() - commonlength); + + // Compute the diff on the middle block. + diffs = diff_compute(text1, text2, deadline); + + // Restore the prefix and suffix. + if (commonprefix.size() != 0) { + diffs.insert(diffs.begin(), Diff(EQUAL, commonprefix)); + } + if (commonsuffix.size() != 0) { + diffs.push_back(Diff(EQUAL, commonsuffix)); + } + + // TODO diff_cleanupMerge(diffs); + return diffs; + } + + /** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param checklines Speedup flag. If false, then don't run a + * line-level diff first to identify the changed areas. + * If true, then run a faster slightly less optimal diff. + * @param deadline Time when the diff should be complete by. + * @return std::vector of Diff objects. + */ + Diffs diff_compute(Range text1, Range text2, Time deadline) { + Diffs diffs{}; + + if (text1.size() == 0) { + // Just add some text (speedup). + diffs.push_back(Diff(INSERT, text2)); + return diffs; + } + + if (text2.size() == 0) { + // Just delete some text (speedup). + diffs.push_back(Diff(DELETE, text1)); + return diffs; + } + + Range longtext = text1.size() > text2.size() ? text1 : text2; + Range shorttext = text1.size() > text2.size() ? text2 : text1; + int i = longtext.find(shorttext); + if (i != -1) { + // Shorter text is inside the longer text (speedup). + Operation op = (text1.size() > text2.size()) ? DELETE : INSERT; + diffs.push_back(Diff(op, longtext.substr(0, i))); + diffs.push_back(Diff(EQUAL, shorttext)); + diffs.push_back(Diff(op, longtext.substr(i + shorttext.size()))); + return diffs; + } + + if (shorttext.size() == 1) { + // Single character string. + // After the previous speedup, the character can't be an equality. + diffs.push_back(Diff(DELETE, text1)); + diffs.push_back(Diff(INSERT, text2)); + return diffs; + } + + // Check to see if the problem can be split in two. + /* TODO String[] hm = diff_halfMatch(text1, text2); + if (hm != null) { + // A half-match was found, sort out the return data. + Range text1_a = hm[0]; + Range text1_b = hm[1]; + Range text2_a = hm[2]; + Range text2_b = hm[3]; + String mid_common = hm[4]; + // Send both pairs off for separate processing. + Diffs diffs_a = diff_main(text1_a, text2_a, + checklines, deadline); + Diffs diffs_b = diff_main(text1_b, text2_b, + checklines, deadline); + // Merge the results. + diffs = diffs_a; + diffs.push_back(Diff(EQUAL, mid_common)); + diffs.addAll(diffs_b); + return diffs; + } + + if (checklines && text1.size() > 100 && text2.size() > 100) { + return diff_lineMode(text1, text2, deadline); + }*/ + + return diff_bisect(text1, text2, deadline); + } + + /** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param deadline Time at which to bail if not yet complete. + * @return std::vector of Diff objects. + */ + Diffs diff_bisect(Range text1, Range text2, Time deadline) { + // Cache the text lengths to prevent multiple calls. + int text1_length = text1.size(); + int text2_length = text2.size(); + int max_d = (text1_length + text2_length + 1) / 2; + int v_offset = max_d; + int v_length = 2 * max_d; + vector v1; + v1.resize(v_length); + vector v2; + v2.resize(v_length); + for (int x = 0; x < v_length; x++) { + v1[x] = -1; + v2[x] = -1; + } + v1[v_offset + 1] = 0; + v2[v_offset + 1] = 0; + int delta = text1_length - text2_length; + // If the total number of characters is odd, then the front path will + // collide with the reverse path. + bool front = (delta % 2 != 0); + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + int k1start = 0; + int k1end = 0; + int k2start = 0; + int k2end = 0; + for (int d = 0; d < max_d; d++) { + // Bail out if deadline is reached. + /* TODO if (System.currentTimeMillis() > deadline) { + break; + } */ + + // Walk the front path one step. + for (int k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { + int k1_offset = v_offset + k1; + int x1; + if (k1 == -d || + (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) { + x1 = v1[k1_offset + 1]; + } else { + x1 = v1[k1_offset - 1] + 1; + } + int y1 = x1 - k1; + while (x1 < text1_length && y1 < text2_length && + text1[x1] == text2[y1]) { + x1++; + y1++; + } + v1[k1_offset] = x1; + if (x1 > text1_length) { + // Ran off the right of the graph. + k1end += 2; + } else if (y1 > text2_length) { + // Ran off the bottom of the graph. + k1start += 2; + } else if (front) { + int k2_offset = v_offset + delta - k1; + if (k2_offset >= 0 && k2_offset < v_length && + v2[k2_offset] != -1) { + // Mirror x2 onto top-left coordinate system. + int x2 = text1_length - v2[k2_offset]; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit(text1, text2, x1, y1, + deadline); + } + } + } + } + + // Walk the reverse path one step. + for (int k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { + int k2_offset = v_offset + k2; + int x2; + if (k2 == -d || + (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) { + x2 = v2[k2_offset + 1]; + } else { + x2 = v2[k2_offset - 1] + 1; + } + int y2 = x2 - k2; + while (x2 < text1_length && y2 < text2_length && + text1[text1_length - x2 - 1] == + text2[text2_length - y2 - 1]) { + x2++; + y2++; + } + v2[k2_offset] = x2; + if (x2 > text1_length) { + // Ran off the left of the graph. + k2end += 2; + } else if (y2 > text2_length) { + // Ran off the top of the graph. + k2start += 2; + } else if (!front) { + int k1_offset = v_offset + delta - k2; + if (k1_offset >= 0 && k1_offset < v_length && + v1[k1_offset] != -1) { + int x1 = v1[k1_offset]; + int y1 = v_offset + x1 - k1_offset; + // Mirror x2 onto top-left coordinate system. + x2 = text1_length - x2; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit(text1, text2, x1, y1, + deadline); + } + } + } + } + } + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + Diffs diffs{}; + diffs.push_back(Diff{DELETE, text1}); + diffs.push_back(Diff{INSERT, text2}); + return diffs; + } + + /** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param text1 Old string to be diffed. + * @param text2 New string to be diffed. + * @param x Index of split point in text1. + * @param y Index of split point in text2. + * @param deadline Time at which to bail if not yet complete. + * @return std::vector of Diff objects. + */ + Diffs diff_bisectSplit(Range text1, Range text2, int x, int y, + Time deadline) { + Range text1a = text1.substr(0, x); + Range text2a = text2.substr(0, y); + Range text1b = text1.substr(x); + Range text2b = text2.substr(y); + + // Compute both diffs serially. + Diffs diffs = diff_main(text1a, text2a, deadline); + Diffs diffsb = diff_main(text1b, text2b, deadline); + + diffs.insert(diffs.end(), diffsb.begin(), diffsb.end()); + return diffs; + } + + /** + * Determine the common prefix of two strings + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the start of each string. + */ + int diff_commonPrefix(Range text1, Range text2) { + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + int n = std::min(text1.size(), text2.size()); + for (int i = 0; i < n; i++) { + if (text1[i] != text2[i]) { + return i; + } + } + return n; + } + + /** + * Determine the common suffix of two strings + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the end of each string. + */ + int diff_commonSuffix(Range text1, Range text2) { + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + int text1_length = text1.size(); + int text2_length = text2.size(); + int n = std::min(text1_length, text2_length); + for (int i = 1; i <= n; i++) { + if (text1[text1_length - i] != text2[text2_length - i]) { + return i - 1; + } + } + return n; + } + + /** + * Determine if the suffix of one string is the prefix of another. + * @param text1 First string. + * @param text2 Second string. + * @return The number of characters common to the end of the first + * string and the start of the second string. + */ + int diff_commonOverlap(Range text1, Range text2) { + // Cache the text lengths to prevent multiple calls. + int text1_length = text1.size(); + int text2_length = text2.size(); + // Eliminate the null case. + if (text1_length == 0 || text2_length == 0) { + return 0; + } + // Truncate the longer string. + if (text1_length > text2_length) { + text1 = text1.substr(text1_length - text2_length); + } else if (text1_length < text2_length) { + text2 = text2.substr(0, text1_length); + } + int text_length = std::min(text1_length, text2_length); + // Quick check for the worst case. + if (text1 == text2) { + return text_length; + } + + // Start by looking for a single character match + // and increase length until no match is found. + // Performance analysis: https://neil.fraser.name/news/2010/11/04/ + int best = 0; + int length = 1; + while (true) { + String pattern = text1.substr(text_length - length); + int found = text2.indexOf(pattern); + if (found == -1) { + return best; + } + length += found; + if (found == 0 || + text1.substr(text_length - length) == text2.substr(0, length)) { + best = length; + length++; + } + } + } + + /** + * Do the two texts share a substring which is at least half the length of + * the longer text? + * This speedup can produce non-minimal diffs. + * @param text1 First string. + * @param text2 Second string. + * @return Five element String array, containing the prefix of text1, the + * suffix of text1, the prefix of text2, the suffix of text2 and the + * common middle. Or null if there was no match. + */ + /* TODO + String[] diff_halfMatch(Range text1, Range text2) { + if (Diff_Timeout <= 0) { + // Don't risk returning a non-optimal diff if we have unlimited time. + return null; + } + String longtext = text1.size() > text2.size() ? text1 : text2; + String shorttext = text1.size() > text2.size() ? text2 : text1; + if (longtext.size() < 4 || shorttext.size() * 2 < longtext.size()) { + return null; // Pointless. + } + + // First check if the second quarter is the seed for a half-match. + String[] hm1 = diff_halfMatchI(longtext, shorttext, + (longtext.size() + 3) / 4); + // Check again based on the third quarter. + String[] hm2 = diff_halfMatchI(longtext, shorttext, + (longtext.size() + 1) / 2); + String[] hm; + if (hm1 == null && hm2 == null) { + return null; + } else if (hm2 == null) { + hm = hm1; + } else if (hm1 == null) { + hm = hm2; + } else { + // Both matched. Select the longest. + hm = hm1[4].size() > hm2[4].size() ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + if (text1.size() > text2.size()) { + return hm; + //return new String[]{hm[0], hm[1], hm[2], hm[3], hm[4]}; + } else { + return new String[]{hm[2], hm[3], hm[0], hm[1], hm[4]}; + } + } + */ + + /** + * Does a substring of shorttext exist within longtext such that the + * substring is at least half the length of longtext? + * @param longtext Longer string. + * @param shorttext Shorter string. + * @param i Start index of quarter length substring within longtext. + * @return Five element String array, containing the prefix of longtext, the + * suffix of longtext, the prefix of shorttext, the suffix of shorttext + * and the common middle. Or null if there was no match. + * + String[] diff_halfMatchI(String longtext, String shorttext, int i) { + // Start with a 1/4 length substring at position i as a seed. + String seed = longtext.substring(i, i + longtext.size() / 4); + int j = -1; + String best_common = ""; + String best_longtext_a = "", best_longtext_b = ""; + String best_shorttext_a = "", best_shorttext_b = ""; + while ((j = shorttext.indexOf(seed, j + 1)) != -1) { + int prefixLength = diff_commonPrefix(longtext.substring(i), + shorttext.substring(j)); + int suffixLength = diff_commonSuffix(longtext.substring(0, i), + shorttext.substring(0, j)); + if (best_common.size() < suffixLength + prefixLength) { + best_common = shorttext.substring(j - suffixLength, j) + + shorttext.substring(j, j + prefixLength); + best_longtext_a = longtext.substring(0, i - suffixLength); + best_longtext_b = longtext.substring(i + prefixLength); + best_shorttext_a = shorttext.substring(0, j - suffixLength); + best_shorttext_b = shorttext.substring(j + prefixLength); + } + } + if (best_common.size() * 2 >= longtext.size()) { + return new String[]{best_longtext_a, best_longtext_b, + best_shorttext_a, best_shorttext_b, best_common}; + } else { + return null; + } + } + */ + + /** + * Reduce the number of edits by eliminating semantically trivial + equalities. + * @param diffs std::vector of Diff objects. + * + void diff_cleanupSemantic(Diffs diffs) { + if (diffs.isEmpty()) { + return; + } + bool changes = false; + std::deque equalities = new ArrayDeque(); // Double-ended + queue of qualities. String lastEquality = null; // Always equal to + equalities.peek().text std::vectorIterator pointer = + diffs.listIterator(); + // Number of characters that changed prior to the equality. + int length_insertions1 = 0; + int length_deletions1 = 0; + // Number of characters that changed after the equality. + int length_insertions2 = 0; + int length_deletions2 = 0; + Diff thisDiff = pointer.next(); + while (thisDiff != null) { + if (thisDiff.operation == EQUAL) { + // Equality found. + equalities.push(thisDiff); + length_insertions1 = length_insertions2; + length_deletions1 = length_deletions2; + length_insertions2 = 0; + length_deletions2 = 0; + lastEquality = thisDiff.text; + } else { + // An insertion or deletion. + if (thisDiff.operation == INSERT) { + length_insertions2 += thisDiff.text.size(); + } else { + length_deletions2 += thisDiff.text.size(); + } + // Eliminate an equality that is smaller or equal to the edits on both + // sides of it. + if (lastEquality != null && (lastEquality.size() + <= std::max(length_insertions1, length_deletions1)) + && (lastEquality.size() + <= std::max(length_insertions2, length_deletions2))) { + //System.out.println("Splitting: '" + lastEquality + "'"); + // Walk back to offending equality. + while (thisDiff != equalities.peek()) { + thisDiff = pointer.previous(); + } + pointer.next(); + + // Replace equality with a delete. + pointer.set(Diff(DELETE, lastEquality)); + // Insert a corresponding an insert. + pointer.push_back(Diff(INSERT, lastEquality)); + + equalities.pop(); // Throw away the equality we just deleted. + if (!equalities.isEmpty()) { + // Throw away the previous equality (it needs to be reevaluated). + equalities.pop(); + } + if (equalities.isEmpty()) { + // There are no previous equalities, walk back to the start. + while (pointer.hasPrevious()) { + pointer.previous(); + } + } else { + // There is a safe equality we can fall back to. + thisDiff = equalities.peek(); + while (thisDiff != pointer.previous()) { + // Intentionally empty loop. + } + } + + length_insertions1 = 0; // Reset the counters. + length_insertions2 = 0; + length_deletions1 = 0; + length_deletions2 = 0; + lastEquality = null; + changes = true; + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + + // Normalize the diff. + if (changes) { + diff_cleanupMerge(diffs); + } + diff_cleanupSemanticLossless(diffs); + + // Find any overlaps between deletions and insertions. + // e.g: abcxxxxxxdef + // -> abcxxxdef + // e.g: xxxabcdefxxx + // -> defxxxabc + // Only extract an overlap if it is as big as the edit ahead or behind it. + pointer = diffs.listIterator(); + Diff prevDiff = null; + thisDiff = null; + if (pointer.hasNext()) { + prevDiff = pointer.next(); + if (pointer.hasNext()) { + thisDiff = pointer.next(); + } + } + while (thisDiff != null) { + if (prevDiff.operation == DELETE && + thisDiff.operation == INSERT) { + String deletion = prevDiff.text; + String insertion = thisDiff.text; + int overlap_length1 = diff_commonOverlap(deletion, insertion); + int overlap_length2 = diff_commonOverlap(insertion, deletion); + if (overlap_length1 >= overlap_length2) { + if (overlap_length1 >= deletion.size() / 2.0 || + overlap_length1 >= insertion.size() / 2.0) { + // Overlap found. Insert an equality and trim the surrounding + edits. pointer.previous(); pointer.push_back(Diff(EQUAL, + insertion.substring(0, overlap_length1))); + prevDiff.text = + deletion.substring(0, deletion.size() - overlap_length1); + thisDiff.text = insertion.substring(overlap_length1); + // pointer.add inserts the element before the cursor, so there is + // no need to step past the new element. + } + } else { + if (overlap_length2 >= deletion.size() / 2.0 || + overlap_length2 >= insertion.size() / 2.0) { + // Reverse overlap found. + // Insert an equality and swap and trim the surrounding edits. + pointer.previous(); + pointer.push_back(Diff(EQUAL, + deletion.substring(0, overlap_length2))); + prevDiff.operation = INSERT; + prevDiff.text = + insertion.substring(0, insertion.size() - overlap_length2); + thisDiff.operation = DELETE; + thisDiff.text = deletion.substring(overlap_length2); + // pointer.add inserts the element before the cursor, so there is + // no need to step past the new element. + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + prevDiff = thisDiff; + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + } + */ + + /** + * Look for single edits surrounded on both sides by equalities + * which can be shifted sideways to align the edit to a word boundary. + * e.g: The cat came. -> The cat came. + * @param diffs std::vector of Diff objects. + * TODO + void diff_cleanupSemanticLossless(Diffs diffs) { + String equality1, edit, equality2; + String commonString; + int commonOffset; + int score, bestScore; + String bestEquality1, bestEdit, bestEquality2; + // Create a new iterator at the start. + std::vectorIterator pointer = diffs.listIterator(); + Diff prevDiff = pointer.hasNext() ? pointer.next() : null; + Diff thisDiff = pointer.hasNext() ? pointer.next() : null; + Diff nextDiff = pointer.hasNext() ? pointer.next() : null; + // Intentionally ignore the first and last element (don't need checking). + while (nextDiff != null) { + if (prevDiff.operation == EQUAL && + nextDiff.operation == EQUAL) { + // This is a single edit surrounded by equalities. + equality1 = prevDiff.text; + edit = thisDiff.text; + equality2 = nextDiff.text; + + // First, shift the edit as far left as possible. + commonOffset = diff_commonSuffix(equality1, edit); + if (commonOffset != 0) { + commonString = edit.substring(edit.size() - commonOffset); + equality1 = equality1.substring(0, equality1.size() - + commonOffset); edit = commonString + edit.substring(0, edit.size() - + commonOffset); equality2 = commonString + equality2; + } + + // Second, step character by character right, looking for the best + fit. bestEquality1 = equality1; bestEdit = edit; bestEquality2 = equality2; + bestScore = diff_cleanupSemanticScore(equality1, edit) + + diff_cleanupSemanticScore(edit, equality2); + while (edit.size() != 0 && equality2.size() != 0 + && edit.charAt(0) == equality2.charAt(0)) { + equality1 += edit.charAt(0); + edit = edit.substring(1) + equality2.charAt(0); + equality2 = equality2.substring(1); + score = diff_cleanupSemanticScore(equality1, edit) + + diff_cleanupSemanticScore(edit, equality2); + // The >= encourages trailing rather than leading whitespace on + edits. if (score >= bestScore) { bestScore = score; bestEquality1 = + equality1; bestEdit = edit; bestEquality2 = equality2; + } + } + + if (!prevDiff.text.equals(bestEquality1)) { + // We have an improvement, save it back to the diff. + if (bestEquality1.size() != 0) { + prevDiff.text = bestEquality1; + } else { + pointer.previous(); // Walk past nextDiff. + pointer.previous(); // Walk past thisDiff. + pointer.previous(); // Walk past prevDiff. + pointer.remove(); // Delete prevDiff. + pointer.next(); // Walk past thisDiff. + pointer.next(); // Walk past nextDiff. + } + thisDiff.text = bestEdit; + if (bestEquality2.size() != 0) { + nextDiff.text = bestEquality2; + } else { + pointer.remove(); // Delete nextDiff. + nextDiff = thisDiff; + thisDiff = prevDiff; + } + } + } + prevDiff = thisDiff; + thisDiff = nextDiff; + nextDiff = pointer.hasNext() ? pointer.next() : null; + } + } + */ + + /** + * Given two strings, compute a score representing whether the internal + * boundary falls on logical boundaries. + * Scores range from 6 (best) to 0 (worst). + * @param one First string. + * @param two Second string. + * @return The score. + * TODO + int diff_cleanupSemanticScore(String one, String two) { + if (one.size() == 0 || two.size() == 0) { + // Edges are the best. + return 6; + } + + // Each port of this function behaves slightly differently due to + // subtle differences in each language's definition of things like + // 'whitespace'. Since this function's purpose is largely cosmetic, + // the choice has been made to use each language's native features + // rather than force total conformity. + char char1 = one.charAt(one.size() - 1); + char char2 = two.charAt(0); + bool nonAlphaNumeric1 = !Character.isLetterOrDigit(char1); + bool nonAlphaNumeric2 = !Character.isLetterOrDigit(char2); + bool whitespace1 = nonAlphaNumeric1 && Character.isWhitespace(char1); + bool whitespace2 = nonAlphaNumeric2 && Character.isWhitespace(char2); + bool lineBreak1 = whitespace1 + && Character.getType(char1) == Character.CONTROL; + bool lineBreak2 = whitespace2 + && Character.getType(char2) == Character.CONTROL; + bool blankLine1 = lineBreak1 && BLANKLINEEND.matcher(one).find(); + bool blankLine2 = lineBreak2 && BLANKLINESTART.matcher(two).find(); + + if (blankLine1 || blankLine2) { + // Five points for blank lines. + return 5; + } else if (lineBreak1 || lineBreak2) { + // Four points for line breaks. + return 4; + } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) { + // Three points for end of sentences. + return 3; + } else if (whitespace1 || whitespace2) { + // Two points for whitespace. + return 2; + } else if (nonAlphaNumeric1 || nonAlphaNumeric2) { + // One point for non-alphanumeric. + return 1; + } + return 0; + } + */ + + /* Define some regex patterns for matching boundaries. + Pattern BLANKLINEEND + = Pattern.compile("\\n\\r?\\n\\Z", Pattern.DOTALL); + Pattern BLANKLINESTART + = Pattern.compile("\\A\\r?\\n\\r?\\n", Pattern.DOTALL); + */ + + /** + * Reduce the number of edits by eliminating operationally trivial + equalities. + * @param diffs std::vector of Diff objects. + * TODO + void diff_cleanupEfficiency(Diffs diffs) { + if (diffs.isEmpty()) { + return; + } + bool changes = false; + std::deque equalities = new ArrayDeque(); // Double-ended + queue of equalities. String lastEquality = null; // Always equal to + equalities.peek().text std::vectorIterator pointer = + diffs.listIterator(); + // Is there an insertion operation before the last equality. + bool pre_ins = false; + // Is there a deletion operation before the last equality. + bool pre_del = false; + // Is there an insertion operation after the last equality. + bool post_ins = false; + // Is there a deletion operation after the last equality. + bool post_del = false; + Diff thisDiff = pointer.next(); + Diff safeDiff = thisDiff; // The last Diff that is known to be + unsplittable. while (thisDiff != null) { if (thisDiff.operation == EQUAL) { + // Equality found. + if (thisDiff.text.size() < Diff_EditCost && (post_ins || post_del)) + { + // Candidate found. + equalities.push(thisDiff); + pre_ins = post_ins; + pre_del = post_del; + lastEquality = thisDiff.text; + } else { + // Not a candidate, and can never become one. + equalities.clear(); + lastEquality = null; + safeDiff = thisDiff; + } + post_ins = post_del = false; + } else { + // An insertion or deletion. + if (thisDiff.operation == DELETE) { + post_del = true; + } else { + post_ins = true; + } + /* + * Five types to be split: + * ABXYCD + * AXCD + * ABXC + * AXCD + * ABXC + * / + if (lastEquality != null + && ((pre_ins && pre_del && post_ins && post_del) + || ((lastEquality.size() < Diff_EditCost / 2) + && ((pre_ins ? 1 : 0) + (pre_del ? 1 : 0) + + (post_ins ? 1 : 0) + (post_del ? 1 : 0)) == 3))) { + //System.out.println("Splitting: '" + lastEquality + "'"); + // Walk back to offending equality. + while (thisDiff != equalities.peek()) { + thisDiff = pointer.previous(); + } + pointer.next(); + + // Replace equality with a delete. + pointer.set(Diff(DELETE, lastEquality)); + // Insert a corresponding an insert. + pointer.push_back(thisDiff = Diff(INSERT, lastEquality)); + + equalities.pop(); // Throw away the equality we just deleted. + lastEquality = null; + if (pre_ins && pre_del) { + // No changes made which could affect previous entry, keep going. + post_ins = post_del = true; + equalities.clear(); + safeDiff = thisDiff; + } else { + if (!equalities.isEmpty()) { + // Throw away the previous equality (it needs to be + reevaluated). equalities.pop(); + } + if (equalities.isEmpty()) { + // There are no previous questionable equalities, + // walk back to the last known safe diff. + thisDiff = safeDiff; + } else { + // There is an equality we can fall back to. + thisDiff = equalities.peek(); + } + while (thisDiff != pointer.previous()) { + // Intentionally empty loop. + } + post_ins = post_del = false; + } + + changes = true; + } + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + + if (changes) { + diff_cleanupMerge(diffs); + } + } + */ + + /** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param diffs std::vector of Diff objects. + * + void diff_cleanupMerge(Diffs diffs) { + diffs.push_back(Diff(EQUAL, "")); // Add a dummy entry at the end. + std::vectorIterator pointer = diffs.listIterator(); + int count_delete = 0; + int count_insert = 0; + Range text_delete = ""; + Range text_insert = ""; + Diff thisDiff = pointer.next(); + Diff prevEqual = null; + int commonlength; + while (thisDiff != null) { + switch (thisDiff.operation) { + case INSERT: + count_insert++; + text_insert += thisDiff.text; + prevEqual = null; + break; + case DELETE: + count_delete++; + text_delete += thisDiff.text; + prevEqual = null; + break; + case EQUAL: + if (count_delete + count_insert > 1) { + bool both_types = count_delete != 0 && count_insert != 0; + // Delete the offending records. + pointer.previous(); // Reverse direction. + while (count_delete-- > 0) { + pointer.previous(); + pointer.remove(); + } + while (count_insert-- > 0) { + pointer.previous(); + pointer.remove(); + } + if (both_types) { + // Factor out any common prefixies. + commonlength = diff_commonPrefix(text_insert, text_delete); + if (commonlength != 0) { + if (pointer.hasPrevious()) { + thisDiff = pointer.previous(); + assert thisDiff.operation == EQUAL + : "Previous diff should have been an equality."; + thisDiff.text += text_insert.substring(0, commonlength); + pointer.next(); + } else { + pointer.push_back(Diff(EQUAL, + text_insert.substring(0, commonlength))); + } + text_insert = text_insert.substring(commonlength); + text_delete = text_delete.substring(commonlength); + } + // Factor out any common suffixies. + commonlength = diff_commonSuffix(text_insert, text_delete); + if (commonlength != 0) { + thisDiff = pointer.next(); + thisDiff.text = text_insert.substring(text_insert.size() + - commonlength) + thisDiff.text; + text_insert = text_insert.substring(0, text_insert.size() + - commonlength); + text_delete = text_delete.substring(0, text_delete.size() + - commonlength); + pointer.previous(); + } + } + // Insert the merged records. + if (text_delete.size() != 0) { + pointer.push_back(Diff(DELETE, text_delete)); + } + if (text_insert.size() != 0) { + pointer.push_back(Diff(INSERT, text_insert)); + } + // Step forward to the equality. + thisDiff = pointer.hasNext() ? pointer.next() : null; + } else if (prevEqual != null) { + // Merge this equality with the previous one. + prevEqual.text += thisDiff.text; + pointer.remove(); + thisDiff = pointer.previous(); + pointer.next(); // Forward direction + } + count_insert = 0; + count_delete = 0; + text_delete = ""; + text_insert = ""; + prevEqual = thisDiff; + break; + } + thisDiff = pointer.hasNext() ? pointer.next() : null; + } + if (diffs.getLast().text.size() == 0) { + diffs.removeLast(); // Remove the dummy entry at the end. + } + + /* + * Second pass: look for single edits surrounded on both sides by + equalities + * which can be shifted sideways to eliminate an equality. + * e.g: ABAC -> ABAC + * / + bool changes = false; + // Create a new iterator at the start. + // (As opposed to walking the current one back.) + pointer = diffs.listIterator(); + Diff prevDiff = pointer.hasNext() ? pointer.next() : null; + thisDiff = pointer.hasNext() ? pointer.next() : null; + Diff nextDiff = pointer.hasNext() ? pointer.next() : null; + // Intentionally ignore the first and last element (don't need checking). + while (nextDiff != null) { + if (prevDiff.operation == EQUAL && + nextDiff.operation == EQUAL) { + // This is a single edit surrounded by equalities. + if (thisDiff.text.endsWith(prevDiff.text)) { + // Shift the edit over the previous equality. + thisDiff.text = prevDiff.text + + thisDiff.text.substring(0, thisDiff.text.size() + - prevDiff.text.size()); + nextDiff.text = prevDiff.text + nextDiff.text; + pointer.previous(); // Walk past nextDiff. + pointer.previous(); // Walk past thisDiff. + pointer.previous(); // Walk past prevDiff. + pointer.remove(); // Delete prevDiff. + pointer.next(); // Walk past thisDiff. + thisDiff = pointer.next(); // Walk past nextDiff. + nextDiff = pointer.hasNext() ? pointer.next() : null; + changes = true; + } else if (thisDiff.text.startsWith(nextDiff.text)) { + // Shift the edit over the next equality. + prevDiff.text += nextDiff.text; + thisDiff.text = thisDiff.text.substring(nextDiff.text.size()) + + nextDiff.text; + pointer.remove(); // Delete nextDiff. + nextDiff = pointer.hasNext() ? pointer.next() : null; + changes = true; + } + } + prevDiff = thisDiff; + thisDiff = nextDiff; + nextDiff = pointer.hasNext() ? pointer.next() : null; + } + // If shifts were made, the diff needs reordering and another shift sweep. + if (changes) { + diff_cleanupMerge(diffs); + } + } + */ + + /** + * Compute and return the source text (all equalities and deletions). + * @param diffs std::vector of Diff objects. + * @return Source text. + */ + String diff_text1(Diffs diffs) { + Range text{}; + for (Diff aDiff : diffs) { + if (aDiff.operation != INSERT) { + text.append(aDiff.text); + } + } + return text; + } + + /** + * Compute and return the destination text (all equalities and insertions). + * @param diffs std::vector of Diff objects. + * @return Destination text. + */ + String diff_text2(Diffs diffs) { + Range text{}; + for (Diff aDiff : diffs) { + if (aDiff.operation != DELETE) { + text.append(aDiff.text); + } + } + return text; + } + + struct Stats { + Size equal, inserted, deleted; + Stats() : equal{0}, inserted{0}, deleted{0} {} + }; + + Stats stats() const { + Stats ret; + for (const auto &i : result) { + switch (i.operation) { + case EQUAL: ret.equal += i.text.size(); break; + case INSERT: ret.inserted += i.text.size(); break; + case DELETE: ret.deleted += i.text.size(); break; + } + } + return ret; + } + +}; + +#endif diff --git a/src/Infrastructure/Util/interface/ESMCI_F90Interface_F.C b/src/Infrastructure/Util/interface/ESMCI_F90Interface_F.C index fd31377d3f..420af68d52 100644 --- a/src/Infrastructure/Util/interface/ESMCI_F90Interface_F.C +++ b/src/Infrastructure/Util/interface/ESMCI_F90Interface_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMCI_Fraction_F.C b/src/Infrastructure/Util/interface/ESMCI_Fraction_F.C index c929c4f6e8..0f6a7b4e6f 100644 --- a/src/Infrastructure/Util/interface/ESMCI_Fraction_F.C +++ b/src/Infrastructure/Util/interface/ESMCI_Fraction_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMCI_Util_F.C b/src/Infrastructure/Util/interface/ESMCI_Util_F.C index 394f7bbf0f..aa8ae8b552 100644 --- a/src/Infrastructure/Util/interface/ESMCI_Util_F.C +++ b/src/Infrastructure/Util/interface/ESMCI_Util_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -28,10 +28,13 @@ #endif #include #include +#include #include #include #include #include +#include + using namespace std; #if !defined (ESMF_OS_MinGW) @@ -48,6 +51,8 @@ using namespace std; #include "ESMCI_F90Interface.h" #include "ESMCI_LogErr.h" +#include "dmp_diff.hpp" + //----------------------------------------------------------------------------- // leave the following line as-is; it will insert the cvs ident string // into the object file for tracking purposes. @@ -371,11 +376,112 @@ extern "C" { if (len < pathname_l) memset (pathname+len, ' ', pathname_l-len); } - //----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- void FTN_X(c_pointerprint)(void **ptr){ printf("ESMF_PointerPrint: %p\n", *ptr); } +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +//BOPI +// !IROUTINE: c_ESMC_StringDiffMatch - Mayers diff between two strings +// +// !INTERFACE: + void FTN_X(c_esmc_stringdiffmatch)( +// +// !RETURN VALUE: +// none. return code is passed thru the parameter list +// +// !ARGUMENTS: + char *fstring1, // in - string object + char *fstring2, // in - string object + char *fminus, // in - string object + char *fplus, // in - string object + int *matchCount, // in - string object + ESMC_Logical *resultFlag, // out - result + int *rc, // out - return code + ESMCI_FortranStrLenArg clen1, // in, hidden - string length + ESMCI_FortranStrLenArg clen2, // in, hidden - string length + ESMCI_FortranStrLenArg clenMinus, // in, hidden - string length + ESMCI_FortranStrLenArg clenPlus) { // in, hidden - string length +// +// !DESCRIPTION: +// Produce Mayers diff between two strings. Then see if diffs match string +// pairs provided in fminus and fplus lists. +// +//EOPI +#undef ESMC_METHOD +#define ESMC_METHOD "c_ESMC_StringDiffMatch" + + if (rc) *rc = ESMF_SUCCESS; + + string string1(fstring1, clen1); + string string2(fstring2, clen2); + + vector minusStrings(*matchCount); + vector plusStrings(*matchCount); + + for (auto i=0; i<*matchCount; i++){ + // set up minus/plus Strings, trimming trailing white spaces + minusStrings[i] = regex_replace(string(fminus+i*clenMinus, clenMinus), + regex(" +$"), ""); + plusStrings[i] = regex_replace(string(fplus+i*clenPlus, clenPlus), + regex(" +$"), ""); + } + + MyersDiff diff{string1, string2}; // generate the difference + + bool allDiffOk = true; + for (auto it=diff.begin(); it!=diff.end(); ++it) { + string minusString, plusString; + bool diffFlag = false; + if (it->str().c_str()[0]=='-'){ + // this is '-' check for '+' on the next string + diffFlag = true; + minusString = it->str().substr(2); + if ((it+1)->str().c_str()[0]=='+'){ + ++it; + plusString = it->str().substr(2); + } + }else if (it->str().c_str()[0]=='+'){ + diffFlag = true; + // this is '+' therefore minusString is empty + minusString = string(""); + plusString = it->str().substr(2); + } + if (diffFlag){ + // search for this minus/plus pair in the provided strings + auto i=0; + for (i=0; i<*matchCount; i++){ + if ((minusString==minusStrings[i])&&(plusString==plusStrings[i])) break; + } + allDiffOk = (i<*matchCount); + if (!allDiffOk){ + // debug help + stringstream msg; + msg << "c_esmc_stringdiffmatch() string1: " << string1; + ESMC_LogDefault.Write(msg, ESMC_LOGMSG_DEBUG); + msg.str(""); // clear + msg << "c_esmc_stringdiffmatch() string2: " << string2; + ESMC_LogDefault.Write(msg, ESMC_LOGMSG_DEBUG); + msg.str(""); // clear + msg << "c_esmc_stringdiffmatch() minusString: " << minusString; + ESMC_LogDefault.Write(msg, ESMC_LOGMSG_DEBUG); + msg.str(""); // clear + msg << "c_esmc_stringdiffmatch() plusString: " << plusString; + ESMC_LogDefault.Write(msg, ESMC_LOGMSG_DEBUG); + } + } + if (!allDiffOk) break; + } + + *resultFlag = (allDiffOk) ? ESMF_TRUE : ESMF_FALSE; + +} // end c_ESMC_StringSerialize + } // extern "C" diff --git a/src/Infrastructure/Util/interface/ESMC_Interface.C b/src/Infrastructure/Util/interface/ESMC_Interface.C index b6bd20c9a0..f60b441df1 100644 --- a/src/Infrastructure/Util/interface/ESMC_Interface.C +++ b/src/Infrastructure/Util/interface/ESMC_Interface.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMC_Util.C b/src/Infrastructure/Util/interface/ESMC_Util.C index 8e4c6627fd..fa3e4ee6a4 100644 --- a/src/Infrastructure/Util/interface/ESMC_Util.C +++ b/src/Infrastructure/Util/interface/ESMC_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMF_F90Interface.F90 b/src/Infrastructure/Util/interface/ESMF_F90Interface.F90 index 906c133c14..66a4d123f6 100644 --- a/src/Infrastructure/Util/interface/ESMF_F90Interface.F90 +++ b/src/Infrastructure/Util/interface/ESMF_F90Interface.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMF_Fraction.F90 b/src/Infrastructure/Util/interface/ESMF_Fraction.F90 index 7012a791f0..01539c53b1 100644 --- a/src/Infrastructure/Util/interface/ESMF_Fraction.F90 +++ b/src/Infrastructure/Util/interface/ESMF_Fraction.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/interface/ESMF_Util.F90 b/src/Infrastructure/Util/interface/ESMF_Util.F90 index 51bfc9a24d..89f31f9142 100644 --- a/src/Infrastructure/Util/interface/ESMF_Util.F90 +++ b/src/Infrastructure/Util/interface/ESMF_Util.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -90,6 +90,7 @@ module ESMF_UtilMod public :: ESMF_UtilString2Real public :: ESMF_UtilString2Double public :: ESMF_UtilStringInt2String + public :: ESMF_UtilStringDiffMatch public :: ESMF_UtilStringLowerCase public :: ESMF_UtilStringUpperCase public :: ESMF_UtilArray2String @@ -777,7 +778,7 @@ function ESMF_UtilString2Double(string, keywordEnforcer, rc) ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! -!EOPI +!EOP !----------------------------------------------------------------------------- ! local variables integer :: ioerr @@ -857,7 +858,7 @@ function ESMF_UtilString2Int(string, keywordEnforcer, & ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! -!EOPI +!EOP !----------------------------------------------------------------------------- ! local variables logical :: ssL, svL @@ -958,7 +959,7 @@ function ESMF_UtilString2Real(string, keywordEnforcer, rc) ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! -!EOPI +!EOP !----------------------------------------------------------------------------- ! local variables integer :: ioerr @@ -996,6 +997,71 @@ end function ESMF_UtilString2Real !----------------------------------------------------------------------------- +!BOPI +! !IROUTINE: ESMF_UtilStringDiffMatch - Match differences between two strings +! !INTERFACE: + function ESMF_UtilStringDiffMatch(string1, string2, minusStringList, & + plusStringList, keywordEnforcer, rc) +! !RETURN VALUE: + logical :: ESMF_UtilStringDiffMatch +! !ARGUMENTS: + character(len=*), intent(in) :: string1 + character(len=*), intent(in) :: string2 + character(len=*), intent(in) :: minusStringList(:) + character(len=*), intent(in) :: plusStringList(:) +type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below + integer, intent(out), optional :: rc +! !DESCRIPTION: +! Match the list of differences between {\tt string1} and {\tt string2} +! against {\tt plus} and {\tt minus} string pairs. +! The generated differences are based on Myers diff algorithm implementation +! provided by \url{https://github.com/gritzko/myers-diff}. +! +! The arguments are: +! \begin{description} +! \item[string1] +! First string in the difference. +! \item[string2] +! Second string in the difference. +! \item[minusStringList] +! List of strings that are allowed to show up as "minus" in the difference. +! \item[plusStringList] +! List of strings that are allowed to show up as "plus" in the difference. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +! +!EOPI + !----------------------------------------------------------------------------- + ! local variables + integer :: localrc + integer :: matchCount + type(ESMF_Logical) :: tf + + if (present(rc)) rc = ESMF_SUCCESS + + ESMF_UtilStringDiffMatch = .false. ! default return value + + matchCount = size(minusStringList) + if (size(plusStringList) /= matchCount) then + call ESMF_LogSetError(ESMF_RC_ARG_BAD, & + msg="Number of strings in minus/plus string lists must match!`", & + line=__LINE__, & + file=ESMF_FILENAME, & + rcToReturn=rc) + return ! bail out + endif + + call c_ESMC_StringDiffMatch(string1, string2, minusStringList, & + plusStringList, matchCount, tf, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + ESMF_UtilStringDiffMatch = (tf == ESMF_TRUE) + + end function ESMF_UtilStringDiffMatch + !----------------------------------------------------------------------------- + + pure function int2str_len (i) ! Internal function for use by ESMF_UtilStringInt2String. diff --git a/src/Infrastructure/Util/interface/ESMF_Util_C.F90 b/src/Infrastructure/Util/interface/ESMF_Util_C.F90 index 345fc3d986..1e76c1321d 100644 --- a/src/Infrastructure/Util/interface/ESMF_Util_C.F90 +++ b/src/Infrastructure/Util/interface/ESMF_Util_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMCI_CoordSys.C b/src/Infrastructure/Util/src/ESMCI_CoordSys.C index 35a0359079..0938fcf4af 100644 --- a/src/Infrastructure/Util/src/ESMCI_CoordSys.C +++ b/src/Infrastructure/Util/src/ESMCI_CoordSys.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMCI_F90Interface.C b/src/Infrastructure/Util/src/ESMCI_F90Interface.C index 0f4d7411f6..4c200fec9d 100644 --- a/src/Infrastructure/Util/src/ESMCI_F90Interface.C +++ b/src/Infrastructure/Util/src/ESMCI_F90Interface.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMCI_Fraction.C b/src/Infrastructure/Util/src/ESMCI_Fraction.C index 69594c89e7..9d176bdf45 100644 --- a/src/Infrastructure/Util/src/ESMCI_Fraction.C +++ b/src/Infrastructure/Util/src/ESMCI_Fraction.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMCI_Util.C b/src/Infrastructure/Util/src/ESMCI_Util.C index e2f54f58ac..8a5bc78683 100644 --- a/src/Infrastructure/Util/src/ESMCI_Util.C +++ b/src/Infrastructure/Util/src/ESMCI_Util.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_AttPackType.F90 b/src/Infrastructure/Util/src/ESMF_AttPackType.F90 index 2d7b3345f1..aba3257d62 100644 --- a/src/Infrastructure/Util/src/ESMF_AttPackType.F90 +++ b/src/Infrastructure/Util/src/ESMF_AttPackType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_FortranWordsize.cppF90 b/src/Infrastructure/Util/src/ESMF_FortranWordsize.cppF90 index 9d77d976ea..a01ead4253 100644 --- a/src/Infrastructure/Util/src/ESMF_FortranWordsize.cppF90 +++ b/src/Infrastructure/Util/src/ESMF_FortranWordsize.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_IOUtil.F90 b/src/Infrastructure/Util/src/ESMF_IOUtil.F90 index 9a041f8851..4ba7e326b9 100644 --- a/src/Infrastructure/Util/src/ESMF_IOUtil.F90 +++ b/src/Infrastructure/Util/src/ESMF_IOUtil.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_InitMacros.F90 b/src/Infrastructure/Util/src/ESMF_InitMacros.F90 index 48231c9a8b..a6a3bfd6f9 100644 --- a/src/Infrastructure/Util/src/ESMF_InitMacros.F90 +++ b/src/Infrastructure/Util/src/ESMF_InitMacros.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_LogErr.F90 b/src/Infrastructure/Util/src/ESMF_LogErr.F90 index 60f9e7a204..1f0583ef0b 100644 --- a/src/Infrastructure/Util/src/ESMF_LogErr.F90 +++ b/src/Infrastructure/Util/src/ESMF_LogErr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_StaggerLocType.F90 b/src/Infrastructure/Util/src/ESMF_StaggerLocType.F90 index f4fd29a5bb..cab4899d8d 100644 --- a/src/Infrastructure/Util/src/ESMF_StaggerLocType.F90 +++ b/src/Infrastructure/Util/src/ESMF_StaggerLocType.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_TypeKindGet.cppF90 b/src/Infrastructure/Util/src/ESMF_TypeKindGet.cppF90 index 353e128f84..f15df9997e 100644 --- a/src/Infrastructure/Util/src/ESMF_TypeKindGet.cppF90 +++ b/src/Infrastructure/Util/src/ESMF_TypeKindGet.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_UtilCubedSphere.F90 b/src/Infrastructure/Util/src/ESMF_UtilCubedSphere.F90 index c2d752563c..b48b22ef62 100644 --- a/src/Infrastructure/Util/src/ESMF_UtilCubedSphere.F90 +++ b/src/Infrastructure/Util/src/ESMF_UtilCubedSphere.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_UtilSort.cppF90 b/src/Infrastructure/Util/src/ESMF_UtilSort.cppF90 index 44e924e12e..0fd8e70544 100644 --- a/src/Infrastructure/Util/src/ESMF_UtilSort.cppF90 +++ b/src/Infrastructure/Util/src/ESMF_UtilSort.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_UtilString.F90 b/src/Infrastructure/Util/src/ESMF_UtilString.F90 index b5d7bf2efc..fcdf503ad5 100644 --- a/src/Infrastructure/Util/src/ESMF_UtilString.F90 +++ b/src/Infrastructure/Util/src/ESMF_UtilString.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/src/ESMF_UtilTypes.F90 b/src/Infrastructure/Util/src/ESMF_UtilTypes.F90 index 7e64f1cc3b..c3fbee4475 100644 --- a/src/Infrastructure/Util/src/ESMF_UtilTypes.F90 +++ b/src/Infrastructure/Util/src/ESMF_UtilTypes.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -82,13 +82,13 @@ module ESMF_UtilTypesMod !EOPI integer, parameter :: ESMF_VERSION_MAJOR = 8 - integer, parameter :: ESMF_VERSION_MINOR = 8 + integer, parameter :: ESMF_VERSION_MINOR = 9 integer, parameter :: ESMF_VERSION_REVISION = 0 integer, parameter :: ESMF_VERSION_PATCHLEVEL = 0 logical, parameter :: ESMF_VERSION_PUBLIC = .false. logical, parameter :: ESMF_VERSION_BETASNAPSHOT = .true. - character(*), parameter :: ESMF_VERSION_STRING = "8.8.0 beta snapshot" + character(*), parameter :: ESMF_VERSION_STRING = "8.9.0 beta snapshot" #if defined (ESMF_NETCDF) logical, parameter :: ESMF_IO_NETCDF_PRESENT = .true. @@ -2465,7 +2465,7 @@ subroutine ESMF_UtilVersionPrint (keywordenforcer, vFlag, versionFlag, rc) print *, "" print *, "Earth System Modeling Framework" print *, "" - print *, "Copyright (c) 2002-2024 University Corporation for Atmospheric Research," + print *, "Copyright (c) 2002-2025 University Corporation for Atmospheric Research," print *, "Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory," print *, "University of Michigan, National Centers for Environmental Prediction," print *, "Los Alamos National Laboratory, Argonne National Laboratory," diff --git a/src/Infrastructure/Util/tests/ESMF_FortranWordsizeUTest.F90 b/src/Infrastructure/Util/tests/ESMF_FortranWordsizeUTest.F90 index e9382945f3..ea701c4b5a 100644 --- a/src/Infrastructure/Util/tests/ESMF_FortranWordsizeUTest.F90 +++ b/src/Infrastructure/Util/tests/ESMF_FortranWordsizeUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/tests/ESMF_InitMacrosTestTypes.F90 b/src/Infrastructure/Util/tests/ESMF_InitMacrosTestTypes.F90 index c3197283ed..e298e4979f 100644 --- a/src/Infrastructure/Util/tests/ESMF_InitMacrosTestTypes.F90 +++ b/src/Infrastructure/Util/tests/ESMF_InitMacrosTestTypes.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/tests/ESMF_InitMacrosUTest.F90 b/src/Infrastructure/Util/tests/ESMF_InitMacrosUTest.F90 index 163be171e8..5ab2d76a6f 100644 --- a/src/Infrastructure/Util/tests/ESMF_InitMacrosUTest.F90 +++ b/src/Infrastructure/Util/tests/ESMF_InitMacrosUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/tests/ESMF_TypeKindGetUTest.F90 b/src/Infrastructure/Util/tests/ESMF_TypeKindGetUTest.F90 index 3b221c3414..5bd4899bfd 100644 --- a/src/Infrastructure/Util/tests/ESMF_TypeKindGetUTest.F90 +++ b/src/Infrastructure/Util/tests/ESMF_TypeKindGetUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/Util/tests/ESMF_UtilUTest.F90 b/src/Infrastructure/Util/tests/ESMF_UtilUTest.F90 index 8e1fcba2e9..3543c47cea 100644 --- a/src/Infrastructure/Util/tests/ESMF_UtilUTest.F90 +++ b/src/Infrastructure/Util/tests/ESMF_UtilUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -75,6 +75,7 @@ program ESMF_UtilUTest integer :: nargs character(ESMF_MAXPATHLEN) :: program_path integer :: argindex + logical :: matchFlag real(ESMF_KIND_R8) :: random_values(50) = (/ & 0.997560, 0.566825, 0.965915, 0.747928, 0.367391, & @@ -1006,6 +1007,57 @@ program ESMF_UtilUTest ! Internal string utilities (NOT part of the external ESMF API) !============================================================== + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - identical strings - Test" + write(failMsg, *) "Did not return ESMF_SUCCESS" + matchFlag = ESMF_UtilStringDiffMatch( & + string1="A simple test string", string2="A simple test string", & + minusStringList=[""], plusStringList=[""], rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - identical strings - match Test" + write(failMsg, *) "Did not return correct match flag" + call ESMF_Test(matchFlag, name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - different strings - Test" + write(failMsg, *) "Did not return ESMF_SUCCESS" + matchFlag = ESMF_UtilStringDiffMatch( & + string1="A simple test string", string2="A xyzzyx test string", & + minusStringList=[""], plusStringList=[""], rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - different strings - match Test" + write(failMsg, *) "Did not return correct match flag" + call ESMF_Test(.not.matchFlag, name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - different strings minus/plus - Test" + write(failMsg, *) "Did not return ESMF_SUCCESS" + matchFlag = ESMF_UtilStringDiffMatch( & + string1="A simple test string", string2="A xyzzyx test string", & + minusStringList=["simple"], plusStringList=["xyzzyx"], rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + + !------------------------------------------------------------------------ + !EX_UTest + write(name, *) "ESMF_UtilStringDiffMatch() - different strings minus/plus - match Test" + write(failMsg, *) "Did not return correct match flag" + call ESMF_Test(matchFlag, name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------ + !------------------------------------------------------------------------ !EX_UTest ! Test concatenating strings diff --git a/src/Infrastructure/VM/doc/VM_cdesc.tex b/src/Infrastructure/VM/doc/VM_cdesc.tex index 57f090e12d..05f11fcaf3 100644 --- a/src/Infrastructure/VM/doc/VM_cdesc.tex +++ b/src/Infrastructure/VM/doc/VM_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/doc/VM_crefdoc.ctex b/src/Infrastructure/VM/doc/VM_crefdoc.ctex index 6fca287a31..92c8c20f92 100644 --- a/src/Infrastructure/VM/doc/VM_crefdoc.ctex +++ b/src/Infrastructure/VM/doc/VM_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/doc/VM_desc.tex b/src/Infrastructure/VM/doc/VM_desc.tex index 6d4e2ad155..acc5bdfe00 100644 --- a/src/Infrastructure/VM/doc/VM_desc.tex +++ b/src/Infrastructure/VM/doc/VM_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/doc/VM_options.tex b/src/Infrastructure/VM/doc/VM_options.tex index 63eaddb8a6..224c3bfc56 100644 --- a/src/Infrastructure/VM/doc/VM_options.tex +++ b/src/Infrastructure/VM/doc/VM_options.tex @@ -1,7 +1,7 @@ % $Id$ % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/doc/VM_refdoc.ctex b/src/Infrastructure/VM/doc/VM_refdoc.ctex index e7931b6e8d..26d4e92371 100644 --- a/src/Infrastructure/VM/doc/VM_refdoc.ctex +++ b/src/Infrastructure/VM/doc/VM_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMAllFullReduceEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMAllFullReduceEx.F90 index d06535f8ff..2f8a505129 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMAllFullReduceEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMAllFullReduceEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMComponentEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMComponentEx.F90 index 7106a0b4f7..0d0fc9db2b 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMComponentEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMComponentEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMDefaultBasicsEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMDefaultBasicsEx.F90 index bcd2f01a0c..5c5062bcab 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMDefaultBasicsEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMDefaultBasicsEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorEx.F90 index 6864472fab..6b4096f541 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorF08Ex.F90 b/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorF08Ex.F90 index 6bb76d5edd..c0307ad7dc 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorF08Ex.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMGetMPICommunicatorF08Ex.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMHigherRankDataEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMHigherRankDataEx.F90 index 7f9d3231e6..1a1537c94f 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMHigherRankDataEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMHigherRankDataEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMNonBlockingEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMNonBlockingEx.F90 index 3b3b6340c3..092c4b47ea 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMNonBlockingEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMNonBlockingEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMScatterVMGatherEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMScatterVMGatherEx.F90 index fb124bdbed..348389fa86 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMScatterVMGatherEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMScatterVMGatherEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMSendVMRecvEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMSendVMRecvEx.F90 index 36f3d07381..3a0b777a1a 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMSendVMRecvEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMSendVMRecvEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommEx.F90 index 71854bf252..93d94d3e91 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommMultiEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommMultiEx.F90 index 94fe63bbfb..03f6266ae8 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommMultiEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMUserMpiCommMultiEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/examples/ESMF_VMUserMpiEx.F90 b/src/Infrastructure/VM/examples/ESMF_VMUserMpiEx.F90 index 5ad9314a86..c764fe6deb 100644 --- a/src/Infrastructure/VM/examples/ESMF_VMUserMpiEx.F90 +++ b/src/Infrastructure/VM/examples/ESMF_VMUserMpiEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/include/ESMCI_AccInfo.h b/src/Infrastructure/VM/include/ESMCI_AccInfo.h index 64199370c9..5ba11872c4 100644 --- a/src/Infrastructure/VM/include/ESMCI_AccInfo.h +++ b/src/Infrastructure/VM/include/ESMCI_AccInfo.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/include/ESMCI_VM.h b/src/Infrastructure/VM/include/ESMCI_VM.h index 5a6493d332..7cba8f710d 100644 --- a/src/Infrastructure/VM/include/ESMCI_VM.h +++ b/src/Infrastructure/VM/include/ESMCI_VM.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -61,6 +61,7 @@ class VMId { int create (); // allocates memory for vmKey member int destroy (); // frees memory for vmKey member int get(int *localID, char *key, int key_len); + int getLeftmostOnBit(int *leftmostOnBit); int set(int localID, const char *key, int key_len); int serialize(const char *buffer, int *length, int *offset, const ESMC_InquireFlag &inquireflag); @@ -81,7 +82,9 @@ class VMId { namespace ESMCI { // ESMCI::VMId methods: -bool VMIdCompare(const VMId *vmID1, const VMId *vmID2); +bool VMIdCompare(const VMId *vmID1, const VMId *vmID2, bool keyOnly=false, + bool keySuper=false); +bool VMIdIsLocalPetActive(const VMId *vmID); bool VMIdLessThan(const VMId *vmID1, const VMId *vmID2); int VMIdCopy(VMId *vmIDdst, VMId *vmIDsrc); } // namespace ESMCI diff --git a/src/Infrastructure/VM/include/ESMCI_VMKernel.h b/src/Infrastructure/VM/include/ESMCI_VMKernel.h index a831b0a94e..0fb2530fff 100644 --- a/src/Infrastructure/VM/include/ESMCI_VMKernel.h +++ b/src/Infrastructure/VM/include/ESMCI_VMKernel.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/include/ESMC_VM.h b/src/Infrastructure/VM/include/ESMC_VM.h index a4093da13e..0c70ed5fb0 100644 --- a/src/Infrastructure/VM/include/ESMC_VM.h +++ b/src/Infrastructure/VM/include/ESMC_VM.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/interface/ESMCI_VM_F.C b/src/Infrastructure/VM/interface/ESMCI_VM_F.C index 760c8fbe60..7434f4a1d6 100644 --- a/src/Infrastructure/VM/interface/ESMCI_VM_F.C +++ b/src/Infrastructure/VM/interface/ESMCI_VM_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1660,7 +1660,8 @@ extern "C" { } void FTN_X(c_esmc_vmidcompare)(ESMCI::VMId **vmid1, ESMCI::VMId **vmid2, - ESMC_Logical *result, int *rc){ + ESMC_Logical *keyOnly, ESMC_Logical *keySuper, ESMC_Logical *result, + int *rc){ #undef ESMC_METHOD #define ESMC_METHOD "c_esmc_vmidcompare()" // Initialize return code; assume routine not implemented @@ -1669,7 +1670,13 @@ extern "C" { ESMCI_NULL_CHECK_PRC(vmid1, rc) ESMCI_NULL_CHECK_PRC(vmid2, rc) ESMCI_NULL_CHECK_PRC(result, rc) - bool resultBool = ESMCI::VMIdCompare(*vmid1, *vmid2); + bool keyOnlyOpt = false; // default + bool keySuperOpt = false; // default + if (ESMC_NOT_PRESENT_FILTER(keyOnly) != ESMC_NULL_POINTER) + if (*keyOnly == ESMF_TRUE) keyOnlyOpt = true; + if (ESMC_NOT_PRESENT_FILTER(keySuper) != ESMC_NULL_POINTER) + if (*keySuper == ESMF_TRUE) keySuperOpt = true; + bool resultBool = ESMCI::VMIdCompare(*vmid1, *vmid2, keyOnlyOpt, keySuperOpt); *result = resultBool ? ESMF_TRUE : ESMF_FALSE; // return successfully if (rc!=NULL) *rc = ESMF_SUCCESS; @@ -1743,6 +1750,37 @@ extern "C" { if (rc!=NULL) *rc = ESMF_SUCCESS; // TODO: finish error handling } + void FTN_X(c_esmci_vmidgetleftmostonbit)(ESMCI::VMId **vmid, int *leftmostOnBit, + int *rc) { +#undef ESMC_METHOD +#define ESMC_METHOD "c_esmci_vmidgetleftmostonbit()" + // Initialize return code; assume routine not implemented + if (rc!=NULL) *rc = ESMC_RC_NOT_IMPL; + int localrc = ESMC_RC_NOT_IMPL; + // test for NULL pointer via macro before calling any class methods + ESMCI_NULL_CHECK_PRC(vmid, rc) + ESMCI_NULL_CHECK_PRC(*vmid, rc) + localrc = (*vmid)->getLeftmostOnBit(leftmostOnBit); + if (ESMC_LogDefault.MsgFoundError(localrc, ESMCI_ERR_PASSTHRU, ESMC_CONTEXT, + rc)) return; + // return successfully + if (rc!=NULL) *rc = ESMF_SUCCESS; // TODO: finish error handling + } + + void FTN_X(c_esmci_vmidgetislocalpetactive)(ESMCI::VMId **vmid, + ESMC_Logical *isLocalPetActive, int *rc){ +#undef ESMC_METHOD +#define ESMC_METHOD "c_ESMCI_VMIdGetIsLocalPetActive()" + // Initialize return code; assume routine not implemented + if (rc!=NULL) *rc = ESMC_RC_NOT_IMPL; + // test for NULL pointer via macro before calling any class methods + ESMCI_NULL_CHECK_PRC(vmid, rc) + bool resultBool = ESMCI::VMIdIsLocalPetActive(*vmid); + *isLocalPetActive = resultBool ? ESMF_TRUE : ESMF_FALSE; + // return successfully + if (rc!=NULL) *rc = ESMF_SUCCESS; + } + void FTN_X(c_esmc_vmidlog)(ESMCI::VMId **vmid, char *prefix, ESMC_LogMsgType_Flag *logMsgFlag, int *rc, ESMCI_FortranStrLenArg prefix_l){ #undef ESMC_METHOD @@ -1946,7 +1984,10 @@ extern "C" { std::string prefixStr(prefix, prefix_l); std::stringstream msg; msg << prefixStr << ptr; - if (ptr) msg << " => " << *(void **)ptr; + if (ptr){ + msg << " => " << *(void **)ptr; + if (*(void **)ptr) msg << " => " << **(void ***)ptr; + } ESMC_LogDefault.Write(msg.str(), *logMsgFlag); } diff --git a/src/Infrastructure/VM/interface/ESMC_VM.C b/src/Infrastructure/VM/interface/ESMC_VM.C index 37f4789583..34c8785769 100644 --- a/src/Infrastructure/VM/interface/ESMC_VM.C +++ b/src/Infrastructure/VM/interface/ESMC_VM.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/interface/ESMF_VM.F90 b/src/Infrastructure/VM/interface/ESMF_VM.F90 index 5ceae6c30e..1abd010269 100644 --- a/src/Infrastructure/VM/interface/ESMF_VM.F90 +++ b/src/Infrastructure/VM/interface/ESMF_VM.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -480,6 +480,7 @@ subroutine c_ESMC_VMSendRecvNB(vm, sendData, sendSize, dst, recvData, & public ESMF_VMIdCopy public ESMF_VMIdCreate public ESMF_VMIdDestroy + public ESMF_VMIdGet public ESMF_VMIdLog public ESMF_VMIdPrint public ESMF_VMSendVMId @@ -10353,7 +10354,7 @@ end subroutine ESMF_VMPlanMinThreads ! !IROUTINE: ESMF_VMIdCompare - Compare two ESMF_VMId objects ! !INTERFACE: - function ESMF_VMIdCompare(vmId1, vmId2, rc) + function ESMF_VMIdCompare(vmId1, vmId2, keyOnly, keySuper, rc) ! ! !RETURN VALUE: logical :: ESMF_VMIdCompare @@ -10361,6 +10362,8 @@ function ESMF_VMIdCompare(vmId1, vmId2, rc) ! !ARGUMENTS: type(ESMF_VMId), intent(in) :: vmId1 type(ESMF_VMId), intent(in) :: vmId2 + logical, intent(in), optional :: keyOnly + logical, intent(in), optional :: keySuper integer, intent(out), optional :: rc ! ! !DESCRIPTION: @@ -10372,6 +10375,16 @@ function ESMF_VMIdCompare(vmId1, vmId2, rc) ! ESMF_VMId object 1 ! \item[vmId2] ! ESMF_VMId object 2 +! \item[{[keyOnly]}] +! For {\tt .true.} only compare the vmKey parts. Default is +! {\tt .false.}. +! \item[{[keySuper]}] +! Only considered when {\tt keyOnly=.true.}!!! +! For {\tt .true.} return {\tt .true.} for {\tt vmId1} keys whose active +! bits are a superset (not necessarily strict) of bits active in +! {\tt vmId2}. Return {\tt .false.} otherwise. +! Default is {\tt .false.}, i.e. an exact key match is needed to return +! {\tt .true.}. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -10379,14 +10392,24 @@ function ESMF_VMIdCompare(vmId1, vmId2, rc) !EOPI !------------------------------------------------------------------------------ integer :: localrc ! local return code - type(ESMF_Logical) :: tf + type(ESMF_Logical) :: tf, keyOnlyOpt, keySuperOpt ! initialize return code; assume routine not implemented localrc = ESMF_RC_NOT_IMPL if (present(rc)) rc = ESMF_RC_NOT_IMPL + keyOnlyOpt = ESMF_FALSE + if (present(keyOnly)) then + if (keyOnly) keyOnlyOpt = ESMF_TRUE + endif + + keySuperOpt = ESMF_FALSE + if (present(keySuper)) then + if (keySuper) keySuperOpt = ESMF_TRUE + endif + ! Call into the C++ interface - call c_ESMC_VMIdCompare(vmId1, vmId2, tf, localrc) + call c_ESMC_VMIdCompare(vmId1, vmId2, keyOnlyOpt, keySuperOpt, tf, localrc) ESMF_VMIdCompare = tf == ESMF_TRUE if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return @@ -10457,6 +10480,68 @@ end subroutine ESMF_VMIdCopy !------------------------------------------------------------------------------ +! -------------------------- ESMF-internal method ----------------------------- +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_VMIdGet()" +!BOPI +! !IROUTINE: ESMF_VMIdGet - Get information about a VMId object + +! !INTERFACE: + subroutine ESMF_VMIdGet(vmId, leftMostOnBit, isLocalPetActive, rc) +! +! !ARGUMENTS: + type(ESMF_VMId), intent(in) :: vmId + integer, intent(out), optional :: leftMostOnBit + logical, intent(out), optional :: isLocalPetActive + integer, intent(out), optional :: rc +! +! !DESCRIPTION: +! Copy the contents of ESMF_VMId objects. Note that the destination +! objects must have been (deeply) allocated prior to calling this +! copy. +! +! The arguments are: +! \begin{description} +! \item[vmId] +! VMId to get information from. +! \item[{[leftMostOnBit]}] +! The index (base 0) of the leftmost on bit in {\tt vmId}. If the index +! is -1, then there were no on bits. +! \item[{[isLocalPetActive]}] +! Set to {\tt .true.} if the local PET is indicated as active in +! {\tt vmId}. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +! +!EOPI +!------------------------------------------------------------------------------ + integer :: localrc ! local return code + type(ESMF_Logical) :: tf + + ! initialize return code; assume routine not implemented + localrc = ESMF_RC_NOT_IMPL + if (present(rc)) rc = ESMF_RC_NOT_IMPL + + ! Call into the C++ interface + if (present(leftMostOnBit)) then + call c_ESMCI_VMIdGetLeftMostOnBit(vmId, leftMostOnBit, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + if (present(isLocalPetActive)) then + call c_ESMCI_VMIdGetIsLocalPetActive(vmId, tf, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + isLocalPetActive = tf == ESMF_TRUE + endif + + ! return successfully + if (present(rc)) rc = ESMF_SUCCESS + + end subroutine ESMF_VMIdGet +!------------------------------------------------------------------------------ + ! -------------------------- ESMF-internal method ----------------------------- #undef ESMF_METHOD #define ESMF_METHOD "ESMF_VMIdLog()" diff --git a/src/Infrastructure/VM/src/ESMCI_VM.C b/src/Infrastructure/VM/src/ESMCI_VM.C index fd341a86a9..39ec56e269 100644 --- a/src/Infrastructure/VM/src/ESMCI_VM.C +++ b/src/Infrastructure/VM/src/ESMCI_VM.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -139,14 +139,19 @@ static bool esmfFinalized = false; #undef ESMC_METHOD #define ESMC_METHOD "ESMCI::VMKeyCompare()" -static bool VMKeyCompare(unsigned char *vmKey1, unsigned char *vmKey2){ - int i; - for (i=0; ivmKey); + + // a value returned of vmKeyWidth * 8 indicates that no bit was set + if (unsigned_leftmost == (unsigned)vmKeyWidth*8) *leftmostOnBit=-1; + else *leftmostOnBit=(signed int)unsigned_leftmost; + + localrc = ESMF_SUCCESS; + return localrc; +} +//----------------------------------------------------------------------------- + + + //----------------------------------------------------------------------------- #undef ESMC_METHOD #define ESMC_METHOD "ESMCI::VMId::set()" @@ -467,14 +516,12 @@ void VMId::log( int rc = ESMC_RC_NOT_IMPL; // final return code char digits[64]; - char msg[800]; std::stringstream info; - info << " vmKeyWidth (bytes) = " << vmKeyWidth + info << prefix << " - VMId: vmKeyWidth (bytes) = " << vmKeyWidth <<" vmKeyOff (invalid bits end of last byte) = " << vmKeyOff; - sprintf(msg, "%s - VMId: %s", prefix.c_str(), info.str().c_str()); - ESMC_LogDefault.Write(msg, msgType); + ESMC_LogDefault.Write(info.str(), msgType); info.str(""); // clear info - info << " vmKey=0x"; + info << prefix << " - VMId: vmKey=0x"; int bitmap=0; int k=0; for (int i=0; ilocalID != vmID2->localID){ - return false; + if (!keyOnly){ + if (vmID1->localID != vmID2->localID){ + return false; + } + } + return VMKeyCompare(vmID1->vmKey, vmID2->vmKey, keySuper); +} +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +#undef ESMC_METHOD +#define ESMC_METHOD "ESMCI::VMIdIsLocalPetActive()" +//BOPI +// !IROUTINE: ESMCI::VMIdIsLocalPetActive +// +// !INTERFACE: +bool VMIdIsLocalPetActive( +// +// !RETURN VALUE: +// bool indicating whether localPet is marked active in {\tt vmID}. +// +// !ARGUMENTS: +// + const VMId *vmID + ){ +// +// !DESCRIPTION: +// Return {\tt true} if the bit corresponding to the local PET is set in +// {\tt vmID}. Return {\tt false} otherwise. +// +//EOPI +//----------------------------------------------------------------------------- + if (vmID==NULL){ + ESMC_LogDefault.MsgFoundError(ESMC_RC_ARG_BAD, + "- Invalid vmID", ESMC_CONTEXT, NULL); + return false; // bail out } - return VMKeyCompare(vmID1->vmKey, vmID2->vmKey); + int localPet = VM::getGlobal()->getLocalPet(); + int index = localPet/8; + int bitIndex = localPet%8; + return (vmID->vmKey[index]&0x01<<(7-bitIndex)); } //----------------------------------------------------------------------------- diff --git a/src/Infrastructure/VM/src/ESMCI_VMKernel.C b/src/Infrastructure/VM/src/ESMCI_VMKernel.C index 63b85ad0c3..48184b67f0 100644 --- a/src/Infrastructure/VM/src/ESMCI_VMKernel.C +++ b/src/Infrastructure/VM/src/ESMCI_VMKernel.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/src/acc/ESMCI_IntelMICInfo.C b/src/Infrastructure/VM/src/acc/ESMCI_IntelMICInfo.C index c4c82a178b..19e81fdc2f 100644 --- a/src/Infrastructure/VM/src/acc/ESMCI_IntelMICInfo.C +++ b/src/Infrastructure/VM/src/acc/ESMCI_IntelMICInfo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/src/acc/ESMCI_OpenACCInfo.C b/src/Infrastructure/VM/src/acc/ESMCI_OpenACCInfo.C index 40490470bf..73e6986316 100644 --- a/src/Infrastructure/VM/src/acc/ESMCI_OpenACCInfo.C +++ b/src/Infrastructure/VM/src/acc/ESMCI_OpenACCInfo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/src/acc/ESMCI_OpenCLInfo.C b/src/Infrastructure/VM/src/acc/ESMCI_OpenCLInfo.C index 48bc62278d..7315552555 100644 --- a/src/Infrastructure/VM/src/acc/ESMCI_OpenCLInfo.C +++ b/src/Infrastructure/VM/src/acc/ESMCI_OpenCLInfo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/src/acc/ESMCI_OpenMP4Info.C b/src/Infrastructure/VM/src/acc/ESMCI_OpenMP4Info.C index 1961b8f5fa..d67eaace81 100644 --- a/src/Infrastructure/VM/src/acc/ESMCI_OpenMP4Info.C +++ b/src/Infrastructure/VM/src/acc/ESMCI_OpenMP4Info.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMC_VMUTest.c b/src/Infrastructure/VM/tests/ESMC_VMUTest.c index 99c7678134..24e8ed0d78 100644 --- a/src/Infrastructure/VM/tests/ESMC_VMUTest.c +++ b/src/Infrastructure/VM/tests/ESMC_VMUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMAccUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMAccUTest.F90 index 81ba47607c..099c92d680 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMAccUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMAccUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMAllGatherUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMAllGatherUTest.F90 index da85d49fb9..328be2d233 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMAllGatherUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMAllGatherUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMAllGatherVUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMAllGatherVUTest.F90 index a031835f11..f114d1bcf1 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMAllGatherVUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMAllGatherVUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMAllToAllUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMAllToAllUTest.F90 index d70b568f44..8dff08e926 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMAllToAllUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMAllToAllUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMAllToAllVUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMAllToAllVUTest.F90 index 0f91bda1ce..02e85c16ab 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMAllToAllVUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMAllToAllVUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMBarrierUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMBarrierUTest.F90 index c8d778cb7d..cd7d475de6 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMBarrierUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMBarrierUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMBroadcastUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMBroadcastUTest.F90 index 346cee20ce..caba8d83c6 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMBroadcastUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMBroadcastUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMComponentUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMComponentUTest.F90 index d0babb3db0..36dc206dcf 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMComponentUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMComponentUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMEpochLargeMsgUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMEpochLargeMsgUTest.F90 index b845049e3f..b9fc436766 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMEpochLargeMsgUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMEpochLargeMsgUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMGatherUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMGatherUTest.F90 index 8be72643bc..1a85e94d39 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMGatherUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMGatherUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMOpenMPUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMOpenMPUTest.F90 index f0d5f9cbb4..a1ba203a94 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMOpenMPUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMOpenMPUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMScatterUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMScatterUTest.F90 index a96ff72f7d..3a587679da 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMScatterUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMScatterUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMSendNbVMRecvNbUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMSendNbVMRecvNbUTest.F90 index 97d0147b60..e5a06f6563 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMSendNbVMRecvNbUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMSendNbVMRecvNbUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMSendRecvNbUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMSendRecvNbUTest.F90 index 9e5e2a8287..fd24cc9fd7 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMSendRecvNbUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMSendRecvNbUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMSendRecvUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMSendRecvUTest.F90 index f2e7f82856..fac7008bfc 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMSendRecvUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMSendRecvUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMSendVMRecvUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMSendVMRecvUTest.F90 index d675efbf15..05cb5e535f 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMSendVMRecvUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMSendVMRecvUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMUTest.F90 index e0c6582901..53132520a3 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/VM/tests/ESMF_VMUserMpiInitUTest.F90 b/src/Infrastructure/VM/tests/ESMF_VMUserMpiInitUTest.F90 index 52f79e5201..937105143e 100644 --- a/src/Infrastructure/VM/tests/ESMF_VMUserMpiInitUTest.F90 +++ b/src/Infrastructure/VM/tests/ESMF_VMUserMpiInitUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/examples/ESMF_XGridEx.F90 b/src/Infrastructure/XGrid/examples/ESMF_XGridEx.F90 index 17478758e1..319b3e5ae2 100644 --- a/src/Infrastructure/XGrid/examples/ESMF_XGridEx.F90 +++ b/src/Infrastructure/XGrid/examples/ESMF_XGridEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/examples/ESMF_XGridSparseMatEx.F90 b/src/Infrastructure/XGrid/examples/ESMF_XGridSparseMatEx.F90 index 0da16930cf..1a3be172b5 100644 --- a/src/Infrastructure/XGrid/examples/ESMF_XGridSparseMatEx.F90 +++ b/src/Infrastructure/XGrid/examples/ESMF_XGridSparseMatEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/include/ESMCI_XGrid.h b/src/Infrastructure/XGrid/include/ESMCI_XGrid.h index 6f6e472c37..a63345b5bb 100644 --- a/src/Infrastructure/XGrid/include/ESMCI_XGrid.h +++ b/src/Infrastructure/XGrid/include/ESMCI_XGrid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/include/ESMC_XGrid.h b/src/Infrastructure/XGrid/include/ESMC_XGrid.h index f1c4d800c6..87eabf1d73 100644 --- a/src/Infrastructure/XGrid/include/ESMC_XGrid.h +++ b/src/Infrastructure/XGrid/include/ESMC_XGrid.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/interface/ESMCI_XGrid.C b/src/Infrastructure/XGrid/interface/ESMCI_XGrid.C index ff5c184d48..d4f84dbcad 100644 --- a/src/Infrastructure/XGrid/interface/ESMCI_XGrid.C +++ b/src/Infrastructure/XGrid/interface/ESMCI_XGrid.C @@ -1,7 +1,7 @@ //$1.10 2007/04/26 16:13:59 rosalind Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/interface/ESMCI_XGrid_F.C b/src/Infrastructure/XGrid/interface/ESMCI_XGrid_F.C index 497f8ff254..b22d7fa2f8 100644 --- a/src/Infrastructure/XGrid/interface/ESMCI_XGrid_F.C +++ b/src/Infrastructure/XGrid/interface/ESMCI_XGrid_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/interface/ESMC_XGrid.C b/src/Infrastructure/XGrid/interface/ESMC_XGrid.C index 7ea283ebe4..f17d424afe 100644 --- a/src/Infrastructure/XGrid/interface/ESMC_XGrid.C +++ b/src/Infrastructure/XGrid/interface/ESMC_XGrid.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/interface/ESMF_XGrid_C.F90 b/src/Infrastructure/XGrid/interface/ESMF_XGrid_C.F90 index b8966a3468..b2405f72d5 100644 --- a/src/Infrastructure/XGrid/interface/ESMF_XGrid_C.F90 +++ b/src/Infrastructure/XGrid/interface/ESMF_XGrid_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/src/ESMF_XGrid.F90 b/src/Infrastructure/XGrid/src/ESMF_XGrid.F90 index ba819f75e4..5a49fcc465 100644 --- a/src/Infrastructure/XGrid/src/ESMF_XGrid.F90 +++ b/src/Infrastructure/XGrid/src/ESMF_XGrid.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/src/ESMF_XGridCreate.F90 b/src/Infrastructure/XGrid/src/ESMF_XGridCreate.F90 index 6dd74344b1..b21f7aad35 100644 --- a/src/Infrastructure/XGrid/src/ESMF_XGridCreate.F90 +++ b/src/Infrastructure/XGrid/src/ESMF_XGridCreate.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1518,8 +1518,16 @@ function ESMF_XGridCreate(keywordEnforcer, & ! store the middle mesh if needed ! and clean up temporary memory used if(xgtype%storeOverlay) then + + ! Set in XGrid structure xgtype%mesh = mesh + ! If keeping, turn off side information + call c_esmc_meshsetxgridinfo(xgtype%mesh, -1, -1, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + !! Debug output of xgrid mesh #ifdef BOB_XGRID_DEBUG call ESMF_MeshWrite(mesh, "xgrid_mid_mesh") @@ -1532,51 +1540,74 @@ function ESMF_XGridCreate(keywordEnforcer, & ESMF_CONTEXT, rcToReturn=rc)) return endif + ! Clean up Meshes for side A do i = 1, ngrid_a - if(present(sideAMaskValues)) then - call ESMF_MeshTurnOffCellMask(meshAt(i), rc=localrc); - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif - if(xggt_a(i) == ESMF_XGRIDGEOMTYPE_GRID) then - call ESMF_MeshDestroy(meshAt(i), rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif + ! If it originally came from a Grid, then just destroy + if(xggt_a(i) == ESMF_XGRIDGEOMTYPE_GRID) then + call ESMF_MeshDestroy(meshAt(i), rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + else ! ...otherwise turn things off + ! Turn off masking + if(present(sideAMaskValues)) then + call ESMF_MeshTurnOffCellMask(meshAt(i), rc=localrc); + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + + ! Turn off side information + call c_esmc_meshsetxgridinfo(meshAt(i), -1, -1, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif enddo + ! Clean up Meshes for side B do i = 1, ngrid_b - if(present(sideBMaskValues)) then - call ESMF_MeshTurnOffCellMask(meshBt(i), rc=localrc); - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif - if(xggt_b(i) == ESMF_XGRIDGEOMTYPE_GRID) then - call ESMF_MeshDestroy(meshBt(i), rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - endif + ! If it originally came from a Grid, then just destroy + if(xggt_b(i) == ESMF_XGRIDGEOMTYPE_GRID) then + call ESMF_MeshDestroy(meshBt(i), rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + else ! ...otherwise turn things off + + ! Turn off masking + if(present(sideBMaskValues)) then + call ESMF_MeshTurnOffCellMask(meshBt(i), rc=localrc); + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + + ! Turn off side information + call c_esmc_meshsetxgridinfo(meshBt(i), -1, -1, localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + endif enddo - + deallocate(meshAt, meshBt) deallocate(xggt_a, xggt_b) - ! Finalize XGrid Creation - xgtype%online = 1 - xgtype%status = ESMF_STATUS_READY - ESMF_XGridCreate%xgtypep => xgtype - ESMF_INIT_SET_CREATED(ESMF_XGridCreate) - - !call ESMF_XGridValidate(ESMF_XGridCreate, rc=localrc) - !if (ESMF_LogFoundError(localrc, & - ! ESMF_ERR_PASSTHRU, & - ! ESMF_CONTEXT, rcToReturn=rc)) return + ! Finalize XGrid Creation + xgtype%online = 1 + xgtype%status = ESMF_STATUS_READY + ESMF_XGridCreate%xgtypep => xgtype + ESMF_INIT_SET_CREATED(ESMF_XGridCreate) - if(present(rc)) rc = ESMF_SUCCESS + !call ESMF_XGridValidate(ESMF_XGridCreate, rc=localrc) + !if (ESMF_LogFoundError(localrc, & + ! ESMF_ERR_PASSTHRU, & + ! ESMF_CONTEXT, rcToReturn=rc)) return + + if(present(rc)) rc = ESMF_SUCCESS end function ESMF_XGridCreate diff --git a/src/Infrastructure/XGrid/src/ESMF_XGridGet.F90 b/src/Infrastructure/XGrid/src/ESMF_XGridGet.F90 index b15ab5eb53..5c748d3a4f 100644 --- a/src/Infrastructure/XGrid/src/ESMF_XGridGet.F90 +++ b/src/Infrastructure/XGrid/src/ESMF_XGridGet.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/tests/ESMC_XGridUTest.c b/src/Infrastructure/XGrid/tests/ESMC_XGridUTest.c index fd3d53f586..4e3fba7977 100644 --- a/src/Infrastructure/XGrid/tests/ESMC_XGridUTest.c +++ b/src/Infrastructure/XGrid/tests/ESMC_XGridUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/tests/ESMF_XGridMaskingUTest.F90 b/src/Infrastructure/XGrid/tests/ESMF_XGridMaskingUTest.F90 index ce7af284bd..405e57789b 100644 --- a/src/Infrastructure/XGrid/tests/ESMF_XGridMaskingUTest.F90 +++ b/src/Infrastructure/XGrid/tests/ESMF_XGridMaskingUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGrid/tests/ESMF_XGridUTest.F90 b/src/Infrastructure/XGrid/tests/ESMF_XGridUTest.F90 index 3781591ec8..13f8316482 100644 --- a/src/Infrastructure/XGrid/tests/ESMF_XGridUTest.F90 +++ b/src/Infrastructure/XGrid/tests/ESMF_XGridUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -56,6 +56,7 @@ program ESMF_XGridUTest !------------------------------------------------------------------------ +#if 1 !------------------------------------------------------------------------ !NEX_UTest ! Don't know if I should keep this turned on as an actual unit test, but it's useful for debugging @@ -65,7 +66,6 @@ program ESMF_XGridUTest call ESMF_Test((rc .eq. ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------ -#if 1 !------------------------------------------------------------------------ !NEX_UTest write(name, *) "Testing XGrid IsCreated for uncreated object" @@ -194,9 +194,11 @@ program ESMF_XGridUTest write(name, *) "Creating an XGrid with Mesh easy element create interface" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------ !NEX_UTest - ! Create an XGrid in 2D from Meshes with user supplied area + ! Create an XGrid in 2D from Meshes call test_MeshToMesh_2nd(rc) write(failMsg, *) "" write(name, *) "Test 2nd order on an XGrid between Meshes" @@ -204,7 +206,15 @@ program ESMF_XGridUTest !------------------------------------------------------------------------ !NEX_UTest - ! Create an XGrid in 2D from Meshes with user supplied area + ! Create an XGrid in 2D from Cartesian Meshes + call test_CartMeshToMesh_2nd(rc) + write(failMsg, *) "" + write(name, *) "Test 2nd order on an XGrid between Cartesian Meshes" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------ + !NEX_UTest + ! Create an XGrid in 2D from Meshes call test_CSGridToGrid_2nd(rc) write(failMsg, *) "" write(name, *) "Test 2nd order on an XGrid with a cubed sphere Grid" @@ -2820,6 +2830,7 @@ subroutine test_MeshToMesh_2nd(rc) integer :: localrc type(ESMF_Mesh) :: srcMesh type(ESMF_Mesh) :: dstMesh + type(ESMF_Mesh) :: xgridMesh type(ESMF_XGrid) :: xgrid type(ESMF_Field) :: srcField type(ESMF_Field) :: dstField @@ -2857,7 +2868,7 @@ subroutine test_MeshToMesh_2nd(rc) ! result code integer :: finalrc - + ! Init to success rc=ESMF_SUCCESS itrp=.true. @@ -2881,6 +2892,8 @@ subroutine test_MeshToMesh_2nd(rc) return endif +! 11/25/2024 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! Setup Source !!!!!!!!!!!!! @@ -3081,7 +3094,6 @@ subroutine test_MeshToMesh_2nd(rc) call ESMF_MeshWrite(dstMesh,"dstMesh") #endif - #define USE_XGRID #ifdef USE_XGRID @@ -3096,6 +3108,15 @@ subroutine test_MeshToMesh_2nd(rc) if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + +#if 0 + call ESMF_XGridGet(xgrid, mesh=xgridMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_MeshWrite(xgridMesh,"xgridMesh") +#endif ! Field on XGrid xField = ESMF_FieldCreate(xgrid, arrayspec, & @@ -3104,7 +3125,6 @@ subroutine test_MeshToMesh_2nd(rc) ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - ! Regrid store call ESMF_FieldRegridStore( & xgrid, & @@ -3118,9 +3138,10 @@ subroutine test_MeshToMesh_2nd(rc) ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_FieldRegridStore( & - xgrid, & - xField, & + xgrid, & + xField, & dstField=dstField, & routeHandle=XToDrouteHandle, & regridmethod=ESMF_REGRIDMETHOD_CONSERVE_2ND, & @@ -3129,7 +3150,7 @@ subroutine test_MeshToMesh_2nd(rc) if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return - + ! Do regrid call ESMF_FieldRegrid(srcField, xField, StoXrouteHandle, & rc=localrc) @@ -3353,7 +3374,7 @@ subroutine test_MeshToMesh_2nd(rc) ! Uncomment these calls to see some actual regrid results if (localPet == 0) then write(*,*) - write(*,*) "=== Second Order Conservative Mesh to Mesh via XGrid ===" + write(*,*) "=== Second Order Conservative between Spherical Meshes via XGrid ===" write(*,*) "Conservation:" write(*,*) "Rel Error = ", ABS(dstmassg(1)-srcmassg(1))/srcmassg(1) write(*,*) "SRC mass = ", srcmassg(1) @@ -3424,187 +3445,1908 @@ subroutine test_MeshToMesh_2nd(rc) end subroutine test_MeshToMesh_2nd - function calc_lat(i,imax,dy) - integer :: i, imax - real(ESMF_KIND_R8) :: calc_lat - real(ESMF_KIND_R8) :: dy - if (i .eq. 1) then - calc_lat = -90.0 - else if (i .eq. imax) then - calc_lat = 90.0 - else - calc_lat = REAL(i-1)*dy - 0.5*dy - 90.0 - endif - end function calc_lat + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! + ! Creates the following mesh on + ! 1 or 4 PETs. Returns an error + ! if run on other than 1 or 4 PETs + ! + ! Mesh Ids + ! + ! 3.0 13 ------ 14 ------- 15 ------- 16 + ! | | | 10 / | + ! 2.5 | 7 | 8 | / | + ! | | | / 9 | + ! 2.0 9 ------- 10 ------- 11 ------- 12 + ! | | | | + ! 1.5 | 4 | 5 | 6 | + ! | | | | + ! 1.0 5 ------- 6 -------- 7 -------- 8 + ! | | | | + ! 0.5 | 1 | 2 | 3 | + ! | | | | + ! 0.0 1 ------- 2 -------- 3 -------- 4 + ! + ! 0.0 0.5 1.0 1.5 2.0 2.5 3.0 + ! + ! Node Ids at corners + ! Element Ids in centers + ! + !!!!! + ! + ! The owners for 1 PET are all Pet 0. + ! The owners for 4 PETs are as follows: + ! + ! Mesh Owners + ! + ! 3.0 1 ------- 1 -------- 1 -------- 1 + ! | | | 1 / | + ! | 1 | 1 | / | + ! | | | / 1 | + ! 2.0 1 ------- 1 -------- 1 -------- 1 + ! | | | | + ! | 1 | 1 | 1 | + ! | | | | + ! 1.0 0 ------- 0 -------- 0 -------- 0 + ! | | | | + ! | 0 | 0 | 0 | + ! | | | | + ! 0.0 0 ------- 0 -------- 0 -------- 0 + ! + ! 0.0 1.0 2.0 3.0 + ! + ! Node Owners at corners + ! Element Owners in centers + ! +subroutine createTestMesh3x3Cart_1(mesh, rc) + type(ESMF_Mesh), intent(out) :: mesh + integer :: rc - subroutine test_CSGridToGrid_2nd(rc) -#undef ESMF_METHOD -#define ESMF_METHOD "test_CSGridToGrid_2nd" - integer, intent(out) :: rc - logical :: itrp - logical :: csrv - integer :: localrc - type(ESMF_Grid) :: srcGrid - type(ESMF_Grid) :: dstGrid - type(ESMF_XGrid) :: xgrid - type(ESMF_Field) :: srcField - type(ESMF_Field) :: dstField - type(ESMF_Field) :: xdstField - type(ESMF_Field) :: errorField - type(ESMF_Field) :: xField - type(ESMF_Field) :: srcArea, dstArea - type(ESMF_Array) :: dstArray - type(ESMF_Array) :: xdstArray - type(ESMF_Array) :: errorArray - type(ESMF_Array) :: srcArray - type(ESMF_Array) :: srcAreaArray, dstAreaArray - type(ESMF_RouteHandle) :: StoXrouteHandle - type(ESMF_RouteHandle) :: XtoDrouteHandle - type(ESMF_RouteHandle) :: routeHandle - type(ESMF_ArraySpec) :: arrayspec + integer, pointer :: nodeIds(:),nodeOwners(:) + real(ESMF_KIND_R8), pointer :: nodeCoords(:) + real(ESMF_KIND_R8), pointer :: ownedNodeCoords(:) + integer :: numNodes, numOwnedNodes, numOwnedNodesTst + integer :: numElems,numOwnedElemsTst + integer :: numElemConns, numTriElems, numQuadElems + real(ESMF_KIND_R8), pointer :: elemCoords(:) + integer, pointer :: elemIds(:),elemTypes(:),elemConn(:) + integer, pointer :: elemMask(:) + integer :: petCount, localPet type(ESMF_VM) :: vm - real(ESMF_KIND_R8), pointer :: farrayPtrXC(:,:) - real(ESMF_KIND_R8), pointer :: farrayPtrYC(:,:) - real(ESMF_KIND_R8), pointer :: farrayPtr(:,:),xfarrayPtr(:,:),errorfarrayPtr(:,:),iwtsptr(:,:) - real(ESMF_KIND_R8), pointer :: srcAreaptr(:,:), dstAreaptr(:,:) - integer :: petMap2D(2,2,1) - integer :: clbnd(2),cubnd(2) - integer :: fclbnd(2),fcubnd(2) - integer :: i1,i2, index(2) - integer :: lDE, i - integer :: srclocalDECount, dstlocalDECount - integer :: src_tile_size - integer :: Src_nx, Src_ny - integer :: Dst_nx, Dst_ny - real(ESMF_KIND_R8) :: Src_dx, Src_dy, yp1 - real(ESMF_KIND_R8) :: Dst_dx, Dst_dy - real(ESMF_KIND_R8) :: ctheta, stheta - real(ESMF_KIND_R8) :: theta, d2rad, x, y, z - real(ESMF_KIND_R8) :: DEG2RAD, a, lat, lon, phi - real(ESMF_KIND_R8) :: xtmp, ytmp, ztmp - real(ESMF_KIND_R8) :: srcmass(1), dstmass(1), srcmassg(1), dstmassg(1) - real(ESMF_KIND_R8) :: maxerror(1), minerror(1), error - real(ESMF_KIND_R8) :: maxerrorg(1), minerrorg(1), errorg - integer :: localPet, petCount - - ! init success flag - rc=ESMF_SUCCESS - ! get pet info - call ESMF_VMGetGlobal(vm, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ! get global VM + call ESMF_VMGetGlobal(vm, rc=rc) + if (rc /= ESMF_SUCCESS) return + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=rc) + if (rc /= ESMF_SUCCESS) return - call ESMF_VMGet(vm, petCount=petCount, localPet=localpet, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - ! XMRKX + ! return with an error if not 1 or 2 PETs + if ((petCount /= 1) .and. (petCount /=2)) then + rc=ESMF_FAILURE + return + endif - ! Establish the resolution of the grids - src_tile_size=20 - Dst_nx = 100 - Dst_ny = 80 + ! Setup mesh info depending on the + ! number of PETs + if (petCount .eq. 1) then - Dst_dx = 360.0/Dst_nx - Dst_dy = 180.0/Dst_ny + ! Fill in node data + numNodes=16 - ! degree to rad conversion - DEG2RAD = 3.141592653589793_ESMF_KIND_R8/180.0_ESMF_KIND_R8 + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,3,4,5,6,7,8, & + 9,10,11,12,13,14,& + 15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 0.0,1.0, & ! 5 + 1.0,1.0, & ! 6 + 2.0,1.0, & ! 7 + 3.0,1.0, & ! 8 + 0.0,2.0, & ! 9 + 1.0,2.0, & ! 10 + 2.0,2.0, & ! 11 + 3.0,2.0, & ! 12 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 + - ! setup source cubed sphere grid - srcGrid=ESMF_GridCreateCubedSphere(tileSize=src_tile_size, & - staggerLocList=(/ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_CORNER/), & - rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 - ! setup dest. grid - dstGrid=ESMF_GridCreate1PeriDim(minIndex=(/1,1/),maxIndex=(/dst_nx,dst_ny/),regDecomp=(/1,petCount/), & - coordSys=ESMF_COORDSYS_SPH_DEG, & - indexflag=ESMF_INDEX_GLOBAL, & - rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ! Fill in elem data + numTriElems=2 + numQuadElems=8 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems - ! Create source/destination fields - call ESMF_ArraySpecSet(arrayspec, 2, ESMF_TYPEKIND_R8, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1,2,3,4,5,6,7,8,9,10/) - srcField = ESMF_FieldCreate(srcGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="source", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 1 + ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD, & ! 3 + ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD, & ! 8 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 - srcArea = ESMF_FieldCreate(srcGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="source", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5, & ! 1 + 1.5,0.5, & ! 2 + 2.5,0.5, & ! 3 + 0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 2.5,1.5, & ! 6 + 0.5,2.5, & ! 7 + 1.5,2.5, & ! 8 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 1 + 2,3,7,6, & ! 2 + 3,4,8,7, & ! 3 + 5,6,10,9, & ! 4 + 6,7,11,10, & ! 5 + 7,8,12,11, & ! 6 + 9,10,14,13, & ! 7 + 10,11,15,14, & ! 8 + 11,12,16, & ! 9 + 11,16,15/) ! 10 - errorField = ESMF_FieldCreate(dstGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + else if (petCount .eq. 2) then + ! Setup mesh data depending on PET + if (localPet .eq. 0) then + + ! Fill in node data + numNodes=8 + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,3,4,5,6,7,8/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 0.0,1.0, & ! 5 + 1.0,1.0, & ! 6 + 2.0,1.0, & ! 7 + 3.0,1.0/) ! 8 + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 - dstField = ESMF_FieldCreate(dstGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + ! Fill in elem data + numTriElems=0 + numQuadElems=3 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1,2,3/) - xdstField = ESMF_FieldCreate(dstGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 1 + ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD/) ! 3 - dstArea = ESMF_FieldCreate(dstGrid, arrayspec, & - staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5, & ! 1 + 1.5,0.5, & ! 2 + 2.5,0.5/) ! 3 + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 1 + 2,3,7,6, & ! 2 + 3,4,8,7/) ! 2 + - ! Allocate coordinates - call ESMF_GridAddCoord(dstGrid, staggerloc=ESMF_STAGGERLOC_CENTER, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + else if (localPet .eq. 1) then + ! Fill in node data + numNodes=12 - call ESMF_GridAddCoord(dstGrid, staggerloc=ESMF_STAGGERLOC_CORNER, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/5,6,7,8,9,10,11,12,13,14,15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,1.0, & ! 5 + 1.0,1.0, & ! 6 + 2.0,1.0, & ! 7 + 3.0 ,1.0, & ! 8 + 0.0,2.0, & ! 9 + 1.0,2.0, & ! 10 + 2.0,2.0, & ! 11 + 3.0,2.0, & ! 12 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 - ! Get number of local DEs - call ESMF_GridGet(srcGrid, localDECount=srcLocalDECount, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + - call ESMF_GridGet(dstGrid, localDECount=dstLocalDECount, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=(/0, & ! 5 + 0, & ! 6 + 0, & ! 7 + 0, & ! 8 + 1, & ! 9 + 1, & ! 10 + 1, & ! 11 + 1, & ! 12 + 1, & ! 13 + 1, & ! 14 + 1, & ! 15 + 1/) ! 16 + + ! Fill in elem data + numTriElems=2 + numQuadElems=5 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/4,5,6,7,8,9,10/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD, & ! 8 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 2.5,1.5, & ! 6 + 0.5,2.5, & ! 7 + 1.5,2.5, & ! 8 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 4 + 2,3,7,6, & ! 5 + 3,4,8,7, & ! 6 + 5,6,10,9, & ! 7 + 6,7,11,10, & ! 8 + 7,8,12, & ! 9 + 7,12,11/) ! 10 + endif + endif + + ! Create Mesh structure in 1 step + mesh=ESMF_MeshCreate(parametricDim=2,spatialDim=2, & + coordSys=ESMF_COORDSYS_CART, & + nodeIds=nodeIds, nodeCoords=nodeCoords, & + nodeOwners=nodeOwners, elementIds=elemIds, & + elementTypes=elemTypes, elementConn=elemConn, & + elementCoords=elemCoords, rc=rc) + if (rc /= ESMF_SUCCESS) return + + ! deallocate node data + deallocate(nodeIds) + deallocate(nodeCoords) + deallocate(nodeOwners) + + ! deallocate elem data + deallocate(elemIds) + deallocate(elemTypes) + deallocate(elemCoords) + deallocate(elemConn) + +end subroutine createTestMesh3x3Cart_1 + + + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! + ! Creates the following mesh on + ! 1 or 4 PETs. Returns an error + ! if run on other than 1 or 4 PETs + ! + ! Mesh Ids + ! + ! 3.0 13 ------ 14 ------- 15 ------- 16 + ! | | | 10 / | + ! 2.5 | 7 | 8 | / | + ! | | | / 9 | + ! 2.0 9 ------- 10 ------- 11 ------- 12 + ! | | | | + ! 1.5 | 4 | 5 | 6 | + ! | | | | + ! 1.0 5 ------- 6 -------- 7 -------- 8 + ! | | | | + ! 0.5 | 1 | 2 | 3 | + ! | | | | + ! 0.0 1 ------- 2 -------- 3 -------- 4 + ! + ! 0.0 0.5 1.0 1.5 2.0 2.5 3.0 + ! + ! Node Ids at corners + ! Element Ids in centers + ! + !!!!! + ! + ! The owners for 1 PET are all Pet 0. + ! The owners for 4 PETs are as follows: + ! + ! Mesh Owners + ! + ! 3.0 1 ------- 1 -------- 1 -------- 1 + ! | | | 1 / | + ! | 1 | 1 | / | + ! | | | / 1 | + ! 2.0 1 ------- 1 -------- 1 -------- 1 + ! | | | | + ! | 1 | 1 | 1 | + ! | | | | + ! 1.0 0 ------- 0 -------- 0 -------- 0 + ! | | | | + ! | 0 | 0 | 0 | + ! | | | | + ! 0.0 0 ------- 0 -------- 0 -------- 0 + ! + ! 0.0 1.0 2.0 3.0 + ! + ! Node Owners at corners + ! Element Owners in centers + ! + +subroutine createTestMesh3x3Cart_2(mesh, rc) + type(ESMF_Mesh), intent(out) :: mesh + integer :: rc + + integer, pointer :: nodeIds(:),nodeOwners(:) + real(ESMF_KIND_R8), pointer :: nodeCoords(:) + real(ESMF_KIND_R8), pointer :: ownedNodeCoords(:) + integer :: numNodes, numOwnedNodes, numOwnedNodesTst + integer :: numElems,numOwnedElemsTst + integer :: numElemConns, numTriElems, numQuadElems + real(ESMF_KIND_R8), pointer :: elemCoords(:) + integer, pointer :: elemIds(:),elemTypes(:),elemConn(:) + integer, pointer :: elemMask(:) + integer :: petCount, localPet + type(ESMF_VM) :: vm + + + ! get global VM + call ESMF_VMGetGlobal(vm, rc=rc) + if (rc /= ESMF_SUCCESS) return + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=rc) + if (rc /= ESMF_SUCCESS) return + + ! return with an error if not 1 or 2 PETs + if ((petCount /= 1) .and. (petCount /=2)) then + rc=ESMF_FAILURE + return + endif + + + ! Setup mesh info depending on the + ! number of PETs + if (petCount .eq. 1) then + + ! Fill in node data + numNodes=16 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,3,4,5,6,7,8, & + 9,10,11,12,13,14,& + 15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 0.0,1.0, & ! 5 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 3.0,1.0, & ! 8 + 0.0,2.0, & ! 9 + 1.25,1.75, & ! 10 + 1.75,1.75, & ! 11 + 3.0,2.0, & ! 12 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 + + + ! Fill in elem data + numTriElems=2 + numQuadElems=8 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1,2,3,4,5,6,7,8,9,10/) + + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 1 + ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD, & ! 3 + ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD, & ! 8 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5, & ! 1 + 1.5,0.5, & ! 2 + 2.5,0.5, & ! 3 + 0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 2.5,1.5, & ! 6 + 0.5,2.5, & ! 7 + 1.5,2.5, & ! 8 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 1 + 2,3,7,6, & ! 2 + 3,4,8,7, & ! 3 + 5,6,10,9, & ! 4 + 6,7,11,10, & ! 5 + 7,8,12,11, & ! 6 + 9,10,14,13, & ! 7 + 10,11,15,14, & ! 8 + 11,12,16, & ! 9 + 11,16,15/) ! 10 + + else if (petCount .eq. 2) then + ! Setup mesh data depending on PET + if (localPet .eq. 0) then + + ! Fill in node data + numNodes=8 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,3,4,5,6,7,8/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 0.0,1.0, & ! 5 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 3.0,1.0/) ! 8 + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 + + ! Fill in elem data + numTriElems=0 + numQuadElems=3 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1,2,3/) + + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 1 + ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD/) ! 3 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5, & ! 1 + 1.5,0.5, & ! 2 + 2.5,0.5/) ! 3 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 1 + 2,3,7,6, & ! 2 + 3,4,8,7/) ! 2 + + + else if (localPet .eq. 1) then + + ! Fill in node data + numNodes=12 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/5,6,7,8,9,10,11,12,13,14,15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,1.0, & ! 5 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 3.0 ,1.0, & ! 8 + 0.0,2.0, & ! 9 + 1.25,1.75, & ! 10 + 1.75,1.75, & ! 11 + 3.0,2.0, & ! 12 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 + + + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=(/0, & ! 5 + 0, & ! 6 + 0, & ! 7 + 0, & ! 8 + 1, & ! 9 + 1, & ! 10 + 1, & ! 11 + 1, & ! 12 + 1, & ! 13 + 1, & ! 14 + 1, & ! 15 + 1/) ! 16 + + ! Fill in elem data + numTriElems=2 + numQuadElems=5 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/4,5,6,7,8,9,10/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD, & ! 8 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 2.5,1.5, & ! 6 + 0.5,2.5, & ! 7 + 1.5,2.5, & ! 8 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 4 + 2,3,7,6, & ! 5 + 3,4,8,7, & ! 6 + 5,6,10,9, & ! 7 + 6,7,11,10, & ! 8 + 7,8,12, & ! 9 + 7,12,11/) ! 10 + endif + endif + + ! Create Mesh structure in 1 step + mesh=ESMF_MeshCreate(parametricDim=2,spatialDim=2, & + coordSys=ESMF_COORDSYS_CART, & + nodeIds=nodeIds, nodeCoords=nodeCoords, & + nodeOwners=nodeOwners, elementIds=elemIds, & + elementTypes=elemTypes, elementConn=elemConn, & + elementCoords=elemCoords, rc=rc) + if (rc /= ESMF_SUCCESS) return + + ! deallocate node data + deallocate(nodeIds) + deallocate(nodeCoords) + deallocate(nodeOwners) + + ! deallocate elem data + deallocate(elemIds) + deallocate(elemTypes) + deallocate(elemCoords) + deallocate(elemConn) + +end subroutine createTestMesh3x3Cart_2 + + + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! + ! Creates the following mesh on + ! 1 or 4 PETs. Returns an error + ! if run on other than 1 or 4 PETs + ! + ! Mesh Ids + ! + ! 3.0 13 ------ 14 ------- 15 ------- 16 + ! | | | 10 / | + ! 2.5 | 7 | 8 | / | + ! | | | / 9 | + ! 2.0 9 ------- 10 ------- 11 ------- 12 + ! | | | | + ! 1.5 | 4 | 5 | 6 | + ! | | | | + ! 1.0 5 ------- 6 -------- 7 -------- 8 + ! | | | | + ! 0.5 | 1 | 2 | 3 | + ! | | | | + ! 0.0 1 ------- 2 -------- 3 -------- 4 + ! + ! 0.0 0.5 1.0 1.5 2.0 2.5 3.0 + ! + ! Node Ids at corners + ! Element Ids in centers + ! + !!!!! + ! + ! The owners for 1 PET are all Pet 0. + ! The owners for 4 PETs are as follows: + ! + ! Mesh Owners + ! + ! 3.0 2 ------- 2 -------- 3 -------- 3 + ! | | | 3 / | + ! | 2 | 2 | / | + ! | | | / 3 | + ! 2.0 2 ------- 2 -------- 3 -------- 3 + ! | | | | + ! | 2 | 2 | 3 | + ! | | | | + ! 1.0 0 ------- 0 -------- 1 -------- 1 + ! | | | | + ! | 0 | 1 | 1 | + ! | | | | + ! 0.0 0 ------- 0 -------- 1 -------- 1 + ! + ! 0.0 1.0 2.0 3.0 + ! + ! Node Owners at corners + ! Element Owners in centers + ! + +subroutine createTestMesh3x3Cart_T(mesh, rc) + type(ESMF_Mesh), intent(out) :: mesh + integer :: rc + + integer, pointer :: nodeIds(:),nodeOwners(:) + real(ESMF_KIND_R8), pointer :: nodeCoords(:) + real(ESMF_KIND_R8), pointer :: ownedNodeCoords(:) + integer :: numNodes, numOwnedNodes, numOwnedNodesTst + integer :: numElems,numOwnedElemsTst + integer :: numElemConns, numTriElems, numQuadElems + real(ESMF_KIND_R8), pointer :: elemCoords(:) + integer, pointer :: elemIds(:),elemTypes(:),elemConn(:) + integer, pointer :: elemMask(:) + integer :: petCount, localPet + type(ESMF_VM) :: vm + + + ! get global VM + call ESMF_VMGetGlobal(vm, rc=rc) + if (rc /= ESMF_SUCCESS) return + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=rc) + if (rc /= ESMF_SUCCESS) return + + ! return with an error if not 1 or 4 PETs + if ((petCount /= 1) .and. (petCount /=4)) then + rc=ESMF_FAILURE + return + endif + + + ! Setup mesh info depending on the + ! number of PETs + if (petCount .eq. 1) then + + ! Fill in node data + numNodes=16 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,3,4,5,6,7,8, & + 9,10,11,12,13,14,& + 15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 0.0,1.0, & ! 5 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 3.0,1.0, & ! 8 + 0.0,2.0, & ! 9 + 1.25,1.75, & ! 10 + 1.75,1.75, & ! 11 + 3.0,2.0, & ! 12 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 + + + ! Fill in elem data + numTriElems=2 + numQuadElems=8 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1,2,3,4,5,6,7,8,9,10/) + + !! elem mask + allocate(elemMask(numElems)) + elemMask=(/1,0,0,0,0,0,0,0,0,0/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 1 + ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD, & ! 3 + ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD, & ! 8 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5, & ! 1 + 1.5,0.5, & ! 2 + 2.5,0.5, & ! 3 + 0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 2.5,1.5, & ! 6 + 0.5,2.5, & ! 7 + 1.5,2.5, & ! 8 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,6,5, & ! 1 + 2,3,7,6, & ! 2 + 3,4,8,7, & ! 3 + 5,6,10,9, & ! 4 + 6,7,11,10, & ! 5 + 7,8,12,11, & ! 6 + 9,10,14,13, & ! 7 + 10,11,15,14, & ! 8 + 11,12,16, & ! 9 + 11,16,15/) ! 10 + + else if (petCount .eq. 4) then + ! Setup mesh data depending on PET + if (localPet .eq. 0) then + + ! Fill in node data + numNodes=4 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/1,2,5,6/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,0.0, & ! 1 + 1.0,0.0, & ! 2 + 0.0,1.0, & ! 5 + 1.25,1.25 /) ! 6 + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=0 ! everything on proc 0 + + ! Fill in elem data + numTriElems=0 + numQuadElems=1 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/1/) + + !! elem mask + allocate(elemMask(numElems)) + elemMask=(/1/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD/) ! 1 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,0.5/) ! 1 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,4,3/) ! 1 + + else if (localPet .eq. 1) then + + ! Fill in node data + numNodes=6 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/2,3,4,6,7,8/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/1.0,0.0, & ! 2 + 2.0,0.0, & ! 3 + 3.0,0.0, & ! 4 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 3.0,1.0 /) ! 8 + + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=(/0, & ! 2 + 1, & ! 3 + 1, & ! 4 + 0, & ! 6 + 1, & ! 7 + 1/) ! 8 + + ! Fill in elem data + numTriElems=0 + numQuadElems=2 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/2,3/) + + !! elem mask + allocate(elemMask(numElems)) + elemMask=(/0,0/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 2 + ESMF_MESHELEMTYPE_QUAD/) ! 3 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/1.5,0.5, & ! 2 + 2.5,0.5/) ! 3 + + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,5,4, & ! 2 + 2,3,6,5/) ! 3 + + else if (localPet .eq. 2) then + + ! Fill in node data + numNodes=9 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/5,6,7, & + 9,10,11, & + 13,14,15/) + + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/0.0,1.0, & ! 5 + 1.25,1.25, & ! 6 + 1.75,1.25, & ! 7 + 0.0,2.0, & ! 9 + 1.25,1.75, & ! 10 + 1.75,1.75, & ! 11 + 0.0,3.0, & ! 13 + 1.0,3.0, & ! 14 + 2.0,3.0/) ! 15 + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=(/0, & ! 5 + 0, & ! 6 + 1, & ! 7 + 2, & ! 9 + 2, & ! 10 + 3, & ! 11 + 2, & ! 13 + 2, & ! 14 + 3/) ! 15 + + + ! Fill in elem data + numTriElems=0 + numQuadElems=4 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/4,5,7,8/) + + !! elem mask + allocate(elemMask(numElems)) + elemMask=(/0,0,0,0/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 4 + ESMF_MESHELEMTYPE_QUAD, & ! 5 + ESMF_MESHELEMTYPE_QUAD, & ! 7 + ESMF_MESHELEMTYPE_QUAD/) ! 8 + + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/0.5,1.5, & ! 4 + 1.5,1.5, & ! 5 + 0.5,2.5, & ! 7 + 1.5,2.5/) ! 8 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,5,4, & ! 4 + 2,3,6,5, & ! 5 + 4,5,8,7, & ! 7 + 5,6,9,8/) ! 8 + else if (localPet .eq. 3) then + + ! Fill in node data + numNodes=6 + + !! node ids + allocate(nodeIds(numNodes)) + nodeIds=(/7,8,11,12,15,16/) + + !! node Coords + allocate(nodeCoords(numNodes*2)) + nodeCoords=(/1.75,1.25, & ! 7 + 3.0,1.0, & ! 8 + 1.75,1.75, & ! 11 + 3.0,2.0, & ! 12 + 2.0,3.0, & ! 15 + 3.0,3.0 /) ! 16 + + + !! node owners + allocate(nodeOwners(numNodes)) + nodeOwners=(/1, & ! 7 + 1, & ! 8 + 3, & ! 11 + 3, & ! 12 + 3, & ! 15 + 3/) ! 16 + + ! Fill in elem data + numTriElems=2 + numQuadElems=1 + numElems=numTriElems+numQuadElems + numElemConns=3*numTriElems+4*numQuadElems + + !! elem ids + allocate(elemIds(numElems)) + elemIds=(/6,9,10/) + + !! elem mask + allocate(elemMask(numElems)) + elemMask=(/0,0,0/) + + !! elem types + allocate(elemTypes(numElems)) + elemTypes=(/ESMF_MESHELEMTYPE_QUAD, & ! 6 + ESMF_MESHELEMTYPE_TRI, & ! 9 + ESMF_MESHELEMTYPE_TRI/) ! 10 + + !! elem coords + allocate(elemCoords(2*numElems)) + elemCoords=(/2.5,1.5, & ! 6 + 2.75,2.25,& ! 9 + 2.25,2.75/) ! 10 + + !! elem conn + allocate(elemConn(numElemConns)) + elemConn=(/1,2,4,3, & ! 6 + 3,4,6, & ! 9 + 3,6,5/) ! 10 + endif + endif + + + ! Create Mesh structure in 1 step + mesh=ESMF_MeshCreate(parametricDim=2,spatialDim=2, & + coordSys=ESMF_COORDSYS_CART, & + nodeIds=nodeIds, nodeCoords=nodeCoords, & + nodeOwners=nodeOwners, elementIds=elemIds,& + elementTypes=elemTypes, elementConn=elemConn, & + elementCoords=elemCoords, elementMask=elemMask,& + rc=rc) + if (rc /= ESMF_SUCCESS) return + + ! deallocate node data + deallocate(nodeIds) + deallocate(nodeCoords) + deallocate(nodeOwners) + + ! deallocate elem data + deallocate(elemIds) + deallocate(elemMask) + deallocate(elemTypes) + deallocate(elemCoords) + deallocate(elemConn) + +end subroutine createTestMesh3x3Cart_T + + + + ! Test 2nd order regridding on Cartesian meshes using an XGrid + subroutine test_CartMeshToMesh_2nd(rc) +#undef ESMF_METHOD +#define ESMF_METHOD "test_CartMeshToMesh_2nd" + integer, intent(out) :: rc + logical :: itrp + logical :: csrv + integer :: localrc + type(ESMF_Mesh) :: srcMesh + type(ESMF_Mesh) :: dstMesh + type(ESMF_XGrid) :: xgrid + type(ESMF_Field) :: srcField + type(ESMF_Field) :: dstField + type(ESMF_Field) :: xdstField + type(ESMF_Field) :: xField + type(ESMF_Field) :: srcAreaField, dstAreaField + type(ESMF_Field) :: srcFracField, dstFracField + type(ESMF_RouteHandle) :: StoXrouteHandle + type(ESMF_RouteHandle) :: XtoDrouteHandle + type(ESMF_RouteHandle) :: routeHandle + type(ESMF_ArraySpec) :: arrayspec + type(ESMF_VM) :: vm + real(ESMF_KIND_R8), pointer :: srcFarrayPtr(:), dstFarrayPtr(:), xdstFarrayPtr(:) + real(ESMF_KIND_R8), pointer :: srcAreaPtr(:), dstAreaPtr(:) + real(ESMF_KIND_R8), pointer :: srcFracPtr(:), dstFracPtr(:) + integer :: clbnd(1),cubnd(1) + integer :: i1,i2,i3 + real(ESMF_KIND_R8) :: x,y,z + real(ESMF_KIND_R8) :: lat, lon, phi, theta + real(ESMF_KIND_R8),parameter :: & + DEG2RAD = 3.141592653589793_ESMF_KIND_R8/180.0_ESMF_KIND_R8 + integer :: localPet, petCount + real(ESMF_KIND_R8) :: srcmass(1), dstmass(1), srcmassg(1), dstmassg(1) + real(ESMF_KIND_R8) :: maxerror(1), minerror(1), error + real(ESMF_KIND_R8) :: maxerrorg(1), minerrorg(1), errorg + + real(ESMF_KIND_R8) :: errorTot, errorTotG, dstVal + + integer :: num_errorTot + real(ESMF_KIND_R8) :: l_errorTot(1),g_errorTot(1) + integer :: l_num_errorTot(1), g_num_errorTot(1) + + integer :: numOwnedElems + real(ESMF_KIND_R8), pointer :: ownedElemCoords(:) + + ! result code + integer :: finalrc + + ! Init to success + rc=ESMF_SUCCESS + itrp=.true. + csrv=.true. + + ! get pet info + call ESMF_VMGetGlobal(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMGet(vm, petCount=petCount, localPet=localpet, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! If we don't have 1 or 2 PETS then exit unsuccessfully + if ((petCount .ne. 1) .and. (petCount .ne. 2)) then + rc=ESMF_FAILURE + return + endif + + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!! Setup Source !!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + ! Create Source Mesh + call createTestMesh3x3Cart_1(srcMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Array spec for fields + call ESMF_ArraySpecSet(arrayspec, 1, ESMF_TYPEKIND_R8, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create source field + srcField = ESMF_FieldCreate(srcMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="source", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create source area field + srcAreaField = ESMF_FieldCreate(srcMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="source_area", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create source frac field + srcFracField = ESMF_FieldCreate(srcMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="source_frac", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Load test data into the source Field + ! Should only be 1 localDE + call ESMF_FieldGet(srcField, 0, srcFarrayPtr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Set interpolated function + call ESMF_MeshGet(srcMesh, numOwnedElements=numOwnedElems, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Allocate space for coordinates + allocate(ownedElemCoords(2*numOwnedElems)) + + ! Set interpolated function + call ESMF_MeshGet(srcMesh, ownedElemCoords=ownedElemCoords, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! loop through and set field + do i1=1,numOwnedElems + + ! Get coords + x=ownedElemCoords(2*i1-1) + y=ownedElemCoords(2*i1) + + ! Set analytic field + srcFarrayPtr(i1) = x+y+2.0 + + enddo + + ! Deallocate space for coordinates + deallocate(ownedElemCoords) + + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!! Setup Destination !!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + ! Create Destination Mesh + call createTestMesh3x3Cart_2(dstMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Array spec + call ESMF_ArraySpecSet(arrayspec, 1, ESMF_TYPEKIND_R8, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create dest. field + dstField = ESMF_FieldCreate(dstMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="dest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create dest. area field + dstAreaField = ESMF_FieldCreate(dstMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="dest_area", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create dest. frac field + dstFracField = ESMF_FieldCreate(dstMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="dest_frac", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Create exact dest. field + xdstField = ESMF_FieldCreate(dstMesh, arrayspec, meshloc=ESMF_MESHLOC_ELEMENT, & + name="xdest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Init destination field to 0.0 + ! Should only be 1 localDE + call ESMF_FieldGet(dstField, 0, dstFarrayPtr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Init exact destination field + ! Should only be 1 localDE + call ESMF_FieldGet(xdstField, 0, xdstFarrayPtr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Set number of points in destination mesh + call ESMF_MeshGet(dstMesh, numOwnedElements=numOwnedElems, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Allocate space for coordinates + allocate(ownedElemCoords(2*numOwnedElems)) + + ! Set exact destination field + call ESMF_MeshGet(dstMesh, ownedElemCoords=ownedElemCoords, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! loop through and set xfield + do i1=1,numOwnedElems + + ! Get coords + x=ownedElemCoords(2*i1-1) + y=ownedElemCoords(2*i1) + + ! Set exact analytic Field + xdstFarrayPtr(i1) = x+y+2.0 + + ! Init destination Field + dstFarrayPtr(i1)=0.0 + enddo + + ! Deallocate space for coordinates + deallocate(ownedElemCoords) + + +#if 0 + call ESMF_MeshWrite(srcMesh,"srcMesh") + call ESMF_MeshWrite(dstMesh,"dstMesh") +#endif + + +#define USE_XGRID +#ifdef USE_XGRID + +!write(*,*) "Using XGrid" + + + ! Create XGrid + xgrid = ESMF_XGridCreate(sideAMesh=(/srcMesh/), & + sideBMesh=(/dstMesh/), & + storeOverlay = .true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Field on XGrid + xField = ESMF_FieldCreate(xgrid, arrayspec, & + name="xfield", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Regrid store + call ESMF_FieldRegridStore( & + xgrid, & + srcField, & + dstField=xField, & + routeHandle=StoXrouteHandle, & + regridmethod=ESMF_REGRIDMETHOD_CONSERVE_2ND, & + srcFracField=srcFracField, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldRegridStore( & + xgrid, & + xField, & + dstField=dstField, & + routeHandle=XToDrouteHandle, & + regridmethod=ESMF_REGRIDMETHOD_CONSERVE_2ND, & + dstFracField=dstFracField, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Do regrid + call ESMF_FieldRegrid(srcField, xField, StoXrouteHandle, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldRegrid(xField, dstField, XToDrouteHandle, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Release routehandles + call ESMF_FieldRegridrelease(StoXrouteHandle, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldRegridRelease(XtoDrouteHandle, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + +#else + +!write(*,*) "NOT Using XGrid" + + !!! Regrid forward from the A grid to the B grid + ! Regrid store + call ESMF_FieldRegridStore( & + srcField, & + dstField=dstField, & + routeHandle=routeHandle, & + regridmethod=ESMF_REGRIDMETHOD_CONSERVE_2ND, & + dstFracField=dstFracField, & + srcFracField=srcFracField, & + unmappedaction=ESMF_UNMAPPEDACTION_IGNORE, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Do regrid + call ESMF_FieldRegrid(srcField, dstField, routeHandle, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + call ESMF_FieldRegridRelease(routeHandle, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return +#endif + + + + ! Get the integration weights + call ESMF_FieldRegridGetArea(srcAreaField, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Get the integration weights + call ESMF_FieldRegridGetArea(dstAreaField, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Check if the values are close + minerror(1) = 100000. + maxerror(1) = 0. + error = 0. + errorTot=0.0 + num_errorTot=0 + dstmass = 0. + + ! get dst Field + call ESMF_FieldGet(dstField, 0, dstFarrayPtr, computationalLBound=clbnd, & + computationalUBound=cubnd, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! get exact destination Field + call ESMF_FieldGet(xdstField, 0, xdstFarrayPtr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! get dst area Field + call ESMF_FieldGet(dstAreaField, 0, dstAreaPtr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! get frac Field + call ESMF_FieldGet(dstFracField, 0, dstFracptr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! destination grid + !! check relative error + do i1=clbnd(1),cubnd(1) + + ! This is WRONG, shouldn't include Frac + ! dstmass = dstmass + dstFracptr(i1,i2)*dstAreaptr(i1)*fptr(i1) + + ! Instead do this + dstmass = dstmass + dstAreaptr(i1)*dstFarrayPtr(i1) + + ! If this destination cell isn't covered by a sig. amount of source, then don't compute error on it. + if (dstFracPtr(i1) .lt. 0.1) cycle + + ! write(*,*) i1,"::",dstFarrayPtr(i1),xdstFarrayPtr(i1) + + ! Since fraction isn't included in weights in this case, use it to modify dstField value, so + ! that it's correct for partial cells + if (dstFracPtr(i1) .ne. 0.0) then + dstVal=dstFarrayPtr(i1)/dstFracptr(i1) + else + dstVal=dstFarrayPtr(i1) + endif + + if (xdstFarrayPtr(i1) .ne. 0.0) then + error=ABS(dstVal - xdstFarrayPtr(i1))/ABS(xdstFarrayPtr(i1)) + else + error=ABS(dstVal - xdstFarrayPtr(i1)) + endif + + ! total error + errorTot=errorTot+error + num_errorTot=num_errorTot+1 + + ! min max error + if (error > maxerror(1)) then + maxerror(1) = error + endif + if (error < minerror(1)) then + minerror(1) = error + endif + + enddo + + srcmass(1) = 0. + + ! get src pointer + call ESMF_FieldGet(srcField, 0, srcFarrayPtr, computationalLBound=clbnd, & + computationalUBound=cubnd, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! get src Field + call ESMF_FieldGet(srcAreaField, 0, srcAreaptr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! get frac Field + call ESMF_FieldGet(srcFracField, 0, srcFracptr, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + do i1=clbnd(1),cubnd(1) + srcmass(1) = srcmass(1) + srcFracptr(i1)*srcAreaptr(i1)*srcFarrayPtr(i1) + enddo + + ! Init integrals + srcmassg(1) = 0. + dstmassg(1) = 0. + + call ESMF_VMAllReduce(vm, srcmass, srcmassg, 1, ESMF_REDUCE_SUM, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMAllReduce(vm, dstmass, dstmassg, 1, ESMF_REDUCE_SUM, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMAllReduce(vm, maxerror, maxerrorg, 1, ESMF_REDUCE_MAX, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMAllReduce(vm, minerror, minerrorg, 1, ESMF_REDUCE_MIN, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + l_errorTot(1)=errorTot + call ESMF_VMAllReduce(vm, l_errorTot, g_errorTot, 1, ESMF_REDUCE_SUM, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + l_num_errorTot(1)=num_errorTot + call ESMF_VMAllReduce(vm, l_num_errorTot, g_num_errorTot, 1, ESMF_REDUCE_SUM, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! return answer based on correct flags + csrv = .false. + if (ABS(dstmassg(1)-srcmassg(1))/srcmassg(1) < 1.0E-14) csrv = .true. + + itrp = .false. + if (maxerrorg(1) < 6.0E-2) itrp = .true. + + ! Uncomment these calls to see some actual regrid results + if (localPet == 0) then + write(*,*) + write(*,*) "=== Second Order Conservative between Cartesian Meshes via XGrid ===" + write(*,*) "Conservation:" + write(*,*) "Rel Error = ", ABS(dstmassg(1)-srcmassg(1))/srcmassg(1) + write(*,*) "SRC mass = ", srcmassg(1) + write(*,*) "DST mass = ", dstmassg(1) + write(*,*) " " + write(*,*) "Interpolation:" + write(*,*) "Max Error = ", maxerrorg(1) + write(*,*) "Min Error = ", minerrorg(1) + write(*,*) "Avg Error = ", g_errorTot(1)/g_num_errorTot(1) + write(*,*) " " + endif + + + ! Destroy the Fields + call ESMF_FieldDestroy(srcField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldDestroy(dstField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldDestroy(srcAreaField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldDestroy(dstAreaField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldDestroy(srcFracField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_FieldDestroy(dstFracField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + call ESMF_FieldDestroy(xdstField, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! Free the meshes + call ESMF_MeshDestroy(srcMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_MeshDestroy(dstMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! If either interpolation or conservation errors + ! are too large, then return failure + if (.not. itrp .or. .not. csrv) then + rc=ESMF_FAILURE + endif + + end subroutine test_CartMeshToMesh_2nd + + + + + + function calc_lat(i,imax,dy) + integer :: i, imax + real(ESMF_KIND_R8) :: calc_lat + real(ESMF_KIND_R8) :: dy + + if (i .eq. 1) then + calc_lat = -90.0 + else if (i .eq. imax) then + calc_lat = 90.0 + else + calc_lat = REAL(i-1)*dy - 0.5*dy - 90.0 + endif + end function calc_lat + + + subroutine test_CSGridToGrid_2nd(rc) +#undef ESMF_METHOD +#define ESMF_METHOD "test_CSGridToGrid_2nd" + integer, intent(out) :: rc + logical :: itrp + logical :: csrv + integer :: localrc + type(ESMF_Grid) :: srcGrid + type(ESMF_Grid) :: dstGrid + type(ESMF_Mesh) :: xgridMesh + type(ESMF_XGrid) :: xgrid + type(ESMF_Field) :: srcField + type(ESMF_Field) :: dstField + type(ESMF_Field) :: xdstField + type(ESMF_Field) :: errorField + type(ESMF_Field) :: xField + type(ESMF_Field) :: srcArea, dstArea + type(ESMF_Array) :: dstArray + type(ESMF_Array) :: xdstArray + type(ESMF_Array) :: errorArray + type(ESMF_Array) :: srcArray + type(ESMF_Array) :: srcAreaArray, dstAreaArray + type(ESMF_RouteHandle) :: StoXrouteHandle + type(ESMF_RouteHandle) :: XtoDrouteHandle + type(ESMF_RouteHandle) :: routeHandle + type(ESMF_ArraySpec) :: arrayspec + type(ESMF_VM) :: vm + real(ESMF_KIND_R8), pointer :: farrayPtrXC(:,:) + real(ESMF_KIND_R8), pointer :: farrayPtrYC(:,:) + real(ESMF_KIND_R8), pointer :: farrayPtr(:,:),xfarrayPtr(:,:),errorfarrayPtr(:,:),iwtsptr(:,:) + real(ESMF_KIND_R8), pointer :: srcAreaptr(:,:), dstAreaptr(:,:) + integer :: petMap2D(2,2,1) + integer :: clbnd(2),cubnd(2) + integer :: fclbnd(2),fcubnd(2) + integer :: i1,i2, index(2) + integer :: lDE, i + integer :: srclocalDECount, dstlocalDECount + + integer :: src_tile_size + integer :: Src_nx, Src_ny + integer :: Dst_nx, Dst_ny + real(ESMF_KIND_R8) :: Src_dx, Src_dy, yp1 + real(ESMF_KIND_R8) :: Dst_dx, Dst_dy + real(ESMF_KIND_R8) :: ctheta, stheta + real(ESMF_KIND_R8) :: theta, d2rad, x, y, z + real(ESMF_KIND_R8) :: DEG2RAD, a, lat, lon, phi + real(ESMF_KIND_R8) :: xtmp, ytmp, ztmp + real(ESMF_KIND_R8) :: srcmass(1), dstmass(1), srcmassg(1), dstmassg(1) + real(ESMF_KIND_R8) :: maxerror(1), minerror(1), error + real(ESMF_KIND_R8) :: maxerrorg(1), minerrorg(1), errorg + integer :: localPet, petCount + + ! init success flag + rc=ESMF_SUCCESS + + ! get pet info + call ESMF_VMGetGlobal(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_VMGet(vm, petCount=petCount, localPet=localpet, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Establish the resolution of the grids + src_tile_size=20 + + Dst_nx = 100 + Dst_ny = 80 + + Dst_dx = 360.0/Dst_nx + Dst_dy = 180.0/Dst_ny + + ! degree to rad conversion + DEG2RAD = 3.141592653589793_ESMF_KIND_R8/180.0_ESMF_KIND_R8 + + ! setup source cubed sphere grid + srcGrid=ESMF_GridCreateCubedSphere(tileSize=src_tile_size, & + staggerLocList=(/ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_CORNER/), & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + ! setup dest. grid + dstGrid=ESMF_GridCreate1PeriDim(minIndex=(/1,1/),maxIndex=(/dst_nx,dst_ny/),regDecomp=(/1,petCount/), & + coordSys=ESMF_COORDSYS_SPH_DEG, & + indexflag=ESMF_INDEX_GLOBAL, & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Create source/destination fields + call ESMF_ArraySpecSet(arrayspec, 2, ESMF_TYPEKIND_R8, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + srcField = ESMF_FieldCreate(srcGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="source", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + srcArea = ESMF_FieldCreate(srcGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="source", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + errorField = ESMF_FieldCreate(dstGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + dstField = ESMF_FieldCreate(dstGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + xdstField = ESMF_FieldCreate(dstGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + dstArea = ESMF_FieldCreate(dstGrid, arrayspec, & + staggerloc=ESMF_STAGGERLOC_CENTER, name="dest", rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Allocate coordinates + call ESMF_GridAddCoord(dstGrid, staggerloc=ESMF_STAGGERLOC_CENTER, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + call ESMF_GridAddCoord(dstGrid, staggerloc=ESMF_STAGGERLOC_CORNER, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + + ! Get number of local DEs + call ESMF_GridGet(srcGrid, localDECount=srcLocalDECount, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_GridGet(dstGrid, localDECount=dstLocalDECount, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return ! Get arrays @@ -3814,7 +5556,14 @@ subroutine test_CSGridToGrid_2nd(rc) #if 0 call ESMF_GridWriteVTK(srcGrid,staggerloc=ESMF_STAGGERLOC_CORNER, & - filename="srcGridCnrb4", & + filename="srcGridCnr", & + rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_GridWriteVTK(dstGrid,staggerloc=ESMF_STAGGERLOC_CORNER, & + filename="dstGridCnr", & rc=localrc) if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & @@ -3842,6 +5591,14 @@ subroutine test_CSGridToGrid_2nd(rc) ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return +#if 0 + call ESMF_XGridGet(xgrid, mesh=xgridMesh, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + call ESMF_MeshWrite(xgridMesh,"xgridMesh") +#endif ! Regrid store call ESMF_FieldRegridStore( & diff --git a/src/Infrastructure/XGridGeomBase/interface/ESMCI_XGridGeomBase_F.C b/src/Infrastructure/XGridGeomBase/interface/ESMCI_XGridGeomBase_F.C index 45ae8ab395..ab9d36d409 100644 --- a/src/Infrastructure/XGridGeomBase/interface/ESMCI_XGridGeomBase_F.C +++ b/src/Infrastructure/XGridGeomBase/interface/ESMCI_XGridGeomBase_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/XGridGeomBase/src/ESMF_XGridGeomBase.F90 b/src/Infrastructure/XGridGeomBase/src/ESMF_XGridGeomBase.F90 index 7f6643021f..6c92b6cd2f 100644 --- a/src/Infrastructure/XGridGeomBase/src/ESMF_XGridGeomBase.F90 +++ b/src/Infrastructure/XGridGeomBase/src/ESMF_XGridGeomBase.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Infrastructure/stubs/pthread/ESMF_Pthread.h b/src/Infrastructure/stubs/pthread/ESMF_Pthread.h index 76d6c8321a..ce4670099c 100644 --- a/src/Infrastructure/stubs/pthread/ESMF_Pthread.h +++ b/src/Infrastructure/stubs/pthread/ESMF_Pthread.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_crefdoc.ctex b/src/Superstructure/AppDriver/doc/AppDriver_crefdoc.ctex index 4ff55552c2..8833823887 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_crefdoc.ctex +++ b/src/Superstructure/AppDriver/doc/AppDriver_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_creqmethodsintro.tex b/src/Superstructure/AppDriver/doc/AppDriver_creqmethodsintro.tex index a390bf8f66..be42993d27 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_creqmethodsintro.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_creqmethodsintro.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_desc.tex b/src/Superstructure/AppDriver/doc/AppDriver_desc.tex index 36594536d3..804db6cd58 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_desc.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_design.tex b/src/Superstructure/AppDriver/doc/AppDriver_design.tex index 42ad2c5817..e10844df31 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_design.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_design.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_refdoc.ctex b/src/Superstructure/AppDriver/doc/AppDriver_refdoc.ctex index b42a768284..f422e20faa 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_refdoc.ctex +++ b/src/Superstructure/AppDriver/doc/AppDriver_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_reqmethods.tex b/src/Superstructure/AppDriver/doc/AppDriver_reqmethods.tex index 0e46c535f7..cf2828bd35 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_reqmethods.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_reqmethods.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_reqmethodsintro.tex b/src/Superstructure/AppDriver/doc/AppDriver_reqmethodsintro.tex index 1ab461e7ca..a3366c1194 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_reqmethodsintro.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_reqmethodsintro.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_rest.tex b/src/Superstructure/AppDriver/doc/AppDriver_rest.tex index e72a25b08f..939bc958dd 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_rest.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AppDriver/doc/AppDriver_usage.tex b/src/Superstructure/AppDriver/doc/AppDriver_usage.tex index c4146fbda0..b3bddb78e7 100644 --- a/src/Superstructure/AppDriver/doc/AppDriver_usage.tex +++ b/src/Superstructure/AppDriver/doc/AppDriver_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/doc/AttachMethods_desc.tex b/src/Superstructure/AttachMethods/doc/AttachMethods_desc.tex index 819d86fa1f..8fe0c1a861 100644 --- a/src/Superstructure/AttachMethods/doc/AttachMethods_desc.tex +++ b/src/Superstructure/AttachMethods/doc/AttachMethods_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/doc/AttachMethods_refdoc.ctex b/src/Superstructure/AttachMethods/doc/AttachMethods_refdoc.ctex index 6e456f3d3d..acadeae05e 100644 --- a/src/Superstructure/AttachMethods/doc/AttachMethods_refdoc.ctex +++ b/src/Superstructure/AttachMethods/doc/AttachMethods_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/doc/AttachMethods_rest.tex b/src/Superstructure/AttachMethods/doc/AttachMethods_rest.tex index 3607c2ba71..84a12eb111 100644 --- a/src/Superstructure/AttachMethods/doc/AttachMethods_rest.tex +++ b/src/Superstructure/AttachMethods/doc/AttachMethods_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/doc/AttachMethods_usage.tex b/src/Superstructure/AttachMethods/doc/AttachMethods_usage.tex index 7a82755e44..6e8b04d86b 100644 --- a/src/Superstructure/AttachMethods/doc/AttachMethods_usage.tex +++ b/src/Superstructure/AttachMethods/doc/AttachMethods_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/examples/ESMF_AttachMethodsEx.F90 b/src/Superstructure/AttachMethods/examples/ESMF_AttachMethodsEx.F90 index 1337371641..bb25880a26 100644 --- a/src/Superstructure/AttachMethods/examples/ESMF_AttachMethodsEx.F90 +++ b/src/Superstructure/AttachMethods/examples/ESMF_AttachMethodsEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttachMethods/src/ESMF_AttachMethods.F90 b/src/Superstructure/AttachMethods/src/ESMF_AttachMethods.F90 index bb1f4d1788..f9420aa4d9 100644 --- a/src/Superstructure/AttachMethods/src/ESMF_AttachMethods.F90 +++ b/src/Superstructure/AttachMethods/src/ESMF_AttachMethods.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/doc/AttributeAPI_refdoc.ctex b/src/Superstructure/AttributeAPI/doc/AttributeAPI_refdoc.ctex index a8e5015e66..a7ae431e9a 100644 --- a/src/Superstructure/AttributeAPI/doc/AttributeAPI_refdoc.ctex +++ b/src/Superstructure/AttributeAPI/doc/AttributeAPI_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/interface/ESMF_Attribute.F90 b/src/Superstructure/AttributeAPI/interface/ESMF_Attribute.F90 index 7ea275c939..d0755d038d 100644 --- a/src/Superstructure/AttributeAPI/interface/ESMF_Attribute.F90 +++ b/src/Superstructure/AttributeAPI/interface/ESMF_Attribute.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackABundleUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackABundleUTest.cppF90 index 3293e3ce4a..22fb145785 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackABundleUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackABundleUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackArrayUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackArrayUTest.cppF90 index 9e6a19ff28..549d9dc944 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackArrayUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackArrayUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackCplCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackCplCompUTest.cppF90 index 0459af8637..315f141813 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackCplCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackCplCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackDistGridUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackDistGridUTest.cppF90 index 84ee006461..6e7452fe87 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackDistGridUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackDistGridUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFBundleUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFBundleUTest.cppF90 index 201fe7be4f..23cdbd66bb 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFBundleUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFBundleUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFieldUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFieldUTest.cppF90 index f48e6ceb05..4bfd38154c 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFieldUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackFieldUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridCompUTest.cppF90 index 683e0d5030..98595cdeb4 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridUTest.cppF90 index eb32a6c4d8..9ee34ca9ab 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackGridUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackLocStreamUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackLocStreamUTest.cppF90 index 4cdd3c1d2d..1bd2f75ed6 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackLocStreamUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackLocStreamUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackSciCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackSciCompUTest.cppF90 index d91f8d5a87..1e2df0c8a9 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackSciCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackSciCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackStateUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackStateUTest.cppF90 index d9cbcea7a7..c9ee43ba26 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackStateUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackStateUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackTestMacros.hcppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackTestMacros.hcppF90 index 6e9ec2c465..70e8128c64 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttPackTestMacros.hcppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttPackTestMacros.hcppF90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeABundleUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeABundleUTest.cppF90 index 925cf59679..8bda70a4f3 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeABundleUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeABundleUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeArrayUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeArrayUTest.cppF90 index 15111f7f80..1a5d28d4c6 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeArrayUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeArrayUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeCplCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeCplCompUTest.cppF90 index 9001c58de8..c31107cda1 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeCplCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeCplCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeDistGridUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeDistGridUTest.cppF90 index 97fd2862c4..2a46c77288 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeDistGridUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeDistGridUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFBundleUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFBundleUTest.cppF90 index 2a8530afc3..1e0b7a5cc2 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFBundleUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFBundleUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFieldUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFieldUTest.cppF90 index 4602fad0f6..5a6884f09e 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFieldUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeFieldUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridCompUTest.cppF90 index e41ba79c4a..dc8c51d0ad 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridUTest.cppF90 index e8d441ad52..3339c60271 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeGridUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeLocStreamUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeLocStreamUTest.cppF90 index a52707278b..a2f88f835d 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeLocStreamUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeLocStreamUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeProfileUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeProfileUTest.F90 index 427ca0f54c..d9381d86dc 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeProfileUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeProfileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeSciCompUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeSciCompUTest.cppF90 index 5056437489..155ffa3f5b 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeSciCompUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeSciCompUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeStateUTest.cppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeStateUTest.cppF90 index 8a859d5ae3..ff782904e9 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeStateUTest.cppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeStateUTest.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeTestMacros.hcppF90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeTestMacros.hcppF90 index e885b14051..183aca5ad1 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeTestMacros.hcppF90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeTestMacros.hcppF90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateComponentUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateComponentUTest.F90 index c18b56d05c..68af19b800 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateComponentUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateComponentUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateContainerStressUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateContainerStressUTest.F90 index 80230ae23a..e3d4790033 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateContainerStressUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateContainerStressUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateMultiReconcileUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateMultiReconcileUTest.F90 index 99e1c91799..647e6b188f 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateMultiReconcileUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateMultiReconcileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateReconcileUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateReconcileUTest.F90 index 729b8cf70b..465644a401 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateReconcileUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateReconcileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateRemoveOnlyUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateRemoveOnlyUTest.F90 index 72e6dead44..5476ce3b7c 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateRemoveOnlyUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateRemoveOnlyUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateUTest.F90 index 1e3156d1bb..42e434cd34 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUpdateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUtilUTest.F90 b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUtilUTest.F90 index 0bf151b930..36e2613dfb 100644 --- a/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUtilUTest.F90 +++ b/src/Superstructure/AttributeAPI/tests/ESMF_AttributeUtilUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CompTunnel_desc.tex b/src/Superstructure/Component/doc/CompTunnel_desc.tex index 4f3d4fd192..f37fba9241 100644 --- a/src/Superstructure/Component/doc/CompTunnel_desc.tex +++ b/src/Superstructure/Component/doc/CompTunnel_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CompTunnel_rest.tex b/src/Superstructure/Component/doc/CompTunnel_rest.tex index 1fa2eb03a1..20ef5c30b3 100644 --- a/src/Superstructure/Component/doc/CompTunnel_rest.tex +++ b/src/Superstructure/Component/doc/CompTunnel_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CompTunnel_usage.tex b/src/Superstructure/Component/doc/CompTunnel_usage.tex index 585d9330f6..f9a6f46f3a 100644 --- a/src/Superstructure/Component/doc/CompTunnel_usage.tex +++ b/src/Superstructure/Component/doc/CompTunnel_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/Component_crefdoc.ctex b/src/Superstructure/Component/doc/Component_crefdoc.ctex index fbaad501cc..48b1a136d9 100644 --- a/src/Superstructure/Component/doc/Component_crefdoc.ctex +++ b/src/Superstructure/Component/doc/Component_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/Component_glos.tex b/src/Superstructure/Component/doc/Component_glos.tex index 59cf840c00..9d113d1652 100644 --- a/src/Superstructure/Component/doc/Component_glos.tex +++ b/src/Superstructure/Component/doc/Component_glos.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/Component_obj.tex b/src/Superstructure/Component/doc/Component_obj.tex index f438c4cfe5..7495ad61ab 100644 --- a/src/Superstructure/Component/doc/Component_obj.tex +++ b/src/Superstructure/Component/doc/Component_obj.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/Component_refdoc.ctex b/src/Superstructure/Component/doc/Component_refdoc.ctex index 9b7c606164..b3a713b2ac 100644 --- a/src/Superstructure/Component/doc/Component_refdoc.ctex +++ b/src/Superstructure/Component/doc/Component_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/Component_req.tex b/src/Superstructure/Component/doc/Component_req.tex index 433f20c3b6..ed470ee7c7 100644 --- a/src/Superstructure/Component/doc/Component_req.tex +++ b/src/Superstructure/Component/doc/Component_req.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CplComp_cdesc.tex b/src/Superstructure/Component/doc/CplComp_cdesc.tex index 6a1cd7f607..9b6a2628ee 100644 --- a/src/Superstructure/Component/doc/CplComp_cdesc.tex +++ b/src/Superstructure/Component/doc/CplComp_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CplComp_desc.tex b/src/Superstructure/Component/doc/CplComp_desc.tex index ae8bccc393..327613fe12 100644 --- a/src/Superstructure/Component/doc/CplComp_desc.tex +++ b/src/Superstructure/Component/doc/CplComp_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CplComp_rest.tex b/src/Superstructure/Component/doc/CplComp_rest.tex index e4a3eaf514..0dad2da828 100644 --- a/src/Superstructure/Component/doc/CplComp_rest.tex +++ b/src/Superstructure/Component/doc/CplComp_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/CplComp_usage.tex b/src/Superstructure/Component/doc/CplComp_usage.tex index 9fe2a9d310..1ff9570e91 100644 --- a/src/Superstructure/Component/doc/CplComp_usage.tex +++ b/src/Superstructure/Component/doc/CplComp_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/GridComp_cdesc.tex b/src/Superstructure/Component/doc/GridComp_cdesc.tex index aa8c8dde7f..4c290c8672 100644 --- a/src/Superstructure/Component/doc/GridComp_cdesc.tex +++ b/src/Superstructure/Component/doc/GridComp_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/GridComp_desc.tex b/src/Superstructure/Component/doc/GridComp_desc.tex index 862281be3e..3c4418704e 100644 --- a/src/Superstructure/Component/doc/GridComp_desc.tex +++ b/src/Superstructure/Component/doc/GridComp_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/GridComp_rest.tex b/src/Superstructure/Component/doc/GridComp_rest.tex index 78d4601466..345a6495c1 100644 --- a/src/Superstructure/Component/doc/GridComp_rest.tex +++ b/src/Superstructure/Component/doc/GridComp_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/GridComp_usage.tex b/src/Superstructure/Component/doc/GridComp_usage.tex index f15e98fe87..0b0c35968d 100644 --- a/src/Superstructure/Component/doc/GridComp_usage.tex +++ b/src/Superstructure/Component/doc/GridComp_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/SciComp_cdesc.tex b/src/Superstructure/Component/doc/SciComp_cdesc.tex index 3d555d7504..dc1bbbb38d 100644 --- a/src/Superstructure/Component/doc/SciComp_cdesc.tex +++ b/src/Superstructure/Component/doc/SciComp_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/SciComp_desc.tex b/src/Superstructure/Component/doc/SciComp_desc.tex index a1fc4a2214..2530d2ce41 100644 --- a/src/Superstructure/Component/doc/SciComp_desc.tex +++ b/src/Superstructure/Component/doc/SciComp_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/SciComp_rest.tex b/src/Superstructure/Component/doc/SciComp_rest.tex index 5f3736d653..3f5897dc0c 100644 --- a/src/Superstructure/Component/doc/SciComp_rest.tex +++ b/src/Superstructure/Component/doc/SciComp_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/SciComp_usage.tex b/src/Superstructure/Component/doc/SciComp_usage.tex index 36b0b7468f..861a71e078 100644 --- a/src/Superstructure/Component/doc/SciComp_usage.tex +++ b/src/Superstructure/Component/doc/SciComp_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/doc/comp_usage.tex b/src/Superstructure/Component/doc/comp_usage.tex index 27670c158f..d76e9ba8be 100644 --- a/src/Superstructure/Component/doc/comp_usage.tex +++ b/src/Superstructure/Component/doc/comp_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_AppMainEx.F90 b/src/Superstructure/Component/examples/ESMF_AppMainEx.F90 index a1241585bc..3496f59f3a 100644 --- a/src/Superstructure/Component/examples/ESMF_AppMainEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_AppMainEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_CompTunnelEx.F90 b/src/Superstructure/Component/examples/ESMF_CompTunnelEx.F90 index d966064eac..6aac4049ba 100644 --- a/src/Superstructure/Component/examples/ESMF_CompTunnelEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_CompTunnelEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, GEOEhysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_CplEx.F90 b/src/Superstructure/Component/examples/ESMF_CplEx.F90 index fe32673632..a23e88fb3c 100644 --- a/src/Superstructure/Component/examples/ESMF_CplEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_CplEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_GCompEx.F90 b/src/Superstructure/Component/examples/ESMF_GCompEx.F90 index 2d1f2e5496..9c45676ed6 100644 --- a/src/Superstructure/Component/examples/ESMF_GCompEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_GCompEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_InternalStateEx.F90 b/src/Superstructure/Component/examples/ESMF_InternalStateEx.F90 index 3104a78eef..7e8d16dcff 100644 --- a/src/Superstructure/Component/examples/ESMF_InternalStateEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_InternalStateEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_InternalStateModEx.F90 b/src/Superstructure/Component/examples/ESMF_InternalStateModEx.F90 index 90f47eaf6b..1b9a7427a1 100644 --- a/src/Superstructure/Component/examples/ESMF_InternalStateModEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_InternalStateModEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/examples/ESMF_SCompEx.F90 b/src/Superstructure/Component/examples/ESMF_SCompEx.F90 index cb876fdd2c..698b6e202e 100644 --- a/src/Superstructure/Component/examples/ESMF_SCompEx.F90 +++ b/src/Superstructure/Component/examples/ESMF_SCompEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMCI_Comp.h b/src/Superstructure/Component/include/ESMCI_Comp.h index 8b412a8fe5..f6f51173f0 100644 --- a/src/Superstructure/Component/include/ESMCI_Comp.h +++ b/src/Superstructure/Component/include/ESMCI_Comp.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMCI_CompTunnel.h b/src/Superstructure/Component/include/ESMCI_CompTunnel.h index 6efe220736..2bdad80b5c 100644 --- a/src/Superstructure/Component/include/ESMCI_CompTunnel.h +++ b/src/Superstructure/Component/include/ESMCI_CompTunnel.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMCI_FTable.h b/src/Superstructure/Component/include/ESMCI_FTable.h index f5ce07a40d..13171fa73c 100644 --- a/src/Superstructure/Component/include/ESMCI_FTable.h +++ b/src/Superstructure/Component/include/ESMCI_FTable.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMCI_MethodTable.h b/src/Superstructure/Component/include/ESMCI_MethodTable.h index b458cd3697..b7ffea79a9 100644 --- a/src/Superstructure/Component/include/ESMCI_MethodTable.h +++ b/src/Superstructure/Component/include/ESMCI_MethodTable.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMC_CplComp.h b/src/Superstructure/Component/include/ESMC_CplComp.h index aa2af0fd45..4f51c6284b 100644 --- a/src/Superstructure/Component/include/ESMC_CplComp.h +++ b/src/Superstructure/Component/include/ESMC_CplComp.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMC_GridComp.h b/src/Superstructure/Component/include/ESMC_GridComp.h index 4131e8b36d..0c5e1b8e38 100644 --- a/src/Superstructure/Component/include/ESMC_GridComp.h +++ b/src/Superstructure/Component/include/ESMC_GridComp.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/include/ESMC_SciComp.h b/src/Superstructure/Component/include/ESMC_SciComp.h index 630eea8b66..24d98900bc 100644 --- a/src/Superstructure/Component/include/ESMC_SciComp.h +++ b/src/Superstructure/Component/include/ESMC_SciComp.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/interface/ESMCI_Comp.C b/src/Superstructure/Component/interface/ESMCI_Comp.C index 869b202641..db3baf9275 100644 --- a/src/Superstructure/Component/interface/ESMCI_Comp.C +++ b/src/Superstructure/Component/interface/ESMCI_Comp.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/interface/ESMC_Comp.C b/src/Superstructure/Component/interface/ESMC_Comp.C index 96a75e4896..1aa8f0b878 100644 --- a/src/Superstructure/Component/interface/ESMC_Comp.C +++ b/src/Superstructure/Component/interface/ESMC_Comp.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/interface/ESMF_Comp_C.F90 b/src/Superstructure/Component/interface/ESMF_Comp_C.F90 index e18736d1b3..be5b2e7191 100644 --- a/src/Superstructure/Component/interface/ESMF_Comp_C.F90 +++ b/src/Superstructure/Component/interface/ESMF_Comp_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMCI_CompTunnel.C b/src/Superstructure/Component/src/ESMCI_CompTunnel.C index 757a43dd84..35e4b4a41e 100644 --- a/src/Superstructure/Component/src/ESMCI_CompTunnel.C +++ b/src/Superstructure/Component/src/ESMCI_CompTunnel.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMCI_FTable.C b/src/Superstructure/Component/src/ESMCI_FTable.C index 7dc9ce77d5..1c36b21c6b 100644 --- a/src/Superstructure/Component/src/ESMCI_FTable.C +++ b/src/Superstructure/Component/src/ESMCI_FTable.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMCI_MethodTable.C b/src/Superstructure/Component/src/ESMCI_MethodTable.C index 4e611ddd16..fec02db27a 100644 --- a/src/Superstructure/Component/src/ESMCI_MethodTable.C +++ b/src/Superstructure/Component/src/ESMCI_MethodTable.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMF_Comp.F90 b/src/Superstructure/Component/src/ESMF_Comp.F90 index 9a3b89e47b..aa5b04c680 100644 --- a/src/Superstructure/Component/src/ESMF_Comp.F90 +++ b/src/Superstructure/Component/src/ESMF_Comp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMF_CplComp.F90 b/src/Superstructure/Component/src/ESMF_CplComp.F90 index ba280a52f2..1371d972da 100644 --- a/src/Superstructure/Component/src/ESMF_CplComp.F90 +++ b/src/Superstructure/Component/src/ESMF_CplComp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMF_GridComp.F90 b/src/Superstructure/Component/src/ESMF_GridComp.F90 index 27a3f7c8f8..2e6e2546ed 100644 --- a/src/Superstructure/Component/src/ESMF_GridComp.F90 +++ b/src/Superstructure/Component/src/ESMF_GridComp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMF_InternalState.F90 b/src/Superstructure/Component/src/ESMF_InternalState.F90 index 4fcb6f3500..d16082474e 100644 --- a/src/Superstructure/Component/src/ESMF_InternalState.F90 +++ b/src/Superstructure/Component/src/ESMF_InternalState.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/src/ESMF_SciComp.F90 b/src/Superstructure/Component/src/ESMF_SciComp.F90 index 06709e7408..fcfcc9b8c8 100644 --- a/src/Superstructure/Component/src/ESMF_SciComp.F90 +++ b/src/Superstructure/Component/src/ESMF_SciComp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMC_ComponentUTest.c b/src/Superstructure/Component/tests/ESMC_ComponentUTest.c index 7fd2f25a11..d6a0ce310c 100644 --- a/src/Superstructure/Component/tests/ESMC_ComponentUTest.c +++ b/src/Superstructure/Component/tests/ESMC_ComponentUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_CompSetServUTest.F90 b/src/Superstructure/Component/tests/ESMF_CompSetServUTest.F90 index 9e1fb187cb..c9e91c8946 100644 --- a/src/Superstructure/Component/tests/ESMF_CompSetServUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_CompSetServUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_CompTunnelUTest.F90 b/src/Superstructure/Component/tests/ESMF_CompTunnelUTest.F90 index 2ba2762a26..c18f874cde 100644 --- a/src/Superstructure/Component/tests/ESMF_CompTunnelUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_CompTunnelUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -18,6 +18,14 @@ ! The SLEEPTIME macro defines the time in seconds that Finalize will delay #define SLEEPTIME 3.0_ESMF_KIND_R8 +! The DRIFTTIME macro defines a clock drift tolerance in seconds +! DRIFTTIME is used to work around system clock errors on macOS runners +#ifdef ESMF_OS_Darwin +#define DRIFTTIME 0.01_ESMF_KIND_R8 +#else +#define DRIFTTIME 0.00_ESMF_KIND_R8 +#endif + module ESMF_CompTunnelUTest_comp_mod ! modules @@ -461,10 +469,10 @@ program ESMF_CompTunnelUTest delayTime = endTime - startTime if (ESMF_GridCompIsPetLocal(dualComp)) then ! PETs in Dual Component petList must be blocking - call ESMF_Test(delayTime > SLEEPTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime > SLEEPTIME-DRIFTTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) else ! PETs not in Dual Component petList must not be blocking - call ESMF_Test(delayTime < SLEEPTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime < SLEEPTIME+DRIFTTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) endif write(logString, *) "delayTime (blocking) = ", delayTime call ESMF_LogWrite(logString, ESMF_LOGMSG_INFO, rc=rc) @@ -516,10 +524,10 @@ program ESMF_CompTunnelUTest delayTime = endTime - startTime if (ESMF_GridCompIsPetLocal(dualComp)) then ! PETs in Dual Component petList must be blocking - call ESMF_Test(delayTime > SLEEPTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime > SLEEPTIME-DRIFTTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) else ! PETs not in Dual Component petList must not be blocking - call ESMF_Test(delayTime < SLEEPTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime < SLEEPTIME+DRIFTTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) endif write(logString, *) "delayTime (wait) = ", delayTime call ESMF_LogWrite(logString, ESMF_LOGMSG_INFO, rc=rc) @@ -1204,10 +1212,10 @@ program ESMF_CompTunnelUTest delayTime = endTime - startTime if (ESMF_GridCompIsPetLocal(dualCompD)) then ! PETs in Dual Component petList must be blocking - call ESMF_Test(delayTime > SLEEPTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime > SLEEPTIME-DRIFTTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) else ! PETs not in Dual Component petList must not be blocking - call ESMF_Test(delayTime < SLEEPTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime < SLEEPTIME+DRIFTTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) endif write(logString, *) "delayTime (blocking) = ", delayTime call ESMF_LogWrite(logString, ESMF_LOGMSG_INFO, rc=rc) @@ -1280,10 +1288,10 @@ program ESMF_CompTunnelUTest delayTime = endTime - startTime if (ESMF_GridCompIsPetLocal(dualCompD)) then ! PETs in Dual Component petList must be blocking - call ESMF_Test(delayTime > SLEEPTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime > SLEEPTIME-DRIFTTIME-2*precTime, name, failMsg, result, ESMF_SRCLINE) else ! PETs not in Dual Component petList must not be blocking - call ESMF_Test(delayTime < SLEEPTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) + call ESMF_Test(delayTime < SLEEPTIME+DRIFTTIME+2*precTime, name, failMsg, result, ESMF_SRCLINE) endif write(logString, *) "delayTime (wait) = ", delayTime call ESMF_LogWrite(logString, ESMF_LOGMSG_INFO, rc=rc) diff --git a/src/Superstructure/Component/tests/ESMF_CplCompCreateUTest.F90 b/src/Superstructure/Component/tests/ESMF_CplCompCreateUTest.F90 index 358de7fd9b..c2b9cfd796 100644 --- a/src/Superstructure/Component/tests/ESMF_CplCompCreateUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_CplCompCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_GridCompCreateUTest.F90 b/src/Superstructure/Component/tests/ESMF_GridCompCreateUTest.F90 index 5000d2e3c9..1025502daa 100644 --- a/src/Superstructure/Component/tests/ESMF_GridCompCreateUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_GridCompCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_MyRegistrationInFortran.F90 b/src/Superstructure/Component/tests/ESMF_MyRegistrationInFortran.F90 index 19aa12151f..d9e6bbe613 100644 --- a/src/Superstructure/Component/tests/ESMF_MyRegistrationInFortran.F90 +++ b/src/Superstructure/Component/tests/ESMF_MyRegistrationInFortran.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_SciCompCreateUTest.F90 b/src/Superstructure/Component/tests/ESMF_SciCompCreateUTest.F90 index 60d99f7205..8f87195088 100644 --- a/src/Superstructure/Component/tests/ESMF_SciCompCreateUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_SciCompCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_SetServCode.F90 b/src/Superstructure/Component/tests/ESMF_SetServCode.F90 index a5d46f8f1f..391a1b0efe 100644 --- a/src/Superstructure/Component/tests/ESMF_SetServCode.F90 +++ b/src/Superstructure/Component/tests/ESMF_SetServCode.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Component/tests/ESMF_StdCompMethodsUTest.F90 b/src/Superstructure/Component/tests/ESMF_StdCompMethodsUTest.F90 index 280d546f9d..43e3a219db 100644 --- a/src/Superstructure/Component/tests/ESMF_StdCompMethodsUTest.F90 +++ b/src/Superstructure/Component/tests/ESMF_StdCompMethodsUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/include/ESMC.h b/src/Superstructure/ESMFMod/include/ESMC.h index 1ef430a24b..c331210b44 100644 --- a/src/Superstructure/ESMFMod/include/ESMC.h +++ b/src/Superstructure/ESMFMod/include/ESMC.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/include/ESMCI.h b/src/Superstructure/ESMFMod/include/ESMCI.h index 5e7f56f664..015041b303 100644 --- a/src/Superstructure/ESMFMod/include/ESMCI.h +++ b/src/Superstructure/ESMFMod/include/ESMCI.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/include/ESMCI_Init.h b/src/Superstructure/ESMFMod/include/ESMCI_Init.h index d16291106d..104f45cde1 100644 --- a/src/Superstructure/ESMFMod/include/ESMCI_Init.h +++ b/src/Superstructure/ESMFMod/include/ESMCI_Init.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/include/ESMC_Init.h b/src/Superstructure/ESMFMod/include/ESMC_Init.h index 24dbe298ff..b8c5326575 100644 --- a/src/Superstructure/ESMFMod/include/ESMC_Init.h +++ b/src/Superstructure/ESMFMod/include/ESMC_Init.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/interface/ESMCI_Init.C b/src/Superstructure/ESMFMod/interface/ESMCI_Init.C index 3b552fee28..05927a9fc4 100644 --- a/src/Superstructure/ESMFMod/interface/ESMCI_Init.C +++ b/src/Superstructure/ESMFMod/interface/ESMCI_Init.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/interface/ESMCI_Init_F.C b/src/Superstructure/ESMFMod/interface/ESMCI_Init_F.C index 83becc89ee..58a4b846e6 100644 --- a/src/Superstructure/ESMFMod/interface/ESMCI_Init_F.C +++ b/src/Superstructure/ESMFMod/interface/ESMCI_Init_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/interface/ESMC_Init.C b/src/Superstructure/ESMFMod/interface/ESMC_Init.C index a8abf832a4..85bb0f46ba 100644 --- a/src/Superstructure/ESMFMod/interface/ESMC_Init.C +++ b/src/Superstructure/ESMFMod/interface/ESMC_Init.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/interface/ESMF_Init_C.F90 b/src/Superstructure/ESMFMod/interface/ESMF_Init_C.F90 index b60d6899d2..1cbef02bd1 100644 --- a/src/Superstructure/ESMFMod/interface/ESMF_Init_C.F90 +++ b/src/Superstructure/ESMFMod/interface/ESMF_Init_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/src/ESMF.F90 b/src/Superstructure/ESMFMod/src/ESMF.F90 index e0578fc5c4..03073f9655 100644 --- a/src/Superstructure/ESMFMod/src/ESMF.F90 +++ b/src/Superstructure/ESMFMod/src/ESMF.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/src/ESMF_Init.F90 b/src/Superstructure/ESMFMod/src/ESMF_Init.F90 index e04c000625..c255358194 100644 --- a/src/Superstructure/ESMFMod/src/ESMF_Init.F90 +++ b/src/Superstructure/ESMFMod/src/ESMF_Init.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/src/ESMF_Overloads.F90 b/src/Superstructure/ESMFMod/src/ESMF_Overloads.F90 index 8bc5e34951..89f304c736 100644 --- a/src/Superstructure/ESMFMod/src/ESMF_Overloads.F90 +++ b/src/Superstructure/ESMFMod/src/ESMF_Overloads.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/ESMFMod/tests/ESMF_FrameworkUTest.F90 b/src/Superstructure/ESMFMod/tests/ESMF_FrameworkUTest.F90 index ab4a3384b3..6376afb837 100644 --- a/src/Superstructure/ESMFMod/tests/ESMF_FrameworkUTest.F90 +++ b/src/Superstructure/ESMFMod/tests/ESMF_FrameworkUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/IOAPI/interface/ESMFIO.F90 b/src/Superstructure/IOAPI/interface/ESMFIO.F90 index 517d61de5f..1ac44db086 100644 --- a/src/Superstructure/IOAPI/interface/ESMFIO.F90 +++ b/src/Superstructure/IOAPI/interface/ESMFIO.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/IOAPI/interface/ESMF_IO.F90 b/src/Superstructure/IOAPI/interface/ESMF_IO.F90 index 67f1ae075c..57e631c745 100644 --- a/src/Superstructure/IOAPI/interface/ESMF_IO.F90 +++ b/src/Superstructure/IOAPI/interface/ESMF_IO.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/IOAPI/tests/ESMF_IOCompUTest.F90 b/src/Superstructure/IOAPI/tests/ESMF_IOCompUTest.F90 index 92dc061089..c489b69c8b 100644 --- a/src/Superstructure/IOAPI/tests/ESMF_IOCompUTest.F90 +++ b/src/Superstructure/IOAPI/tests/ESMF_IOCompUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/IOAPI/tests/ESMF_IOGridCompUTest.F90 b/src/Superstructure/IOAPI/tests/ESMF_IOGridCompUTest.F90 index 6e6e8a595a..be8dcee0b2 100644 --- a/src/Superstructure/IOAPI/tests/ESMF_IOGridCompUTest.F90 +++ b/src/Superstructure/IOAPI/tests/ESMF_IOGridCompUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/interface/ESMF_InfoCache.F90 b/src/Superstructure/InfoAPI/interface/ESMF_InfoCache.F90 index d894999a91..cd4d487fe1 100644 --- a/src/Superstructure/InfoAPI/interface/ESMF_InfoCache.F90 +++ b/src/Superstructure/InfoAPI/interface/ESMF_InfoCache.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/interface/ESMF_InfoDescribe.F90 b/src/Superstructure/InfoAPI/interface/ESMF_InfoDescribe.F90 index aaffa8c2d2..bb6764e64b 100644 --- a/src/Superstructure/InfoAPI/interface/ESMF_InfoDescribe.F90 +++ b/src/Superstructure/InfoAPI/interface/ESMF_InfoDescribe.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/interface/ESMF_InfoSync.F90 b/src/Superstructure/InfoAPI/interface/ESMF_InfoSync.F90 index a368513d0d..2f6ba73c33 100644 --- a/src/Superstructure/InfoAPI/interface/ESMF_InfoSync.F90 +++ b/src/Superstructure/InfoAPI/interface/ESMF_InfoSync.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/src/ESMC_InfoCacheCDef.C b/src/Superstructure/InfoAPI/src/ESMC_InfoCacheCDef.C index 0d37b0768b..b047fe973e 100644 --- a/src/Superstructure/InfoAPI/src/ESMC_InfoCacheCDef.C +++ b/src/Superstructure/InfoAPI/src/ESMC_InfoCacheCDef.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/src/ESMC_InfoDescribeCDef.C b/src/Superstructure/InfoAPI/src/ESMC_InfoDescribeCDef.C index 548d9c9984..8e3f32b757 100644 --- a/src/Superstructure/InfoAPI/src/ESMC_InfoDescribeCDef.C +++ b/src/Superstructure/InfoAPI/src/ESMC_InfoDescribeCDef.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/tests/ESMF_InfoCacheUTest.F90 b/src/Superstructure/InfoAPI/tests/ESMF_InfoCacheUTest.F90 index 95e4ab5b42..7759cd2b62 100644 --- a/src/Superstructure/InfoAPI/tests/ESMF_InfoCacheUTest.F90 +++ b/src/Superstructure/InfoAPI/tests/ESMF_InfoCacheUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/tests/ESMF_InfoDescribeUTest.F90 b/src/Superstructure/InfoAPI/tests/ESMF_InfoDescribeUTest.F90 index 2cb41b300b..54d1554696 100644 --- a/src/Superstructure/InfoAPI/tests/ESMF_InfoDescribeUTest.F90 +++ b/src/Superstructure/InfoAPI/tests/ESMF_InfoDescribeUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/tests/ESMF_InfoGetInterfaceArrayUTest.F90 b/src/Superstructure/InfoAPI/tests/ESMF_InfoGetInterfaceArrayUTest.F90 index 57a5e0d03b..0fb09c259e 100644 --- a/src/Superstructure/InfoAPI/tests/ESMF_InfoGetInterfaceArrayUTest.F90 +++ b/src/Superstructure/InfoAPI/tests/ESMF_InfoGetInterfaceArrayUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/InfoAPI/tests/ESMF_InfoSyncUTest.F90 b/src/Superstructure/InfoAPI/tests/ESMF_InfoSyncUTest.F90 index 22da61cf3e..b614dd595c 100644 --- a/src/Superstructure/InfoAPI/tests/ESMF_InfoSyncUTest.F90 +++ b/src/Superstructure/InfoAPI/tests/ESMF_InfoSyncUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Mapper/interface/ESMCI_Mapper_F.C b/src/Superstructure/Mapper/interface/ESMCI_Mapper_F.C index 688570e6a6..dd584bbb74 100644 --- a/src/Superstructure/Mapper/interface/ESMCI_Mapper_F.C +++ b/src/Superstructure/Mapper/interface/ESMCI_Mapper_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Mapper/interface/ESMC_Mapper.C b/src/Superstructure/Mapper/interface/ESMC_Mapper.C index 939e4648d5..5236826b49 100644 --- a/src/Superstructure/Mapper/interface/ESMC_Mapper.C +++ b/src/Superstructure/Mapper/interface/ESMC_Mapper.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Mapper/interface/ESMF_Mapper.F90 b/src/Superstructure/Mapper/interface/ESMF_Mapper.F90 index 8f68c6ee39..de29418ca7 100644 --- a/src/Superstructure/Mapper/interface/ESMF_Mapper.F90 +++ b/src/Superstructure/Mapper/interface/ESMF_Mapper.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Mapper/interface/ESMF_MapperUtil.F90 b/src/Superstructure/Mapper/interface/ESMF_MapperUtil.F90 index 8383b52135..8e65f8bd5d 100644 --- a/src/Superstructure/Mapper/interface/ESMF_MapperUtil.F90 +++ b/src/Superstructure/Mapper/interface/ESMF_MapperUtil.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/Mapper/src/ESMF_MapperRunSeqUtil.F90 b/src/Superstructure/Mapper/src/ESMF_MapperRunSeqUtil.F90 index b0db0fc469..7bbfb097d0 100644 --- a/src/Superstructure/Mapper/src/ESMF_MapperRunSeqUtil.F90 +++ b/src/Superstructure/Mapper/src/ESMF_MapperRunSeqUtil.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/NamedAlias/src/ESMF_NamedAlias.F90 b/src/Superstructure/NamedAlias/src/ESMF_NamedAlias.F90 index 77b421b190..faef461f3c 100644 --- a/src/Superstructure/NamedAlias/src/ESMF_NamedAlias.F90 +++ b/src/Superstructure/NamedAlias/src/ESMF_NamedAlias.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/NamedAlias/tests/ESMF_NamedAliasUTest.F90 b/src/Superstructure/NamedAlias/tests/ESMF_NamedAliasUTest.F90 index 70e67be04e..6cb02b63aa 100644 --- a/src/Superstructure/NamedAlias/tests/ESMF_NamedAliasUTest.F90 +++ b/src/Superstructure/NamedAlias/tests/ESMF_NamedAliasUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/src/ESMF_FileRegrid.F90 b/src/Superstructure/PreESMFMod/src/ESMF_FileRegrid.F90 index 9e64d0c7cf..96b9630af9 100644 --- a/src/Superstructure/PreESMFMod/src/ESMF_FileRegrid.F90 +++ b/src/Superstructure/PreESMFMod/src/ESMF_FileRegrid.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/src/ESMF_FileRegridCheck.F90 b/src/Superstructure/PreESMFMod/src/ESMF_FileRegridCheck.F90 index 39ad6747c7..8851463dc2 100644 --- a/src/Superstructure/PreESMFMod/src/ESMF_FileRegridCheck.F90 +++ b/src/Superstructure/PreESMFMod/src/ESMF_FileRegridCheck.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGen.F90 b/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGen.F90 index 4a938cb20d..147e7835c7 100644 --- a/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGen.F90 +++ b/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGen.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGenCheck.F90 b/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGenCheck.F90 index 78899db42d..535ee906c0 100644 --- a/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGenCheck.F90 +++ b/src/Superstructure/PreESMFMod/src/ESMF_RegridWeightGenCheck.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/tests/ESMF_FileRegridUTest.F90 b/src/Superstructure/PreESMFMod/tests/ESMF_FileRegridUTest.F90 index 2127db776b..1188c69c74 100644 --- a/src/Superstructure/PreESMFMod/tests/ESMF_FileRegridUTest.F90 +++ b/src/Superstructure/PreESMFMod/tests/ESMF_FileRegridUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/PreESMFMod/tests/ESMF_RegridWeightGenUTest.F90 b/src/Superstructure/PreESMFMod/tests/ESMF_RegridWeightGenUTest.F90 index f0523fe86c..6e9d6b7fb1 100644 --- a/src/Superstructure/PreESMFMod/tests/ESMF_RegridWeightGenUTest.F90 +++ b/src/Superstructure/PreESMFMod/tests/ESMF_RegridWeightGenUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_cdesc.tex b/src/Superstructure/State/doc/State_cdesc.tex index c74deeb75d..97b92d747e 100644 --- a/src/Superstructure/State/doc/State_cdesc.tex +++ b/src/Superstructure/State/doc/State_cdesc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_crefdoc.ctex b/src/Superstructure/State/doc/State_crefdoc.ctex index a1ac133944..3e905ee810 100644 --- a/src/Superstructure/State/doc/State_crefdoc.ctex +++ b/src/Superstructure/State/doc/State_crefdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_crest.tex b/src/Superstructure/State/doc/State_crest.tex index 1e6ba1d882..732b29ac6e 100644 --- a/src/Superstructure/State/doc/State_crest.tex +++ b/src/Superstructure/State/doc/State_crest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_desc.tex b/src/Superstructure/State/doc/State_desc.tex index 7ff9de41b6..ff64bd8e3d 100644 --- a/src/Superstructure/State/doc/State_desc.tex +++ b/src/Superstructure/State/doc/State_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_design.tex b/src/Superstructure/State/doc/State_design.tex index db62c7f338..22d37909a2 100644 --- a/src/Superstructure/State/doc/State_design.tex +++ b/src/Superstructure/State/doc/State_design.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_implnotes.tex b/src/Superstructure/State/doc/State_implnotes.tex index 7f9f347eb3..a31515bdaa 100644 --- a/src/Superstructure/State/doc/State_implnotes.tex +++ b/src/Superstructure/State/doc/State_implnotes.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/doc/State_refdoc.ctex b/src/Superstructure/State/doc/State_refdoc.ctex index d9add4823e..cbeb2379b3 100644 --- a/src/Superstructure/State/doc/State_refdoc.ctex +++ b/src/Superstructure/State/doc/State_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -21,7 +21,7 @@ \textheight 8.5in \addtolength{\oddsidemargin}{-.75in} \newcommand{\mytitle}{State Reference Manual} -\newcommand{\myauthors}{Walter Spector, Ben Koziol} +\newcommand{\myauthors}{Walter Spector, Ben Koziol, Gerhard Theurich} % these are temporary patches until something more % permanent is done to the protex script. \newlength{\oldparskip} @@ -66,12 +66,10 @@ \input{State_usage} \input{ESMF_StateEx_fapi} \input{../../StateReconcile/doc/ESMF_StateReconcileEx_fapi} -\input{ESMF_StateReadWriteEx_fapi} #elif defined(CONSTITUENT) \input{../Superstructure/State/doc/State_usage} \input{../Superstructure/State/doc/ESMF_StateEx_fapi} \input{../Superstructure/StateReconcile/doc/ESMF_StateReconcileEx_fapi} -\input{../Superstructure/State/doc/ESMF_StateReadWriteEx_fapi} #endif \subsection{Restrictions and Future Work} diff --git a/src/Superstructure/State/doc/State_rest.tex b/src/Superstructure/State/doc/State_rest.tex index 1df0a3807a..34d525a1dc 100644 --- a/src/Superstructure/State/doc/State_rest.tex +++ b/src/Superstructure/State/doc/State_rest.tex @@ -1,27 +1,49 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, -% Massachusetts Institute of Technology, Geophysical Fluid Dynamics -% Laboratory, University of Michigan, National Centers for Environmental -% Prediction, Los Alamos National Laboratory, Argonne National Laboratory, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, +% Massachusetts Institute of Technology, Geophysical Fluid Dynamics +% Laboratory, University of Michigan, National Centers for Environmental +% Prediction, Los Alamos National Laboratory, Argonne National Laboratory, % NASA Goddard Space Flight Center. % Licensed under the University of Illinois-NCSA License. -%\subsubsection{Restrictions and Future Work} - \begin{enumerate} -\item{\bf No synchronization of object IDs at object create time.} + +\item{\bf No synchronization of object IDs at object create time - Unison Rule:} Object IDs are used during the reconcile process to identify objects which are unknown to some subset of the PETs in the currently running VM. -Object IDs are assigned in sequential order at object create time. - -One important request by the user community during the ESMF object design was -that there be no communication overhead or synchronization when creating -distributed ESMF objects. As a consequence it is required to create these -objects in {\bf unison} across all PETs in order to keep the ESMF object +Object IDs are assigned in sequential order at object create time across the +context of the current VM without communication. This design was requested by +the user community during ESMF object design to reduce communication and +synchronization overhead when creating distributed ESMF objects. +As a consequence it is required to create distributed ESMF objects in +{\bf unison} across all PETs of the current VM in order to keep the ESMF object identification in sync. +Violation of the unison rule will lead to undefined behavior when reconciling +a State that contains objects with inconsistent object IDs. + +\item{\bf Info keys on top level State not reconciled without actual objects +present from the relevant sub-context.} One of the actions of the +{\tt ESMF\_StateReconcile()} method is to reconcile the Info keys of the +State object itself. The endresult is that the reconciled State has the +same Info {\em keys} on all of the PETs of the VM across which it was +reconciled -- albeit with potentially different values across PETs +(see the {\tt ESMF\_StateReconcile()} API doc for more details). An edge case +for which {\tt ESMF\_StateReconcile()} does {\bf not} provide Info key +reconcilation is when keys were added under a component executing on a subset +of PETs (compared to the reconciling VM), but no actual object +(Field, FieldBundle, Array, ArrayBundle, or nested State) was added under the +VM of that sub-context. + +The situation of unreconciled Info keys across PETs for an ESMF State is not an +error condition per-se, however, it can lead to unexpected behavior in +downstream code. Specifically if such code expects to find consistent Info keys +across all PETs. If this is the case, care should be taken to ensure actual +objects are added to the top level State on the sub-context PETs where new Info +keys are added. + \end{enumerate} diff --git a/src/Superstructure/State/doc/State_usage.tex b/src/Superstructure/State/doc/State_usage.tex index 167fdc4e51..d87585bdbb 100644 --- a/src/Superstructure/State/doc/State_usage.tex +++ b/src/Superstructure/State/doc/State_usage.tex @@ -1,15 +1,13 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, % NASA Goddard Space Flight Center. % Licensed under the University of Illinois-NCSA License. -%\subsection{Use and Examples} - A Gridded Component generally has one associated import State and one export State. Generally the States associated with a Gridded Component will be created by @@ -41,7 +39,7 @@ is passed out through the argument list into a Coupler Component's run method. We recommend the convention that it enters the Coupler Component as the Coupler Component's -import State. Here is it transformed into a form +import State. Here the data is transformed into a form that another Gridded Component requires, and passed out of the Coupler Component as its export State. It can then be passed into the run method of a recipient Gridded Component @@ -78,19 +76,3 @@ qualities of the original object plus enough information for it to be a data source or destination for a regrid or data redistribution operation. - -\subsubsection{State create and destroy} - -States can be created and destroyed at any time during -application execution. The {\tt ESMF\_StateCreate()} routine -can take many different combinations of optional arguments. Refer -to the API description for all possible methods of creating a State. -An empty State can be created by providing only a name and type for -the intended State: - -{\tt state = ESMF\_StateCreate(name, stateintent=ESMF\_STATEINTENT\_IMPORT, rc=rc)} - -When finished with an {\tt ESMF\_State}, the {\tt ESMF\_StateDestroy} method -removes it. However, the objects inside the {\tt ESMF\_State} -created externally should be destroyed separately, -since objects can be added to more than one {\tt ESMF\_State}. diff --git a/src/Superstructure/State/doc/makefile b/src/Superstructure/State/doc/makefile index d0405746cc..58da8a06fa 100644 --- a/src/Superstructure/State/doc/makefile +++ b/src/Superstructure/State/doc/makefile @@ -31,7 +31,7 @@ TEXFILES_TO_MAKE += $(addsuffix _fapi.tex, $(basename $(notdir $(wildcard ../exa # These lists almost certainly will not be an exhastive list of # all of the dependent files, but even a partial listing will be helpfull. # -REFDOC_DEP_FILES = $(TEXFILES_TO_MAKE) +REFDOC_DEP_FILES = $(TEXFILES_TO_MAKE) State_desc.tex State_options.tex State_usage.tex State_rest.tex State_implnotes.tex State_obj.tex include $(ESMF_DIR)/makefile diff --git a/src/Superstructure/State/examples/ESMF_StateEx.F90 b/src/Superstructure/State/examples/ESMF_StateEx.F90 index 6ba1fc057d..c7b5704fd2 100644 --- a/src/Superstructure/State/examples/ESMF_StateEx.F90 +++ b/src/Superstructure/State/examples/ESMF_StateEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -22,19 +22,15 @@ program ESMF_StateEx use ESMF_TestMod implicit none -#define ESMF_ENABLESTATENEEDED - ! Local variables - integer :: rc - character(ESMF_MAXSTR) :: statename, bundlename, dataname - !type(ESMF_Field) :: field1 - type(ESMF_FieldBundle) :: bundle1, bundle2 - type(ESMF_State) :: state1, state2, state3 - integer :: finalrc - logical :: neededFlag - integer :: result = 0 ! all pass - character(ESMF_MAXSTR) :: testname - character(ESMF_MAXSTR) :: failMsg + integer :: rc + type(ESMF_State) :: state + type(ESMF_FieldBundle) :: bundle + type(ESMF_Field) :: field, field1, field2 + integer :: finalrc + integer :: result = 0 ! all pass + character(ESMF_MAXSTR) :: testname + character(ESMF_MAXSTR) :: failMsg finalrc = ESMF_SUCCESS @@ -47,191 +43,119 @@ program ESMF_StateEx !------------------------------------------------------------------------- !------------------------------------------------------------------------- - - call ESMF_Initialize(defaultlogfilename="StateEx.Log", & - logkindflag=ESMF_LOGKIND_MULTI, rc=rc) - -!------------------------------------------------------------------------- - print *, "State Example 1: Import State" - - ! This will probably be called from inside the Component Init code - statename = "Atmosphere" - state1 = ESMF_StateCreate(name=statename, & - stateintent=ESMF_STATEINTENT_IMPORT, rc=rc) - print *, "State Create returned, name = ", trim(statename) - - ! Data would be added here and the State reused inside the run - ! routine of a sequential application. - - print *, "State Example 1 finished" - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE + logkindflag=ESMF_LOGKIND_MULTI, rc=rc) !------------------------------------------------------------------------- !BOE -!\subsubsection{Add items to a State} -! -! Creation of an empty {\tt ESMF\_State}, and adding an {\tt ESMF\_FieldBundle} -! to it. Note that the {\tt ESMF\_FieldBundle} does not get destroyed when -! the {\tt ESMF\_State} is destroyed; the {\tt ESMF\_State} only contains -! a reference to the objects it contains. It also does not make a copy; -! the original objects can be updated and code accessing them by using -! the {\tt ESMF\_State} will see the updated version. +!\subsubsection{Create a State and add items} +! +! Creation of an empty {\tt ESMF\_State}. Then adding an {\tt ESMF\_FieldBundle} +! to it. Note that the {\tt ESMF\_FieldBundle} is empty. +! The {\tt ESMF\_State} only contains a reference to the objects it contains. +! It does not make a copy; the original objects can be updated and code +! accessing them by using the {\tt ESMF\_State} will see the updated version. !EOE - - - ! Example 2: - ! - ! Create, Add Data, Query, then Destroy a State. - - print *, "State Example 2: Export State" - !BOC - statename = "Ocean" - state2 = ESMF_StateCreate(name=statename, & - stateintent=ESMF_STATEINTENT_EXPORT, rc=rc) + state = ESMF_StateCreate(name="Ocean", & + stateintent=ESMF_STATEINTENT_EXPORT, rc=rc) !EOC - - print *, "State Create returned, name = ", trim(statename) if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - bundlename = "Temperature" - bundle1 = ESMF_FieldBundleCreate(name=bundlename, rc=rc) - print *, "FieldBundle Create returned", rc + bundle = ESMF_FieldBundleCreate(name="Surface Fields", rc=rc) !EOC if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - call ESMF_StateAdd(state2, (/bundle1/), rc=rc) - print *, "StateAdd returned", rc + call ESMF_StateAdd(state, [bundle], rc=rc) !EOC if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - ! Loop here, updating FieldBundle contents each time step - +!------------------------------------------------------------------------- +!BOE +!\subsubsection{Query a State for items and add more items} +! +! The objects contained in a State can be queried by name. +!EOE !BOC - call ESMF_StateDestroy(state2, rc=rc) + call ESMF_StateGet(state, itemName="Surface Fields", fieldbundle=bundle, & + rc=rc) !EOC - print *, "State Destroy returned", rc if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! More objects can be created and added to the State. Here an empty Field is +! created and added to the State. +!EOE !BOC - call ESMF_FieldBundleDestroy(bundle1, rc=rc) + field = ESMF_FieldEmptyCreate(name="MyField", rc=rc) +!EOC + if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOC + call ESMF_StateAdd(state, [field], rc=rc) !EOC - print *, "FieldBundle Destroy returned", rc - print *, "State Example 2 finished" if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!------------------------------------------------------------------------- !BOE -!\subsubsection{Add placeholders to a State} -! -! If a component could potentially produce a large number of optional -! items, one strategy is to add the names only of those objects to the -! {\tt ESMF\_State}. Other components can call framework routines to -! set the {\tt ESMF\_NEEDED} flag to indicate they require that data. -! The original component can query this flag and then produce only the -! data that is required by another component. +! Multiple objects of the same type can be added to the State at the same time. !EOE - - print *, "State Example 3: Export State with Placeholder" - - ! The producing Component creates the menu of data items available. !BOC - statename = "Ocean" - state3 = ESMF_StateCreate(name=statename, & - stateintent=ESMF_STATEINTENT_EXPORT, rc=rc) + field1 = ESMF_FieldEmptyCreate(name="field1", rc=rc) !EOC - print *, "State Create returned", rc, " name = ", trim(statename) if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - dataname = "Downward wind:needed" - call ESMF_AttributeSet (state3, dataname, .false., rc=rc) + field2 = ESMF_FieldEmptyCreate(name="field2", rc=rc) !EOC - print *, "AttributeSet returned", rc, " name = ", trim(dataname) if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - dataname = "Humidity:needed" - call ESMF_AttributeSet (state3, dataname, .false., rc=rc) + call ESMF_StateAdd(state, [field1, field2], rc=rc) !EOC - print *, "AttributeSet returned", rc, " name = ", trim(dataname) - - ! See next example for how this is used. - - print *, "State Example 3 finished" if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !------------------------------------------------------------------------- -#if defined (ESMF_ENABLESTATENEEDED) !BOE -!\subsubsection{Mark an item {\tt NEEDED}} -! -! How to set the {\tt NEEDED} state of an item. +!\subsubsection{Removing items from a State} +! +! Objects contained in a State can be removed using the item name. !EOE - - print *, "State Example 4: Get/Set Needed flags in Export State" - - ! Given state3 from the previous example, the Coupler or Application - ! is given an opportunity to mark which data items are needed. - !BOC - dataname = "Downward wind:needed" - call ESMF_AttributeSet (state3, name=dataname, value=.true., rc=rc) + call ESMF_StateRemove(state, ["field1"], rc=rc) +!EOC + if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! Notice that objects removed from a State are {\em not} destroyed by the +! {\tt ESMF\_StateRemove()} call. They must be destroyed explicitly when no +! longer needed. +!BOC + call ESMF_FieldDestroy(field1, rc=rc) !EOC - print *, "AttributeSet returned", rc if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !------------------------------------------------------------------------- !BOE -!\subsubsection{Create a {\tt NEEDED} item} -! -! Query an item for the {\tt NEEDED} status, and creating an item on demand. -! Similar flags exist for "Ready", "Valid", and "Required for Restart", -! to mark each data item as ready, having been validated, or needed if the -! application is to be checkpointed and restarted. The flags are supported -! to help coordinate the data exchange between components. +!\subsubsection{Destroy a State} +! +! Once an {\tt ESMF\_State} is not longer needed, it should be destroyed. !EOE - - ! Query Needed flags, and add FieldBundle data - - print *, "State Example 5: Get/Set Needed flags in Export State, continued" - - ! Given state3 from the previous examples, the producing Component - ! can check the state to see what data items are required. - !BOC - dataname = "Downward wind:needed" - call ESMF_AttributeGet (state3, dataname, value=neededFlag, rc=rc) + call ESMF_StateDestroy(state, rc=rc) !EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE + if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! Notice that objects contained in a State are {\em not} destroyed by the +! {\tt ESMF\_StateDestroy()} call. They must be destroyed explicitly when no +! longer needed. !BOC - if (rc == ESMF_SUCCESS .and. neededFlag) then - bundlename = dataname - bundle2 = ESMF_FieldBundleCreate(name=bundlename, rc=rc) + call ESMF_FieldBundleDestroy(bundle, rc=rc) !EOC - print *, "FieldBundle Create returned", rc, "name = ", trim(bundlename) - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE + if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - call ESMF_StateAdd(state3, (/bundle2/), rc=rc) + call ESMF_FieldDestroy(field, rc=rc) !EOC - print *, "StateAdd returned", rc - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE + if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - else - print *, "Data not marked as needed", trim(dataname) - endif + call ESMF_FieldDestroy(field2, rc=rc) !EOC - print *, "State Example 5 finished" -#endif - call ESMF_StateDestroy(state3, rc=rc) if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - print *, "State Destroy returned", rc - -!------------------------------------------------------------------------- -! ! Similar flags exist for "Ready" and for "Valid" to mark each data -! ! item as ready or having been validated, to help synchronize data -! ! exchange between Components and Couplers. Also "Required for -! ! Restart". -!------------------------------------------------------------------------- +!=============================================================================== ! IMPORTANT: ESMF_STest() prints the PASS string and the # of processors in the log ! file that the scripts grep for. call ESMF_STest((finalrc.eq.ESMF_SUCCESS), testname, failMsg, result, ESMF_SRCLINE) diff --git a/src/Superstructure/State/examples/ESMF_StateReadWriteEx.F90 b/src/Superstructure/State/examples/ESMF_StateReadWriteEx.F90 deleted file mode 100644 index 0ce7774aae..0000000000 --- a/src/Superstructure/State/examples/ESMF_StateReadWriteEx.F90 +++ /dev/null @@ -1,198 +0,0 @@ -! $Id$ -! -! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, -! Massachusetts Institute of Technology, Geophysical Fluid Dynamics -! Laboratory, University of Michigan, National Centers for Environmental -! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, -! NASA Goddard Space Flight Center. -! Licensed under the University of Illinois-NCSA License. -! -!============================================================================== -! - program ESMF_StateReadWriteEx - -!------------------------------------------------------------------------------ -!ESMF_EXAMPLE String used by test script to count examples. -!------------------------------------------------------------------------- - -#include "ESMF.h" - -!BOE -!\subsubsection{Read Arrays from a NetCDF file and add to a State} -! \label{example:StateRdWr} -! This program shows an example of reading and writing Arrays from a State -! from/to a NetCDF file. -!EOE - -!----------------------------------------------------------------------------- - -!BOC - ! ESMF Framework module - use ESMF - use ESMF_TestMod - implicit none - - ! Local variables - type(ESMF_State) :: state - type(ESMF_Array) :: latArray, lonArray, timeArray, humidArray, & - tempArray, pArray, rhArray - type(ESMF_VM) :: vm - integer :: localPet, rc -!EOC - integer :: finalrc, result - character(ESMF_MAXSTR) :: testname - character(ESMF_MAXSTR) :: failMsg - -!------------------------------------------------------------------------- -!------------------------------------------------------------------------- - - write(failMsg, *) "Example failure" - write(testname, *) "Example ESMF_StateReadWriteEx" - - -! ------------------------------------------------------------------------------ -! ------------------------------------------------------------------------------ - - - finalrc = ESMF_SUCCESS - - call ESMF_Initialize(vm=vm, defaultlogfilename="StateReadWriteEx.Log", & - logkindflag=ESMF_LOGKIND_MULTI, rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - call ESMF_VMGet(vm, localPet=localPet, rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - - state = ESMF_StateCreate(name="Ocean Import", & - stateintent=ESMF_STATEINTENT_IMPORT, rc=rc) - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!BOE -! The following line of code will read all Array data contained in a NetCDF -! file, place them in {\tt ESMF\_Arrays} and add them to an {\tt ESMF\_State}. -! Only PET 0 reads the file; the States in the other PETs remain empty. -! Currently, the data is not decomposed or distributed; each PET -! has only 1 DE and only PET 0 contains data after reading the file. -! Future versions of ESMF will support data decomposition and distribution -! upon reading a file. -! -! Note that the third party NetCDF library must be installed. For more -! details, see the "ESMF Users Guide", -! "Building and Installing the ESMF, Third Party Libraries, NetCDF" and -! the website http://www.unidata.ucar.edu/software/netcdf. -!EOE - -!BOC - ! Read the NetCDF data file into Array objects in the State on PET 0 - call ESMF_StateRead(state, "io_netcdf_testdata.nc", rc=rc) - - ! If the NetCDF library is not present (on PET 0), cleanup and exit - if (rc == ESMF_RC_LIB_NOT_PRESENT) then - call ESMF_StateDestroy(state, rc=rc) - goto 10 - endif -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!BOE -! Only reading data into {\tt ESMF\_Arrays} is supported at this time; -! {\tt ESMF\_ArrayBundles}, {\tt ESMF\_Fields}, and {\tt ESMF\_FieldBundles} -! will be supported in future releases of ESMF. -!EOE - -!------------------------------------------------------------------------- -!BOE -!\subsubsection{Print Array data from a State} -! -! To see that the State now contains the same data as in the file, the -! following shows how to print out what Arrays are contained within the -! State and to print the data contained within each Array. The NetCDF utility -! "ncdump" can be used to view the contents of the NetCDF file. -! In this example, only PET 0 will contain data. -!EOE - -!BOC - if (localPet == 0) then - ! Print the names and attributes of Array objects contained in the State - call ESMF_StatePrint(state, rc=rc) - - ! Get each Array by name from the State - call ESMF_StateGet(state, "lat", latArray, rc=rc) - call ESMF_StateGet(state, "lon", lonArray, rc=rc) - call ESMF_StateGet(state, "time", timeArray, rc=rc) - call ESMF_StateGet(state, "Q", humidArray, rc=rc) - call ESMF_StateGet(state, "TEMP", tempArray, rc=rc) - call ESMF_StateGet(state, "p", pArray, rc=rc) - call ESMF_StateGet(state, "rh", rhArray, rc=rc) - - ! Print out the Array data - call ESMF_ArrayPrint(latArray, rc=rc) - call ESMF_ArrayPrint(lonArray, rc=rc) - call ESMF_ArrayPrint(timeArray, rc=rc) - call ESMF_ArrayPrint(humidArray, rc=rc) - call ESMF_ArrayPrint(tempArray, rc=rc) - call ESMF_ArrayPrint(pArray, rc=rc) - call ESMF_ArrayPrint(rhArray, rc=rc) - endif -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!BOE -! Note that the Arrays "lat", "lon", and "time" hold spatial and temporal -! coordinate data for the dimensions latitude, longitude and time, -! respectively. These will be used in future releases of ESMF to create -! {\tt ESMF\_Grids}. -!EOE - -!------------------------------------------------------------------------- -!BOE -!\subsubsection{Write Array data within a State to a NetCDF file} -! -! All the Array data within the State on PET 0 can be written out to a NetCDF -! file as follows: -!EOE - -!BOC - ! Write Arrays within the State on PET 0 to a NetCDF file - call ESMF_StateWrite(state, "io_netcdf_testdata_out.nc", rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!BOE -! Currently writing is limited to PET 0; future versions of ESMF will allow -! parallel writing, as well as parallel reading. -!EOE - - ! Destroy the State container - call ESMF_StateDestroy(state, rc=rc) - - if (localPet == 0) then - ! Destroy the constituent Arrays - call ESMF_ArrayDestroy(latArray, rc=rc) - call ESMF_ArrayDestroy(lonArray, rc=rc) - call ESMF_ArrayDestroy(timeArray, rc=rc) - call ESMF_ArrayDestroy(humidArray, rc=rc) - call ESMF_ArrayDestroy(tempArray, rc=rc) - call ESMF_ArrayDestroy(pArray, rc=rc) - call ESMF_ArrayDestroy(rhArray, rc=rc) - endif - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - - 10 continue ! Exit point if NetCDF not present (PET 0) - - ! IMPORTANT: ESMF_STest() prints the PASS string and the # of processors in the log - ! file that the scripts grep for. - call ESMF_STest((finalrc.eq.ESMF_SUCCESS), testname, failMsg, result, ESMF_SRCLINE) - - - call ESMF_Finalize(rc=rc) - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - - if (finalrc.EQ.ESMF_SUCCESS) then - print *, "PASS: ESMF_StateReadWriteEx.F90" - else - print *, "FAIL: ESMF_StateReadWriteEx.F90" - end if - - end program ESMF_StateReadWriteEx - diff --git a/src/Superstructure/State/examples/makefile b/src/Superstructure/State/examples/makefile index 3e71583422..60217754db 100644 --- a/src/Superstructure/State/examples/makefile +++ b/src/Superstructure/State/examples/makefile @@ -7,14 +7,13 @@ run_uni: run_examples_uni LOCDIR = src/Superstructure/State/examples .NOTPARALLEL: -EXAMPLES_BUILD = $(ESMF_EXDIR)/ESMF_StateEx \ - $(ESMF_EXDIR)/ESMF_StateReadWriteEx +EXAMPLES_BUILD = $(ESMF_EXDIR)/ESMF_StateEx -EXAMPLES_RUN = run_ESMF_StateEx \ - run_ESMF_StateReadWriteEx -EXAMPLES_RUN_UNI = run_ESMF_StateEx_uni \ - run_ESMF_StateReadWriteEx_uni +EXAMPLES_RUN = run_ESMF_StateEx + +EXAMPLES_RUN_UNI = run_ESMF_StateEx_uni + include $(ESMF_DIR)/makefile @@ -34,14 +33,3 @@ run_ESMF_StateEx: run_ESMF_StateEx_uni: $(MAKE) EXNAME=State NP=1 exfrun -# -# ESMF_StateReadWriteEx -# -run_ESMF_StateReadWriteEx: - cp -f $(ESMF_DIR)/src/Infrastructure/IO/tests/io_netcdf_testdata.nc $(ESMF_EXDIR) - $(MAKE) EXNAME=StateReadWrite NP=4 exfrun - -run_ESMF_StateReadWriteEx_uni: - cp -f $(ESMF_DIR)/src/Infrastructure/IO/tests/io_netcdf_testdata.nc $(ESMF_EXDIR) - $(MAKE) EXNAME=StateReadWrite NP=1 exfrun - diff --git a/src/Superstructure/State/include/ESMCI_State.h b/src/Superstructure/State/include/ESMCI_State.h index 847adc0ccb..9ffd080af1 100644 --- a/src/Superstructure/State/include/ESMCI_State.h +++ b/src/Superstructure/State/include/ESMCI_State.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/include/ESMCI_StateItem.h b/src/Superstructure/State/include/ESMCI_StateItem.h index a0c05337ad..6512657ad4 100644 --- a/src/Superstructure/State/include/ESMCI_StateItem.h +++ b/src/Superstructure/State/include/ESMCI_StateItem.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/include/ESMC_State.h b/src/Superstructure/State/include/ESMC_State.h index 456254d41e..1cca45ea00 100644 --- a/src/Superstructure/State/include/ESMC_State.h +++ b/src/Superstructure/State/include/ESMC_State.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/interface/ESMCI_State.C b/src/Superstructure/State/interface/ESMCI_State.C index b43c06522e..117c822e50 100644 --- a/src/Superstructure/State/interface/ESMCI_State.C +++ b/src/Superstructure/State/interface/ESMCI_State.C @@ -1,7 +1,7 @@ //$1.10 2007/04/26 16:13:59 rosalind Exp $ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/interface/ESMCI_State_F.C b/src/Superstructure/State/interface/ESMCI_State_F.C index 505877afb5..67c0a12107 100644 --- a/src/Superstructure/State/interface/ESMCI_State_F.C +++ b/src/Superstructure/State/interface/ESMCI_State_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/interface/ESMC_State.C b/src/Superstructure/State/interface/ESMC_State.C index 748a62bb42..52e8ae5bd4 100644 --- a/src/Superstructure/State/interface/ESMC_State.C +++ b/src/Superstructure/State/interface/ESMC_State.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/interface/ESMF_State_C.F90 b/src/Superstructure/State/interface/ESMF_State_C.F90 index e60c6c3e3d..ba6b31c64e 100644 --- a/src/Superstructure/State/interface/ESMF_State_C.F90 +++ b/src/Superstructure/State/interface/ESMF_State_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_State.F90 b/src/Superstructure/State/src/ESMF_State.F90 index a1c5c159fc..0448fa0a17 100644 --- a/src/Superstructure/State/src/ESMF_State.F90 +++ b/src/Superstructure/State/src/ESMF_State.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -62,25 +62,27 @@ module ESMF_StateMod public ESMF_StateAdd, ESMF_StateAddReplace public ESMF_StateGet - public ESMF_StateIsReconcileNeeded public ESMF_StateLog public ESMF_StateRemove public ESMF_StateReplace - - public ESMF_StateWriteRestart - public ESMF_StateReadRestart - - public ESMF_StateRead - public ESMF_StateWrite public ESMF_StatePrint public ESMF_StateSet public ESMF_StateSerialize, ESMF_StateDeserialize public ESMF_StateClassFindData + + ! These methods are broken and create Arrays in a bad configuration. + ! We are taking them out so no one uses them. Eventually, new correct + ! versions will be implemented. + ! public ESMF_StateRead + ! public ESMF_StateWrite + ! public ESMF_StateWriteRestart + ! public ESMF_StateReadRestart + !EOPI diff --git a/src/Superstructure/State/src/ESMF_StateAPI.cppF90 b/src/Superstructure/State/src/ESMF_StateAPI.cppF90 index 0e26f6e7de..c55d80cbce 100644 --- a/src/Superstructure/State/src/ESMF_StateAPI.cppF90 +++ b/src/Superstructure/State/src/ESMF_StateAPI.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -59,6 +59,7 @@ module ESMF_StateAPIMod use ESMF_IOUtilMod use ESMF_UtilMod use ESMF_UtilStringMod + use ESMF_InfoMod implicit none @@ -84,15 +85,8 @@ module ESMF_StateAPIMod public ESMF_StateAdd, ESMF_StateAddReplace public ESMF_StateGet public ESMF_StateIsCreated - public ESMF_StateIsReconcileNeeded public ESMF_StateLog - - public ESMF_StateWriteRestart - public ESMF_StateReadRestart - - public ESMF_StateRead - public ESMF_StateWrite public ESMF_StatePrint public ESMF_StateSet @@ -100,6 +94,15 @@ module ESMF_StateAPIMod public ESMF_StateClassFindData + ! These methods are broken and create Arrays in a bad configuration. + ! We are taking them out so no one uses them. Eventually, new correct + ! versions will be implemented. + ! public ESMF_StateRead + ! public ESMF_StateWrite + ! public ESMF_StateWriteRestart + ! public ESMF_StateReadRestart + + !EOPI !------------------------------------------------------------------------------ @@ -1123,7 +1126,7 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandleList(i),rc) ! Private name; call using ESMF_StateGet() subroutine ESMF_StateGetInfo(state, & keywordEnforcer, itemSearch, itemorderflag, nestedFlag, & - stateIntent, itemCount, itemNameList, itemTypeList, name, rc) + stateIntent, itemCount, itemNameList, itemTypeList, name, vm, rc) ! ! !ARGUMENTS: type(ESMF_State), intent(in) :: state @@ -1136,6 +1139,7 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandleList(i),rc) character (len=*), intent(out), optional :: itemNameList(:) type(ESMF_StateItem_Flag), intent(out), optional :: itemTypeList(:) character (len=*), intent(out), optional :: name + type(ESMF_VM), intent(out), optional :: vm integer, intent(out), optional :: rc ! @@ -1147,6 +1151,8 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandleList(i),rc) ! \item[6.1.0] Added argument {\tt itemorderflag}. ! The new argument gives the user control over the order in which ! the items are returned. +! \item[8.8.0] Added argument {\tt vm} in order to offer information about the +! VM on which the State was created. ! \end{description} ! \end{itemize} ! @@ -1205,6 +1211,8 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandleList(i),rc) ! long. Return values are listed in Section~\ref{const:stateitem}. ! \item[{[name]}] ! Returns the name of this {\tt ESMF\_State}. +! \item [{[vm}] +! The VM on which the State object was created. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -1268,6 +1276,12 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandleList(i),rc) call itemTypeWorker (stypep) endif + if (present(vm)) then + call ESMF_GetVM(stypep%base, vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + endif + ! return successfully if (present(rc)) rc = ESMF_SUCCESS @@ -1689,140 +1703,6 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below !------------------------------------------------------------------------------ - - -!------------------------------------------------------------------------------ -^undef ESMF_METHOD -^define ESMF_METHOD "ESMF_StateIsReconcileNeeded" -!BOPI -! !IROUTINE: ESMF_StateIsReconcileNeeded -- Return logical true if reconciliation needed -! -! !INTERFACE: - function ESMF_StateIsReconcileNeeded(state, keywordEnforcer, collectiveflag, vm, rc) -! -! !RETURN VALUE: - logical :: ESMF_StateIsReconcileNeeded -! -! !ARGUMENTS: - type(ESMF_State), intent(in) :: state - type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below - logical, intent(in), optional :: collectiveflag - type(ESMF_VM), intent(in), optional :: vm - integer, intent(out), optional :: rc - -! -! !DESCRIPTION: -! Returns true if the {\tt state} needs to be reconciled in order -! to be coherent across PETs. By default, this is a local call. -! Optionally, the {\tt collectiveflag} may be set to collectively -! determine whether other PETs in the VM may need to be reconciled. -! -! The arguments are: -! \begin{description} -! \item[state] -! {\tt ESMF\_State} to query. -! \item[{[collectiveflag]}] -! Perform a collective style call across all PETs in the VM. -! \item[vm] -! The current {\tt ESMF\_VM} (virtual machine). All PETs in this -! {\tt ESMF\_VM} will exchange information about objects which might -! only be known to one or more PETs, and ensure all PETs in this VM -! have a consistent view of the object list in this {\tt ESMF\_State}. -! Required when {\tt collectiveflag} is set to {\tt .true.}. -! \item[{[rc]}] -! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. -! \end{description} -! -!EOPI - - logical :: localrecflag - integer :: localrc - integer :: commsend, commrecv - - ESMF_StateIsReconcileNeeded = .false. - - ! check input variables - ESMF_INIT_CHECK_DEEP(ESMF_StateGetInit,state,rc) - ESMF_INIT_CHECK_DEEP(ESMF_VMGetInit,vm,rc) - - localrecflag = is_rec_needed_worker (state%statep) - - if (present (collectiveflag)) then - if (collectiveflag) then - - if (.not. present (vm)) then - localrc = ESMF_RC_ARG_INCOMP - if (ESMF_LogFoundError(localrc, & - msg="VM is required for collective inquiry", & - ESMF_CONTEXT, rcToReturn=rc)) return - end if - - commsend = merge (1, 0, localrecflag) - call ESMF_VMAllReduce (vm=vm, & - sendData=commsend, recvData=commrecv, reduceflag=ESMF_REDUCE_SUM, & - rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - localrecflag = commrecv /= 0 - end if - end if - - ESMF_StateIsReconcileNeeded = localrecflag - if (present (rc)) rc = ESMF_SUCCESS - - contains - - recursive function is_rec_needed_worker (sp1) result (is_rec_needed) - type(ESMF_StateClass), intent(in) :: sp1 - logical :: is_rec_needed - - type(ESMF_StateItem) , pointer :: nextitem1 - integer :: i1 - - type(ESMF_StateItemWrap), pointer :: siwrap(:) - integer :: ptrcnt - - integer :: localrc1 - integer :: memstat1 - - ! Default return this levels flag - - is_rec_needed = sp1%reconcileneededflag - if (is_rec_needed) return - - ! Then search nested States - - siwrap => null () - call ESMF_ContainerGet (sp1%stateContainer, & - itemCount=ptrcnt, itemList=siwrap, rc=localrc1) - if (ESMF_LogFoundError(localrc1, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - - do, i1 = 1, ptrcnt - nextitem1 => siwrap(i1)%si - if (nextitem1%otype == ESMF_STATEITEM_STATE) then - is_rec_needed = & - is_rec_needed_worker (nextitem1%datap%spp) - if (is_rec_needed) then - deallocate (siwrap, stat=memstat1) - if (ESMF_LogFoundDeallocError(memstat1, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - return - end if - end if - end do - - if (associated (siwrap)) & - deallocate (siwrap, stat=memstat1) - if (ESMF_LogFoundDeallocError(memstat1, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return - - end function is_rec_needed_worker - - end function ESMF_StateIsReconcileNeeded - - ! -------------------------- ESMF-public method ----------------------------- ^undef ESMF_METHOD ^define ESMF_METHOD "ESMF_StateLog()" @@ -1973,6 +1853,21 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return +#if 0 +!TODO: need a way to indicate from calling side that info should be logged + block + type(ESMF_Info) :: info + call ESMF_InfoGetFromBase(stateR%statep%base, info=info, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_InfoLog(info, prefix=prefix, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + end block +#endif + if (itemCount > 0) then allocate(itemNameList(itemCount)) allocate(itemTypeList(itemCount)) @@ -2017,7 +1912,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ESMF_CONTEXT, rcToReturn=rc)) return call ESMF_FieldLog(field, & prefix=ESMF_StringConcat(prefix, "! "), & - logMsgFlag=logMsg, rc=localrc) + logMsgFlag=logMsg, deepFlag=deepLog, rc=localrc) if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return @@ -2263,8 +2158,6 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below write (ESMF_UtilIOStdout,'(1x,4a,i0)') nestr, & " status: ", trim(msgbuf), & ", object count: ", ptrcnt - write (ESMF_UtilIOStdout,'(1x,2a,L1)') nestr, & - " reconcile needed: ", sp1%reconcileneededflag ! Prints Attributes associated with the State call ESMF_UtilIOUnitFlush (unit=ESMF_UtilIOstdout, rc=localrc1) @@ -2323,7 +2216,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below !------------------------------------------------------------------------------ ^undef ESMF_METHOD ^define ESMF_METHOD "ESMF_StateRead" -!BOP +!BOPI ! !IROUTINE: ESMF_StateRead -- Read data items from a file into a State ! ! !INTERFACE: @@ -2364,7 +2257,7 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below ! not present. ! \end{description} ! -!EOP +!EOPI ! TODO: use item flag ESMF_STATEITEM_ARRAY integer :: localrc diff --git a/src/Superstructure/State/src/ESMF_StateContainer.F90 b/src/Superstructure/State/src/ESMF_StateContainer.F90 index eaeb3d3528..22cabcb080 100644 --- a/src/Superstructure/State/src/ESMF_StateContainer.F90 +++ b/src/Superstructure/State/src/ESMF_StateContainer.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateGet.cppF90 b/src/Superstructure/State/src/ESMF_StateGet.cppF90 index aadf1a87bb..5e84039b23 100644 --- a/src/Superstructure/State/src/ESMF_StateGet.cppF90 +++ b/src/Superstructure/State/src/ESMF_StateGet.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateInternals.cppF90 b/src/Superstructure/State/src/ESMF_StateInternals.cppF90 index 6053e342cb..83d2d6f8c0 100644 --- a/src/Superstructure/State/src/ESMF_StateInternals.cppF90 +++ b/src/Superstructure/State/src/ESMF_StateInternals.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -377,7 +377,6 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandles(i),rc) else stypep%st = ESMF_STATEINTENT_UNSPECIFIED endif - stypep%reconcileneededflag = .false. stypep%stateContainer = ESMF_ContainerCreate (rc=localrc) if (ESMF_LogFoundError(localrc, & @@ -698,7 +697,6 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandles(i),rc) ^if defined(stateversion) @\ ! TODO: This needs to be verified... @\ sip%datap%spp => mname(i)%statep ! State version @\ - sip%datap%spp%reconcileneededFlag = .false. @\ ^else @\ sip%datap%mtypecomponent = mname(i) @\ ^endif @\ @@ -725,8 +723,6 @@ ESMF_INIT_CHECK_DEEP(ESMF_RouteHandleGetInit,routehandles(i),rc) end if @\ @\ end do @\ - @\ - stypep%reconcileneededFlag = .true. @\ @\ if (present(rc)) rc = ESMF_SUCCESS @\ @\ diff --git a/src/Superstructure/State/src/ESMF_StateItem.F90 b/src/Superstructure/State/src/ESMF_StateItem.F90 index fb6fedd6e4..1638248f3e 100644 --- a/src/Superstructure/State/src/ESMF_StateItem.F90 +++ b/src/Superstructure/State/src/ESMF_StateItem.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -260,7 +260,6 @@ module ESMF_StateItemMod #endif type(ESMF_Container):: stateContainer integer :: alloccount - logical :: reconcileneededflag ESMF_INIT_DECLARE end type diff --git a/src/Superstructure/State/src/ESMF_StateRemRep.cppF90 b/src/Superstructure/State/src/ESMF_StateRemRep.cppF90 index b44507953b..2f838ef2dc 100644 --- a/src/Superstructure/State/src/ESMF_StateRemRep.cppF90 +++ b/src/Superstructure/State/src/ESMF_StateRemRep.cppF90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateSet.F90 b/src/Superstructure/State/src/ESMF_StateSet.F90 index 0fe83a0431..1cae2b99d4 100644 --- a/src/Superstructure/State/src/ESMF_StateSet.F90 +++ b/src/Superstructure/State/src/ESMF_StateSet.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateTypes.F90 b/src/Superstructure/State/src/ESMF_StateTypes.F90 index 151dac5940..2bbbe43399 100644 --- a/src/Superstructure/State/src/ESMF_StateTypes.F90 +++ b/src/Superstructure/State/src/ESMF_StateTypes.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateVa.F90 b/src/Superstructure/State/src/ESMF_StateVa.F90 index c934ed1864..70b903e5ff 100644 --- a/src/Superstructure/State/src/ESMF_StateVa.F90 +++ b/src/Superstructure/State/src/ESMF_StateVa.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/src/ESMF_StateWr.F90 b/src/Superstructure/State/src/ESMF_StateWr.F90 index 75c1d3a9b9..35ce990f2e 100644 --- a/src/Superstructure/State/src/ESMF_StateWr.F90 +++ b/src/Superstructure/State/src/ESMF_StateWr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -48,8 +48,12 @@ module ESMF_StateWrMod !------------------------------------------------------------------------------ ! !PUBLIC MEMBER FUNCTIONS: - public :: ESMF_StateWrite - public :: ESMF_StateWriteRestart + + ! These methods are broken and create Arrays in a bad configuration. + ! We are taking them out so no one uses them. Eventually, new correct + ! versions will be implemented. + ! public :: ESMF_StateWrite + ! public :: ESMF_StateWriteRestart !EOPI @@ -123,7 +127,7 @@ module ESMF_StateWrMod !------------------------------------------------------------------------------ #undef ESMF_METHOD #define ESMF_METHOD "ESMF_StateWrite" -!BOP +!BOPI ! !IROUTINE: ESMF_StateWrite -- Write items from a State to file ! ! !INTERFACE: @@ -162,7 +166,7 @@ subroutine ESMF_StateWrite(state, fileName, rc) ! not present. ! \end{description} ! -!EOP +!EOPI ! TODO: use item flag ESMF_STATEITEM_ARRAY integer :: localrc diff --git a/src/Superstructure/State/tests/ESMC_StateUTest.c b/src/Superstructure/State/tests/ESMC_StateUTest.c index b8f07bf2da..190a21ce44 100644 --- a/src/Superstructure/State/tests/ESMC_StateUTest.c +++ b/src/Superstructure/State/tests/ESMC_StateUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/tests/ESMF_StateCreateUTest.F90 b/src/Superstructure/State/tests/ESMF_StateCreateUTest.F90 index 179857b539..3b5d696aff 100644 --- a/src/Superstructure/State/tests/ESMF_StateCreateUTest.F90 +++ b/src/Superstructure/State/tests/ESMF_StateCreateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/tests/ESMF_StateReadWriteUTest.F90 b/src/Superstructure/State/tests/ESMF_StateReadWriteUTest.F90 deleted file mode 100644 index 10f48fc376..0000000000 --- a/src/Superstructure/State/tests/ESMF_StateReadWriteUTest.F90 +++ /dev/null @@ -1,345 +0,0 @@ -! $Id$ -! -! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, -! Massachusetts Institute of Technology, Geophysical Fluid Dynamics -! Laboratory, University of Michigan, National Centers for Environmental -! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, -! NASA Goddard Space Flight Center. -! Licensed under the University of Illinois-NCSA License. -! -!============================================================================== -! - -!------------------------------------------------------------------------------- - - program ESMF_StateReadWriteUTest - -!============================================================================== -! -#include "ESMF.h" -! -!BOP -! !PROGRAM: ESMF_StateReadWriteUTest - Test code which Reads/Writes States -! -! !DESCRIPTION: -! -! The code in this file drives F90 State Read/Write unit tests. -! -!----------------------------------------------------------------------------- -! !USES: - use ESMF_TestMod ! test methods - use ESMF - implicit none - -!------------------------------------------------------------------------------ -! The following line turns the CVS identifier string into a printable variable. - character(*), parameter :: version = & - '$Id$' -!------------------------------------------------------------------------------ - -! ! Local variables - type(ESMF_State) :: state - type(ESMF_Array) :: latArray, lonArray, timeArray, humidArray, & - tempArray, pArray, rhArray - type(ESMF_VM) :: vm - integer :: localPet - integer :: i - integer :: rc, localrc - logical :: have_netcdf - - character(*), parameter :: netcdf_file = 'io_netcdf_testdata.nc' - character(*), parameter :: netcdf_fileout = 'io_netcdf_testdata_out.nc' - - integer, parameter :: narrays = 7 - character(8), parameter :: arraynames(narrays) = (/ & - "lat ", "lon ", "time", & - "Q ", "TEMP", "p ", & - "rh " & - /) - type(ESMF_StateItem_Flag) :: itemtype - integer :: itemcount - logical :: passfail - - ! individual test failure messages - character(ESMF_MAXSTR) :: failMsg - character(ESMF_MAXSTR) :: name - - ! cumulative result: count failures; no failures equals "all pass" - integer :: result = 0 - -!------------------------------------------------------------------------------- -! The unit tests are divided into Sanity and Exhaustive. The Sanity tests are -! always run. When the environment variable, EXHAUSTIVE, is set to ON then -! the EXHAUSTIVE and sanity tests both run. If the EXHAUSTIVE variable is set -! to OFF, then only the sanity unit tests. -! Special strings (Non-exhaustive and exhaustive) have been -! added to allow a script to count the number and types of unit tests. -!------------------------------------------------------------------------------- - - - call ESMF_TestStart(ESMF_SRCLINE, rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - - call ESMF_VMGetGlobal(vm=vm, rc=rc) - call ESMF_VMGet (vm, localPet=localPet) - -#ifdef ESMF_TESTEXHAUSTIVE - !------------------------------------------------------------------------ - !EX_UTest - ! Test Creation of an empty export State - state = ESMF_StateCreate(name="Ocean Export", stateintent=ESMF_STATEINTENT_EXPORT, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Creating an empty export State Test" - call ESMF_Test((rc.eq.ESMF_SUCCESS), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test reading a with no file name specified - call ESMF_StateRead(state, filename=' ', rc=rc) - write(failMsg, *) "Did not return an error" - write(name, *) "Reading a file with no file name specified" - call ESMF_Test(rc /= ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test reading a netCDF file into Arrays in a State - call ESMF_StateRead(state, filename=netcdf_file, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS when reading: ", netcdf_file - write(name, *) "Reading netCDF file ", netcdf_file, " into Arrays in a State" - call ESMF_Test((rc == ESMF_SUCCESS .or. rc == ESMF_RC_LIB_NOT_PRESENT), & - name, failMsg, result, ESMF_SRCLINE) - - have_netcdf = rc /= ESMF_RC_LIB_NOT_PRESENT - !------------------------------------------------------------------------ - !EX_UTest - ! Test for number of State items read from the file. - call ESMF_StateGet (state, itemCount=itemcount, rc=localrc) - write(failMsg, *) "Incorrect number of items read from file" - write(name, *) "Checking read-in Array item count in a State test" - ! Current implementation reads data on PET 0 - if (localPet == 0) then - passfail = itemcount == narrays - else - passfail = itemcount == 0 - end if - call ESMF_Test((rc == ESMF_SUCCESS .and. passfail) .or. .not. have_netcdf, & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test for presense of State items read from the file. - if (localPet == 0) then - do, i=1, narrays - call ESMF_StateGet (state, itemname=arraynames(i), itemType=itemtype, rc=localrc) - if (localrc /= ESMF_SUCCESS) exit - if (itemtype /= ESMF_STATEITEM_ARRAY) then - localrc = ESMF_RC_NOT_FOUND - exit - end if - end do - rc = merge (ESMF_SUCCESS, localrc, i>narrays) - else - i = 1 - rc = ESMF_SUCCESS - end if - write(failMsg, *) "Could not find read-in Array: ", trim (arraynames(min (i, narrays))) - write(name, *) "Checking read-in Array names in a State test" - call ESMF_Test((rc == ESMF_SUCCESS .or. .not. have_netcdf), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test reconciling Arrays across all PETs in a VM - call ESMF_StateReconcile(state, vm=vm, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Reconciling Arrays across all PETs in a VM" - call ESMF_Test((rc.eq.ESMF_SUCCESS), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test writing Arrays with no file name specified - call ESMF_StateWrite(state, filename=' ', rc=rc) - write(failMsg, *) "Did not return an error" - write(name, *) "Writing a file with no file name" - call ESMF_Test(rc /= ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test writing Arrays in a State to a netCDF file - call ESMF_StateWrite(state, filename=netcdf_fileout, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Writing netCDF file ", netcdf_fileout, " from Arrays in a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_LIB_NOT_PRESENT), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - ! Get each Array by name from the State - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "lat", latArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'lat' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "lon", lonArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'lon' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "time", timeArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'time' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "Q", humidArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'Q' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "TEMP", tempArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'TEMP' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "p", pArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'p' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - !EX_UTest - ! Test getting an Array from a State - call ESMF_StateGet(state, "rh", rhArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Getting Array named 'rh' from a State" - if (have_netcdf) then - call ESMF_Test(rc == ESMF_SUCCESS, & - name, failMsg, result, ESMF_SRCLINE) - else - call ESMF_Test(rc == ESMF_RC_NOT_FOUND, & - name, failMsg, result, ESMF_SRCLINE) - end if - !------------------------------------------------------------------------ - ! Destroy the State - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying a State - call ESMF_StateDestroy(state, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - ! Destroy the constituent Arrays - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(latArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'lat' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(lonArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'lon' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(timeArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'time' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(humidArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'Q' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(tempArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'TEMP' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(pArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'p' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - !EX_UTest - ! Test destroying an Array - call ESMF_ArrayDestroy(rhArray, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Destroying Array named 'rh' from a State" - call ESMF_Test((rc.eq.ESMF_SUCCESS.or.rc.eq.ESMF_RC_OBJ_NOT_CREATED), & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------ - ! End of Exhaustive tests -#endif - - ! return number of failures to environment; 0 = success (all pass) - ! return result ! TODO: no way to do this in F90 ? - - call ESMF_TestEnd(ESMF_SRCLINE) - - end program ESMF_StateReadWriteUTest - -!------------------------------------------------------------------------- diff --git a/src/Superstructure/State/tests/ESMF_StateUTest.F90 b/src/Superstructure/State/tests/ESMF_StateUTest.F90 index 845663d128..47511a3bdd 100644 --- a/src/Superstructure/State/tests/ESMF_StateUTest.F90 +++ b/src/Superstructure/State/tests/ESMF_StateUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/State/tests/makefile b/src/Superstructure/State/tests/makefile index 5633288009..bee6bf4bff 100644 --- a/src/Superstructure/State/tests/makefile +++ b/src/Superstructure/State/tests/makefile @@ -9,17 +9,14 @@ LOCDIR = src/Superstructure/State/tests .NOTPARALLEL: TESTS_BUILD = $(ESMF_TESTDIR)/ESMC_StateUTest \ $(ESMF_TESTDIR)/ESMF_StateCreateUTest \ - $(ESMF_TESTDIR)/ESMF_StateReadWriteUTest \ $(ESMF_TESTDIR)/ESMF_StateUTest TESTS_RUN = RUN_ESMC_StateUTest \ RUN_ESMF_StateCreateUTest \ - RUN_ESMF_StateReadWriteUTest \ RUN_ESMF_StateUTest TESTS_RUN_UNI = RUN_ESMC_StateUTestUNI \ RUN_ESMF_StateCreateUTestUNI \ - RUN_ESMF_StateReadWriteUTestUNI \ RUN_ESMF_StateUTestUNI @@ -62,15 +59,4 @@ RUN_ESMC_StateUTest: RUN_ESMC_StateUTestUNI: $(MAKE) TNAME=State NP=1 ctest -# -# State Read/Write Unit Test -# - -RUN_ESMF_StateReadWriteUTest: - cp -f $(ESMF_DIR)/src/Infrastructure/IO/tests/io_netcdf_testdata.nc $(ESMF_TESTDIR) - $(MAKE) TNAME=StateReadWrite NP=4 ftest - -RUN_ESMF_StateReadWriteUTestUNI: - cp -f $(ESMF_DIR)/src/Infrastructure/IO/tests/io_netcdf_testdata.nc $(ESMF_TESTDIR) - $(MAKE) TNAME=StateReadWrite NP=1 ftest diff --git a/src/Superstructure/StateReconcile/examples/ESMF_StateReconcileEx.F90 b/src/Superstructure/StateReconcile/examples/ESMF_StateReconcileEx.F90 index 0e30c9fad1..3e420ec1c1 100644 --- a/src/Superstructure/StateReconcile/examples/ESMF_StateReconcileEx.F90 +++ b/src/Superstructure/StateReconcile/examples/ESMF_StateReconcileEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -9,85 +9,98 @@ ! Licensed under the University of Illinois-NCSA License. ! !============================================================================== -! + +!============================================================================== +!ESMF_MULTI_PROC_EXAMPLE String used by test script to count examples. +!============================================================================== module ESMF_StateReconcileEx_Mod -use ESMF + use ESMF -contains + contains !BOE -!\subsubsection{{\tt ESMF\_StateReconcile()} usage} -! -! The set services routines are used to tell ESMF which routine -! hold the user code for the initialize, run, and finalize -! blocks of user level Components. -! These are the separate subroutines called by the code below. +!\subsubsection{Reconcile a State} +! +! An {\tt ESMF\_State} object must be reconciled if it contains objects that +! were created and added to the State on a subset of the PETs from which the +! objects are now accessed and operated on. A typical case of this is when +! a State object is passed to a component that runs on a subset of PETs, and +! that component creates objects that are added to the State. After the +! component passes control back to the larger calling context (a parent +! component or the main program), the State object is not consistent across +! PETs. The {\tt ESMF\_StateReconcile()} method is used to reconcilce the State +! across all PETs. +! +! In order to demonstrate State reconciliation we need to set up at least +! one component that can be run on a subset of PETs. To this end an external +! routine is created that adds a few emtpy Fields into its {\tt exportState}. +! !EOE - !BOC -! Initialize routine which creates "field1" on PETs 0 and 1 -subroutine comp1_init(gcomp, istate, ostate, clock, rc) + subroutine init(gcomp, importState, exportState, clock, rc) + ! Abide to ESMF-prescribed Fortran interface type(ESMF_GridComp) :: gcomp - type(ESMF_State) :: istate, ostate + type(ESMF_State) :: importState, exportState type(ESMF_Clock) :: clock integer, intent(out) :: rc - type(ESMF_Field) :: field1 - integer :: localrc - - print *, "i am comp1_init" - - field1 = ESMF_FieldEmptyCreate(name="Comp1 Field", rc=localrc) - - call ESMF_StateAdd(istate, (/field1/), rc=localrc) - - rc = localrc + type(ESMF_Field) :: field1, field2, field3 -end subroutine comp1_init + rc = ESMF_SUCCESS ! indicate success... unless error is found -! Initialize routine which creates "field2" on PETs 2 and 3 -subroutine comp2_init(gcomp, istate, ostate, clock, rc) - type(ESMF_GridComp) :: gcomp - type(ESMF_State) :: istate, ostate - type(ESMF_Clock) :: clock - integer, intent(out) :: rc + field1 = ESMF_FieldEmptyCreate(name="Field1", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=__FILE__)) return - type(ESMF_Field) :: field2 - integer :: localrc + field2 = ESMF_FieldEmptyCreate(name="Field2", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=__FILE__)) return - print *, "i am comp2_init" + field3 = ESMF_FieldEmptyCreate(name="Field3", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=__FILE__)) return - field2 = ESMF_FieldEmptyCreate(name="Comp2 Field", rc=localrc) - - call ESMF_StateAdd(istate, (/field2/), rc=localrc) + call ESMF_StateAdd(exportState, [field1, field2, field3], rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=__FILE__)) return - rc = localrc - -end subroutine comp2_init + end subroutine init +!EOC -subroutine comp_dummy(gcomp, rc) +!BOE +! The standard way to register ESMF component routines is in the +! {\tt SetServices} routine. +!EOE +!BOC + subroutine SetServices(gcomp, rc) + ! Abide to ESMF-prescribed Fortran interface type(ESMF_GridComp) :: gcomp integer, intent(out) :: rc - rc = ESMF_SUCCESS -end subroutine comp_dummy -!EOC - -end module ESMF_StateReconcileEx_Mod - - + rc = ESMF_SUCCESS ! indicate success... unless error is found + ! register 'init' as component initialization method + call ESMF_GridCompSetEntryPoint(gcomp, ESMF_METHOD_INITIALIZE, & + userRoutine=init, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=__FILE__)) return + end subroutine SetServices +!EOC +end module ESMF_StateReconcileEx_Mod - program ESMF_StateReconcileEx +!BOE +! A component can now be created in the main program that uses these routines. +!EOE +!BOC + program ESMF_StateReconcileEx +!EOC -!------------------------------------------------------------------------------ -!ESMF_EXAMPLE String used by test script to count examples. !============================================================================== -!BOC +! ! !PROGRAM: ESMF_StateReconcileEx - State reconciliation ! ! !DESCRIPTION: @@ -103,13 +116,14 @@ program ESMF_StateReconcileEx implicit none ! Local variables - integer :: rc, petCount - type(ESMF_State) :: state1 - type(ESMF_GridComp) :: comp1, comp2 - type(ESMF_VM) :: vm - character(len=ESMF_MAXSTR) :: comp1name, comp2name, statename - + integer :: rc, petCount + type(ESMF_State) :: state +!BOC +! ... other local variables ... + type(ESMF_GridComp) :: comp !EOC + type(ESMF_VM) :: vm + integer :: finalrc, result character(ESMF_MAXSTR) :: testname character(ESMF_MAXSTR) :: failMsg @@ -120,180 +134,104 @@ program ESMF_StateReconcileEx write(failMsg, *) "Example failure" write(testname, *) "Example ESMF_StateReconcileEx" - ! ------------------------------------------------------------------------------ ! ------------------------------------------------------------------------------ finalrc = ESMF_SUCCESS - call ESMF_Initialize(vm=vm, defaultlogfilename="StateReconcileEx.Log", & - logkindflag=ESMF_LOGKIND_MULTI, rc=rc) - + logkindflag=ESMF_LOGKIND_MULTI, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) + ! verify that this example can run on the given petCount call ESMF_VMGet(vm, petCount=petCount, rc=rc) - if (rc .ne. ESMF_SUCCESS) goto 20 + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) if (petCount<4) then print *, "This test must run on at least 4 PETs." + finalrc = ESMF_FAILURE goto 20 endif - -!------------------------------------------------------------------------- -!BOE -! -! A Component can be created which will run only on a subset of the -! current PET list. -!EOE - - print *, "State Reconcile Example 1: Component Creation" - -!BOC - ! Get the global VM for this job. - call ESMF_VMGetGlobal(vm=vm, rc=rc) - - comp1name = "Atmosphere" - comp1 = ESMF_GridCompCreate(name=comp1name, petList=(/ 0, 1 /), rc=rc) - print *, "GridComp Create returned, name = ", trim(comp1name) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - - comp2name = "Ocean" - comp2 = ESMF_GridCompCreate(name=comp2name, petList=(/ 2, 3 /), rc=rc) - print *, "GridComp Create returned, name = ", trim(comp2name) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC - - statename = "Ocn2Atm" - state1 = ESMF_StateCreate(name=statename, rc=rc) + comp = ESMF_GridCompCreate(name="MyComp", petList=[0,1], rc=rc) !EOC - print *, "State Create returned, name = ", trim(statename) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - print *, "State Example 1 finished" - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!------------------------------------------------------------------------- !BOE -! -! Here we register the subroutines which should be called for initialization. -! Then we call ESMF\_GridCompInitialize() on all PETs, but the code runs -! only on the PETs given in the petList when the Component was created. -! -! Because this example is so short, we call the entry point code -! directly instead of the normal procedure of nesting it in a separate -! SetServices() subroutine. +! Here {\tt comp} is created to execute on two PETs: 0 and 1. ! +! Next the Component {\tt SetServices} method is called to register the +! custom component method(s). !EOE - !BOC - ! This is where the VM for each component is initialized. - ! Normally you would call SetEntryPoint inside set services, - ! but to make this example very short, they are called inline below. - ! This is o.k. because the SetServices routine must execute from within - ! the parent component VM. - call ESMF_GridCompSetVM(comp1, comp_dummy, rc=rc) + call ESMF_GridCompSetServices(comp, userRoutine=SetServices, rc=rc) !EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - call ESMF_GridCompSetVM(comp2, comp_dummy, rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC +!BOE +! Now a State is created that can be passed in when the registered Component +! method is called. +!EOE - call ESMF_GridCompSetServices(comp1, userRoutine=comp_dummy, rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE !BOC - - call ESMF_GridCompSetServices(comp2, userRoutine=comp_dummy, rc=rc) + state = ESMF_StateCreate(rc=rc) !EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - - print *, "ready to set entry point 1" - call ESMF_GridCompSetEntryPoint(comp1, ESMF_METHOD_INITIALIZE, & - comp1_init, rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! The {\tt state} object is used as the Component's {\tt exportState}. +!EOE !BOC - - - print *, "ready to set entry point 2" - call ESMF_GridCompSetEntryPoint(comp2, ESMF_METHOD_INITIALIZE, & - comp2_init, rc=rc) + call ESMF_GridCompInitialize(comp, exportState=state, rc=rc) !EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - - - print *, "ready to call init for comp 1" - call ESMF_GridCompInitialize(comp1, exportState=state1, rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! Once control of execution has returned from the pevious +! {\tt ESMF\_GridCompInitialize()} call, the {\tt state} object is in an +! inconsistent state across the PETs of the current (main program) context. +! This is because Fields were added on PETs 0 and 1, but not on the remaining +! PETs (2 and 3). This situation can easliy be observed by writing the current +! {\tt state} to the ESMF log. +!EOE !BOC - - print *, "ready to call init for comp 2" - call ESMF_GridCompInitialize(comp2, exportState=state1, rc=rc) + call ESMF_StateLog(state, prefix="Before Reconcile:", rc=rc) !EOC + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - print *, "State Example 2 finished" - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE - -!------------------------------------------------------------------------- !BOE -! -! Now we have {\tt state1} containing {\tt field1} on PETs 0 and 1, and -! {\tt state1} containing {\tt field2} on PETs 2 and 3. For the code -! to have a rational view of the data, we call {\tt ESMF\_StateReconcile} -! which determines which objects are missing from any PET, and communicates -! information about the object. After the call to reconcile, all -! {\tt ESMF\_State} objects now have a consistent view of the data. +! To reconcile {\tt state} across all of the PETs, use the +! {\tt ESMF\_StateReconcile()} method. !EOE - !BOC - print *, "State before calling StateReconcile()" - call ESMF_StatePrint(state1, rc=rc) + call ESMF_StateReconcile(state, rc=rc) !EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE -!BOC - + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - call ESMF_StateReconcile(state1, vm=vm, rc=rc) -!EOC - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE +!BOE +! The output of {\tt state} to the ESMF log shows that the object is now +! consistent across all PETs. I.e. {\tt state} contains identical items on +! all of the PETs. +!EOE !BOC - - - print *, "State after calling StateReconcile()" - call ESMF_StatePrint(state1, rc=rc) + call ESMF_StateLog(state, prefix="After Reconcile:", rc=rc) !EOC - - print *, "State Example 3 finished" - if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- - call ESMF_StateDestroy (state1, rc=rc) - if (rc /= ESMF_SUCCESS) finalrc = ESMF_FAILURE - - call ESMF_GridCompDestroy (comp2, rc=rc) - if (rc /= ESMF_SUCCESS) finalrc = ESMF_FAILURE + call ESMF_StateDestroy (state, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - call ESMF_GridCompDestroy (comp1, rc=rc) - if (rc /= ESMF_SUCCESS) finalrc = ESMF_FAILURE + call ESMF_GridCompDestroy (comp, rc=rc) + if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) 20 continue ! IMPORTANT: ESMF_STest() prints the PASS string and the # of processors in the log ! file that the scripts grep for. call ESMF_STest((finalrc.eq.ESMF_SUCCESS), testname, failMsg, result, ESMF_SRCLINE) - call ESMF_Finalize(rc=rc) if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE diff --git a/src/Superstructure/StateReconcile/examples/makefile b/src/Superstructure/StateReconcile/examples/makefile index b806f1aec1..b83da87cee 100644 --- a/src/Superstructure/StateReconcile/examples/makefile +++ b/src/Superstructure/StateReconcile/examples/makefile @@ -11,7 +11,7 @@ EXAMPLES_BUILD = $(ESMF_EXDIR)/ESMF_StateReconcileEx EXAMPLES_RUN = run_ESMF_StateReconcileEx -EXAMPLES_RUN_UNI = run_ESMF_StateReconcileEx_uni +EXAMPLES_RUN_UNI = include $(ESMF_DIR)/makefile @@ -27,6 +27,3 @@ DIRS = # run_ESMF_StateReconcileEx: $(MAKE) EXNAME=StateReconcile NP=4 exfrun - -run_ESMF_StateReconcileEx_uni: - $(MAKE) EXNAME=StateReconcile NP=1 exfrun diff --git a/src/Superstructure/StateReconcile/src/ESMF_StateReconcile.F90 b/src/Superstructure/StateReconcile/src/ESMF_StateReconcile.F90 index bf0d1e7091..480294b02f 100644 --- a/src/Superstructure/StateReconcile/src/ESMF_StateReconcile.F90 +++ b/src/Superstructure/StateReconcile/src/ESMF_StateReconcile.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -11,6 +11,9 @@ ! #define ESMF_FILENAME "ESMF_StateReconcile.F90" ! +#define UNIQUE_GEOM_INFO_TREAT_on +! +#define RECONCILE_LOG_off #define RECONCILE_ZAP_LOG_off ! ! ESMF StateReconcile module @@ -49,6 +52,7 @@ module ESMF_StateReconcileMod use ESMF_BaseMod use ESMF_InitMacrosMod use ESMF_IOUtilMod + use ESMF_UtilMod use ESMF_LogErrMod use ESMF_StateMod use ESMF_StateContainerMod @@ -67,7 +71,7 @@ module ESMF_StateReconcileMod use ESMF_TraceMod - use ESMF_InfoMod, only : ESMF_Info, ESMF_InfoGetFromBase, ESMF_InfoUpdate + use ESMF_InfoMod use ESMF_InfoCacheMod implicit none @@ -83,6 +87,7 @@ module ESMF_StateReconcileMod ! to be called by ESMF users. ! public :: ESMF_ReconcileDeserialize, ESMF_ReconcileSerialize ! public :: ESMF_ReconcileSendItems + public :: ESMF_ReconcileExchgAttributes !EOPI @@ -124,9 +129,6 @@ module ESMF_StateReconcileMod ! !============================================================================== - logical, parameter :: trace=.false. - logical, parameter :: debug=.false. - contains !============================================================================== @@ -135,46 +137,62 @@ module ESMF_StateReconcileMod #undef ESMF_METHOD #define ESMF_METHOD "ESMF_StateReconcile" !BOP -! !IROUTINE: ESMF_StateReconcile -- Reconcile State data across all PETs in a VM +! !IROUTINE: ESMF_StateReconcile -- Reconcile State across PETs ! ! !INTERFACE: - subroutine ESMF_StateReconcile(state, vm, rc) + subroutine ESMF_StateReconcile(state, keywordEnforcer, vm, checkflag, rc) ! ! !ARGUMENTS: type(ESMF_State), intent(inout) :: state +type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below type(ESMF_VM), intent(in), optional :: vm + logical, intent(in), optional :: checkflag integer, intent(out), optional :: rc ! ! !DESCRIPTION: -! Must be called for any {\tt ESMF\_State} which contains ESMF objects -! that have not been created on all the {\tt PET}s of the currently -! running {\tt ESMF\_Component}. -! For example, if a coupler is operating on data -! which was created by another component that ran on only a subset -! of the couplers {\tt PET}s, the coupler must make this call first -! before operating on any data inside that {\tt ESMF\_State}. -! After calling {\tt ESMF\_StateReconcile} all {\tt PET}s will have -! a common view of all objects contained in this {\tt ESMF\_State}. -! -! This call is collective across the specified VM. -! -! The arguments are: -! \begin{description} -! \item[state] -! {\tt ESMF\_State} to reconcile. -! \item[{[vm]}] -! {\tt ESMF\_VM} for this {\tt ESMF\_Component}. By default, it is set to the current vm. -! \item[{[rc]}] -! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. -! \end{description} ! +! Must be called for any {\tt ESMF\_State} which contains ESMF objects +! that have not been created on all the PETs of {\tt vm}. +! For example, if a coupler component is operating on objects +! which were created by another component that ran on only a subset +! of the coupler PETs, the coupler must make this call first +! before operating with any of the objects held by the {\tt ESMF\_State}. +! After calling {\tt ESMF\_StateReconcile()} all PETs will have +! a common view of all objects contained in this {\tt ESMF\_State}. +! +! The Info metadata keys of reconciled objects are also reconciled. This +! means that after reconciliation, every object in {\tt state} holds a +! consistent set of Info {\em keys} across all the PETs of {\tt vm}. +! Notice however, that no guarantee is made with respect to the Info +! {\em value} that is associated with reconciled Info keys. +! +! The Info metadata keys of the {\tt state} object itself are also reconciled +! for most common cases. The only exception is for the case where Info keys +! were added to {\tt state} under a component that is executing on a subset +! of PETs, and no actual object created under such component was added to +! {\tt state}. +! +! This call is collective across the specified VM. +! +! The arguments are: +! \begin{description} +! \item[state] +! {\tt ESMF\_State} to reconcile. +! \item[{[vm]}] +! {\tt ESMF\_VM} across which to reconcile. The default is the current VM. +! \item [{[checkflag]}] +! If set to {\tt .TRUE.} the reconciled State object is checked for +! consistency across PETs before returning. Any detected issues are +! indicated in {\tt rc}. Set {\tt checkflag} to {\tt .FALSE.} in order +! to achieve highest performance. The default is {\tt .FALSE.}. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} !EOP - integer :: localrc - type(ESMF_VM) :: localvm - type(ESMF_AttReconcileFlag) :: lattreconflag - - type(ESMF_InfoDescribe) :: idesc + integer :: localrc + type(ESMF_VM) :: localvm + logical :: isNoop, isFlag, localCheckFlag logical, parameter :: profile = .false. @@ -186,85 +204,442 @@ subroutine ESMF_StateReconcile(state, vm, rc) if (present(rc)) rc = ESMF_RC_NOT_IMPL localrc = ESMF_RC_NOT_IMPL + localCheckFlag = .false. ! default +#if 0 + ! Activate this when working on StateReoncile, so default is to check result + localCheckFlag = .true. ! force checking by default +#endif + if (present(checkFlag)) localCheckFlag = checkFlag + if (present (vm)) then localvm = vm else call ESMF_VMGetCurrent(vm=localvm, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return end if - ! Each PET broadcasts the object ID lists and compares them to what - ! they get back. Missing objects are sent so they can be recreated - ! on the PETs without those objects as "proxy" objects. Eventually - ! we might want to hash the ID lists so we can send a single number - ! (or short list of numbers) instead of having to build and send the - ! list each time. +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: stateName + call ESMF_StateGet(state, name=stateName, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_LogWrite("StateReconcile() for State: "//trim(stateName), & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + +#if 0 + block + type(ESMF_InfoDescribe) :: idesc + ! Log a JSON State representation ----------------------------------------- + call idesc%Initialize(createInfo=.true., addObjectInfo=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Update(state, "", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_LogWrite("state_json_before_reconcile="// & + ESMF_InfoDump(idesc%info, indent=2), ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Destroy(rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + end block +#endif + +#if 0 + ! cleaner timings below, eliminating issue due to different times PETs enter + ! BUT: only enable this for testing purposes + call ESMF_VMBarrier(localvm, rc=localrc) +#endif - ! Attributes must be reconciled to de-deduplicate Field geometries - lattreconflag = ESMF_ATTRECONCILE_ON + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Determine whether there is anything to be Reconciled at all. ! + ! If not then return as quickly as possible. ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (profile) then - call ESMF_TraceRegionEnter("ESMF_StateReconcile_driver", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("ESMF_StateReconcileIsNoop", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - call ESMF_StateReconcile_driver (state, vm=localvm, & - attreconflag=lattreconflag, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + call ESMF_StateReconcileIsNoop(state, vm=localvm, isNoop=isNoop, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return if (profile) then - call ESMF_TraceRegionExit("ESMF_StateReconcile_driver", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("ESMF_StateReconcileIsNoop", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif -#if 0 - ! Log a JSON State representation ----------------------------------------- +#ifdef RECONCILE_LOG_on + block + character(160):: msgStr + write(msgStr,*) "StateReconcile() isNoop: ", isNoop + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif - call idesc%Initialize(createInfo=.true., addObjectInfo=.true., rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call idesc%Update(state, "", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call ESMF_LogWrite("InfoDescribe before InfoCacheReassembleFields=", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call ESMF_LogWrite("state_json_before_reassemble="//ESMF_InfoDump(idesc%info), rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call idesc%Destroy(rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + if (isNoop) then + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Quick exit for Noop, but still must reconcile State level Info ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + !TODO: Only need to do the State level Info reconcile here for a very + !TODO: specific Noop case where no objects were added under a sub context, + !TODO: but top level State Attributes were set under the sub context. + !TODO: This is tricky to detect here, and to figure out which PET(s) + !TODO: to use for correct rootPets!! + !TODO: Luckily this is a very special edge case... and for now get away + !TODO: not handling it... but it could some day cause an issue!!! + + else + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Go on to reconcile the State ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if (profile) then + call ESMF_TraceRegionEnter("ESMF_StateReconcile_driver", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + + call ESMF_StateReconcile_driver(state, vm=localvm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + if (profile) then + call ESMF_TraceRegionExit("ESMF_StateReconcile_driver", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + endif + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Conditionally check the reconciled State for consistency across PETs ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if (localCheckFlag) then + if (profile) then + call ESMF_TraceRegionEnter("JSON cross PET check", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + block + type(ESMF_InfoDescribe) :: idesc + character(:), allocatable :: jsonStr, testStr + integer :: size(1), localPet + ! Log a JSON State representation ----------------------------------------- + call idesc%Initialize(createInfo=.true., addObjectInfo=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Update(state, "", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + jsonStr = "state_json_after_reassemble="//& + ESMF_InfoDump(idesc%info, indent=2, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + call ESMF_LogWrite(jsonStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return #endif + call idesc%Destroy(rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return +#if 1 + ! check match across all PETs of VM + size(1) = len(jsonStr) + call ESMF_VMBroadcast(localvm, size, count=1, rootPet=0, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_VMGet(localvm, localPet=localPet, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + if (localPet==0) then + call ESMF_VMBroadcast(localvm, jsonStr, count=size(1), rootPet=0, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + else + allocate(character(len=size(1))::testStr) + call ESMF_VMBroadcast(localvm, testStr, count=size(1), rootPet=0, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + if (testStr/=jsonStr) then + ! not a perfect match -> see if the differences are acceptable + ! these are differences in the values of attributes, which show up in + ! the bundled esmf and nuopc test cases... these diffs are begnin. + isFlag = ESMF_UtilStringDiffMatch(jsonStr, testStr, & + minusStringList = ["None ", & + "All ", & + "1 ", & + "2 ", & + " ", & + " ", & + "M ", & + "DEF ", & + "UL ", & + " ", & + "driverChild " & + ], & + plusStringList = ["All ", & + "None ", & + "2 ", & + "1 ", & + "DEF ", & + "UL ", & + " ", & + " ", & + " ", & + "M ", & + "DEFAULT" & + ], rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + if (.not.isFlag) then + ! found unexpected/unacceptable differences + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, & + msg="StateReconcile() failed!! Not all PETs hold same content!!", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + endif + endif +#endif + end block + if (profile) then + call ESMF_TraceRegionExit("JSON cross PET check", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + endif + + if (present(rc)) rc = ESMF_SUCCESS + + end subroutine ESMF_StateReconcile + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_StateReconcileIsNoop" +!BOPI +! !IROUTINE: ESMF_StateReconcileIsNoop +! +! !INTERFACE: + subroutine ESMF_StateReconcileIsNoop(state, vm, isNoop, rc) +! +! !ARGUMENTS: + type (ESMF_State), intent(inout) :: state + type (ESMF_VM), intent(in) :: vm + logical, intent(out) :: isNoop + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! Determine whether there is a need for reconciliation of {\tt state} across +! the PETs of {\tt vm}. +! +! The arguments are: +! \begin{description} +! \item[state] +! {\tt ESMF\_State} to be reconciled. +! \item[vm] +! The current {\tt ESMF\_VM} (virtual machine). +! \item[isNoop] +! Return {\tt .true.} if no reconcile is needed, {\tt .false.} otherwise. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + integer :: localrc + type(ESMF_VMId) :: vmId + logical :: isNoopLoc + integer :: isNoopLocInt(1), isNoopInt(1) + + logical, parameter :: profile = .false. + + localrc = ESMF_RC_NOT_IMPL + + isNoop = .false. ! assume reconcile is needed + + call ESMF_VMGetVMId(vm, vmId=vmId, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return if (profile) then - call ESMF_TraceRegionEnter("ESMF_InfoCacheReassembleFields", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("StateReconcileIsNoopLoc", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - ! Traverse the State hierarchy and fix Field references to a shared geometry - call ESMF_InfoCacheReassembleFields(state, state, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call StateReconcileIsNoopLoc(state, isNoopLoc=isNoopLoc, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - ! Traverse the state hierarchy and remove reconcile-specific attributes - call ESMF_InfoCacheReassembleFieldsFinalize(state, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + if (profile) then + call ESMF_TraceRegionExit("StateReconcileIsNoopLoc", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + + isNoopLocInt(1) = 0 + if (isNoopLoc) isNoopLocInt(1) = 1 if (profile) then - call ESMF_TraceRegionExit("ESMF_InfoCacheReassembleFields", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("ESMF_VMAllReduce", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - if (present(rc)) rc = ESMF_SUCCESS + ! logical AND reduction, only 1 if all incoming 1 + call ESMF_VMAllReduce(vm, isNoopLocInt, isNoopInt, 1, ESMF_REDUCE_MIN, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - end subroutine ESMF_StateReconcile + if (profile) then + call ESMF_TraceRegionExit("ESMF_VMAllReduce", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + + isNoop = (isNoopInt(1)==1) ! globally consistent result + + ! return successfully + rc = ESMF_SUCCESS + + contains + + recursive subroutine StateReconcileIsNoopLoc(stateR, isNoopLoc, rc) + type(ESMF_State), intent(in) :: stateR + logical, intent(out) :: isNoopLoc + integer, intent(out) :: rc + ! - local variables + integer :: localrc + integer :: itemCount, item, fieldCount, arrayCount, i + character(ESMF_MAXSTR), allocatable :: itemNameList(:) + type(ESMF_StateItem_Flag), allocatable :: itemTypeList(:) + type(ESMF_State) :: nestedState + type(ESMF_Field) :: field + type(ESMF_FieldBundle) :: fieldbundle + type(ESMF_Array) :: array + type(ESMF_ArrayBundle) :: arraybundle + type(ESMF_RouteHandle) :: routehandle + type(ESMF_VM) :: vmItem + type(ESMF_VMId) :: vmIdItem + type(ESMF_Pointer) :: thisItem + logical :: isFlag + + localrc = ESMF_RC_NOT_IMPL + + isNoopLoc = .true. + + ! query + call ESMF_StateGet(stateR, itemCount=itemCount, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + if (itemCount > 0) then + allocate(itemNameList(itemCount)) + allocate(itemTypeList(itemCount)) + call ESMF_StateGet(stateR, itemNameList=itemNameList, & + itemtypeList=itemtypeList, rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return + + do item=1, itemCount + ! access the VM of the item, using appropriate API + if ((itemtypeList(item) == ESMF_STATEITEM_STATE)) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + nestedState=nestedState, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_StateGet(nestedState, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + else if (itemtypeList(item) == ESMF_STATEITEM_FIELD) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + field=field, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_FieldGet(field, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + else if (itemtypeList(item) == ESMF_STATEITEM_FIELDBUNDLE) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + fieldbundle=fieldbundle, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_FieldBundleGet(fieldbundle, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + else if (itemtypeList(item) == ESMF_STATEITEM_ARRAY) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + array=array, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_ArrayGet(array, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + else if (itemtypeList(item) == ESMF_STATEITEM_ARRAYBUNDLE) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + arraybundle=arraybundle, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_ArrayBundleGet(arraybundle, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + else if (itemtypeList(item) == ESMF_STATEITEM_ROUTEHANDLE) then + call ESMF_StateGet(stateR, itemName=itemNameList(item), & + routehandle=routehandle, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_RouteHandleGet(routehandle, vm=vmItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + +#if 0 +call ESMF_LogWrite("processing "//trim(itemNameList(item)), ESMF_LOGMSG_DEBUG, rc=localrc) +#endif + + call ESMF_VMGetThis(vmItem, thisItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + if (thisItem == ESMF_NULL_POINTER) isNoopLoc = .false. ! found proxy + + ! exit for .false. already from proxy + if (.not.isNoopLoc) exit + + call ESMF_VMGetVMId(vmItem, vmId=vmIdItem, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + isNoopLoc = ESMF_VMIdCompare(vmIdItem, vmId, keyOnly=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#if 0 +block + character(160) :: msgStr + call ESMF_VMIdLog(vmIdItem, prefix="vmIdItem: ", rc=localrc) + write(msgStr,*) "isNoopLoc: ", isNoopLoc + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) +end block +#endif + if (.not.isNoopLoc) exit ! exit for .false. + + vmId = vmIdItem ! more likely to hit pointer comparison this way + + enddo + + deallocate(itemNameList) + deallocate(itemTypeList) + endif + + end subroutine StateReconcileIsNoopLoc + + end subroutine ESMF_StateReconcileIsNoop !------------------------------------------------------------------------------ #undef ESMF_METHOD @@ -273,281 +648,1383 @@ end subroutine ESMF_StateReconcile ! !IROUTINE: ESMF_StateReconcile_driver ! ! !INTERFACE: - subroutine ESMF_StateReconcile_driver (state, vm, attreconflag, rc) + subroutine ESMF_StateReconcile_driver(state, vm, rc) ! ! !ARGUMENTS: type (ESMF_State), intent(inout) :: state type (ESMF_VM), intent(in) :: vm - type(ESMF_AttReconcileFlag), intent(in) :: attreconflag integer, intent(out) :: rc ! ! !DESCRIPTION: ! -! The arguments are: -! \begin{description} -! \item[state] -! {\tt ESMF\_State} to collect information from. -! \item[vm] -! The current {\tt ESMF\_VM} (virtual machine). All PETs in this -! {\tt ESMF\_VM} will exchange information about objects which might -! only be known to one or more PETs, and ensure all PETs in this VM -! have a consistent view of the object list in this {\tt ESMF\_State}. -! \item[{[attreconflag]}] -! Flag to tell if Attribute reconciliation is to be done as well as data reconciliation -! \item[{[rc]}] -! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. -! \end{description} +! Drive the actual state reconcile precedure. +! +! The arguments are: +! \begin{description} +! \item[state] +! {\tt ESMF\_State} to collect information from. +! \item[vm] +! The current {\tt ESMF\_VM} (virtual machine). All PETs in this +! {\tt ESMF\_VM} will exchange information about objects which might +! only be known to one or more PETs, and ensure all PETs in this VM +! have a consistent view of the object list in this {\tt ESMF\_State}. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} !EOPI integer :: localrc integer :: memstat - integer :: mypet, npets - - integer, pointer :: nitems_buf(:) - type (ESMF_StateItemWrap), pointer :: siwrap(:) - - integer, pointer :: ids_send(:) - type(ESMF_VMId), pointer :: vmids_send(:) - integer, allocatable, target :: vmintids_send(:) + integer :: localPet, petCount - type(ESMF_ReconcileIDInfo), allocatable :: id_info(:) - - logical, pointer :: recvd_needs_matrix(:,:) + logical, parameter :: meminfo = .false. + logical, parameter :: profile = .false. - type(ESMF_CharPtr), allocatable :: items_recv(:) - character, pointer :: buffer_recv(:) - - integer :: i + integer, pointer :: nitems_buf(:) + type (ESMF_StateItemWrap), pointer :: siwrap(:) - logical, parameter :: debug = .false. - logical, parameter :: meminfo = .false. - logical, parameter :: trace = .false. - logical, parameter :: profile = .false. + integer, pointer :: ids_send(:) + type(ESMF_VMId), pointer :: vmids_send(:) + integer, allocatable, target :: vmintids_send(:) - character(160) :: prefixStr type(ESMF_VMId), allocatable, target :: vmIdMap(:) - type(ESMF_VMId), pointer :: vmIdMap_ptr(:) + type(ESMF_VMId), pointer :: vmIdMap_ptr(:) - character(len=ESMF_MAXSTR) :: logmsg + type(ESMF_AttReconcileFlag) :: attreconflag - type(ESMF_InfoCache) :: info_cache - type(ESMF_InfoDescribe) :: idesc + type(ESMF_InfoCache) :: info_cache ! ------------------------------------------------------------------------- localrc = ESMF_RC_NOT_IMPL - nullify(vmIdMap_ptr) - if (meminfo) call ESMF_VMLogMemInfo ("entering ESMF_StateReconcile_driver") + ! Attributes must be reconciled to de-duplicate Field geometry proxies + attreconflag = ESMF_ATTRECONCILE_ON - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + if (meminfo) call ESMF_VMLogMemInfo("entering ESMF_StateReconcile_driver") - if (debug) then - do, i=0, npets-1 - if (i == mypet) then - call ESMF_StatePrint (state) - call ESMF_UtilIOUnitFlush (6) - end if - call ESMF_VMBarrier (vm) - end do - end if + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + +#if 0 + call ESMF_StateLog(state, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#endif ! ------------------------------------------------------------------------- - ! 0.) Interchange item counts between PETs. Set up counts/displacements + ! (0) Interchange item counts between PETs. Set up counts/displacements ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("0.) Interchange item counts", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(0) Interchange item counts", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 0 - Initialize item counts and siwrappers') - end if siwrap => null () nitems_buf => null () - call ESMF_ReconcileInitialize (state, vm, & - siwrap=siwrap, nitems_all=nitems_buf, rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + call ESMF_ReconcileInitialize (state, vm, siwrap=siwrap, & + nitems_all=nitems_buf, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("0.) Interchange item counts", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(0) Interchange item counts", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 0.) Interchange item counts") + if (meminfo) call ESMF_VMLogMemInfo ("after (0) Interchange item counts") ! ------------------------------------------------------------------------- - ! 1.) Each PET constructs its send arrays containing local Id + ! (1) Each PET constructs its send arrays containing local Id ! and VMId info for each object contained in the State. ! Note that element zero is reserved for the State itself. ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("1.) Construct send arrays", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(1) Construct send arrays", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 1.0 - Build send arrays') - end if ids_send => null () vmids_send => null () if (profile) then call ESMF_TraceRegionEnter("ESMF_ReconcileGetStateIDInfo", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - call ESMF_ReconcileGetStateIDInfo (state, siwrap, & - id= ids_send, & - vmid=vmids_send, & + call ESMF_ReconcileGetStateIDInfo (state, siwrap, & + id= ids_send, & + vmid=vmids_send, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_ReconcileGetStateIDInfo", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 1.1 - Translate VM identifiers to integers') - end if - ! Translate VmId objects to an integer representation to minimize memory ! usage. This is also beneficial for performance. if (profile) then call ESMF_TraceRegionEnter("ESMF_VMTranslateVMId", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMTranslateVMId(vm, vmIds=vmids_send, ids=vmintids_send, & vmIdMap=vmIdMap, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return + vmIdMap_ptr => vmIdMap if (profile) then call ESMF_TraceRegionExit("ESMF_VMTranslateVMId", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! VM integer ids should always start with 1 if (profile) then call ESMF_TraceRegionEnter("Check vmIntIds", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - do i=lbound(vmintids_send,1),ubound(vmintids_send,1) - if (vmintids_send(i) <= 0) then - if (ESMF_LogFoundError(ESMF_FAILURE, msg="A <= zero VM integer id was encountered", & - ESMF_CONTEXT, rcToReturn=rc)) return - end if - enddo + if (any(vmintids_send(:) <= 0)) then + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, & + msg="All integer VM ids must be greater than 0!", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif if (profile) then call ESMF_TraceRegionExit("Check vmIntIds", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - vmIdMap_ptr => vmIdMap - -#if 0 - ! Log a JSON State representation ----------------------------------------- +#ifdef RECONCILE_LOG_on + block + character(160):: msgStr + write(msgStr,*) "ESMF_StateReconcile_driver() size(vmids_send): ", & + size(vmids_send) + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "ESMF_StateReconcile_driver() size(vmIdMap): ", & + size(vmIdMap) + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "ESMF_StateReconcile_driver() size(vmintids_send): ", & + size(vmintids_send) + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif - call idesc%Initialize(createInfo=.true., addObjectInfo=.true., vmIdMap=vmIdMap_ptr, & - vmIdMapGeomExc=.true., rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call idesc%Update(state, "", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call ESMF_LogWrite("InfoDescribe AFTER VMId collection=", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call ESMF_LogWrite("state_json_after_vmid="//ESMF_InfoDump(idesc%info), rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - call idesc%Destroy(rc=localrc) + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionExit("(1) Construct send arrays", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("after (1) Construct send arrays") + +#ifdef UNIQUE_GEOM_INFO_TREAT_on +#ifdef RECONCILE_LOG_on + block + type(ESMF_InfoDescribe) :: idesc + ! Log a JSON State representation ----------------------------------------- + call idesc%Initialize(createInfo=.true., addObjectInfo=.true., & + vmIdMap=vmIdMap_ptr, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Update(state, "", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_LogWrite("state_json_after_vmid="// & + ESMF_InfoDump(idesc%info, indent=2), ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Destroy(rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + end block +#endif + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionEnter("(2) Set Field metadata for unique geometries", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + + ! Update Field metadata for unique geometries. This will traverse the state + ! hierarchy adding reconcile-specific attributes that will find unique + ! geometry objects and maintain sufficient information to re-establish + ! references once the objects have been communicated and deserialized. + ! ------------------------------------------------------------------------- + + call info_cache%Initialize(localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + + call info_cache%UpdateFields(state, vmIdMap=vmIdMap_ptr, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + + call info_cache%Destroy(localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionExit("(2) Set Field metadata for unique geometries", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("after (2) Update Field metadata") +#endif + +#ifdef RECONCILE_LOG_on + block + type(ESMF_InfoDescribe) :: idesc + ! Log a JSON State representation ----------------------------------------- + call idesc%Initialize(createInfo=.true., addObjectInfo=.true., & + vmIdMap=vmIdMap_ptr, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Update(state, "", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_LogWrite("state_json_after_set_field_meta="// & + ESMF_InfoDump(idesc%info, indent=2), ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call idesc%Destroy(rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + end block +#endif + +#if 1 + ! ------------------------------------------------------------------------ + ! This is the new (2024) Reconcile implementation with log(petCount) scaling + ! ------------------------------------------------------------------------ + if (profile) then + call ESMF_TraceRegionEnter("(2<) ESMF_ReconcileMultiCompCase", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------ + call ESMF_ReconcileMultiCompCase(state, vm=vm, vmIdMap=vmIdMap_ptr, & + attreconflag=attreconflag, siwrap=siwrap, vmintids_send=vmintids_send, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + ! ------------------------------------------------------------------------ + if (profile) then + call ESMF_TraceRegionExit("(2<) ESMF_ReconcileMultiCompCase", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------ +#else + ! ------------------------------------------------------------------------ + ! This is the old Reconcile implementation. It uses a brute force appraoch + ! using Alltoall() communication that scales with petCount^2. + ! Only left here in case we run into situations that are not covered by the + ! new Reconcile implementation. + ! ------------------------------------------------------------------------ + if (profile) then + call ESMF_TraceRegionEnter("(2<) ESMF_ReconcileBruteForce", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------ + call ESMF_ReconcileBruteForce(state, vm=vm, & + attreconflag=attreconflag, siwrap=siwrap, ids_send=ids_send, & + vmids_send=vmids_send, vmintids_send=vmintids_send, & + nitems_buf=nitems_buf, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + ! ------------------------------------------------------------------------ + if (profile) then + call ESMF_TraceRegionExit("(2<) ESMF_ReconcileBruteForce", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------ +#endif + + ! Clean up + + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionEnter("(X) Clean-up", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + + if (associated (ids_send)) then + deallocate (ids_send, vmids_send, stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end if + + call ESMF_VMIdDestroy(vmIdMap, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + deallocate (vmIdMap, stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + if (associated (siwrap)) then + deallocate (siwrap, stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end if + + deallocate (nitems_buf, stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionExit("(X) Clean-up", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("after (X) Clean-up") + + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionEnter("(X+1) Reconcile Zapped Proxies", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + + call ESMF_ReconcileZappedProxies(state, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionExit("(X+1) Reconcile Zapped Proxies", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("(X+1) Reconcile Zapped Proxies") + +#ifdef UNIQUE_GEOM_INFO_TREAT_on + if (profile) then + call ESMF_TraceRegionEnter("(X+2) Use Field metadata for unique geometries", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + + ! Traverse the State hierarchy and fix Field references to a shared geometry + call ESMF_InfoCacheReassembleFields(state, state, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! Traverse the state hierarchy and remove reconcile-specific attributes + call ESMF_InfoCacheReassembleFieldsFinalize(state, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + if (profile) then + call ESMF_TraceRegionExit("(X+2) Use Field metadata for unique geometries", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("(X+2) Use Field metadata for unique geometries") +#endif + + rc = ESMF_SUCCESS + + if (meminfo) call ESMF_VMLogMemInfo ("exiting ESMF_StateReconcile_driver") + + end subroutine ESMF_StateReconcile_driver + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_ReconcileMultiCompCase" +!BOPI +! !IROUTINE: ESMF_ReconcileMultiCompCase +! +! !INTERFACE: + subroutine ESMF_ReconcileMultiCompCase(state, vm, vmIdMap, attreconflag, & + siwrap, vmintids_send, rc) +! +! !ARGUMENTS: + type(ESMF_State), intent(inout) :: state + type(ESMF_VM), intent(in) :: vm + type(ESMF_VMId), pointer, intent(in) :: vmIdMap(:) + type(ESMF_AttReconcileFlag), intent(in) :: attreconflag + type(ESMF_StateItemWrap), pointer, intent(in) :: siwrap(:) + integer, pointer, intent(in) :: vmintids_send(:) + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! Handle the multi component reconciliation case. This is the general case +! supported by ESMF, where multiple components interact with the same State. +! +! The arguments are: +! \begin{description} +! \item[state] +! The {\tt ESMF\_State} to reconcile. +! \item[vm] +! The {\tt ESMF\_VM} object across which to reconcile {\tt state}. +! \item[vmIdMap] +! List of {\tt ESMF\_VMId} objects present in {\tt state}. +! \item[attreconflag] +! Flag indicating whether attributes need to be reconciled. +! \item[siwrap] +! List of local state items. +! \item[vmintids_send] +! The integer VMId for each local state item. +! \item[rc] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + + integer :: localrc, i + logical :: isFlag + type(ESMF_VMId) :: vmId + type(ESMF_VMId), pointer :: vmIdSingleComp + + logical, parameter :: profile = .false. + + rc = ESMF_SUCCESS + +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: stateName + call ESMF_StateGet(state, name=stateName, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_LogWrite("ESMF_ReconcileMultiCompCase() for State: "//trim(stateName), & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + call ESMF_VMGetVMId(vm, vmId=vmId, rc=localrc) ! vmId of current VM context + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + +#ifdef RECONCILE_LOG_on + call ESMF_VMIdLog(vmId, prefix="ESMF_ReconcileMultiCompCase() context: ", & + logMsgFlag=ESMF_LOGMSG_DEBUG, rc=localrc) ! vmId of current VM context + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#endif + + do i=1, size(vmidMap) + ! see if vmIdMap(i) vmKey is a superset of the current context vmKey + isFlag = ESMF_VMIdCompare(vmIdMap(i), vmId, keyOnly=.true., & + keySuper=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "ESMF_ReconcileMultiCompCase vmIdMap(", i, "): " + call ESMF_VMIdLog(vmIdMap(i), prefix=trim(msgStr), & + logMsgFlag=ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "ESMF_ReconcileMultiCompCase vmIdMap(", i, "): "// & + " is superset: ", isFlag + call ESMF_LogWrite(trim(msgStr), ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + if (.not.isFlag) then + ! objects with vmIdMap(i) are not defined on all PETs of the + ! reconciling context -> need to reconcile + vmIdSingleComp => vmIdMap(i) + if (profile) then + call ESMF_TraceRegionEnter("ESMF_ReconcileSingleCompCase", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + call ESMF_ReconcileSingleCompCase(state, vm=vm, vmId=vmIdSingleComp, & + vmIntId=i, attreconflag=attreconflag, siwrap=siwrap, & + vmintids_send=vmintids_send, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + if (profile) then + call ESMF_TraceRegionExit("ESMF_ReconcileSingleCompCase", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + endif + enddo + + end subroutine ESMF_ReconcileMultiCompCase + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_ReconcileSingleCompCase" +!BOPI +! !IROUTINE: ESMF_ReconcileSingleCompCase +! +! !INTERFACE: + subroutine ESMF_ReconcileSingleCompCase(state, vm, vmId, vmIntId, & + attreconflag, siwrap, vmintids_send, rc) +! +! !ARGUMENTS: + type(ESMF_State), intent(inout) :: state + type(ESMF_VM), intent(in) :: vm + type(ESMF_VMId), pointer, intent(in) :: vmId + integer, intent(in) :: vmIntId + type(ESMF_AttReconcileFlag), intent(in) :: attreconflag + type(ESMF_StateItemWrap), pointer, intent(in) :: siwrap(:) + integer, pointer, intent(in) :: vmintids_send(:) + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! Handle the single component reconciliation case. This is the expected +! situation under NUOPC rules. +! +! The arguments are: +! \begin{description} +! \item[state] +! The {\tt ESMF\_State} to reconcile. +! \item[vm] +! The {\tt ESMF\_VM} object across which to reconcile {\tt state}. +! \item[vmId] +! The {\tt ESMF\_VMId} of the objects in {\tt state} to reconcile. +! \item[vmIntId] +! The integer VMId of the objects in {\tt state} to reconcile. +! \item[attreconflag] +! Flag indicating whether attributes need to be reconciled. +! \item[siwrap] +! List of local state items. +! \item[vmintids_send] +! The integer VMId for each local state item. +! \item[rc] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + + integer :: localrc, i + integer :: petCount, localPet, rootVas, rootPet, vas + integer :: sizeBuffer(1), itemCount + logical :: isFlag + character, pointer :: buffer(:) + integer, allocatable :: itemList(:) + + rc = ESMF_SUCCESS + +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: stateName + call ESMF_StateGet(state, name=stateName, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_LogWrite("ESMF_ReconcileSingleCompCase() for State: "//trim(stateName), & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + call ESMF_VMGet(vm, petCount=petCount, localPet=localPet, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + call ESMF_VMIdGet(vmId, leftMostOnBit=rootVas, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! search for first PET in VM that executes on rootVas -> use as rootPet + do rootPet=0, petCount-1 + call ESMF_VMGet(vm, pet=rootPet, vas=vas, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + if (vas==rootVas) exit ! found + enddo + if (rootPet==petCount) then + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, & + msg="Could not find PET that executes on the identified VAS", & + ESMF_CONTEXT, rcToReturn=rc) + return + endif + +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "SingleCompCase rootVas=", rootVas + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "SingleCompCase rootPet=", rootPet + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "SingleCompCase size(siwrap)=", size(siwrap) + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + ! On rootPet: construct itemList and serialize + if (localPet==rootPet) then + ! itemList to hold indices into siwrap(:) of objects that need to be sent + allocate(itemList(ubound(vmintids_send,1))) ! max number of items possible + itemCount=0 + do i=1, size(itemList) + if (vmintids_send(i)==vmIntId) then + ! the integer VMId of object "i" matches that of handled single comp + itemCount = itemCount+1 + itemList(itemCount) = i + endif + enddo + ! serialize all items in itemList + call ESMF_ReconcileSerializeAll(state, itemList, itemCount, & + attreconflag, siwrap, buffer, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + sizeBuffer(1) = size(buffer) + ! cleanup + deallocate(itemList) + endif + + ! Broadcast buffer across all PETs + call ESMF_VMBroadcast(vm, sizeBuffer, count=1, rootPet=rootPet, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "SingleCompCase sizeBuffer=", sizeBuffer(1) + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + if (localPet/=rootPet) allocate(buffer(0:sizeBuffer(1)-1)) + + call ESMF_VMBroadcast(vm, buffer, count=sizeBuffer(1), rootPet=rootPet, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! determine if local PET is active under the vmId + call ESMF_VMIdGet(vmId, isLocalPetActive=isFlag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "SingleCompCase PET active isFlag=", isFlag + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + ! only inactive PETs deserialize the buffer received from rootPet + if (.not.isFlag) then + call ESMF_ReconcileDeserializeAll(state, vm, attreconflag, buffer, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + endif + + ! Get rid of buffer + deallocate(buffer) + + end subroutine ESMF_ReconcileSingleCompCase + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_ReconcileSerializeAll" +!BOPI +! !IROUTINE: ESMF_ReconcileSerializeAll +! +!TODO: This routine looks almost redundant to ESMF_StateSerialize()!!!!!!!!!! +! +! !INTERFACE: + subroutine ESMF_ReconcileSerializeAll(state, itemList, itemCount, & + attreconflag, siwrap, buffer, rc) +! +! !ARGUMENTS: + type(ESMF_State), intent(in) :: state + integer, intent(in) :: itemList(:) + integer, intent(in) :: itemCount + type(ESMF_AttReconcileFlag),intent(in) :: attreconflag + type(ESMF_StateItemWrap), intent(in) :: siwrap(:) + character, pointer, intent(out) :: buffer(:) + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! The arguments are: +! \begin{description} +! \item[state] +! The {\tt ESMF\_State} to collect information from. +! \item[itemList] +! List of indices into siwrap(:) for items that need to be serialized. +! \item[itemCount] +! Number of items in itemList. The incoming allocation might be larger. +! \item[attreconflag] +! Flag to indicate attribute reconciliation. +! \item[siwrap] +! List of local state items. +! \item[buffer] +! Buffer +! \item[rc] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + + integer :: localrc, i + integer :: memstat + type(ESMF_StateItem), pointer :: stateItem + type(ESMF_State) :: wrapper + integer :: itemType + integer :: itemSize + integer :: sizeBuffer, posBuffer + character, pointer :: fakeBuffer(:) ! when inquiring sizes + integer :: sizeFakeBuffer + type(ESMF_InquireFlag) :: inqflag + + ! Init to not implemented + localrc = ESMF_RC_NOT_IMPL + +#ifdef RECONCILE_LOG_on + call ESMF_LogWrite("ESMF_ReconcileSerializeAll()", & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#endif + + !!!!! Calculate buffer size !!!!! + + ! Start with number of items + sizeBuffer=ESMF_SIZEOF_DEFINT + + ! Allocate a fake buffer for passing in when asking for size + allocate(fakeBuffer(0:ESMF_SIZEOF_DEFINT-1)) + + ! Fake buffer size + sizeFakeBuffer=size(fakeBuffer) + + ! Set flag to only check size + inqflag = ESMF_INQUIREONLY + + ! Loop over items in itemList and determine buffer size needed + do i=1, itemCount + + ! Get one State Item + stateItem => siwrap(itemList(i))%si + + ! Get item type + itemType = stateitem%otype%ot + + ! Init itemSize to 0, so when we ask for the offset, + ! we are also getting the size + itemSize=0 + + ! Get size of item to serialize + select case (itemType) + case (ESMF_STATEITEM_FIELDBUNDLE%ot) + call ESMF_FieldBundleSerialize(stateItem%datap%fbp, & + fakeBuffer, sizeFakeBuffer, itemSize, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: itemName + character(160) :: msgStr + call ESMF_FieldBundleGet(stateItem%datap%fbp, name=itemName, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "Serialize FieldBundle '"//trim(itemName)//"' "//& + " size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + case (ESMF_STATEITEM_FIELD%ot) + call ESMF_FieldSerialize(stateItem%datap%fp, & + fakeBuffer, sizeFakeBuffer, itemSize, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: itemName + character(160) :: msgStr + call ESMF_FieldGet(stateItem%datap%fp, name=itemName, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "Serialize Field '"//trim(itemName)//"' "//& + " size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + case (ESMF_STATEITEM_ARRAY%ot) + call c_ESMC_ArraySerialize(stateitem%datap%ap, & + fakeBuffer, sizeFakeBuffer, itemSize, & + attreconflag, inqflag, & + localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: itemName + character(160) :: msgStr + call ESMF_ArrayGet(stateItem%datap%ap, name=itemName, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "Serialize Array '"//trim(itemName)//"' "//& + " size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + case (ESMF_STATEITEM_ARRAYBUNDLE%ot) + call c_ESMC_ArrayBundleSerialize(stateitem%datap%abp, & + fakeBuffer, sizeFakeBuffer, itemSize, & + attreconflag, inqflag, & + localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: itemName + character(160) :: msgStr + call ESMF_ArrayBundleGet(stateItem%datap%abp, name=itemName, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "Serialize ArrayBundle '"//trim(itemName)//"' "//& + " size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + case (ESMF_STATEITEM_STATE%ot) + wrapper%statep => stateitem%datap%spp + ESMF_INIT_SET_CREATED(wrapper) + call ESMF_StateSerialize(wrapper, & + fakeBuffer, sizeFakeBuffer, itemSize, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: itemName + character(160) :: msgStr + call ESMF_StateGet(wrapper, name=itemName, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + write(msgStr,*) "Serialize State '"//trim(itemName)//"' "//& + " size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + case (ESMF_STATEITEM_ROUTEHANDLE%ot) + ! Do nothing for RouteHandles. There is no need to reconcile them. + case default + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, & + msg="Unrecognized item type.", & + ESMF_CONTEXT, & + rcToReturn=rc) + return + end select + + ! Add item type's size + sizeBuffer = sizeBuffer + ESMF_SIZEOF_DEFINT + + ! Update buffer size by itemSize + sizeBuffer = sizeBuffer + itemSize + enddo + + ! Size of the State's Base itself + call ESMF_BaseSerialize(state%statep%base, fakeBuffer, itemSize, & + attreconflag=attreconflag, inquireflag=inqflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "Serialize top State Base itself, size=", itemSize + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + ! Update buffer size by itemSize + sizeBuffer = sizeBuffer + itemSize + + ! Get rid of fakeBuffer + deallocate(fakeBuffer) + + !!!!! Allocate buffer to serialize into !!!!! + allocate(buffer(0:sizeBuffer-1), stat=memstat) + if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + !!!!! Serialize information into buffer !!!!! + + ! Start position of buffer + posBuffer = 0 + + ! Put item count in buffer + buffer(posBuffer:posBuffer+ESMF_SIZEOF_DEFINT-1) = transfer ( & + source=itemCount, & + mold=buffer(0:ESMF_SIZEOF_DEFINT-1)) + posBuffer = posbuffer + ESMF_SIZEOF_DEFINT + + ! Set flag to actually serialize + inqflag = ESMF_NOINQUIRE + + ! Loop over items in itemList and add to buffer + do i=1, itemCount + + ! Get one State Item + stateItem => siwrap(itemList(i))%si + + ! Get item type + itemType = stateitem%otype%ot + + ! Add item type to buffer + buffer(posBuffer:posBuffer+ESMF_SIZEOF_DEFINT-1) = transfer (& + source=itemType, & + mold =buffer(0:ESMF_SIZEOF_DEFINT-1)) + posBuffer = posbuffer + ESMF_SIZEOF_DEFINT + + ! Add serialized items + select case (itemType) + case (ESMF_STATEITEM_FIELDBUNDLE%ot) + call ESMF_FieldBundleSerialize(stateItem%datap%fbp, & + buffer, sizeBuffer, posBuffer, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + case (ESMF_STATEITEM_FIELD%ot) + call ESMF_FieldSerialize(stateItem%datap%fp, & + buffer, sizeBuffer, posBuffer, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + case (ESMF_STATEITEM_ARRAY%ot) + call c_ESMC_ArraySerialize(stateitem%datap%ap, & + buffer, sizeBuffer, posBuffer, & + attreconflag, inqflag, & + localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + case (ESMF_STATEITEM_ARRAYBUNDLE%ot) + call c_ESMC_ArrayBundleSerialize(stateitem%datap%abp, & + buffer, sizeBuffer, posBuffer, & + attreconflag, inqflag, & + localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + case (ESMF_STATEITEM_STATE%ot) + wrapper%statep => stateitem%datap%spp + ESMF_INIT_SET_CREATED(wrapper) + call ESMF_StateSerialize(wrapper, & + buffer, sizeBuffer, posBuffer, & + attreconflag=attreconflag, inquireflag=inqflag, & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + case (ESMF_STATEITEM_ROUTEHANDLE%ot) + ! Do nothing for RouteHandles. There is no need to reconcile them. + case default + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, & + msg="Unrecognized item type.", & + ESMF_CONTEXT, & + rcToReturn=rc) + return + end select + enddo + + ! Serialize of the State's Base itself + call ESMF_BaseSerialize(state%statep%base, buffer, posBuffer, & + attreconflag=attreconflag, inquireflag=inqflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! Return success + rc = ESMF_SUCCESS + + end subroutine ESMF_ReconcileSerializeAll + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_ReconcileDeserializeAll" +!BOPI +! !IROUTINE: ESMF_ReconcileDeserializeAll + +! !INTERFACE: + subroutine ESMF_ReconcileDeserializeAll(state, vm, attreconflag, buffer, rc) +! +!TODO: This routine looks almost redundant to ESMF_StateDeserialize()!!!!!!!!!! +! +! !ARGUMENTS: + type (ESMF_State), intent(inout) :: state + type (ESMF_VM), intent(in) :: vm + type(ESMF_AttReconcileFlag),intent(in):: attreconflag + character, pointer,intent(in) :: buffer(:) + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! Builds proxy items for each of the items in the buffer. +! +! The arguments are: +! \begin{description} +! \item[state] +! {\tt ESMF\_State} to add proxy objects to. +! \item[vm] +! {\tt ESMF\_VM} to use. +! \item[attreconflag] +! Flag to indicate attribute reconciliation. +! \item[buffer] +! Buffer of serialized State objects (intent(in)) +! \item[rc] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + + integer :: localrc + + type(ESMF_FieldBundle) :: fieldbundle + type(ESMF_Field) :: field + type(ESMF_Array) :: array + type(ESMF_ArrayBundle) :: arraybundle + type(ESMF_State) :: substate + + integer :: stateitem_type + character(ESMF_MAXSTR) :: errstring + character(ESMF_MAXSTR) :: name + + integer :: item, numNewItems + integer :: itemType + integer :: sizeBuffer, posBuffer + +#ifdef RECONCILE_LOG_on + call ESMF_LogWrite("ESMF_ReconcileDeserializeAll()", & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#endif + + ! Set start position of buffer + posBuffer = 0 + + ! Get the number of items to add + numNewItems = transfer ( & + source=buffer(posBuffer:posBuffer+ESMF_SIZEOF_DEFINT-1), & + mold = numNewItems) + posBuffer = posbuffer + ESMF_SIZEOF_DEFINT + + ! Loop getting new items + do item=1, numNewItems + + ! Get item type + itemType = transfer ( & + source=buffer(posBuffer:posBuffer+ESMF_SIZEOF_DEFINT-1), & + mold = itemType) + posBuffer = posbuffer + ESMF_SIZEOF_DEFINT + + ! Get items + select case (itemType) + case (ESMF_STATEITEM_FIELDBUNDLE%ot) +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing FieldBundle, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block #endif + fieldbundle = ESMF_FieldBundleDeserialize(buffer, posBuffer, & + attreconflag=attreconflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 1.2 - Update Field metadata for unique geometries') - end if + call ESMF_StateAdd(state, fieldbundle, & + addflag=.true., proxyflag=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - ! Update Field metadata for unique geometries. This will traverse the state - ! hierarchy adding reconcile-specific attributes that will find unique - ! geometry objects and maintain sufficient information to re-establish - ! references once the objects have been communicated and deserialized. - ! ------------------------------------------------------------------------- - if (profile) then - call ESMF_TraceRegionEnter("info_cache for unique geometries", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + case (ESMF_STATEITEM_FIELD%ot) +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing Field, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + field = ESMF_FieldDeserialize(buffer, posBuffer, & + attreconflag=attreconflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + call ESMF_StateAdd(state, field, & + addflag=.true., proxyflag=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + case (ESMF_STATEITEM_ARRAY%ot) +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing Array, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + call c_ESMC_ArrayDeserialize(array, buffer, posBuffer, & + attreconflag, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! Set init code + call ESMF_ArraySetInitCreated(array, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + call ESMF_StateAdd(state, array, & + addflag=.true., proxyflag=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + case (ESMF_STATEITEM_ARRAYBUNDLE%ot) +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing ArrayBundle, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + call c_ESMC_ArrayBundleDeserialize(arraybundle, buffer, posBuffer, & + attreconflag, localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + ! Set init code + call ESMF_ArrayBundleSetInitCreated(arraybundle, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + call ESMF_StateAdd(state, arraybundle, & + addflag=.true., proxyflag=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + case (ESMF_STATEITEM_STATE%ot) +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing State, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + substate = ESMF_StateDeserialize(vm, buffer, posBuffer, & + attreconflag=attreconflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + call ESMF_StateAdd(state, substate, & + addflag=.true., proxyflag=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + + case (ESMF_STATEITEM_UNKNOWN%ot) + write (errstring, '(a,i0)') 'can''t deserialize unknown type: ', itemType + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, msg=errstring, & + ESMF_CONTEXT, rcToReturn=rc) + return + + case default + write (errstring, '(a,i0)') 'can''t deserialize unsupported type: ', itemType + call ESMF_LogSetError(ESMF_RC_INTNRL_INCONS, msg=errstring, & + ESMF_CONTEXT, rcToReturn=rc) + return + + end select + + enddo + + ! Deserialize the received State's Base itself and add to local top State + block + type(ESMF_Base) :: base_temp + type(ESMF_Info) :: base_info, base_temp_info + +#ifdef RECONCILE_LOG_on + block + character(160) :: msgStr + write(msgStr,*) "deserializing top State Base itself, pos =", posBuffer + call ESMF_LogWrite(msgStr, ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + base_temp = ESMF_BaseDeserializeWoGarbage(buffer, & + offset=posBuffer, attreconflag=attreconflag, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return - endif - call info_cache%Initialize(localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_BaseSetInitCreated(base_temp, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - call info_cache%UpdateFields(state, vmIdMap_ptr, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_InfoGetFromBase(base_temp, base_temp_info, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - call info_cache%Destroy(localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return + call ESMF_InfoGetFromBase(state%statep%base, base_info, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return - if (profile) then - call ESMF_TraceRegionExit("info_cache for unique geometries", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_InfoUpdate(base_info, base_temp_info, recursive=.true., & + rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return - endif - ! ------------------------------------------------------------------------- - if (profile) then - call ESMF_TraceRegionExit("1.) Construct send arrays", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_BaseDestroyWoGarbage(base_temp, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return - endif - ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 1.) Construct send arrays") + end block + + ! Return success + rc = ESMF_SUCCESS + + end subroutine ESMF_ReconcileDeserializeAll + +!------------------------------------------------------------------------------ +#undef ESMF_METHOD +#define ESMF_METHOD "ESMF_ReconcileBruteForce" +!BOPI +! !IROUTINE: ESMF_ReconcileBruteForce +! +! !INTERFACE: + subroutine ESMF_ReconcileBruteForce(state, vm, attreconflag, siwrap, & + ids_send, vmids_send, vmintids_send, nitems_buf, rc) +! +! !ARGUMENTS: + type(ESMF_State), intent(inout) :: state + type(ESMF_VM), intent(in) :: vm + type(ESMF_AttReconcileFlag), intent(in) :: attreconflag + type(ESMF_StateItemWrap), pointer, intent(in) :: siwrap(:) + integer, pointer, intent(in) :: ids_send(:) + type(ESMF_VMId), pointer, intent(in) :: vmids_send(:) + integer, pointer, intent(in) :: vmintids_send(:) + integer, pointer, intent(in) :: nitems_buf(:) + integer, intent(out) :: rc +! +! !DESCRIPTION: +! +! Brute force reconciliation across all of the PETs using Alltoall +! communications. This should be able to reconcile any conceivable situation. +! +! The arguments are: +! \begin{description} +! \item[state] +! The {\tt ESMF\_State} to reconcile. +! \item[vm] +! The {\tt ESMF\_VM} object across which the state is reconciled. +! \item[attreconflag] +! Flag indicating whether attributes need to be reconciled. +! \item[siwrap] +! List of local state items. +! \item[rc] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} +!EOPI + + integer :: localrc + integer :: memstat + integer :: localPet, petCount + integer :: i + + type(ESMF_ReconcileIDInfo), allocatable :: id_info(:) + type(ESMF_CharPtr), allocatable :: items_recv(:) + logical, pointer :: recvd_needs_matrix(:,:) + character, pointer :: buffer_recv(:) + + logical, parameter :: meminfo = .false. + logical, parameter :: profile = .false. + + rc = ESMF_SUCCESS + +#ifdef RECONCILE_LOG_on + block + character(ESMF_MAXSTR) :: stateName + call ESMF_StateGet(state, name=stateName, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + call ESMF_LogWrite("ESMF_ReconcileBruteForce() for State: "//trim(stateName), & + ESMF_LOGMSG_DEBUG, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return + end block +#endif + + call ESMF_VMGet(vm, petCount=petCount, localPet=localPet, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, & + rcToReturn=rc)) return ! ------------------------------------------------------------------------- - ! 2.) All PETs send their items Ids and VMIds to all the other PETs, + ! (3) All PETs send their items Ids and VMIds to all the other PETs, ! then create local directories of which PETs have which ids/VMIds. ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("2.) Send arrays exchange", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(3) Send arrays exchange", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 2 - Exchange Ids/VMIds') - end if - allocate (id_info(0:npets-1), stat=memstat) + allocate (id_info(0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -557,120 +2034,94 @@ subroutine ESMF_StateReconcile_driver (state, vm, attreconflag, rc) vmid=vmintids_send, & id_info=id_info, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("2.) Send arrays exchange", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(3) Send arrays exchange", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 2.) Send arrays exchange") + if (meminfo) call ESMF_VMLogMemInfo ("after (3) Send arrays exchange") ! At this point, each PET knows what items can be found on all of ! the other PETs. The id_info array has global PET info in it. ! ------------------------------------------------------------------------- - ! 3.) Construct needs list. Receiving PETs compare IDs and VMIds + ! (4) Construct needs list. Receiving PETs compare IDs and VMIds ! in their send ID/VMId array with what was received from the ! currently-being-processed sending PET. Note that multiple PETs ! can 'offer' an item. ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("3.) Construct needs list", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(4) Construct needs list", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 3 - Compare and create needs arrays') - end if call ESMF_ReconcileCompareNeeds (vm, & id= ids_send, & vmid=vmintids_send, & id_info=id_info, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("3.) Construct needs list", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(4) Construct needs list", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 3.) Construct needs list") + if (meminfo) call ESMF_VMLogMemInfo ("after (4) Construct needs list") ! ------------------------------------------------------------------------- - ! 4.) Communicate needs back to the offering PETs. + ! (5) Communicate needs back to the offering PETs. ! Send to each offering PET a buffer containing 'needed' array ! specifying which items are needed. The array is the same size as, ! and corresponds to, the ID and VMId arrays that were previously ! offered. ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("4.) Communicate needs back", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(5) Communicate needs back", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 4 - Exchange needs') - end if recvd_needs_matrix => null () call ESMF_ReconcileExchgNeeds (vm, & id_info=id_info, & recv_needs=recvd_needs_matrix, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("4.) Communicate needs back", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(5) Communicate needs back", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 4.) Communicate needs back") + if (meminfo) call ESMF_VMLogMemInfo ("after (5) Communicate needs back") ! ------------------------------------------------------------------------- - ! 5.) Serialize needed objects + ! (6) Serialize needed objects ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("5.) Serialize needed objects", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(6) Serialize needed objects", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 5 - Serialize needs', ask=.false.) - end if call ESMF_ReconcileSerialize (state, vm, siwrap, & needs_list=recvd_needs_matrix, & attreconflag=attreconflag, & id_info=id_info, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -680,29 +2131,23 @@ subroutine ESMF_StateReconcile_driver (state, vm, attreconflag, rc) rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("5.) Serialize needed objects", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(6) Serialize needed objects", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 5.) Serialize needed objects") + if (meminfo) call ESMF_VMLogMemInfo ("after (6) Serialize needed objects") ! ------------------------------------------------------------------------- - ! 6.) Send/receive serialized objects to whoever needed them + ! (7) Send/receive serialized objects to whoever needed them ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("6.) Send/receive serialized objects", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(7) Send/receive serialized objects", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 6 - Exchange serialized objects') - end if - allocate (items_recv(0:npets-1), stat=memstat) + allocate (items_recv(0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -712,184 +2157,107 @@ subroutine ESMF_StateReconcile_driver (state, vm, attreconflag, rc) recv_items=items_recv, & ! %cptr aliased to portions of buffer_recv recv_buffer=buffer_recv, & rc=localrc) - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("6.) Send/receive serialized objects", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - endif - ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 6.) Send/receive serialized objects") - - ! ------------------------------------------------------------------------- - ! 7.) Deserialize received objects and create proxies (recurse on - ! nested States as needed) - ! ------------------------------------------------------------------------- - if (profile) then - call ESMF_TraceRegionEnter("7.) Deserialize received objects and create proxies", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(7) Send/receive serialized objects", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - ! ------------------------------------------------------------------------- - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 7 - Deserialize needs') - end if - do, i=0, npets-1 - if (debug) then - write (*, '(a,i0,a,i0,a,l1)') & - ' PET ', mypet, ': Deserializing from PET ', i, & - ', associated (items_recv(i)%cptr) =', associated (items_recv(i)%cptr) - end if - if (associated (items_recv(i)%cptr)) then - if (debug) then - print *, ' items_recv(', lbound (items_recv(i)%cptr), & - ':', ubound (items_recv(i)%cptr), ')' - end if - call ESMF_ReconcileDeserialize (state, vm, & - obj_buffer=items_recv(i)%cptr, & - attreconflag=attreconflag, & - rc=localrc) - else - localrc = ESMF_SUCCESS - end if - if (debug) & - localrc = ESMF_ReconcileAllRC (vm, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - end do - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 7 - Complete') - end if - -! Clean up - - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': At clean up.', ask=.false.) - call ESMF_VMBarrier (vm) - end if - - if (associated (buffer_recv)) then - deallocate (buffer_recv, stat=memstat) - if (ESMF_LogFoundDeallocError (memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - end if - - if (associated (ids_send)) then - deallocate (ids_send, vmids_send, stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - end if - - do, i=0, ubound (id_info, 1) - if (associated (id_info(i)%id)) then - deallocate (id_info(i)%id, id_info(i)%vmid, id_info(i)%needed, & - stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - end if - if (associated (id_info(i)%item_buffer)) then - deallocate (id_info(i)%item_buffer, & - stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - end if - end do - - call ESMF_VMIdDestroy(vmIdMap, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return - - deallocate (vmIdMap, stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - - deallocate (id_info, stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + ! ------------------------------------------------------------------------- + if (meminfo) call ESMF_VMLogMemInfo ("after (7) Send/receive serialized objects") + + ! ------------------------------------------------------------------------- + ! (8) Deserialize received objects and create proxies (recurse on + ! nested States as needed) + ! ------------------------------------------------------------------------- + if (profile) then + call ESMF_TraceRegionEnter("(8) Deserialize received objects and create proxies", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return + endif + ! ------------------------------------------------------------------------- - if (associated (siwrap)) then - deallocate (siwrap, stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & + do, i=0, petCount-1 + if (associated (items_recv(i)%cptr)) then + call ESMF_ReconcileDeserialize (state, vm, & + obj_buffer=items_recv(i)%cptr, & + attreconflag=attreconflag, & + rc=localrc) + else + localrc = ESMF_SUCCESS + end if + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - end if - - deallocate (nitems_buf, stat=memstat) - if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + end do - call ESMF_ReconcileZappedProxies (state, localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("7.) Deserialize received objects and create proxies", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(8) Deserialize received objects and create proxies", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 7.) Deserialize received objects and create proxies") + if (meminfo) call ESMF_VMLogMemInfo ("after (8) Deserialize received objects and create proxies") ! ------------------------------------------------------------------------- - ! 8.) Attributes on the State itself + ! (9) Attributes on the State itself ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionEnter("8.) Attributes on the State itself", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionEnter("(9) Attributes on the State itself", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- if (attreconflag == ESMF_ATTRECONCILE_ON) then - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 8 - Exchange Base Attributes', ask=.false.) - call ESMF_VMBarrier (vm) - end if call ESMF_ReconcileExchgAttributes (state, vm, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return end if - state%statep%reconcileneededflag = .false. ! ------------------------------------------------------------------------- if (profile) then - call ESMF_TraceRegionExit("8.) Attributes on the State itself", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + call ESMF_TraceRegionExit("(9) Attributes on the State itself", rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! ------------------------------------------------------------------------- - if (meminfo) call ESMF_VMLogMemInfo ("after 8.) Attributes on the State itself") + if (meminfo) call ESMF_VMLogMemInfo ("after (9) Attributes on the State itself") - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // ': Complete!') - call ESMF_VMBarrier (vm) + ! Clean up + + if (associated (buffer_recv)) then + deallocate (buffer_recv, stat=memstat) + if (ESMF_LogFoundDeallocError (memstat, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, & + rcToReturn=rc)) return end if - rc = ESMF_SUCCESS - if (meminfo) call ESMF_VMLogMemInfo ("exiting ESMF_StateReconcile_driver") + do, i=0, ubound (id_info, 1) + if (associated (id_info(i)%id)) then + deallocate (id_info(i)%id, id_info(i)%vmid, id_info(i)%needed, & + stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, & + rcToReturn=rc)) return + end if + if (associated (id_info(i)%item_buffer)) then + deallocate (id_info(i)%item_buffer, & + stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, & + rcToReturn=rc)) return + end if + end do + deallocate (id_info, stat=memstat) + if (ESMF_LogFoundDeallocError(memstat, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, & + rcToReturn=rc)) return - end subroutine ESMF_StateReconcile_driver + end subroutine ESMF_ReconcileBruteForce !------------------------------------------------------------------------------ #undef ESMF_METHOD @@ -936,7 +2304,7 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) integer :: localrc integer :: memstat - integer :: mypet, npets + integer :: localPet, petCount integer :: i, j, k logical :: needed character(ESMF_MAXSTR) :: msgstring @@ -955,7 +2323,7 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) ! Sanity checks - call ESMF_VMGet (vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet (vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError (localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -966,14 +2334,14 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) rcToReturn=rc)) return end if - if (size (id_info) /= npets) then - if (ESMF_LogFoundError (ESMF_RC_INTNRL_INCONS, msg='size (id_info) /= npets', & + if (size (id_info) /= petCount) then + if (ESMF_LogFoundError (ESMF_RC_INTNRL_INCONS, msg='size (id_info) /= petCount', & ESMF_CONTEXT, & rcToReturn=rc)) return end if if (debug) then - print *, ' PET ', mypet, ': id/vmid sizes =', size (id), size (vmid) + print *, ' PET ', localPet, ': id/vmid sizes =', size (id), size (vmid) end if ! Check other PETs contents to see if there are objects this PET needs @@ -983,19 +2351,17 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) needs_list => null () -! call ESMF_ReconcileDebugPrint (ESMF_METHOD // & -! ': computing id_info%needed') - do, i=0, npets-1 + do, i=0, petCount-1 id_info(i)%needed = .false. - if (i == mypet) cycle + if (i == localPet) cycle do, j = 1, ubound (id_info(i)%id, 1) needed = .true. -! print *, ' PET', mypet, ': setting needed to .true.', j, k +! print *, ' PET', localPet, ': setting needed to .true.', j, k do, k = 1, ubound (id, 1) if (id(k) == id_info(i)%id(j)) then if (vmid(k) == id_info(i)%vmid(j)) then -! print *, ' PET', mypet, ': setting needed to .false.', j, k +! print *, ' PET', localPet, ': setting needed to .false.', j, k needed = .false. exit end if @@ -1003,7 +2369,7 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) end do if (needed) then -! print *, ' PET', mypet, ': calling insert, associated =', associated (needs_list) +! print *, ' PET', localPet, ': calling insert, associated =', associated (needs_list) call needs_list_insert (needs_list, pet_1=i, & id_1=id_info(i)%id(j), & vmid_1=id_info(i)%vmid(j), & @@ -1034,8 +2400,8 @@ subroutine ESMF_ReconcileCompareNeeds (vm, id, vmid, id_info, rc) if (debug) then - do, j=0, npets-1 - if (j == myPet) then + do, j=0, petCount-1 + if (j == localPet) then do, i=0, ubound (id_info, 1) write (msgstring,'(2a,i0,a,i0,a)') ESMF_METHOD, & ': pet', j, ': id_info%needed(',i,') =' @@ -1072,7 +2438,7 @@ recursive subroutine needs_list_deallocate (needs_list_1, rc_1) rcToReturn=rc_1)) return if (associated (needs_list_1%next)) then -! print *, 'pet', mypet, ': needs_list_deallocate: recursing' +! print *, 'pet', localPet, ': needs_list_deallocate: recursing' call needs_list_deallocate (needs_list_1%next, rc_1=localrc_1) if (ESMF_LogFoundError (localrc_1, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & @@ -1109,14 +2475,14 @@ subroutine needs_list_insert (needs_list_1, pet_1, & rc_1 = ESMF_SUCCESS if (.not. associated (needs_list_1)) then -! print *, 'pet', mypet, ': needs_list_insert: creating needs_list_1' +! print *, 'pet', localPet, ': needs_list_insert: creating needs_list_1' allocate (needs_list_1, stat=memstat_1) if (ESMF_LogFoundAllocError (memstat_1, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc_1)) return allocate ( & - needs_list_1%offerers(0:npets-1), & - needs_list_1%position(0:npets-1), & + needs_list_1%offerers(0:petCount-1), & + needs_list_1%position(0:petCount-1), & stat=memstat_1) if (ESMF_LogFoundAllocError (memstat_1, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & @@ -1135,28 +2501,28 @@ subroutine needs_list_insert (needs_list_1, pet_1, & do if (id_1 == needslist_p%id .and. & vmid_1 == needslist_p%vmid) then -! print *, 'pet', mypet, ': needs_list_insert: marking match and returing' +! print *, 'pet', localPet, ': needs_list_insert: marking match and returing' needslist_p%offerers(pet_1) = .true. needslist_p%position(pet_1) = position return end if if (.not. associated (needslist_p%next)) exit -! print *, 'pet', mypet, ': needs_list_insert: advancing to next entry' +! print *, 'pet', localPet, ': needs_list_insert: advancing to next entry' needslist_p => needslist_p%next end do ! At the end of the list, but no matches found. So add new entry. -! print *, 'pet', mypet, ': needs_list_insert: creating needslist_p entry' +! print *, 'pet', localPet, ': needs_list_insert: creating needslist_p entry' allocate (needslist_p%next, stat=memstat_1) if (ESMF_LogFoundAllocError (memstat_1, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc_1)) return needslist_p => needslist_p%next allocate ( & - needslist_p%offerers(0:npets-1), & - needslist_p%position(0:npets-1), & + needslist_p%offerers(0:petCount-1), & + needslist_p%position(0:petCount-1), & stat=memstat_1) if (ESMF_LogFoundAllocError (memstat_1, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & @@ -1179,18 +2545,18 @@ subroutine needs_list_print (needs_list_1) call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) call ESMF_VMBarrier (vm) - do, i=0, npets-1 - if (i == mypet) then + do, i=0, petCount-1 + if (i == localPet) then if (associated (needs_list_1)) then needs_list_next => needs_list_1 do - print *, 'PET', mypet, ': offerers =', needs_list_next%offerers, & + print *, 'PET', localPet, ': offerers =', needs_list_next%offerers, & ', position =', needs_list_next%position if (.not. associated (needs_list_next%next)) exit needs_list_next => needs_list_next%next end do else - print *, 'PET', mypet, ': Needs list empty' + print *, 'PET', localPet, ': Needs list empty' end if call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) end if @@ -1210,7 +2576,7 @@ subroutine needs_list_select (needs_list_1, id_info_1) integer :: i, idx integer :: offer_first, offer_last logical :: found_first - real :: rand_nos(0:npets-1) + real :: rand_nos(0:petCount-1) needslist_p => needs_list_1 @@ -1224,9 +2590,9 @@ subroutine needs_list_select (needs_list_1, id_info_1) if (.not. associated (needslist_p)) exit ! Find first and last offering PETs offer_first = 0 - offer_last = npets-1 + offer_last = petCount-1 found_first = .false. - do, i=0, npets-1 + do, i=0, petCount-1 if (needslist_p%offerers(i)) then if (.not. found_first) then offer_first = i @@ -1237,15 +2603,15 @@ subroutine needs_list_select (needs_list_1, id_info_1) end do ! Use a hash to select a starting index between the bounds - idx = int (rand_nos(myPet) * (offer_last-offer_first) + offer_first) -! print *, 'pet', mypet, ': offer_first, offer_last, starting idx =', offer_first, offer_last, idx - do, i=0, npets-1 + idx = int (rand_nos(localPet) * (offer_last-offer_first) + offer_first) +! print *, 'pet', localPet, ': offer_first, offer_last, starting idx =', offer_first, offer_last, idx + do, i=0, petCount-1 if (needslist_p%offerers(idx)) then -! print *, 'pet', mypet, ': needs_list_select: setting position', idx, ' to true' +! print *, 'pet', localPet, ': needs_list_select: setting position', idx, ' to true' id_info_1(idx)%needed(needslist_p%position(idx)) = .true. exit end if - idx = mod (idx+1, npets) + idx = mod (idx+1, petCount) end do needslist_p => needslist_p%next end do @@ -1254,9 +2620,9 @@ subroutine needs_list_select (needs_list_1, id_info_1) ! Simply select the first offering PET. do if (.not. associated (needslist_p)) exit - do, i=0, npets-1 + do, i=0, petCount-1 if (needslist_p%offerers(i)) then -! print *, 'pet', mypet, ': needs_list_select: setting position', i, ' to true' +! print *, 'pet', localPet, ': needs_list_select: setting position', i, ' to true' id_info_1(i)%needed(needslist_p%position(i)) = .true. exit end if @@ -1319,29 +2685,22 @@ subroutine ESMF_ReconcileDeserialize (state, vm, obj_buffer, attreconflag, rc) integer :: i, idx integer :: stateitem_type character(ESMF_MAXSTR) :: errstring - logical :: found - integer :: mypet + integer :: localPet logical, parameter :: debug = .false. - logical, parameter :: trace = .false. ! Sanity checks - call ESMF_VMGet (vm, localPet=mypet, rc=localrc) + call ESMF_VMGet (vm, localPet=localPet, rc=localrc) if (ESMF_LogFoundError (localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - if (trace) then - print *, ' pet', mypet, & - ': *** Step 0 - sanity checks' - end if - needs_count = transfer ( & source=obj_buffer(0:ESMF_SIZEOF_DEFINT-1), & mold =needs_count) if (debug) then - print *, ESMF_METHOD, ': PET', mypet, ', needs_count =', needs_count + print *, ESMF_METHOD, ': PET', localPet, ', needs_count =', needs_count end if ! ------------------------------------------------------------------------- @@ -1381,10 +2740,6 @@ subroutine ESMF_ReconcileDeserialize (state, vm, obj_buffer, attreconflag, rc) end do ! Deserialize items - if (trace) then - print *, ' pet', mypet, & - ': *** Step 1 - main deserialization loop' - end if buffer_offset = ESMF_SIZEOF_DEFINT * (2 + 2*needs_count) ! Skip past count, pad, and offset/type tables do, i=1, needs_count @@ -1438,7 +2793,7 @@ subroutine ESMF_ReconcileDeserialize (state, vm, obj_buffer, attreconflag, rc) case (ESMF_STATEITEM_ARRAY%ot) if (debug) then - print *, " PET", mypet, & + print *, " PET", localPet, & ": deserializing Array, offset =", buffer_offset end if call c_ESMC_ArrayDeserialize(array, obj_buffer, buffer_offset, & @@ -1534,11 +2889,6 @@ subroutine ESMF_ReconcileDeserialize (state, vm, obj_buffer, attreconflag, rc) end do ! needs_count - if (trace) then - print *, ' pet', mypet, & - ': *** Deserialization complete' - end if - rc = ESMF_SUCCESS end subroutine ESMF_ReconcileDeserialize @@ -1581,7 +2931,7 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) integer :: buffer_size(1) integer :: i, pass - integer :: mypet, npets + integer :: localPet, petCount integer :: offset type(ESMF_InquireFlag) :: inqflag type(ESMF_Info) :: base_info, base_temp_info @@ -1591,7 +2941,7 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) rc = ESMF_RC_NOT_IMPL - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -1601,8 +2951,7 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) ! Serialize the Base attributes if (profile) then call ESMF_TraceRegionEnter("Serialize the Base attributes", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif do, pass = 1, 2 @@ -1641,19 +2990,17 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) end do ! pass if (profile) then call ESMF_TraceRegionExit("Serialize the Base attributes", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! Exchange serialized buffer sizes if (profile) then call ESMF_TraceRegionEnter("Exchange serialized buffer sizes", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - allocate (recv_sizes(0:npets-1), stat=memstat) + allocate (recv_sizes(0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -1661,8 +3008,7 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllGather", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMAllGather (vm, & @@ -1673,50 +3019,46 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllGather", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif if (profile) then call ESMF_TraceRegionExit("Exchange serialized buffer sizes", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif if (debug) then print *, ESMF_METHOD, & - ': PET', mypet, ': Base sizes recved are:', recv_sizes + ': PET', localPet, ': Base sizes recved are:', recv_sizes end if ! Exchange serialized buffers if (profile) then call ESMF_TraceRegionEnter("Exchange serialized buffers", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif allocate ( & buffer_recv(0:sum (recv_sizes)-1), & - recv_offsets(0:npets-1), stat=memstat) + recv_offsets(0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return recv_offsets(0) = 0 - do, i=1, npets-1 + do, i=1, petCount-1 recv_offsets(i) = recv_offsets(i-1)+recv_sizes(i-1) end do if (debug) then print *, ESMF_METHOD, & - ': PET', mypet, ': Base offsets recved are:', recv_offsets + ': PET', localPet, ': Base offsets recved are:', recv_offsets end if if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllGatherV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMAllGatherV (vm, & @@ -1728,27 +3070,24 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllGatherV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif if (profile) then call ESMF_TraceRegionExit("Exchange serialized buffers", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! Update local Base if (profile) then call ESMF_TraceRegionEnter("Update local Base", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif - do, i=0, npets-1 - if (i /= mypet) then + do, i=0, petCount-1 + if (i /= localPet) then base_temp = ESMF_BaseDeserializeWoGarbage(buffer_recv, & offset=recv_offsets(i), attreconflag=ESMF_ATTRECONCILE_ON, rc=localrc) if (ESMF_LogFoundError(localrc, & @@ -1784,8 +3123,7 @@ subroutine ESMF_ReconcileExchgAttributes (state, vm, rc) end do if (profile) then call ESMF_TraceRegionExit("Update local Base", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif @@ -1843,7 +3181,7 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & !EOPI integer :: localrc - integer :: mypet, npets + integer :: localPet, petCount integer :: send_pet integer, allocatable :: counts_buf_send(:), counts_buf_recv(:) integer, allocatable :: displs_buf_send(:), displs_buf_recv(:) @@ -1860,7 +3198,7 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & if (meminfo) call ESMF_VMLogMemInfo ('entering ESMF_ReconcileExchgIDInfo') - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -1873,13 +3211,13 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & rcToReturn=rc)) return end if - if (size (id_info) /= npets) then + if (size (id_info) /= petCount) then if (ESMF_LogFoundError(ESMF_RC_ARG_BAD, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return end if - if (size (nitems_buf) /= npets) then + if (size (nitems_buf) /= petCount) then if (ESMF_LogFoundError(ESMF_RC_ARG_BAD, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -1899,7 +3237,7 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & ! Broadcast each Id to all the other PETs. Since the number of items per ! PET can vary, use AllToAllV. - do, i=0, npets-1 + do, i=0, petCount-1 allocate ( & id_info(i)% id (0:nitems_buf(i)), & id_info(i)%vmid (0:nitems_buf(i)), & @@ -1916,30 +3254,30 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & ! First, compute counts and displacements for AllToAllV calls. Note that ! sending displacements are always zero, since each PET is broadcasting - allocate (counts_buf_send(0:npets-1), displs_buf_send(0:npets-1), & - counts_buf_recv(0:npets-1), displs_buf_recv(0:npets-1), & + allocate (counts_buf_send(0:petCount-1), displs_buf_send(0:petCount-1), & + counts_buf_recv(0:petCount-1), displs_buf_recv(0:petCount-1), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return ! Add 1 to take the State itself (element 0) into account - counts_buf_send = nitems_buf(mypet) + 1 + counts_buf_send = nitems_buf(localPet) + 1 counts_buf_recv = nitems_buf + 1 displs_buf_send = 0 ! Always zero, since local PET is broadcasting displs_buf_recv(0) = 0 - do, i=1, npets-1 + do, i=1, petCount-1 displs_buf_recv(i) = displs_buf_recv(i-1) + counts_buf_recv(i-1) end do if (debug) then - do, i=0, npets-1 - if (i == mypet) then - write (6,*) ESMF_METHOD, ': pet', mypet, ': counts_buf_send =', counts_buf_send - write (6,*) ESMF_METHOD, ': pet', mypet, ': displs_buf_send =', displs_buf_send - write (6,*) ESMF_METHOD, ': pet', mypet, ': counts_buf_recv =', counts_buf_recv - write (6,*) ESMF_METHOD, ': pet', mypet, ': displs_buf_recv =', displs_buf_recv + do, i=0, petCount-1 + if (i == localPet) then + write (6,*) ESMF_METHOD, ': pet', localPet, ': counts_buf_send =', counts_buf_send + write (6,*) ESMF_METHOD, ': pet', localPet, ': displs_buf_send =', displs_buf_send + write (6,*) ESMF_METHOD, ': pet', localPet, ': counts_buf_recv =', counts_buf_recv + write (6,*) ESMF_METHOD, ': pet', localPet, ': displs_buf_recv =', displs_buf_recv call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) end if call ESMF_VMBarrier (vm) @@ -1958,10 +3296,6 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & ESMF_CONTEXT, & rcToReturn=rc)) return - if (debug) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': Exchanging Ids (using ESMF_VMAllGatherV)') - end if call ESMF_VMAllGatherV (vm, & sendData=id , sendCount =size (id), & recvData=id_recv, recvCounts=counts_buf_recv, recvOffsets=displs_buf_recv, & @@ -1973,7 +3307,7 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & if (meminfo) call ESMF_VMLogMemInfo ('tp ESMF_ReconcileExchgIDInfo - after VMAllGatherV for Base Ids') ipos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 id_info(i)%id = id_recv(ipos:ipos+counts_buf_recv(i)-1) ipos = ipos + counts_buf_recv(i) end do @@ -1995,14 +3329,14 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & if (meminfo) call ESMF_VMLogMemInfo ('tp ESMF_ReconcileExchgIDInfo - after VMAllGatherV for Base Ids') ipos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 id_info(i)%vmid = vm_intids_recv(ipos:ipos+counts_buf_recv(i)-1) ipos = ipos + counts_buf_recv(i) end do ! if (debug) then -! do, j=0, npets-1 -! if (j == myPet) then +! do, j=0, petCount-1 +! if (j == localPet) then ! do, i=0, ubound (id_info, 1) ! write (6,*) 'pet', j, ': id_info%id =', id_info(i)%id ! call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) @@ -2016,11 +3350,6 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & ! It will probably not be used, but AllToAll calls are notoriously problematic ! with some MPI implementations. #if 0 - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': Exchanging VMIds (using ESMF_VMAllGatherVMId)') - end if - allocate (vmid_recv(0:sum (counts_buf_recv+1)-1), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & @@ -2040,7 +3369,7 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & rcToReturn=rc)) return ipos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 call ESMF_VMIdCopy ( & dest =id_info(i)%vmid, & source=vmid_recv(ipos:ipos+counts_buf_recv(i)-1), & @@ -2052,28 +3381,15 @@ subroutine ESMF_ReconcileExchgIDInfo (vm, & end do !else ! VMBcastVMId version - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': Exchanging VMIds (using ESMF_VMBcastVMId)') - end if - if (debug) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': VMIdCopying...') - end if call ESMF_VMIdCopy ( & - dest=id_info(mypet)%vmid, & + dest=id_info(localPet)%vmid, & source=vmid, & rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - do, send_pet=0, npets-1 - if (debug) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': broadcasting VMId, using rootPet ' // iToS (send_pet), & - ask=.false.) - end if + do, send_pet=0, petCount-1 call ESMF_VMBcastVMId (vm, & bcstData=id_info(send_pet)%vmid, & count=size (id_info(send_pet)%vmid), & @@ -2126,7 +3442,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) integer :: localrc integer :: memstat - integer :: mypet, npets + integer :: localPet, petCount integer :: i integer :: itemcount, itemcount_global, itemcount_local integer :: offset_pos @@ -2149,21 +3465,21 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) localrc = ESMF_RC_NOT_IMPL - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - if (size (id_info) /= npets) then + if (size (id_info) /= petCount) then if (ESMF_LogFoundError(ESMF_RC_INTNRL_INCONS, & - msg="size (id_info) /= npets", & + msg="size (id_info) /= petCount", & ESMF_CONTEXT, & rcToReturn=rc)) return end if - if (size (recv_items) /= npets) then + if (size (recv_items) /= petCount) then if (ESMF_LogFoundError(ESMF_RC_INTNRL_INCONS, & - msg="size (recv_items) /= npets", & + msg="size (recv_items) /= petCount", & ESMF_CONTEXT, & rcToReturn=rc)) return end if @@ -2171,14 +3487,14 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) ! Set up send counts, offsets, and buffer. allocate ( & - counts_send (0:npets-1), & - offsets_send(0:npets-1), & + counts_send (0:petCount-1), & + offsets_send(0:petCount-1), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - do, i=0, npets-1 + do, i=0, petCount-1 if (associated (id_info(i)%item_buffer)) then counts_send(i) = size (id_info(i)%item_buffer) else @@ -2186,7 +3502,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) end if end do - itemcount_local = counts_send(mypet) + itemcount_local = counts_send(localPet) itemcount_global = sum (counts_send) allocate ( & @@ -2197,7 +3513,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) rcToReturn=rc)) return offset_pos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 itemcount = counts_send(i) offsets_send(i) = offset_pos if (associated (id_info(i)%item_buffer)) then @@ -2211,7 +3527,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) ! for PETs to exchange the buffer sizes they are sending to each other. allocate ( & - counts_recv(0:npets-1), & + counts_recv(0:petCount-1), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & @@ -2219,8 +3535,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllToAll", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMAllToAll (vm, & @@ -2232,18 +3547,17 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllToAll", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif if (debug) then - print *, ESMF_METHOD, ': PET', mypet, ': serialized buffer sizes', & + print *, ESMF_METHOD, ': PET', localPet, ': serialized buffer sizes', & ': counts_send =', counts_send, & ', counts_recv =', counts_recv end if allocate ( & - offsets_recv(0:npets-1), & + offsets_recv(0:petCount-1), & recv_buffer(0:max (0, sum (counts_recv)-1)), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & @@ -2251,7 +3565,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) rcToReturn=rc)) return offset_pos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 itemcount = counts_recv(i) offsets_recv(i) = offset_pos offset_pos = offset_pos + itemcount @@ -2270,8 +3584,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllToAllV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMAllToAllV (vm, & @@ -2283,8 +3596,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllToAllV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif @@ -2298,7 +3610,7 @@ subroutine ESMF_ReconcileExchgItems (vm, id_info, recv_items, recv_buffer, rc) ! Copy recv buffers into recv_items - do, i=0, npets-1 + do, i=0, petCount-1 itemcount = counts_recv(i) if (itemcount > 0) then offset_pos = offsets_recv(i) @@ -2371,7 +3683,7 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) integer :: localrc integer :: memstat - integer :: mypet, npets + integer :: localPet, petCount integer :: i integer :: itemcount, itemcount_global, itemcount_local integer :: offset_pos @@ -2393,14 +3705,14 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) rcToReturn=rc)) return end if - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - if (size (id_info) /= npets) then + if (size (id_info) /= petCount) then if (ESMF_LogFoundError(ESMF_RC_INTNRL_INCONS, & - msg="size (id_info) /= npets", & + msg="size (id_info) /= petCount", & ESMF_CONTEXT, & rcToReturn=rc)) return end if @@ -2409,18 +3721,18 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) ! can have differing numbers of items to offer. allocate ( & - counts_send (0:npets-1), & - offsets_send(0:npets-1), & + counts_send (0:petCount-1), & + offsets_send(0:petCount-1), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return - do, i=0, npets-1 + do, i=0, petCount-1 counts_send(i) = size (id_info(i)%needed) end do - itemcount_local = counts_send(mypet) + itemcount_local = counts_send(localPet) itemcount_global = sum (counts_send) allocate ( & @@ -2431,7 +3743,7 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) rcToReturn=rc)) return offset_pos = 0 - do, i=0, npets-1 + do, i=0, petCount-1 itemcount = counts_send(i) offsets_send(i) = offset_pos buffer_send(offset_pos:offset_pos+itemcount-1) = id_info(i)%needed @@ -2444,29 +3756,23 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) ! which of my items. allocate ( & - counts_recv (0:npets-1), & - offsets_recv(0:npets-1), & - buffer_recv(0:itemcount_local*npets-1), & - recv_needs(itemcount_local,0:npets-1), stat=memstat) + counts_recv (0:petCount-1), & + offsets_recv(0:petCount-1), & + buffer_recv(0:itemcount_local*petCount-1), & + recv_needs(itemcount_local,0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return counts_recv = itemcount_local - offsets_recv = itemcount_local * (/ (i,i=0, npets-1) /) + offsets_recv = itemcount_local * (/ (i,i=0, petCount-1) /) buffer_recv = .false. ! AlltoAllV - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': calling VMAllToAll') - end if - if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllToAllV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif @@ -2480,23 +3786,22 @@ subroutine ESMF_ReconcileExchgNeeds (vm, id_info, recv_needs, rc) if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllToAllV", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif ! Copy recv buffers into recv_needs - do, i=0, npets-1 + do, i=0, petCount-1 itemcount = counts_recv(i) offset_pos = offsets_recv(i) recv_needs(:,i) = buffer_recv(offset_pos:offset_pos+itemcount-1) end do if (debug) then - do, i=0, npets-1 + do, i=0, petCount-1 write (msgstring,'(a,i0,a,i0,a)') & - ' PET ', mypet, ': needs that PET ', i, ' requested are:' + ' PET ', localPet, ': needs that PET ', i, ' requested are:' write (6,*) trim (msgstring), recv_needs(:,i) call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) end do @@ -2697,8 +4002,7 @@ end subroutine ESMF_ReconcileGetStateIDInfo ! !IROUTINE: ESMF_ReconcileInitialize ! ! !INTERFACE: - subroutine ESMF_ReconcileInitialize (state, vm, & - siwrap, nitems_all, rc) + subroutine ESMF_ReconcileInitialize(state, vm, siwrap, nitems_all, rc) ! ! !ARGUMENTS: type (ESMF_State), intent(inout) :: state @@ -2721,7 +4025,7 @@ subroutine ESMF_ReconcileInitialize (state, vm, & integer :: localrc integer :: memstat integer :: nitems_local(1) - integer :: mypet, npets + integer :: localPet, petCount logical, parameter :: profile = .false. @@ -2733,7 +4037,7 @@ subroutine ESMF_ReconcileInitialize (state, vm, & rcToReturn=rc)) return end if - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -2748,8 +4052,7 @@ subroutine ESMF_ReconcileInitialize (state, vm, & ! needed. if (profile) then call ESMF_TraceRegionEnter("ESMF_ReconcileZapProxies", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_ReconcileZapProxies (state, localrc) @@ -2758,8 +4061,7 @@ subroutine ESMF_ReconcileInitialize (state, vm, & rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_ReconcileZapProxies", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif @@ -2778,15 +4080,14 @@ subroutine ESMF_ReconcileInitialize (state, vm, & end if ! All PETs send their item counts to all the other PETs for recv array sizing. - allocate (nitems_all(0:npets-1), stat=memstat) + allocate (nitems_all(0:petCount-1), stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionEnter("ESMF_VMAllGather", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif call ESMF_VMAllGather (vm, & @@ -2797,8 +4098,7 @@ subroutine ESMF_ReconcileInitialize (state, vm, & rcToReturn=rc)) return if (profile) then call ESMF_TraceRegionExit("ESMF_VMAllGather", rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & rcToReturn=rc)) return endif @@ -2870,16 +4170,15 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & character(ESMF_MAXSTR) :: errstring integer :: i - integer :: mypet, npets, pet + integer :: localPet, petCount, pet logical, parameter :: debug=.false. - logical, parameter :: trace=.false. character(len=ESMF_MAXSTR) :: logmsg integer :: needs_count_debug localrc = ESMF_RC_NOT_IMPL - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) + call ESMF_VMGet(vm, localPet=localPet, petCount=petCount, rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, & rcToReturn=rc)) return @@ -2899,10 +4198,6 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & nitems = size (siwrap) ! Find the union of all the needs for this PET. - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 1 - Find union of needs') - end if allocate (pet_needs(nitems), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & @@ -2913,15 +4208,11 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & pet_needs(i)%needed = any (needs_list(i,:)) end do if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': needed_items array: ', pet_needs%needed end if ! Serialize all needed objects - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 2 - Serialize all needed objects') - end if allocate (type_table(nitems), & stat=memstat) if (ESMF_LogFoundAllocError(memstat, ESMF_ERR_PASSTHRU, & @@ -2980,7 +4271,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_FIELDBUNDLE%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serializing FieldBundle, pass =', pass, ', offset =', buffer_offset end if call ESMF_FieldBundleSerialize(stateitem%datap%fbp, & @@ -2993,7 +4284,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_FIELD%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serializing Field, pass =', pass, ', offset =', buffer_offset end if call ESMF_FieldSerialize(stateitem%datap%fp, & @@ -3006,7 +4297,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_ARRAY%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serialized Array, pass =', pass, ', offset =', buffer_offset end if call c_ESMC_ArraySerialize(stateitem%datap%ap, & @@ -3019,7 +4310,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_ARRAYBUNDLE%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serializing ArrayBundle, pass =', pass, ', offset =', buffer_offset end if call c_ESMC_ArrayBundleSerialize(stateitem%datap%abp, & @@ -3032,7 +4323,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_STATE%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serializing subState, pass =', pass, ', offset =', buffer_offset end if wrapper%statep => stateitem%datap%spp @@ -3047,7 +4338,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & case (ESMF_STATEITEM_ROUTEHANDLE%ot) if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': ignoring RouteHandle, pass =', pass end if ! Do nothing for RouteHandles. There is no need to reconcile them. @@ -3057,18 +4348,15 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & if (debug) then print *, ESMF_METHOD, ': serializing unknown: ', trim (stateitem%namep) end if - call c_ESMC_StringSerialize(stateitem%namep, & - obj_buffer, lbufsize, buffer_offset, & - inqflag, & - localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return + write (errstring, '(a)') 'can''t serialize unknown type!!' + if (ESMF_LogFoundError(ESMF_RC_INTNRL_INCONS, msg=errstring, & + ESMF_CONTEXT, & + rcToReturn=rc)) return case default localrc = ESMF_RC_INTNRL_INCONS if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': serialization error in default case. Returning ESMF_RC_INTNRL_INCONS' end if @@ -3083,7 +4371,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & #endif if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': item serialized, pass =', pass, ', new offset =', buffer_offset, & merge (" (calc'ed)", " (actual) ", pass == 1) end if @@ -3103,14 +4391,10 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & ! consists of a count of items, a table of the offsets (in bytes) of each ! serialized item, and the serialized items themselves. - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 3 - Create per-PET serialized buffers') - end if - do, pet=0, npets-1 + do, pet=0, petCount-1 needs_count = count (needs_list(:,pet)) if (debug .and. needs_count > 0) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': needs_count =', needs_count, ', for PET', pet end if if (needs_count == 0) then @@ -3127,7 +4411,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & end do if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': computed buffer_offset =', buffer_offset, ', for PET', pet end if @@ -3168,7 +4452,7 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & if (lbufsize == 0) cycle if (debug) then - print *, ' PET', mypet, & + print *, ' PET', localPet, & ': packing at buffer_offset =', buffer_offset, ', for PET', pet, & ', item =', item end if @@ -3191,11 +4475,6 @@ subroutine ESMF_ReconcileSerialize (state, vm, siwrap, & end do ! pets - if (trace) then - call ESMF_ReconcileDebugPrint (ESMF_METHOD // & - ': *** Step 4 - Deallocate memory') - end if - if (allocated (pet_needs)) then do, i=1, nitems if (associated (pet_needs(i)%obj_buffer)) then @@ -3230,17 +4509,17 @@ subroutine ESMF_ReconcileZapProxies(state, rc) integer, intent(out), optional :: rc ! ! !DESCRIPTION: -! Proxy objects are identified and removed from the State. Information about -! the zapped proxies is kept in the State for later handling during the -! companion method ESMF_ReconcileZappedProxies(). -! -! The arguments are: -! \begin{description} -! \item[state] -! The State from which to zap proxies. -! \item[{[rc]}] -! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. -! \end{description} +! All top-level proxy objects (regardless of type) are identified and removed +! from {\tt state}. Information about the zapped proxies is kept in the State +! for later handling during the companion method ESMF_ReconcileZappedProxies(). +! +! The arguments are: +! \begin{description} +! \item[state] +! The State from which to zap proxies. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} ! !EOPI integer :: localrc, i @@ -3249,7 +4528,9 @@ subroutine ESMF_ReconcileZapProxies(state, rc) character(len=ESMF_MAXSTR) :: thisname type(ESMF_FieldType), pointer :: fieldp type(ESMF_FieldBundleType), pointer :: fbpthis - character(len=80) :: msgString +#ifdef RECONCILE_ZAP_LOG_on + character(len=160) :: msgString +#endif ! Initialize return code; assume routine not implemented if (present(rc)) rc = ESMF_RC_NOT_IMPL @@ -3265,9 +4546,8 @@ subroutine ESMF_ReconcileZapProxies(state, rc) itemList => null () call ESMF_ContainerGet(container=stypep%stateContainer, itemList=itemList, & rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return stypep%zapFlag => null() @@ -3290,13 +4570,12 @@ subroutine ESMF_ReconcileZapProxies(state, rc) if (itemList(i)%si%otype==ESMF_STATEITEM_FIELD) then fieldp => itemList(i)%si%datap%fp%ftypep call ESMF_StateItemGet(itemList(i)%si, name=thisname, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -write(msgString,*) "ESMF_ReconcileZapProxies Field: "//trim(thisname), & - itemList(i)%si%proxyFlag +write(msgString,*) "ESMF_ReconcileZapProxies Field proxyFlag(old): "//& + trim(thisname), itemList(i)%si%proxyFlag call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=localrc) #endif @@ -3307,21 +4586,20 @@ subroutine ESMF_ReconcileZapProxies(state, rc) rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -write(msgString,*) "ESMF_ReconcileZapProxies Field: "//trim(thisname), & - itemList(i)%si%proxyFlag +write(msgString,*) "ESMF_ReconcileZapProxies Field proxyFlag(new): "//& + trim(thisname), itemList(i)%si%proxyFlag call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=localrc) #endif else if (itemList(i)%si%otype==ESMF_STATEITEM_FIELDBUNDLE) then fbpthis => itemList(i)%si%datap%fbp%this call ESMF_StateItemGet(itemList(i)%si, name=thisname, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -write(msgString,*) "ESMF_ReconcileZapProxies Field: "//trim(thisname), & - itemList(i)%si%proxyFlag +write(msgString,*) "ESMF_ReconcileZapProxies FieldBundle proxyFlag(old): "//& + trim(thisname), itemList(i)%si%proxyFlag call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=localrc) #endif @@ -3332,8 +4610,8 @@ subroutine ESMF_ReconcileZapProxies(state, rc) rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -write(msgString,*) "ESMF_ReconcileZapProxies Field: "//trim(thisname), & - itemList(i)%si%proxyFlag +write(msgString,*) "ESMF_ReconcileZapProxies FieldBundle proxyFlag(new): "//& + trim(thisname), itemList(i)%si%proxyFlag call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=localrc) #endif @@ -3343,15 +4621,18 @@ subroutine ESMF_ReconcileZapProxies(state, rc) if (itemList(i)%si%proxyFlag) then stypep%zapFlag(i) = .true. ! keep record about zapping call ESMF_StateItemGet(itemList(i)%si, name=thisname, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return ! Remove proxy object from state using its name. This is safe b/c ! a state only allows items with unique names. call ESMF_StateRemove (state, itemNameList=(/thisname/), rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return +#ifdef RECONCILE_ZAP_LOG_on +write(msgString,*) "ESMF_ReconcileZapProxies zapping from State: "//& + trim(thisname) +call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=localrc) +#endif end if end do endif @@ -3380,25 +4661,26 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) integer, intent(out), optional :: rc ! ! !DESCRIPTION: -! Proxy objects that have been zapped from the State during a previous -! call to the companion method ESMF_ReconcileZapProxies() must now be handled -! after the reconcile work is done. Potentially new proxies have been -! created, and the internal information of those new proxies must be copied -! under the old proxy wrappers, then old wrappers must replace the new ones +! Top-level proxy objects that have been zapped from the State during a +! previous call to the companion method ESMF_ReconcileZapProxies() must now be +! handled after the reconcile work is done. There is special handling for +! Field and FieldBundle objects for which new proxies have been +! created. The internal information of those new proxies must be copied +! under the old proxy wrappers. Old wrappers must replace the new ones ! inside the State. Finally the old inside members must be cleaned up. ! There is also a chance that zapped proxy are not associated with new proxy ! counter parts (e.g. if the actual objects have been removed from the State). ! In that case the old proxy object must be cleaned up for good by removing ! it from the garbage collection. ! -! The arguments are: -! \begin{description} -! \item[state] -! The State from which proxies have been zapped and must either be -! restored or completely removed from the garbage collection. -! \item[{[rc]}] -! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. -! \end{description} +! The arguments are: +! \begin{description} +! \item[state] +! The State from which proxies have been zapped and must either be +! restored or completely removed from the garbage collection. +! \item[{[rc]}] +! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. +! \end{description} ! !EOPI integer :: localrc, i, k @@ -3413,7 +4695,7 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) type(ESMF_FieldType) :: tempFieldType type(ESMF_FieldBundle) :: tempFB type(ESMF_FieldBundleType) :: tempFBType - character(len=80) :: msgString + type(ESMF_State) :: wrapper ! Initialize return code; assume routine not implemented if (present(rc)) rc = ESMF_RC_NOT_IMPL @@ -3426,9 +4708,8 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) itemList => null () call ESMF_ContainerGet(container=stypep%stateContainer, itemList=itemList, & rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on call ESMF_VMLogGarbageInfo(prefix="ZappedProxies bef: ", & @@ -3446,9 +4727,8 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) (itemList(i)%si%otype==ESMF_STATEITEM_FIELD .or. & itemList(i)%si%otype==ESMF_STATEITEM_FIELDBUNDLE )) then call ESMF_StateItemGet(itemList(i)%si, name=thisname, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, & + rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): found a proxy field: "//& trim(thisname), ESMF_LOGMSG_DEBUG, rc=localrc) @@ -3460,7 +4740,7 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) #endif if (associated (zapList(k)%si)) then #ifdef RECONCILE_ZAP_LOG_on -call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): found associated zapList object", & +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): found valid zapList object", & ESMF_LOGMSG_DEBUG, rc=localrc) #endif ! Note that only Fields and FieldBundles receive the restoration @@ -3475,18 +4755,16 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) ! therefore the implemented method suffices. if (zapList(k)%si%otype==ESMF_STATEITEM_FIELD) then call ESMF_FieldGet(zapList(k)%si%datap%fp, name=name, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) & - return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): checking Field: "//trim(name), & +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): checking for name match Field: "//trim(name), & ESMF_LOGMSG_DEBUG, rc=localrc) #endif if (name == thisname) then zapFlag(k) = .false. ! indicate that proxy has been restored #ifdef RECONCILE_ZAP_LOG_on -call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): found Field: "//trim(name), & +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): restore persistent proxy for Field: "//trim(name), & ESMF_LOGMSG_DEBUG, rc=localrc) #endif ! Bend pointers and copy contents to result in the desired @@ -3502,27 +4780,23 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) ! Finally destroy the old Field internals ESMF_INIT_SET_CREATED(tempField) call ESMF_FieldDestroy(tempField, noGarbage=.true., rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) & - return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return ! deallocate the associated StateItem deallocate(zapList(k)%si) end if else if (zapList(k)%si%otype==ESMF_STATEITEM_FIELDBUNDLE) then call ESMF_FieldBundleGet(zapList(k)%si%datap%fbp, name=name, rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) & - return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return #ifdef RECONCILE_ZAP_LOG_on -call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): checking FieldBundle: "//trim(name), & +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): checking for name match FieldBundle: "//trim(name), & ESMF_LOGMSG_DEBUG, rc=localrc) #endif if (name == thisname) then zapFlag(k) = .false. ! indicate that proxy has been restored #ifdef RECONCILE_ZAP_LOG_on -call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): found FieldBundle: "//trim(name), & +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): restore persistent proxy for FieldBundle: "//trim(name), & ESMF_LOGMSG_DEBUG, rc=localrc) #endif ! Bend pointers and copy contents to result in the desired @@ -3539,10 +4813,8 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) ESMF_INIT_SET_CREATED(tempFB) call ESMF_FieldBundleDestroy(tempFB, noGarbage=.true., & rc=localrc) - if (ESMF_LogFoundError(localrc, & - ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, rcToReturn=rc)) & - return + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return ! deallocate the associated StateItem deallocate(zapList(k)%si) end if @@ -3560,6 +4832,15 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) do k=1, size(zapFlag) if (zapFlag(k)) then if (zapList(k)%si%otype==ESMF_STATEITEM_FIELD) then +#ifdef RECONCILE_ZAP_LOG_on +call ESMF_FieldGet(zapList(k)%si%datap%fp, name=name, rc=localrc) +if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): destroy with noGarbage unrestored Field: "//trim(name), & + ESMF_LOGMSG_DEBUG, rc=localrc) +#endif call ESMF_FieldDestroy(zapList(k)%si%datap%fp, & noGarbage=.true., rc=localrc) if (ESMF_LogFoundError(localrc, & @@ -3567,12 +4848,71 @@ subroutine ESMF_ReconcileZappedProxies(state, rc) ESMF_CONTEXT, rcToReturn=rc)) & return else if (zapList(k)%si%otype==ESMF_STATEITEM_FIELDBUNDLE) then +#ifdef RECONCILE_ZAP_LOG_on +call ESMF_FieldBundleGet(zapList(k)%si%datap%fbp, name=name, rc=localrc) +if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): destroy with noGarbage unrestored FieldBundle: "//trim(name), & + ESMF_LOGMSG_DEBUG, rc=localrc) +#endif call ESMF_FieldBundleDestroy(zapList(k)%si%datap%fbp, & noGarbage=.true., rc=localrc) if (ESMF_LogFoundError(localrc, & ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) & return + else if (zapList(k)%si%otype==ESMF_STATEITEM_ARRAY) then +#ifdef RECONCILE_ZAP_LOG_on +call ESMF_ArrayGet(zapList(k)%si%datap%ap, name=name, rc=localrc) +if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): destroy with noGarbage unrestored Array: "//trim(name), & + ESMF_LOGMSG_DEBUG, rc=localrc) +#endif + call ESMF_ArrayDestroy(zapList(k)%si%datap%ap, & + noGarbage=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return + else if (zapList(k)%si%otype==ESMF_STATEITEM_ARRAYBUNDLE) then +#ifdef RECONCILE_ZAP_LOG_on +call ESMF_ArrayBundleGet(zapList(k)%si%datap%abp, name=name, rc=localrc) +if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): destroy with noGarbage unrestored ArrayBundle: "//trim(name), & + ESMF_LOGMSG_DEBUG, rc=localrc) +#endif + call ESMF_ArrayBundleDestroy(zapList(k)%si%datap%abp, & + noGarbage=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return + else if (zapList(k)%si%otype==ESMF_STATEITEM_STATE) then + wrapper%statep => zapList(k)%si%datap%spp + ESMF_INIT_SET_CREATED(wrapper) +#ifdef RECONCILE_ZAP_LOG_on +call ESMF_StateGet(wrapper, name=name, rc=localrc) +if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return +call ESMF_LogWrite("ESMF_ReconcileZappedProxies(): destroy with noGarbage unrestored State: "//trim(name), & + ESMF_LOGMSG_DEBUG, rc=localrc) +#endif + call ESMF_StateDestroy(wrapper, & + noGarbage=.true., rc=localrc) + if (ESMF_LogFoundError(localrc, & + ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) & + return endif ! deallocate the associated StateItem if (associated(zapList(k)%si)) deallocate(zapList(k)%si) @@ -3626,127 +4966,4 @@ function ESMF_Reconcile_g95_getint (source) result (i) end function ESMF_Reconcile_g95_getint #endif -!------------------------------------------------------------------------------ -! Debugging and support procedures -!------------------------------------------------------------------------------ -#undef ESMF_METHOD -#define ESMF_METHOD "ESMF_ReconcileAllRC" - function ESMF_ReconcileAllRC (vm, rc) result (rc_return) - type(ESMF_VM), intent(in) :: vm - integer, intent(in) :: rc - integer :: rc_return - - integer :: rc_send(1) - integer, allocatable :: rc_all(:) - integer :: mypet, npets - - call ESMF_VMGet(vm, localpet=mypet, petCount=npets) - allocate (rc_all(npets)) - - rc_send = rc - call ESMF_VMGather (vm, & - sendData=rc_send, recvData=rc_all, count=1, & - rootPet=0) - call ESMF_VMBroadcast (vm, & - bcstData=rc_all, count=npets, & - rootPet=0) - - rc_return = rc - if (any (rc_all /= ESMF_SUCCESS)) then - rc_return = merge (ESMF_FAILURE, rc, rc == ESMF_SUCCESS) - end if - - - end function ESMF_ReconcileAllRC - -#undef ESMF_METHOD -#define ESMF_METHOD "ESMF_ReconcileDebugPrint" - subroutine ESMF_ReconcileDebugPrint (text, multitext, ask, rc) - use ESMF_IOUtilMod - character(*), intent(in), optional :: text - character(*), intent(in), optional :: multitext - logical, intent(in), optional :: ask - integer, intent(out), optional :: rc - - type(ESMF_VM) :: vm - integer :: localrc - integer :: mypet, npets - character(16) :: answer - character(10) :: time - logical :: localask - - call ESMF_VMGetCurrent(vm=vm, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - - call ESMF_VMGet(vm, localPet=mypet, petCount=npets, rc=localrc) - if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & - ESMF_CONTEXT, & - rcToReturn=rc)) return - - localask = .false. - if (present (ask)) then - localask = ask - end if - - if (present (text)) then -#if 0 - call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) - call ESMF_VMBarrier (vm) - if (mypet == 0) then - call date_and_time (time=time) - write (ESMF_UtilIOStdout,*) & - time(1:2), ':', time(3:4), ':', time(5:), ': ', text - call ESMF_UtilIOUnitflush (ESMF_UtilIOStdout) - end if - call ESMF_VMBarrier (vm) -#else - call ESMF_LogWrite(trim(text), ESMF_LOGMSG_DEBUG, rc=rc) -#endif - end if - - if (present (multitext)) then -#if 0 - write (ESMF_UtilIOStdout,*) multitext - call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) - call ESMF_VMBarrier (vm) -#else - call ESMF_LogWrite(trim(multitext), ESMF_LOGMSG_DEBUG, rc=rc) -#endif - end if - - if (localask) then - if (mypet == 0) then - write (ESMF_UtilIOStdout,'(a)') 'Proceed?' - call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout) - read (ESMF_UtilIOStdin,'(a)') answer - end if - call ESMF_VMBarrier (vm) - end if - - end subroutine ESMF_ReconcileDebugPrint - - pure function iTos_len (i) - integer, intent(in) :: i - integer :: iTos_len - - character(16) :: string - - write (string,'(i16)') i - iTos_len = len_trim (adjustl (string)) - - end function iTos_len - - function iTos (i) - integer, intent(in) :: i - character(iTos_len (i)) :: iTos - - character(16) :: string - - write (string,'(i16)') i - iTos = adjustl (string) - - end function iTos - end module ESMF_StateReconcileMod diff --git a/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileProxyUTest.F90 b/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileProxyUTest.F90 index eee7c5c869..89150932a3 100644 --- a/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileProxyUTest.F90 +++ b/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileProxyUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -277,7 +277,7 @@ program ESMF_StateReconcileProxyUTest ! Reconcile the State !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile(exportState, rc=rc) + call ESMF_StateReconcile(exportState, checkflag=.true., rc=rc) write(name, *) "Reconciling a State" write(failMsg, *) "Did not return ESMF_SUCCESS" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -357,7 +357,7 @@ program ESMF_StateReconcileProxyUTest ! Re-Reconcile the State !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile(exportState, rc=rc) + call ESMF_StateReconcile(exportState, checkflag=.true., rc=rc) write(name, *) "Re-Reconciling a State" write(failMsg, *) "Did not return ESMF_SUCCESS" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) diff --git a/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileUTest.F90 b/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileUTest.F90 index a55b9c90bd..61360620ba 100644 --- a/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileUTest.F90 +++ b/src/Superstructure/StateReconcile/tests/ESMF_StateReconcileUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -534,120 +534,93 @@ subroutine comp2_sg_final(gcomp, istate, ostate, clock, rc) end subroutine comp2_sg_final +!------------------------------------------------------------------------------ -subroutine StateLog(state, rc) - type(ESMF_State) :: state - integer, intent(out) :: rc - - integer :: i, j - integer :: iCount, jCount - character(ESMF_MAXSTR), allocatable :: itemNameList(:) - type(ESMF_FieldBundle) :: fb - type(ESMF_Field), allocatable :: fieldList(:) - character(ESMF_MAXSTR) :: stateName, fieldName, gridName - type(ESMF_Grid) :: grid - character(800) :: msgString - type(ESMF_StateItem_Flag) :: itemType - type(ESMF_Field) :: field - - rc=ESMF_SUCCESS - - call ESMF_StateGet(state, itemCount=iCount, name=stateName, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - - allocate(itemNameList(iCount)) - - call ESMF_StateGet(state, itemNameList=itemNameList, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - - do i=1, iCount - call ESMF_StateGet(state, itemName=itemNameList(i), itemType=itemType, rc=rc) +! Array added to exportState + +subroutine comp1_init_simple(gcomp, istate, ostate, clock, rc) + type(ESMF_GridComp) :: gcomp + type(ESMF_State) :: istate, ostate + type(ESMF_Clock) :: clock + integer, intent(out) :: rc + + type(ESMF_ArraySpec) :: arrayspec + type(ESMF_Distgrid) :: distgrid + type(ESMF_Array) :: array + + rc = ESMF_SUCCESS + + call ESMF_ArraySpecSet(arrayspec, typekind=ESMF_TYPEKIND_R8, rank=2, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, & file=FILENAME)) & return ! bail out - if (itemType == ESMF_STATEITEM_FIELDBUNDLE) then - call ESMF_StateGet(state, itemName=itemNameList(i), fieldBundle=fb, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - call ESMF_FieldBundleGet(fb, fieldCount=jCount, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - allocate(fieldList(jCount)) - call ESMF_FieldBundleGet(fb, fieldList=fieldList, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - do j=1, jCount - call ESMF_FieldGet(fieldList(j), name=fieldName, grid=grid, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - call ESMF_GridGet(grid, name=gridName, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - write(msgString,*) trim(stateName)//": "//trim(itemNameList(i))//": "//trim(fieldName)//& - ": "//trim(gridName) - call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - enddo - deallocate(fieldList) - elseif (itemType == ESMF_STATEITEM_FIELD) then - call ESMF_StateGet(state, itemName=itemNameList(i), field=field, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out -#if 0 - call ESMF_FieldGet(field, name=fieldName, grid=grid, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) &FAIL - return ! bail out - call ESMF_GridGet(grid, name=gridName, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out - write(msgString,*) trim(stateName)//": "//trim(itemNameList(i))//": "//trim(fieldName)//& - ": "//trim(gridName) - call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out -#else - write(msgString,*) trim(stateName)//": "//trim(itemNameList(i)) - call ESMF_LogWrite(msgString, ESMF_LOGMSG_DEBUG, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=FILENAME)) & - return ! bail out -#endif - endif - enddo - deallocate(itemNameList) + distgrid = ESMF_DistGridCreate(minIndex=(/1,1/), maxIndex=(/15,23/), & + regDecomp=(/2,2/), rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out -end subroutine + array = ESMF_ArrayCreate(arrayspec=arrayspec, & + name="Array_for_reconciling", distgrid=distgrid, & + indexflag=ESMF_INDEX_GLOBAL, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + call ESMF_StateAdd (ostate, [array], rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + +end subroutine comp1_init_simple + +!------------------------------------------------------------------------------ + +! Nested State with Field added to exportState + +subroutine comp1_init_nested(gcomp, istate, ostate, clock, rc) + type(ESMF_GridComp) :: gcomp + type(ESMF_State) :: istate, ostate + type(ESMF_Clock) :: clock + integer, intent(out) :: rc + + type(ESMF_State) :: state_nested + type(ESMF_Field) :: field_nested + + rc = ESMF_SUCCESS + + state_nested = ESMF_StateCreate(name='state_nested', rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + + field_nested = ESMF_FieldEmptyCreate(name='nested Field', rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + + call ESMF_StateAdd(state_nested, fieldList=[field_nested], rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + + call ESMF_StateAdd(ostate, nestedStateList=[state_nested], rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, & + file=FILENAME)) & + return ! bail out + +end subroutine comp1_init_nested + +!------------------------------------------------------------------------------ end module ESMF_StateReconcileUTest_Mod @@ -688,21 +661,19 @@ program ESMF_StateReconcileUTest type(ESMF_Field) :: field_attr(5) type(ESMF_Field) :: field_attr_new(size (field_attr)) type(ESMF_Field) :: field_sg1, field_sg2 - type(ESMF_FieldBundle) :: fb_attr, fb_attr_new type(ESMF_Grid) :: grid_shared, grid_sg1, grid_sg2 - type(ESMF_VM) :: vm + type(ESMF_VM) :: vm, vm0 character(len=ESMF_MAXSTR) :: comp1name, comp2name, statename, fieldname character(len=ESMF_MAXSTR) :: array1name character(len=ESMF_MAXSTR) :: fb_name character(4) :: localpet_str, temppet_str integer :: attr_val(1) integer :: i - logical :: reconcile_needed, recneeded_expected ! individual test failure message character(ESMF_MAXSTR) :: failMsg character(ESMF_MAXSTR) :: name - integer :: result = 0, localPet, petCount + integer :: result = 0, localPet, petCount, testPet !------------------------------------------------------------------------- @@ -746,31 +717,6 @@ program ESMF_StateReconcileUTest write(name, *) "Creating a State" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing empty State for reconcile needed" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return .false. for empty State" - call ESMF_Test(.not. reconcile_needed, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, & - vm=vm, collectiveflag=.true., rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing empty State for reconcile needed (collective)" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return .false. for empty State" - call ESMF_Test(.not. reconcile_needed, name, failMsg, result, ESMF_SRCLINE) - ! In SetServices() the VM for each component is initialized. ! Normally you would call SetEntryPoint inside set services, ! but to make this test very short, they are called inline below. @@ -837,7 +783,7 @@ program ESMF_StateReconcileUTest write(name, *) "Calling GridCompSetEntryPoint" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) -call StateLog(state1, rc=rc) +call ESMF_StateLog(state1, rc=rc) if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- @@ -847,7 +793,7 @@ program ESMF_StateReconcileUTest write(name, *) "Calling GridCompInitialize" call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) -call StateLog(state1, rc=rc) +call ESMF_StateLog(state1, rc=rc) if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- @@ -857,7 +803,7 @@ program ESMF_StateReconcileUTest write(name, *) "Calling GridCompInitialize" call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) -call StateLog(state1, rc=rc) +call ESMF_StateLog(state1, rc=rc) if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- @@ -869,37 +815,12 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing modified State for reconcile needed" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return .true. for modified State" - call ESMF_Test(reconcile_needed, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, & - vm=vm, collectiveflag=.true., rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing modified State for reconcile needed (collective)" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return .true. for modified State" - call ESMF_Test(reconcile_needed, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling StateReconcile in concurrent mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) -call StateLog(state1, rc=rc) +call ESMF_StateLog(state1, rc=rc) if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- @@ -923,50 +844,15 @@ program ESMF_StateReconcileUTest write(name, *) "Calling StateValidate" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing reconciled State for reconcile needed" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - ! Note that even though the top level State should have its reconcileneeded - ! flag cleared, the two nested States still should have their flags set. - recneeded_expected = localpet == 0 .or. localpet == 1 - write(failMsg, *) "Did not return correct result for reconciled State", & - localpet, reconcile_needed, recneeded_expected - call ESMF_Test(reconcile_needed .eqv. recneeded_expected, & - name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - reconcile_needed = ESMF_StateIsReconcileNeeded (state1, & - vm=vm, collectiveflag=.true., rc=rc) - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Testing reconciled State for reconcile needed (collective)" - call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - ! Note that even though the top level State should have its reconcileneeded - ! flag cleared, two nested States still should have their flags set. So the - ! collective ESMF_StateIsReconcileNeeded function should return .true.. - write(failMsg, *) "Did not return correct collective result for reconciled State", & - localpet, reconcile_needed, recneeded_expected - call ESMF_Test(reconcile_needed, & - name, failMsg, result, ESMF_SRCLINE) - !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only ! Test redundant reconcile - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling 2nd StateReconcile in concurrent mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) -call StateLog(state1, rc=rc) +call ESMF_StateLog(state1, rc=rc) if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) !------------------------------------------------------------------------- @@ -1057,7 +943,6 @@ program ESMF_StateReconcileUTest write(name, *) "Creating a State" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - ! In SetServices() the VM for each component is initialized. ! Normally you would call SetEntryPoint inside set services, ! but to make this test very short, they are called inline below. @@ -1131,7 +1016,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling StateReconcile in sequential mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -1146,7 +1031,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only ! Test redundant reconcile - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling 2nd StateReconcile in sequential mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -1302,7 +1187,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling StateReconcile in run-in-parent mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -1317,7 +1202,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only ! Test redundant reconcile - call ESMF_StateReconcile(state1, vm=vm, rc=rc) + call ESMF_StateReconcile(state1, vm=vm, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling 2nd StateReconcile in run-in-parent mode" call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -1375,43 +1260,58 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - state2 = ESMF_StateCreate () + state2 = ESMF_StateCreate() write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling StateCreate for rereconcile tests" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - rc = ESMF_SUCCESS - array1name = 'Array_for_reconciling' - if (localPet == 0) then - call ESMF_ArraySpecSet(arrayspec, typekind=ESMF_TYPEKIND_R8, rank=2, & - rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - distgrid = ESMF_DistGridCreate(minIndex=(/1,1/), maxIndex=(/15,23/), & - regDecomp=(/2,2/), rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - array1 = ESMF_ArrayCreate(arrayspec=arrayspec, name=array1name, & - distgrid=distgrid, & - indexflag=ESMF_INDEX_GLOBAL, rc=rc) - if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT) - call ESMF_StateAdd (state2, (/array1/), rc=rc) - end if + ! component on PET 0 + comp1 = ESMF_GridCompCreate(petList=[0], rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Creating PET 0 Array for rereconcile tests" - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + write(name, *) "Creating a Gridded Component" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! In SetServices() the VM for each component is initialized. + ! Normally you would call SetEntryPoint inside set services, + ! but to make this test very short, they are called inline below. !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile (state2, rc=rc) + call ESMF_GridCompSetServices(comp1, userRoutine=comp_dummy, userrc=urc, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Calling GridCompSetServices" + call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_GridCompSetEntryPoint(comp1, ESMF_METHOD_INITIALIZE, & + userRoutine=comp1_init_simple, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Calling GridCompSetEntryPoint" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + ! creating and adding array to the exportState on PET 0 + call ESMF_GridCompInitialize(comp1, exportState=state2, userrc=urc, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Calling GridCompInitialize" + call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_StateReconcile(state2, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling initial reconcile for rereconcile tests" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateGet (state2, itemName=array1name, & - array=array1_alternate, rc=rc) + array1name = "Array_for_reconciling" + call ESMF_StateGet(state2, itemName=array1name, array=array1_alternate, & + rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "PET", localpet, ": Calling StateGet to access proxies" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) @@ -1419,7 +1319,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only if (localPet == 0) then - call ESMF_StateRemove (state2, itemNameList=(/array1name/), rc=rc) + call ESMF_StateRemove(state2, itemNameList=[array1name], rc=rc) end if write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Removing non-proxy item test" @@ -1427,19 +1327,32 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile (state2, rc=rc) + call ESMF_StateReconcile(state2, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Re-reconciling State test" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateGet (state2, itemName=array1name, & - array=array2, rc=rc) + call ESMF_StateGet(state2, itemName=array1name, array=array2, rc=rc) write(failMsg, *) "Returned ESMF_SUCCESS by mistake" write(name, *) "Checking for empty State tests" call ESMF_Test((rc /= ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_StateDestroy(state2, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "StateDestroy test" + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_GridCompDestroy(comp1, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "GridCompDestroy test" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------- !------------------------------------------------------------------------- @@ -1454,63 +1367,58 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - state3 = ESMF_StateCreate (name='state3', rc=rc) + state3 = ESMF_StateCreate(name='state3', rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Calling StateCreate for top-level State tests" + write(name, *) "Calling StateCreate for rereconcile tests" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - if (localPET /= 0) then - rc = ESMF_SUCCESS - end if !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - if (localPET == 0) then - state_nested = ESMF_StateCreate (name='state_nested', rc=rc) - end if + ! component on PET 0 + comp1 = ESMF_GridCompCreate(petList=[0], rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Calling StateCreate for nested State tests" - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + write(name, *) "Creating a Gridded Component" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! In SetServices() the VM for each component is initialized. + ! Normally you would call SetEntryPoint inside set services, + ! but to make this test very short, they are called inline below. !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - if (localPET == 0) then - field_nested = ESMF_FieldEmptyCreate (name='nested Field', rc=rc) - end if + call ESMF_GridCompSetServices(comp1, userRoutine=comp_dummy, userrc=urc, rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Calling FieldEmptyCreate for nested State test" - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + write(name, *) "Calling GridCompSetServices" + call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - if (localPET == 0) then - call ESMF_StateAdd (state_nested, fieldList=(/ field_nested /), rc=rc) - end if + call ESMF_GridCompSetEntryPoint(comp1, ESMF_METHOD_INITIALIZE, & + userRoutine=comp1_init_nested, rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Calling StateAdd of nested Field test" - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + write(name, *) "Calling GridCompSetEntryPoint" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - if (localPET == 0) then - call ESMF_StateAdd (state3, nestedStateList=(/ state_nested /), rc=rc) - ! call ESMF_StatePrint (state3, nestedFlag=.true.) - end if + ! creating and adding nested state with field to the exportState on PET 0 + call ESMF_GridCompInitialize(comp1, exportState=state3, userrc=urc, rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Calling StateAdd of nested State test" - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + write(name, *) "Calling GridCompInitialize" + call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateReconcile (state=state3, rc=rc) + call ESMF_StateReconcile(state=state3, checkflag=.true., rc=rc) write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Calling StateReconcile of nested State test" call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - ! PETs 1-n should now be able to access the nested Field proxy item + ! PETs 1-n should now be able to access the nested Field proxy item !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateGet (state=state3, & + call ESMF_StateGet(state=state3, & itemname='state_nested/nested Field', & field=field_dummy, & rc=rc) @@ -1520,7 +1428,7 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only - call ESMF_StateGet (state=state3, & + call ESMF_StateGet(state=state3, & itemname='state_nested/nested Field_badname', & field=field_dummy, & rc=rc) @@ -1529,8 +1437,46 @@ program ESMF_StateReconcileUTest call ESMF_Test((rc /= ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- - ! Test with attribute reconcile turned on + !NEX_UTest_Multi_Proc_Only + call ESMF_StateDestroy(state3, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "StateDestroy test" + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_GridCompDestroy(comp1, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "GridCompDestroy test" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + ! Test attribute reconcililiation + !------------------------------------------------------------------------- + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + ! component on PET 0 -> needed to create Field below on PET 0 + comp1 = ESMF_GridCompCreate(petList=[0], rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Creating a Gridded Component" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + ! In SetServices() the VM for each component is initialized. + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + call ESMF_GridCompSetServices(comp1, userRoutine=comp_dummy, userrc=urc, rc=rc) + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Calling GridCompSetServices" + call ESMF_Test(((rc.eq.ESMF_SUCCESS).and.(urc.eq.ESMF_SUCCESS)), name, failMsg, result, ESMF_SRCLINE) + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Access the VM that has one PET on 0" + call ESMF_GridCompGet(comp1, vm=vm0, rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only @@ -1543,8 +1489,8 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Reconciling state with Attribute reconciling turned on" - call ESMF_StateReconcile (state_attr, rc=rc) + write(name, *) "Reconciling state before adding Attributes" + call ESMF_StateReconcile(state_attr, checkflag=.true., rc=rc) call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- @@ -1562,19 +1508,40 @@ program ESMF_StateReconcileUTest !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Reconciling state with Base attribute test" - call ESMF_StateReconcile (state_attr, rc=rc) + ! use explicit checkflag=.false, because state Info values will not be + ! consistent across PETs... and in case we force default .true. for + ! development, make sure this is explicitly set to .false. here + call ESMF_StateReconcile (state_attr, checkflag=.false., rc=rc) call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Verifying reconciled Base attributes test" + write(name, *) "Verifying StateReconcile does not mess with Base attributes" write (temppet_str, '(i4)') localPet + call ESMF_AttributeGet (state_attr, & + name='Base PET ' // trim (adjustl (temppet_str)), & + valueList=attr_val, rc=rc) + call ESMF_Test((attr_val(1)==localPet), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "ReconcileExchgAttributes to exchange State attributes test" + call ESMF_ReconcileExchgAttributes(state_attr, vm, rc=rc) + call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) + + !------------------------------------------------------------------------- + !NEX_UTest_Multi_Proc_Only + write(failMsg, *) "Did not return ESMF_SUCCESS" + write(name, *) "Verifying exchange reconciled Base attributes test" + testPet = mod(localPet+1, petCount) + write (temppet_str, '(i4)') testPet call ESMF_AttributeGet (state_attr, & name='Base PET ' // trim (adjustl (temppet_str)), & valueList=attr_val, & rc=rc) - if (attr_val(1) /= localPet) rc = ESMF_FAILURE + if (attr_val(1) /= testPet) rc = ESMF_FAILURE call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- @@ -1585,18 +1552,19 @@ program ESMF_StateReconcileUTest if (localPet == 0) then do, i=1, size (field_attr) write (fieldname, '(a,i4)') 'PET 0 Field', i - field_attr(i) = ESMF_FieldEmptyCreate (name=fieldname, rc=rc) - if (rc /= ESMF_SUCCESS) go to 50 + ! create on vm0 to not violate ESMF unison rule for Create() methods + field_attr(i) = ESMF_FieldEmptyCreate(name=fieldname, vm=vm0, rc=rc) + if (rc /= ESMF_SUCCESS) goto 50 call ESMF_AttributeSet (field_attr(i), & name=trim (fieldname) // ' attribute', & valueList=(/ i /), & rc=rc) - if (rc /= ESMF_SUCCESS) go to 50 + if (rc /= ESMF_SUCCESS) goto 50 end do call ESMF_StateAdd (state_attr, field_attr, rc=rc) - if (rc /= ESMF_SUCCESS) go to 50 + if (rc /= ESMF_SUCCESS) goto 50 end if 50 continue @@ -1606,7 +1574,7 @@ program ESMF_StateReconcileUTest !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Reconciling state with Field and Attribute test" - call ESMF_StateReconcile (state_attr, rc=rc) + call ESMF_StateReconcile (state_attr, checkflag=.true., rc=rc) call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- @@ -1642,42 +1610,10 @@ program ESMF_StateReconcileUTest !------------------------------------------------------------------------- !NEX_UTest_Multi_Proc_Only + call ESMF_GridCompDestroy(comp1, rc=rc) ! also shuts down vm0 write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Create a FieldBundle with Attributes on PET 0 test" - fb_name = 'my fields' - if (localPet == 0) then - fb_attr = ESMF_FieldBundleCreate ( & - fieldList=(/field_attr/), & - name=fb_name, & - rc=rc) - if (rc /= ESMF_SUCCESS) go to 55 - - call ESMF_StateAdd (state_attr, (/ fb_attr /), rc=rc) - if (rc /= ESMF_SUCCESS) go to 55 - else - rc = ESMF_SUCCESS - end if - - 55 continue - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Reconciling state with FieldBundle and Attributes test" - call ESMF_StateReconcile (state_attr, rc=rc) - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - - !------------------------------------------------------------------------- - !NEX_UTest_Multi_Proc_Only - write(failMsg, *) "Did not return ESMF_SUCCESS" - write(name, *) "Access reconciled FieldBundle test" - call ESMF_StateGet (state_attr, & - itemName=fb_name, & - fieldBundle=fb_attr_new, & - rc=rc) - call ESMF_Test((rc == ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) - + write(name, *) "GridCompDestroy test" + call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- ! Fields with shared Grids @@ -1775,7 +1711,7 @@ program ESMF_StateReconcileUTest !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Reconcile State for shared Grid test" - call ESMF_StateReconcile (state_sgrid, rc=rc) + call ESMF_StateReconcile (state_sgrid, checkflag=.true., rc=rc) call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- @@ -1825,7 +1761,7 @@ program ESMF_StateReconcileUTest !NEX_UTest_Multi_Proc_Only write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Re-reconcile State for shared Grid test" - call ESMF_StateReconcile (state_sgrid, rc=rc) + call ESMF_StateReconcile (state_sgrid, checkflag=.true., rc=rc) call ESMF_Test(rc == ESMF_SUCCESS, name, failMsg, result, ESMF_SRCLINE) !------------------------------------------------------------------------- diff --git a/src/Superstructure/TraceAPI/interface/ESMF_TraceAPI.F90 b/src/Superstructure/TraceAPI/interface/ESMF_TraceAPI.F90 index f217b69f27..b5a86cb5c4 100644 --- a/src/Superstructure/TraceAPI/interface/ESMF_TraceAPI.F90 +++ b/src/Superstructure/TraceAPI/interface/ESMF_TraceAPI.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/doc/WebServices_desc.tex b/src/Superstructure/WebServices/doc/WebServices_desc.tex index 80cebf0967..20b4856ea0 100644 --- a/src/Superstructure/WebServices/doc/WebServices_desc.tex +++ b/src/Superstructure/WebServices/doc/WebServices_desc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/doc/WebServices_refdoc.ctex b/src/Superstructure/WebServices/doc/WebServices_refdoc.ctex index c60188b47e..54aebda6d7 100644 --- a/src/Superstructure/WebServices/doc/WebServices_refdoc.ctex +++ b/src/Superstructure/WebServices/doc/WebServices_refdoc.ctex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/doc/WebServices_rest.tex b/src/Superstructure/WebServices/doc/WebServices_rest.tex index 5ea0b13a69..112019ba97 100644 --- a/src/Superstructure/WebServices/doc/WebServices_rest.tex +++ b/src/Superstructure/WebServices/doc/WebServices_rest.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/doc/WebServices_usage.tex b/src/Superstructure/WebServices/doc/WebServices_usage.tex index a12e39a7bd..aa305a9201 100644 --- a/src/Superstructure/WebServices/doc/WebServices_usage.tex +++ b/src/Superstructure/WebServices/doc/WebServices_usage.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/examples/ESMF_WebServicesEx.F90 b/src/Superstructure/WebServices/examples/ESMF_WebServicesEx.F90 index 6eda0a3db5..bcd6259db4 100644 --- a/src/Superstructure/WebServices/examples/ESMF_WebServicesEx.F90 +++ b/src/Superstructure/WebServices/examples/ESMF_WebServicesEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServ.h b/src/Superstructure/WebServices/include/ESMCI_WebServ.h index a1675b8ebb..fcb5dfe939 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServ.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServ.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServClientInfo.h b/src/Superstructure/WebServices/include/ESMCI_WebServClientInfo.h index 246f7c31fc..cbcd1cfed0 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServClientInfo.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServClientInfo.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServClientSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServClientSocket.h index e2fc161368..475e475f37 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServClientSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServClientSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrClient.h index 46d1a0f97e..3a0dbc20dc 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrInfo.h b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrInfo.h index c7a9184910..380deca142 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrInfo.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrInfo.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrMgr.h b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrMgr.h index 8c19109f11..8d6e6754bd 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrMgr.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServCompSvrMgr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServComponentSvr.h b/src/Superstructure/WebServices/include/ESMCI_WebServComponentSvr.h index de96935888..6ecb370b09 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServComponentSvr.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServComponentSvr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServDataContent.h b/src/Superstructure/WebServices/include/ESMCI_WebServDataContent.h index a9ce94a28d..34b3f3c22a 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServDataContent.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServDataContent.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServDataDesc.h b/src/Superstructure/WebServices/include/ESMCI_WebServDataDesc.h index d49ef6d982..76d5824427 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServDataDesc.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServDataDesc.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServDataMgr.h b/src/Superstructure/WebServices/include/ESMCI_WebServDataMgr.h index 6b180c271e..3ee409b379 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServDataMgr.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServDataMgr.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServForkClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServForkClient.h index 4dbb03a7cb..0a3698a6f1 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServForkClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServForkClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServGRAMClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServGRAMClient.h index a3ffc4e7c3..97c2d3bfcd 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServGRAMClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServGRAMClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServLowLevelSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServLowLevelSocket.h index da30cb1347..c12d973b9f 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServLowLevelSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServLowLevelSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmf.h b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmf.h index ca7a4f68d0..745294815a 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmf.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmf.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfClient.h index 1c2421e8eb..5bdd0266ca 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfServer.h b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfServer.h index b3683ce03d..12bd5bbdb4 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfServer.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServNetEsmfServer.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrl.h b/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrl.h index 1f3598beb7..c2b7e205f6 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrl.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrl.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrlClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrlClient.h index 37b902ed4d..50d768bc0f 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrlClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServProcCtrlClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServRegistrarClient.h b/src/Superstructure/WebServices/include/ESMCI_WebServRegistrarClient.h index 0097ac6f6d..49211ec28e 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServRegistrarClient.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServRegistrarClient.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServSecureClientSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServSecureClientSocket.h index 0c65e81a74..4537f0911c 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServSecureClientSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServSecureClientSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServSecureServerSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServSecureServerSocket.h index df9ab5c5e1..6cdb6948af 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServSecureServerSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServSecureServerSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServSecureSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServSecureSocket.h index bf2f8ea435..51e2a21391 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServSecureSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServSecureSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServSecureUtils.h b/src/Superstructure/WebServices/include/ESMCI_WebServSecureUtils.h index bd271d25d8..280c6dedbd 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServSecureUtils.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServSecureUtils.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServServerSocket.h b/src/Superstructure/WebServices/include/ESMCI_WebServServerSocket.h index 1c4b54872b..2d57da9665 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServServerSocket.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServServerSocket.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/include/ESMCI_WebServSocketUtils.h b/src/Superstructure/WebServices/include/ESMCI_WebServSocketUtils.h index d007e16da9..44e6329c13 100644 --- a/src/Superstructure/WebServices/include/ESMCI_WebServSocketUtils.h +++ b/src/Superstructure/WebServices/include/ESMCI_WebServSocketUtils.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServClientInfo.C b/src/Superstructure/WebServices/src/ESMCI_WebServClientInfo.C index 0b11f57ed4..305aadd282 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServClientInfo.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServClientInfo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServClientSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServClientSocket.C index d78daf001e..709a016c59 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServClientSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServClientSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrClient.C index 9c94cd4001..4ff9203024 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrInfo.C b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrInfo.C index 6ec7f1de36..ee3a118e21 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrInfo.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrInfo.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrMgr.C b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrMgr.C index 29e0b6ae13..be436d57d9 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrMgr.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServCompSvrMgr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServComponentSvr.C b/src/Superstructure/WebServices/src/ESMCI_WebServComponentSvr.C index c5cd0119d6..b5a28d19d8 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServComponentSvr.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServComponentSvr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServDataContent.C b/src/Superstructure/WebServices/src/ESMCI_WebServDataContent.C index b31119a04a..c638982731 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServDataContent.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServDataContent.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServDataDesc.C b/src/Superstructure/WebServices/src/ESMCI_WebServDataDesc.C index e899027b66..193554da7e 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServDataDesc.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServDataDesc.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServDataMgr.C b/src/Superstructure/WebServices/src/ESMCI_WebServDataMgr.C index 448f1f0fd6..6ab91fe5ef 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServDataMgr.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServDataMgr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServForkClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServForkClient.C index e487901a8a..9198e7c1e4 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServForkClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServForkClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServGRAMClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServGRAMClient.C index fc8d44841a..82d0178cdc 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServGRAMClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServGRAMClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServLowLevelSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServLowLevelSocket.C index b66a8702f1..13a4594825 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServLowLevelSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServLowLevelSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfClient.C index e288fd129e..c75ef575ab 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfServer.C b/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfServer.C index f4becff074..9a469082f3 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfServer.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServNetEsmfServer.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrl.C b/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrl.C index 8eda8e69ca..6fcd923920 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrl.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrl.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrlClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrlClient.C index 9c381015a2..f88a2374c6 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrlClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServProcCtrlClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServRegistrarClient.C b/src/Superstructure/WebServices/src/ESMCI_WebServRegistrarClient.C index 8b943ee4a7..a57b2ee423 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServRegistrarClient.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServRegistrarClient.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServSecureClientSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServSecureClientSocket.C index 5719405167..eb3107763a 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServSecureClientSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServSecureClientSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServSecureServerSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServSecureServerSocket.C index b1bd561a5a..b7aee5713e 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServSecureServerSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServSecureServerSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServSecureSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServSecureSocket.C index 874db7b2d3..1547e7550a 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServSecureSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServSecureSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServSecureUtils.C b/src/Superstructure/WebServices/src/ESMCI_WebServSecureUtils.C index 8487090ccb..c1ea87eb85 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServSecureUtils.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServSecureUtils.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServServerSocket.C b/src/Superstructure/WebServices/src/ESMCI_WebServServerSocket.C index 463eeb795b..e344e6a5c6 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServServerSocket.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServServerSocket.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServSocketUtils.C b/src/Superstructure/WebServices/src/ESMCI_WebServSocketUtils.C index 59caf4cc35..84cbc55aab 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServSocketUtils.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServSocketUtils.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMCI_WebServ_F.C b/src/Superstructure/WebServices/src/ESMCI_WebServ_F.C index 1f0227ec4a..46b329d938 100644 --- a/src/Superstructure/WebServices/src/ESMCI_WebServ_F.C +++ b/src/Superstructure/WebServices/src/ESMCI_WebServ_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMF_WebServ.F90 b/src/Superstructure/WebServices/src/ESMF_WebServ.F90 index 8b1dd3fd8e..a28ff8fe75 100644 --- a/src/Superstructure/WebServices/src/ESMF_WebServ.F90 +++ b/src/Superstructure/WebServices/src/ESMF_WebServ.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/Superstructure/WebServices/src/ESMF_WebServComponent_C.F90 b/src/Superstructure/WebServices/src/ESMF_WebServComponent_C.F90 index b19a37b0fc..3caad8f9b7 100644 --- a/src/Superstructure/WebServices/src/ESMF_WebServComponent_C.F90 +++ b/src/Superstructure/WebServices/src/ESMF_WebServComponent_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/ESMX/Driver/CMakeLists.txt b/src/addon/ESMX/Driver/CMakeLists.txt index ab75e98d17..cc362a34b9 100644 --- a/src/addon/ESMX/Driver/CMakeLists.txt +++ b/src/addon/ESMX/Driver/CMakeLists.txt @@ -160,6 +160,15 @@ foreach(ESMX_LINK_LIBRARY IN ITEMS ${ESMX_LINK_LIBRARIES}) endif() endforeach() +# CMake has a bug with NAG and OpenMP: +# https://gitlab.kitware.com/cmake/cmake/-/issues/21280 +# so we work around it ... credit to https://github.com/mathomp4 +if (OpenMP_Fortran_FOUND AND CMAKE_Fortran_COMPILER_ID STREQUAL "NAG") + message(WARNING "NAG Fortran detected, resetting OpenMP flags to avoid CMake bug") + set_property(TARGET OpenMP::OpenMP_Fortran PROPERTY INTERFACE_LINK_LIBRARIES "") + set_property(TARGET OpenMP::OpenMP_Fortran PROPERTY INTERFACE_LINK_OPTIONS "-openmp") +endif() + # link options if(DEFINED ESMX_LINK_OPTIONS) target_link_options(esmx_driver PUBLIC ${ESMX_LINK_OPTIONS}) diff --git a/src/addon/ESMX/Driver/ESMX_Driver.F90 b/src/addon/ESMX/Driver/ESMX_Driver.F90 index 39227b2e53..6381d616fd 100644 --- a/src/addon/ESMX/Driver/ESMX_Driver.F90 +++ b/src/addon/ESMX/Driver/ESMX_Driver.F90 @@ -150,7 +150,8 @@ subroutine SetModelServices(driver, rc) isFlag = ESMF_HConfigValidateMapKeys(hconfigNode, & vocabulary=["attributes ", & ! ESMX_Driver option "componentList", & ! ESMX_Driver option - "runSequence " & ! ESMX_Driver option + "runSequence ", & ! ESMX_Driver option + "logSystem " & ! ESMX_Driver option ], badKey=string1, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=FILENAME)) & @@ -161,6 +162,27 @@ subroutine SetModelServices(driver, rc) line=__LINE__, file=FILENAME, rcToReturn=rc) call ESMF_Finalize(endflag=ESMF_END_ABORT) endif + ! Ingest logSystem logical + isFlag = ESMF_HConfigIsDefined(hconfigNode, keyString="logSystem", & + rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME)) return ! bail out + isFlag = isFlag .and. & + .not.ESMF_HConfigIsNull(hconfigNode, keyString="logSystem", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME)) return ! bail out + if (isFlag) then + isFlag = ESMF_HConfigAsLogical(hconfigNode, keyString="logSystem", & + rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME)) return ! bail out + if (isFLag) then + call ESMF_VMLogSystem(prefix="ESMX_Driver: ", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME)) return ! bail out + endif + endif + ! Ingest the generic component label list isFlag = ESMF_HConfigIsDefined(hconfigNode, keyString="componentList", & rc=rc) diff --git a/src/addon/ESMX/README.md b/src/addon/ESMX/README.md index fe8de4cf1b..bc71702f4a 100644 --- a/src/addon/ESMX/README.md +++ b/src/addon/ESMX/README.md @@ -288,6 +288,7 @@ This section affects the driver level. | --------------- | -------------------------------------------------------------------- | --------------- | | `componentList` | list of component labels, each matching a top level key in this file | *Empty* | | `runSequence` | block literal string defining the run sequence | *NUOPC default* | +| `logSystem` | enable/disable ESMF_VMLogSystem() during Driver SetModelServices(): `true` or `false`| `false` | | `attributes` | map of key value pairs, each defining a driver attribute | *None* | #### Component Label Options diff --git a/src/addon/NUOPC/doc/NUOPC_ConnectorComponent_metadata.tex b/src/addon/NUOPC/doc/NUOPC_ConnectorComponent_metadata.tex index 0257cb681c..83d3dae982 100644 --- a/src/addon/NUOPC/doc/NUOPC_ConnectorComponent_metadata.tex +++ b/src/addon/NUOPC/doc/NUOPC_ConnectorComponent_metadata.tex @@ -3,7 +3,7 @@ using the JSON Pointer "/NUOPC/Instance/" prefix followed by the "Attribute name" as per the table below. E.g. "Verbosity" is accessed using {\tt key="/NUOPC/Instance/Verbosity"}. -\begin{longtable}{|p{.22\textwidth}|p{.6\textwidth}|p{.2\textwidth}|} +\begin{longtable}{|p{.3\textwidth}|p{.4\textwidth}|p{.3\textwidth}|} \hline\hline {\bf Attribute name} & {\bf Definition} & {\bf Controlled vocabulary}\\ \hline\hline @@ -69,6 +69,9 @@ {\tt CplList} & List of StandardNames of the connected Fields. Each StandardName entry may be followed by a colon separated list of connection options. The details are discussed in section \ref{connection_options} & {\em Standard names} as per field dictionary, followed by {\em connection options} defined in section \ref{connection_options}.\\ \hline {\tt CplSetList} & List of coupling sets. Each coupling set is identified by a string value.& {\em no restriction}\\ \hline {\tt ConnectionOptions} & String value specifying the connection options to be applied to all the fields in the {\tt CplList} by default.& {\em Connection options} defined in section \ref{connection_options}.\\ \hline - {\tt EpochThrottle} & Integer specifying the maximum number of outstanding EPOCH messages between any two PETs. The ESMF level default is 10. & Any positive integer.\\ \hline + {\tt EpochEnable} & String value specifying whether EPOCH support is enabled inside the Connector. The default setting is "true". & false, true\\ \hline + {\tt EpochEnterKeepAlloc} & String value specifying whether to keep internal allocations when entering the EPOCH for reuse. The default setting is "true". & false, true\\ \hline + {\tt EpochExitKeepAlloc} & String value specifying whether to keep internal allocations when exiting the EPOCH for reuse. The default setting is "true". & false, true\\ \hline + {\tt EpochThrottle} & Integer specifying the maximum number of outstanding EPOCH messages between any two PETs. The default throttle level is 10. & Any positive integer.\\ \hline \hline \end{longtable} diff --git a/src/addon/NUOPC/doc/NUOPC_FieldMirror.tex b/src/addon/NUOPC/doc/NUOPC_FieldMirror.tex index 681151cbe3..cf4919c07b 100644 --- a/src/addon/NUOPC/doc/NUOPC_FieldMirror.tex +++ b/src/addon/NUOPC/doc/NUOPC_FieldMirror.tex @@ -3,12 +3,14 @@ \label{FieldMirror} -In some cases it is helpful for a NUOPC component to automatically mirror or match the set of fields advertised by another component. One purpose of this is to automatically resolve the import data dependencies of a component, by setting up a component that exactly provides all of the needed fields. This is currently used in the NUOPC Component Explorer: when driving a child NUOPC Model with required import fields, the Component Explorer uses the field mirroring capability to advertise in the driver-self export State the exact set of fields advertised in the child NUOPC Model. This ensures that the entire Initialize Phase Sequence will complete (because all dependencies are satisfied) and all phases can be exercised by the Component Explorer. +In some cases it is useful for a NUOPC component to match the set of fields advertised by another component, e.g. in order to connect to every field. NUOPC provides the concept of {\em field mirroring} that allows automatic matching by "mirroring" the fields of another component in their import- or exportState into their own States. One purpose of this is to automatically resolve the import data dependencies of a component, by setting up a component that exactly provides all of the needed fields. The field mirror capability is also useful with NUOPC Mediators since these components often exactly reflect, in separate States, the sets of fields of each of the connected components. The field mirroring capability, therefore, can be used to ensure that a Mediator is always capable of accepting fields from connected components, and removes the need to specify field lists in multiple places, i.e., both within a set of Model components connected to a Mediator and within the Mediator itself. -To access the field mirror capability, a component sets the {\tt FieldTransferPolicy} attribute during {\tt label\_Advertise}. The attribute is set on the Import- and/or Export- States to trigger field mirroring for each state, respectively. The default value of "TransferNone" indicates that no fields should be mirrored. The other option, "TransferAll", indicates that fields should be mirrored in the State of a connected component. +To access the field mirror capability, a component sets the {\tt FieldTransferPolicy} attribute during {\tt label\_Advertise}. The attribute is set on the Import- and/or Export- States to trigger field mirroring for each state, respectively. The default value of "transferNone" indicates that no fields should be mirrored. The other available options are "transferAll" and "transferAllWithNamespace". Both options mirror transfer all of the fields from all of the connected States into the State that carries the attribute. The "transferAll" option results in flat structure with all of the mirrored fields added directly to the acceptor State. A flat structure like this is typically the preferred situation for an ExportState, where the same fields might be connected to multiple consumer components. The "transferAllWithNamespace" option also mirrors all of the field from the connected State, but creates separate Namespaces for each connection, placing the associated mirrored fields into the respective nested State. A nested structure like this useful for an ImportState where connections are being made with multiple producer components. In this case the consumer component can query the "Namespace" attribute of each nested State to infer the component label of the associated producer components. -Each Connector consider the {\tt FieldTransferPolicy} Attribute on both its import and export States. If {\em both} States have a {\tt FieldTransferPolicy} of "TransferAll", then fields are transferred between the States in both directions (i.e., import to export and export to import). The transfer process works as follows: First, the {\tt TransferOfferGoemObject} attribute is reversed between the providing side and accepting side. Intuitively, if a field from the providing component is to be mirrored and it can provide its own geometric object, then the mirrored field on the accepting side should be set to accept a geometric object. Then, the field to be mirrored is advertised in the accepting State using a call to {\tt NUOPC\_Advertise()} such that the mirrored field shares the same Standard Name. +Each Connector considers the {\tt FieldTransferPolicy} attribute on both its import and export States. Each State that has the {\tt FieldTransferPolicy} attribute set to "transferAll" or "transferAllWithNamespace", will have then fields of the respecive other State mirror transferred. If {\em both} States have the {\tt FieldTransferPolicy} attribute set to trigger the mirror transfer, then fields are mirrored in both directions (i.e. import to export and export to import). -Components have the opportunity, using specialiozation point {\tt label\_ModifyAdvertised}, to modify any of the mirrored Fields in their Import/ExportState. After this the initialization sequence continues as usual. Since fields to be mirrored have been advertised with matching Standard Names, the field pairing algorithm will now match them in the usual way thereby establishing a connection between the original and mirrored fields. +The transfer process works as follows: First, the {\tt TransferOfferGoemObject} attribute is reversed between the providing side and accepting side. This is because if a field from the providing component is to be mirrored and it {\em can} provide its own geometric object, then the mirrored field on the accepting side should be set to {\em accept} a geometric object. The mirrored field is advertised in the accepting State using a call to {\tt NUOPC\_Advertise()} such that the mirrored field shares the same StandardName. + +Components have the opportunity to modify or remove any of the mirrored Fields in their Import/ExportState by using the {\tt label\_ModifyAdvertised} specialization point. After this point the initialization sequence continues as usual. Since the mirrored fields have been advertised with matching StandardName attribute, the field pairing algorithm now matches them in the usual manner, thereby establishing a connection between the original and the mirrored fields. diff --git a/src/addon/NUOPC/doc/NUOPC_Field_metadata.tex b/src/addon/NUOPC/doc/NUOPC_Field_metadata.tex index e1d64baae3..0e2d44f8d8 100644 --- a/src/addon/NUOPC/doc/NUOPC_Field_metadata.tex +++ b/src/addon/NUOPC/doc/NUOPC_Field_metadata.tex @@ -3,7 +3,7 @@ using the JSON Pointer "/NUOPC/Instance/" prefix followed by the "Attribute name" as per the table below. E.g. "StandardName" is accessed using {\tt key="/NUOPC/Instance/StandardName"}. -\begin{longtable}{|p{.22\textwidth}|p{.6\textwidth}|p{.2\textwidth}|} +\begin{longtable}{|p{.3\textwidth}|p{.4\textwidth}|p{.3\textwidth}|} \hline\hline {\bf Attribute name} & {\bf Definition} & {\bf Controlled vocabulary}\\ \hline\hline diff --git a/src/addon/NUOPC/doc/NUOPC_State_metadata.tex b/src/addon/NUOPC/doc/NUOPC_State_metadata.tex index 095773ee35..890b65bf60 100644 --- a/src/addon/NUOPC/doc/NUOPC_State_metadata.tex +++ b/src/addon/NUOPC/doc/NUOPC_State_metadata.tex @@ -3,11 +3,12 @@ using the JSON Pointer "/NUOPC/Instance/" prefix followed by the "Attribute name" as per the table below. E.g. "Namespace" is accessed using {\tt key="/NUOPC/Instance/Namespace"}. -\begin{longtable}{|p{.22\textwidth}|p{.6\textwidth}|p{.2\textwidth}|} +\begin{longtable}{|p{.3\textwidth}|p{.4\textwidth}|p{.3\textwidth}|} \hline\hline {\bf Attribute name} & {\bf Definition} & {\bf Controlled vocabulary}\\ \hline\hline - {\tt Namespace} & String value holding the namespace of all the objects contained in the State.& {\em no restriction}\\ \hline - {\tt FieldTransferPolicy} & String value indicating to Connector to transfer/mirror Fields. & transferNone,\newline transferAll\\ \hline + {\tt Namespace} & String value holding the namespace that applies to all of the objects contained in the State.& {\em no restriction}\\ \hline + {\tt FieldTransferPolicy} & String value indicating to Connector whether to mirror transfer Fields into this State. & transferNone,\newline transferAll,\newline transferAllWithNamespace\\ \hline + {\tt CplSet} & String value holding the coupling set name that applies to all of the objects contained in the State.& {\em no restriction}\\ \hline \hline \end{longtable} diff --git a/src/addon/NUOPC/doc/NUOPC_howtodoc.ctex b/src/addon/NUOPC/doc/NUOPC_howtodoc.ctex index 85d8425a43..8c96a008b8 100644 --- a/src/addon/NUOPC/doc/NUOPC_howtodoc.ctex +++ b/src/addon/NUOPC/doc/NUOPC_howtodoc.ctex @@ -17,7 +17,7 @@ \addtolength{\oddsidemargin}{-.75in} \newcommand{\mytitle}{\Large {\bf Building a NUOPC Model}} \newcommand{\myauthors}{\large {\it Content Standards Committee (CSC) Members}} -\newcommand{\myversion}{ESMF 8.8.0 beta snapshot} +\newcommand{\myversion}{ESMF 8.9.0 beta snapshot} % set a standard paragraph style \setlength{\parskip}{0pt} \setlength{\parindent}{0pt} diff --git a/src/addon/NUOPC/doc/NUOPC_refdoc.ctex b/src/addon/NUOPC/doc/NUOPC_refdoc.ctex index 69e343ed4a..8cb71da9e7 100644 --- a/src/addon/NUOPC/doc/NUOPC_refdoc.ctex +++ b/src/addon/NUOPC/doc/NUOPC_refdoc.ctex @@ -17,7 +17,7 @@ \addtolength{\oddsidemargin}{-.75in} \newcommand{\mytitle}{\Large {\bf NUOPC Layer Reference}} \newcommand{\myauthors}{\large {\it Content Standards Committee (CSC) Members}} -\newcommand{\myversion}{ESMF 8.8.0 beta snapshot} +\newcommand{\myversion}{ESMF 8.9.0 beta snapshot} % set a standard paragraph style \setlength{\parskip}{0pt} \setlength{\parindent}{0pt} diff --git a/src/addon/NUOPC/doc/NUOPC_title.tex b/src/addon/NUOPC/doc/NUOPC_title.tex index 0719188fb0..e67036d3a9 100644 --- a/src/addon/NUOPC/doc/NUOPC_title.tex +++ b/src/addon/NUOPC/doc/NUOPC_title.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/examples/ESMF_NUOPCAtmModelEx.F90 b/src/addon/NUOPC/examples/ESMF_NUOPCAtmModelEx.F90 index 7497fc7f75..4117bfe79a 100644 --- a/src/addon/NUOPC/examples/ESMF_NUOPCAtmModelEx.F90 +++ b/src/addon/NUOPC/examples/ESMF_NUOPCAtmModelEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/examples/ESMF_NUOPCBasicModelEx.F90 b/src/addon/NUOPC/examples/ESMF_NUOPCBasicModelEx.F90 index 26c50678fb..767f381051 100644 --- a/src/addon/NUOPC/examples/ESMF_NUOPCBasicModelEx.F90 +++ b/src/addon/NUOPC/examples/ESMF_NUOPCBasicModelEx.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/include/NUOPC.h b/src/addon/NUOPC/include/NUOPC.h index 67f8cbecad..3128aef6e7 100644 --- a/src/addon/NUOPC/include/NUOPC.h +++ b/src/addon/NUOPC/include/NUOPC.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/interface/NUOPC_C.F90 b/src/addon/NUOPC/interface/NUOPC_C.F90 index 905a52a119..0ffd03987f 100644 --- a/src/addon/NUOPC/interface/NUOPC_C.F90 +++ b/src/addon/NUOPC/interface/NUOPC_C.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/interface/NUOPC_F.C b/src/addon/NUOPC/interface/NUOPC_F.C index 254b7121b0..0356cee1c6 100644 --- a/src/addon/NUOPC/interface/NUOPC_F.C +++ b/src/addon/NUOPC/interface/NUOPC_F.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC.F90 b/src/addon/NUOPC/src/NUOPC.F90 index bc853abf7b..51d5fe33ff 100644 --- a/src/addon/NUOPC/src/NUOPC.F90 +++ b/src/addon/NUOPC/src/NUOPC.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Auxiliary.F90 b/src/addon/NUOPC/src/NUOPC_Auxiliary.F90 index a0c9d4648e..75e7995634 100644 --- a/src/addon/NUOPC/src/NUOPC_Auxiliary.F90 +++ b/src/addon/NUOPC/src/NUOPC_Auxiliary.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Base.F90 b/src/addon/NUOPC/src/NUOPC_Base.F90 index 1d965235f7..2f4d6d2657 100644 --- a/src/addon/NUOPC/src/NUOPC_Base.F90 +++ b/src/addon/NUOPC/src/NUOPC_Base.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -154,12 +154,13 @@ module NUOPC_Base ! !IROUTINE: NUOPC_AddNamespace - Add a nested state with Namespace to a State ! !INTERFACE: subroutine NUOPC_AddNamespace(state, Namespace, nestedStateName, & - nestedState, rc) + nestedState, vm, rc) ! !ARGUMENTS: type(ESMF_State), intent(inout) :: state character(len=*), intent(in) :: Namespace character(len=*), intent(in), optional :: nestedStateName type(ESMF_State), intent(out), optional :: nestedState + type(ESMF_VM), intent(in), optional :: vm integer, intent(out), optional :: rc ! !DESCRIPTION: ! Add a Namespace to {\tt state}. Namespaces are implemented via nested @@ -178,6 +179,10 @@ subroutine NUOPC_AddNamespace(state, Namespace, nestedStateName, & ! Name of the nested state. Defaults to {\tt Namespace}. ! \item[{[nestedState]}] ! Optional return of the newly created nested state. +! \item[{[vm]}] +! If present, the nested State created to hold the namespace is created on +! the specified {\tt ESMF\_VM} object. The default is to create the nested +! State on the VM of the current component context. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -189,9 +194,10 @@ subroutine NUOPC_AddNamespace(state, Namespace, nestedStateName, & type(ESMF_State) :: nestedS character(len=80) :: nestedSName type(ESMF_StateIntent_Flag) :: stateIntent - + logical :: stateIsCreated + if (present(rc)) rc = ESMF_SUCCESS - + call ESMF_StateGet(state, stateIntent=stateIntent, rc=localrc) if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out @@ -201,31 +207,39 @@ subroutine NUOPC_AddNamespace(state, Namespace, nestedStateName, & else nestedSName = trim(Namespace) endif - + nestedS = ESMF_StateCreate(name=nestedSName, stateIntent=stateIntent, & - rc=localrc) - if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out - - call NUOPC_InitAttributes(nestedS, rc=localrc) + vm=vm, rc=localrc) if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out - call NUOPC_SetAttribute(nestedS, name="Namespace", & - value=trim(Namespace), rc=localrc) - if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out - - call ESMF_StateAdd(state, (/nestedS/), rc=localrc) + stateIsCreated = ESMF_StateIsCreated(nestedS, rc=rc) if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out + if (stateIsCreated) then + + call NUOPC_InitAttributes(nestedS, rc=localrc) + if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out + + call NUOPC_SetAttribute(nestedS, name="Namespace", & + value=trim(Namespace), rc=localrc) + if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out + + call ESMF_StateAdd(state, (/nestedS/), rc=localrc) + if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out + + endif + if (present(nestedState)) & nestedState = nestedS - + end subroutine - !--------------------------------------------------------------------- - + !----------------------------------------------------------------------------- + !----------------------------------------------------------------------------- !BOP ! !IROUTINE: NUOPC_AddNestedState - Add a nested state to a state with NUOPC attributes @@ -623,13 +637,14 @@ subroutine NUOPC_AdvertiseField(state, StandardName, Units, & ! !INTERFACE: ! Private name; call using NUOPC_Advertise() subroutine NUOPC_AdvertiseFields(state, StandardNames, & - TransferOfferGeomObject, SharePolicyField, SharePolicyGeomObject, rc) + TransferOfferGeomObject, SharePolicyField, SharePolicyGeomObject, vm, rc) ! !ARGUMENTS: type(ESMF_State), intent(inout) :: state character(*), intent(in) :: StandardNames(:) character(*), intent(in), optional :: TransferOfferGeomObject character(*), intent(in), optional :: SharePolicyField character(*), intent(in), optional :: SharePolicyGeomObject + type(ESMF_VM), intent(in), optional :: vm integer, intent(out), optional :: rc ! !DESCRIPTION: ! \label{NUOPC_AdvertiseFields} @@ -668,6 +683,10 @@ subroutine NUOPC_AdvertiseFields(state, StandardNames, & ! controls the vocabulary of this attribute. Valid options are ! "share", and "not share". ! If omitted, the default is equal to {\tt SharePolicyField}. +! \item[{[vm]}] +! If present, the Field objects used during advertising are created on the +! specified {\tt ESMF\_VM} object. The default is to create the Field +! objects on the VM of the current component context. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} @@ -682,8 +701,9 @@ subroutine NUOPC_AdvertiseFields(state, StandardNames, & do i=1, size(StandardNames) call NUOPC_AdvertiseField(state, StandardName=StandardNames(i), & - TransferOfferGeomObject=TransferOfferGeomObject, SharePolicyField=SharePolicyField, & - SharePolicyGeomObject=SharePolicyGeomObject, rc=localrc) + TransferOfferGeomObject=TransferOfferGeomObject, & + SharePolicyField=SharePolicyField, & + SharePolicyGeomObject=SharePolicyGeomObject, vm=vm, rc=localrc) if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, & file=FILENAME, & diff --git a/src/addon/NUOPC/src/NUOPC_Comp.F90 b/src/addon/NUOPC/src/NUOPC_Comp.F90 index 67d2d8a9d1..bf81ea1a03 100644 --- a/src/addon/NUOPC/src/NUOPC_Comp.F90 +++ b/src/addon/NUOPC/src/NUOPC_Comp.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1610,7 +1610,10 @@ subroutine NUOPC_GridCompAttributeIng(comp, freeFormat, addFlag, rc) ! Important: Attributes ingested by this method are stored as type character ! strings, and must be accessed accordingly. Conversion from string into a ! different data type, e.g. {\tt integer} or {\tt real}, is the user's -! responsibility. +! responsibility. This method does not support value lists. Attribute values +! ingested by this method must not contain whitespace within the value. If +! whitespace is found within the value the attribute will not be added to +! the comp. ! ! If {\tt addFlag} is {\tt .false.} (default), an error will be returned if ! an attribute is to be ingested that was not previously added to the @@ -1644,6 +1647,20 @@ subroutine NUOPC_GridCompAttributeIng(comp, freeFormat, addFlag, rc) ! specifies a user-level Attribute, which is not part of the pre-defined ! Attributes of any of the standard NUOPC component kinds. ! +! Currently, whitespace is not supported in the attribute value and +! the following attributeName fails to be added. +! +! \begin{verbatim} +! attributeName = attributeValue1 attributeValue2 attributedValue3 +! \end{verbatim} +! +! If a list is needed then a comma can be used as a delimiter. The +! attribute value list must then be parsed in user code. +! +! \begin{verbatim} +! attributeName = attributeValue1,attributeValue2,attributedValue3 +! \end{verbatim} +! !EOP !----------------------------------------------------------------------------- character(ESMF_MAXSTR) :: name @@ -2219,13 +2236,16 @@ subroutine NUOPC_CplCompAttributeInit(comp, rc) line=__LINE__, & file=FILENAME, & rcToReturn=rc)) return ! bail out - + ! The NUOPC/Connector Attributes - allocate(attrList(4)) + allocate(attrList(7)) attrList(1) = "CplList" attrList(2) = "CplSetList" attrList(3) = "ConnectionOptions" - attrList(4) = "EpochThrottle" + attrList(4) = "EpochEnable" + attrList(5) = "EpochEnterKeepAlloc" + attrList(6) = "EpochExitKeepAlloc" + attrList(7) = "EpochThrottle" call ESMF_AttributeAdd(comp, convention="NUOPC", purpose="Instance", & attrList=attrList, rc=localrc) if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & @@ -2255,6 +2275,8 @@ subroutine NUOPC_CplCompAttributeInit(comp, rc) call NUOPC_CompAttributeSet(comp, & name="Diagnostic", value="0", & rc=localrc) + if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out end subroutine !----------------------------------------------------------------------------- diff --git a/src/addon/NUOPC/src/NUOPC_Compliance_Base.F90 b/src/addon/NUOPC/src/NUOPC_Compliance_Base.F90 index 69f10f79e6..cca8a41464 100644 --- a/src/addon/NUOPC/src/NUOPC_Compliance_Base.F90 +++ b/src/addon/NUOPC/src/NUOPC_Compliance_Base.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Compliance_Connector.F90 b/src/addon/NUOPC/src/NUOPC_Compliance_Connector.F90 index 7410b474b1..75515c0508 100644 --- a/src/addon/NUOPC/src/NUOPC_Compliance_Connector.F90 +++ b/src/addon/NUOPC/src/NUOPC_Compliance_Connector.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Compliance_Driver.F90 b/src/addon/NUOPC/src/NUOPC_Compliance_Driver.F90 index d927a35260..12eba793be 100644 --- a/src/addon/NUOPC/src/NUOPC_Compliance_Driver.F90 +++ b/src/addon/NUOPC/src/NUOPC_Compliance_Driver.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Compliance_Model.F90 b/src/addon/NUOPC/src/NUOPC_Compliance_Model.F90 index 48104f806c..df41e49f1c 100644 --- a/src/addon/NUOPC/src/NUOPC_Compliance_Model.F90 +++ b/src/addon/NUOPC/src/NUOPC_Compliance_Model.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Connector.F90 b/src/addon/NUOPC/src/NUOPC_Connector.F90 index 1a0ef0a744..8ad68628bf 100644 --- a/src/addon/NUOPC/src/NUOPC_Connector.F90 +++ b/src/addon/NUOPC/src/NUOPC_Connector.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -85,6 +85,10 @@ module NUOPC_Connector type(ESMF_VM) :: srcVM type(ESMF_VM) :: dstVM type(ESMF_Clock) :: driverClock + logical :: epochEnable + logical :: epochEnterKeepAlloc + logical :: epochExitKeepAlloc + integer :: epochThrottle end type type type_InternalState @@ -436,6 +440,7 @@ subroutine InitializeIPDv05p1(connector, importState, exportState, clock, rc) integer :: i, j character(ESMF_MAXSTR) :: importCplSet, exportCplSet character(len=240) :: msgString + character(ESMF_MAXSTR) :: stateName, namespace rc = ESMF_SUCCESS @@ -607,6 +612,26 @@ subroutine InitializeIPDv05p1(connector, importState, exportState, clock, rc) call doMirror(importState, exportState, acceptorVM=vm, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + elseif (trim(exportXferPolicy)=="transferAllWithNamespace") then + ! access importState namespace so it can be transferred to exportState + call NUOPC_GetAttribute(importState, name="Namespace", & + value=namespace, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! access name of exportState for nestedStateName construction for clarity + call ESMF_StateGet(exportState, name=stateName, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! set namespace on exportState, creating a nestedState on acceptor VM + call NUOPC_AddNamespace(exportState, namespace=trim(namespace), & + nestedStateName=trim(stateName)//"-namespace:"//trim(namespace), & + nestedState=exportNestedState, vm=vm, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! mirror importState items into exportNestedState + call doMirror(importState, exportNestedState, acceptorVM=vm, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out elseif (importHasNested .and. exportHasNested) then ! loop through the nested states inside of the exportState and see if ! any of them request mirroring @@ -682,6 +707,24 @@ subroutine InitializeIPDv05p1(connector, importState, exportState, clock, rc) call doMirror(exportState, importState, acceptorVM=vm, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + elseif (trim(importXferPolicy)=="transferAllWithNamespace") then + ! access exportState namespace so it can be transferred to importState + call NUOPC_GetAttribute(exportState, name="Namespace", & + value=namespace, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! access name of importState for nestedStateName construction for clarity + call ESMF_StateGet(importState, name=stateName, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! set namespace on importState, creating a nestedState on acceptor VM + call NUOPC_AddNamespace(importState, namespace=trim(namespace), & + nestedStateName=trim(stateName)//"-namespace:"//trim(namespace), & + nestedState=importNestedState, vm=vm, rc=rc) + ! mirror exportState items into importNestedState + call doMirror(exportState, importNestedState, acceptorVM=vm, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out elseif (importHasNested .and. exportHasNested) then ! loop through the nested states inside of the importState and see if ! any of them request mirroring @@ -792,7 +835,7 @@ subroutine InitializeIPDv05p1(connector, importState, exportState, clock, rc) recursive subroutine doMirror(providerState, acceptorState, acceptorVM, rc) type(ESMF_State) :: providerState type(ESMF_State) :: acceptorState - type(ESMF_VM), intent(in) :: acceptorVM + type(ESMF_VM), intent(in) :: acceptorVM integer, intent(out) :: rc integer :: item, itemCount @@ -818,7 +861,7 @@ recursive subroutine doMirror(providerState, acceptorState, acceptorVM, rc) character(ESMF_MAXSTR) :: valueString type(ESMF_Pointer) :: vmThis logical :: actualFlag - + rc = ESMF_SUCCESS nullify(providerStandardNameList) @@ -826,13 +869,13 @@ recursive subroutine doMirror(providerState, acceptorState, acceptorVM, rc) nullify(providerFieldList) nullify(providerCplSetList) nullify(acceptorStandardNameList) - + actualFlag = .true. call ESMF_VMGetThis(acceptorVM, vmThis) if (vmThis == ESMF_NULL_POINTER) then actualFlag = .false. ! local PET is not for an actual member endif - + call ESMF_StateGet(acceptorState, name=acceptorStateName, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out @@ -1008,9 +1051,10 @@ recursive subroutine doMirror(providerState, acceptorState, acceptorVM, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif + end do endif - + if (flipIntent) then ! Need to flip the accetorState intent back (same as providerIntent). call ESMF_StateSet(acceptorState, stateIntent=providerIntent, rc=rc) @@ -4487,8 +4531,10 @@ subroutine InitializeIPDv05p5(connector, importState, exportState, clock, rc) gridList=>gridList%prev #define CLEAN_OUT_OLD_ACCEPTOR_GRID #ifdef CLEAN_OUT_OLD_ACCEPTOR_GRID +#if 0 call ESMF_PointerLog(gridListE%keyGrid%this, prefix="about to destroy Grid: ", & logMsgFlag=ESMF_LOGMSG_DEBUG, rc=rc) +#endif call ESMF_GridDestroy(gridListE%keyGrid, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out @@ -4501,8 +4547,10 @@ subroutine InitializeIPDv05p5(connector, importState, exportState, clock, rc) meshList=>meshList%prev #define CLEAN_OUT_OLD_ACCEPTOR_MESH #ifdef CLEAN_OUT_OLD_ACCEPTOR_MESH +#if 0 call ESMF_PointerLog(meshListE%keyMesh%this, prefix="about to destroy Mesh: ", & logMsgFlag=ESMF_LOGMSG_DEBUG, rc=rc) +#endif call ESMF_MeshDestroy(meshListE%keyMesh, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out @@ -4578,10 +4626,12 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) integer :: stat integer :: localPet type(ESMF_State) :: state + type(ESMF_DistGrid) :: gridDG, arrayDG + type(ESMF_DistGridMatch_Flag) :: dgMatch ! set RC rc = ESMF_SUCCESS - + ! queries call ESMF_FieldGet(acceptorField, grid=grid, name=fieldName, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -4625,10 +4675,32 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif - ! obtain the array from provider to be shared with acceptor + + ! obtain the array from provider to be shared with acceptor, effectively + ! sharing the provider data allocation with the acceptor field call ESMF_FieldGet(providerField, array=array, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return + + ! access grid and array DistGrids to ensure match level is high enough + ! to support field sharing + call ESMF_GridGet(grid, staggerloc=staggerloc, distgrid=gridDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + call ESMF_ArrayGet(array, distgrid=arrayDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + dgMatch = ESMF_DistGridMatch(gridDG, arrayDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + if (dgMatch < ESMF_DISTGRIDMATCH_EXACT) then + call ESMF_LogSetError(ESMF_RC_ARG_INCOMP, & + msg="The available Grid does not support Field sharing!",& + line=__LINE__, file=trim(name)//":"//FILENAME, & + rcToReturn=rc) + return ! bail out + endif + ! obtain the vm from provider to create the new field on the provider vm ! This way shared fields will only be send/receive during Timestamp ! propagation on actvive PETs. This is what you expect for a shared field. @@ -4648,7 +4720,7 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) line=__LINE__, file=FILENAME, rcToReturn=rc)) return ! bail out if (localPet>-1) then ! this is an active PET -> create the acceptorField - + !TODO: make sure that this FieldCreate() sets total widths correctly !TODO: difficult to do with current FieldCreate() for multiple DEs/PET if (fieldDimCount - gridDimCount > 0) then @@ -4670,7 +4742,7 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return endif - + ! reconcile across the entire Connector VM call ESMF_StateReconcile(state, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -4678,7 +4750,7 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) call ESMF_StateGet(state, itemName=fieldName, field=acceptorField, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return - + ! done with the helper state call ESMF_StateDestroy(state, noGarbage=.true., rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -4703,7 +4775,7 @@ subroutine ShareFieldWithGrid(acceptorField, providerField, name, rc) msg="Deallocating ungriddedUBound", & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif - + end subroutine !----------------------------------------------------------------------------- @@ -4726,10 +4798,12 @@ subroutine ShareFieldWithMesh(acceptorField, providerField, name, rc) integer :: stat integer :: localPet type(ESMF_State) :: state + type(ESMF_DistGrid) :: meshDG, arrayDG + type(ESMF_DistGridMatch_Flag) :: dgMatch ! set RC rc = ESMF_SUCCESS - + ! queries call ESMF_FieldGet(acceptorField, mesh=mesh, name=fieldName, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -4769,10 +4843,38 @@ subroutine ShareFieldWithMesh(acceptorField, providerField, name, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif - ! obtain the array from provider to be shared with acceptor + + ! obtain the array from provider to be shared with acceptor, effectively + ! sharing the provider data allocation with the acceptor field call ESMF_FieldGet(providerField, array=array, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return + + ! access mesh and array DistGrids to ensure match level is high enough + ! to support field sharing + if (meshloc == ESMF_MESHLOC_NODE) then + call ESMF_MeshGet(mesh, nodalDistgrid=meshDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + else + call ESMF_MeshGet(mesh, elementDistgrid=meshDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + endif + call ESMF_ArrayGet(array, distgrid=arrayDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + dgMatch = ESMF_DistGridMatch(meshDG, arrayDG, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return + if (dgMatch < ESMF_DISTGRIDMATCH_EXACT) then + call ESMF_LogSetError(ESMF_RC_ARG_INCOMP, & + msg="The available Mesh does not support Field sharing!",& + line=__LINE__, file=trim(name)//":"//FILENAME, & + rcToReturn=rc) + return ! bail out + endif + ! obtain the vm from provider to create the new field on the provider vm ! This way shared fields will only be send/receive during Timestamp ! propagation on actvive PETs. This is what you expect for a shared field. @@ -4814,7 +4916,7 @@ subroutine ShareFieldWithMesh(acceptorField, providerField, name, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return endif - + ! reconcile across the entire Connector VM call ESMF_StateReconcile(state, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -4827,7 +4929,7 @@ subroutine ShareFieldWithMesh(acceptorField, providerField, name, rc) call ESMF_StateDestroy(state, noGarbage=.true., rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return - + ! clean-up deallocate(gridToFieldMap, stat=rc) if (ESMF_LogFoundDeallocError(rc, & @@ -4843,7 +4945,7 @@ subroutine ShareFieldWithMesh(acceptorField, providerField, name, rc) msg="Deallocating ungriddedUBound", & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif - + end subroutine !----------------------------------------------------------------------------- @@ -5007,7 +5109,7 @@ subroutine InitializeIPDv05p6b(connector, importState, exportState, clock, rc) character(ESMF_MAXSTR), pointer :: cplList(:) integer :: j end type - + ! local variables character(*), parameter :: rName="InitializeIPDv05p6b" character(ESMF_MAXSTR), pointer :: cplList(:), chopStringList(:) @@ -5032,7 +5134,7 @@ subroutine InitializeIPDv05p6b(connector, importState, exportState, clock, rc) type(type_InternalState) :: is logical :: foundFlag integer :: localrc - logical :: existflag + logical :: existflag, isSet character(ESMF_MAXSTR) :: connectionString character(ESMF_MAXSTR) :: name, iString character(len=160) :: msgString @@ -5041,6 +5143,7 @@ subroutine InitializeIPDv05p6b(connector, importState, exportState, clock, rc) integer :: sIndex character(ESMF_MAXSTR) :: iShareStatus, eShareStatus logical :: sharedFlag + character(ESMF_MAXSTR) :: valueString integer :: verbosity, diagnostic, profiling type(ESMF_Time) :: currTime character(len=40) :: currTimeString @@ -5449,15 +5552,40 @@ subroutine InitializeIPDv05p6b(connector, importState, exportState, clock, rc) ESMF_LOGMSG_INFO, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out - endif + endif endif - + ! determine whether there is src/dst overlap on any PET call DetermineSrcDstOverlap(is%wrap%srcFieldList, is%wrap%dstFieldList, & is%wrap%srcDstOverlap, is%wrap%srcFlag, is%wrap%dstFlag, verbosity, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! access and set Epoch flags + is%wrap%epochEnable = .true. ! default + call NUOPC_CompAttributeGet(connector, name="EpochEnable", & + value=valueString, isSet=isSet, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + if (isSet) is%wrap%epochEnable = trim(valueString)=="true" + is%wrap%epochEnterKeepAlloc = .true. ! default + call NUOPC_CompAttributeGet(connector, name="EpochEnterKeepAlloc", & + value=valueString, isSet=isSet, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + if (isSet) is%wrap%epochEnterKeepAlloc = trim(valueString)=="true" + is%wrap%epochExitKeepAlloc = .true. ! default + call NUOPC_CompAttributeGet(connector, name="EpochExitKeepAlloc", & + value=valueString, isSet=isSet, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + if (isSet) is%wrap%epochExitKeepAlloc = trim(valueString)=="true" + is%wrap%epochThrottle = 10 ! default + call NUOPC_CompAttributeGet(connector, name="EpochThrottle", & + value=is%wrap%epochThrottle, isSet=isSet, rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out + ! build Timestamp update packets !TODO: consider whether CplSet needs extra treatment here or not call BuildUpdatePackets(is%wrap%srcFieldList, is%wrap%dstFieldList, & @@ -6197,14 +6325,14 @@ subroutine Run(connector, importState, exportState, clock, rc) type(type_InternalState) :: is type(ESMF_VM) :: vm integer :: localrc - logical :: existflag, isSet + logical :: existflag logical :: routeHandleIsCreated character(ESMF_MAXSTR) :: compName, pLabel character(len=160) :: msgString integer :: phase integer :: verbosity, diagnostic, profiling character(ESMF_MAXSTR) :: name - integer :: i, epochThrottle + integer :: i type(ESMF_Time) :: currTime character(len=40) :: currTimeString @@ -6302,9 +6430,10 @@ subroutine Run(connector, importState, exportState, clock, rc) #endif if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out - + ! conditional profiling for src/dst PETs - if (btest(profiling,3) .and. .not.is%wrap%srcDstOverlap) then + if (btest(profiling,3) .and. & + (is%wrap%epochEnable.and. .not.is%wrap%srcDstOverlap)) then if (is%wrap%srcFlag) then call ESMF_TraceRegionEnter(rName//"-srcPETs", rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & @@ -6317,13 +6446,13 @@ subroutine Run(connector, importState, exportState, clock, rc) return ! bail out endif endif - + ! store the incoming clock as driverClock in internal state is%wrap%driverClock = clock !TODO: here may be the place to ensure incoming States are consistent !TODO: with the Fields held in the FieldBundle inside the internal State? - + ! SPECIALIZE by calling into attached method to execute routehandle if (btest(profiling,4)) then call ESMF_TraceRegionEnter("label_ExecuteRouteHandle") @@ -6345,23 +6474,11 @@ subroutine Run(connector, importState, exportState, clock, rc) endif ! if not specialized -> use default method to execute the exchange ! Conditionally enter VMEpoch - if (.not. is%wrap%srcDstOverlap) then - call NUOPC_CompAttributeGet(connector, name="EpochThrottle", & - value=epochThrottle, isSet=isSet, rc=rc) + if (is%wrap%epochEnable.and. .not.is%wrap%srcDstOverlap) then + call ESMF_VMEpochEnter(epoch=ESMF_VMEPOCH_BUFFER, & + throttle=is%wrap%epochThrottle, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out - if (isSet) then - ! using custom throttle - call ESMF_VMEpochEnter(epoch=ESMF_VMEPOCH_BUFFER, & - throttle=epochThrottle, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out - else - ! using default throttle - call ESMF_VMEpochEnter(epoch=ESMF_VMEPOCH_BUFFER, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out - endif endif ! call the SMM consistent with CplSets present or not if (is%wrap%cplSetCount > 1) then @@ -6381,7 +6498,7 @@ subroutine Run(connector, importState, exportState, clock, rc) line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out endif enddo - else + else; routeHandleIsCreated = ESMF_RouteHandleIsCreated(is%wrap%rh, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out @@ -6399,7 +6516,7 @@ subroutine Run(connector, importState, exportState, clock, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out ! Conditionally exit VMEpoch - if (.not. is%wrap%srcDstOverlap) then + if (is%wrap%epochEnable.and. .not.is%wrap%srcDstOverlap) then call ESMF_VMEpochExit(rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out @@ -6465,7 +6582,8 @@ subroutine Run(connector, importState, exportState, clock, rc) line=__LINE__, file=trim(name)//":"//FILENAME)) return ! bail out ! conditional profiling for src/dst PETs - if (btest(profiling,3) .and. .not.is%wrap%srcDstOverlap) then + if (btest(profiling,3) .and. & + (is%wrap%epochEnable.and. .not.is%wrap%srcDstOverlap)) then if (is%wrap%srcFlag) then call ESMF_TraceRegionExit(rName//"-srcPETs", rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & diff --git a/src/addon/NUOPC/src/NUOPC_Driver.F90 b/src/addon/NUOPC/src/NUOPC_Driver.F90 index 887e8083e7..3cecf87b6e 100644 --- a/src/addon/NUOPC/src/NUOPC_Driver.F90 +++ b/src/addon/NUOPC/src/NUOPC_Driver.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1170,7 +1170,7 @@ recursive subroutine InitializeIPDv02p1(driver, importState, exportState, & return ! bail out namespace=cmEntry%wrap%label else - ! in the old style (pre v7) there are no component labels availabl + ! in the old style (pre v7) there are no component labels available namespace="DEFAULT" ! cannot be empty for sake of AttributeSet() endif ! add State level attributes, set the namespace according to comp label @@ -1188,6 +1188,14 @@ recursive subroutine InitializeIPDv02p1(driver, importState, exportState, & if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME, rcToReturn=rc)) & return ! bail out + ! for available component label, also set State name for clarity + if (namespace /= "DEFAULT") then + call ESMF_StateSet(is%wrap%modelIS(i), & + name=trim(namespace)//"-ImportState", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME, rcToReturn=rc)) & + return ! bail out + endif endif ! add State level attributes, set the namespace according to comp label stateIsCreated = ESMF_StateIsCreated(is%wrap%modelES(i), rc=rc) @@ -1204,6 +1212,14 @@ recursive subroutine InitializeIPDv02p1(driver, importState, exportState, & if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//FILENAME, rcToReturn=rc)) & return ! bail out + ! for available component label, also set State name for clarity + if (namespace /= "DEFAULT") then + call ESMF_StateSet(is%wrap%modelES(i), & + name=trim(namespace)//"-ExportState", rc=rc) + if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & + line=__LINE__, file=trim(name)//":"//FILENAME, rcToReturn=rc)) & + return ! bail out + endif endif enddo diff --git a/src/addon/NUOPC/src/NUOPC_FieldDictionaryApi.F90 b/src/addon/NUOPC/src/NUOPC_FieldDictionaryApi.F90 index 836ce02925..1112360952 100644 --- a/src/addon/NUOPC/src/NUOPC_FieldDictionaryApi.F90 +++ b/src/addon/NUOPC/src/NUOPC_FieldDictionaryApi.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_FieldDictionaryDef.F90 b/src/addon/NUOPC/src/NUOPC_FieldDictionaryDef.F90 index 5c2ca93bf2..3d03b4b2ea 100644 --- a/src/addon/NUOPC/src/NUOPC_FieldDictionaryDef.F90 +++ b/src/addon/NUOPC/src/NUOPC_FieldDictionaryDef.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_FreeFormatDef.F90 b/src/addon/NUOPC/src/NUOPC_FreeFormatDef.F90 index 6c1296eddc..9a2aae5184 100644 --- a/src/addon/NUOPC/src/NUOPC_FreeFormatDef.F90 +++ b/src/addon/NUOPC/src/NUOPC_FreeFormatDef.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Mediator.F90 b/src/addon/NUOPC/src/NUOPC_Mediator.F90 index f198372aeb..dfba875875 100644 --- a/src/addon/NUOPC/src/NUOPC_Mediator.F90 +++ b/src/addon/NUOPC/src/NUOPC_Mediator.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_Model.F90 b/src/addon/NUOPC/src/NUOPC_Model.F90 index f73ed1b698..106c37af54 100644 --- a/src/addon/NUOPC/src/NUOPC_Model.F90 +++ b/src/addon/NUOPC/src/NUOPC_Model.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_ModelBase.F90 b/src/addon/NUOPC/src/NUOPC_ModelBase.F90 index 8661651b08..627735a98a 100644 --- a/src/addon/NUOPC/src/NUOPC_ModelBase.F90 +++ b/src/addon/NUOPC/src/NUOPC_ModelBase.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/src/NUOPC_RunSequenceDef.F90 b/src/addon/NUOPC/src/NUOPC_RunSequenceDef.F90 index f49f98b309..26adc03a1a 100644 --- a/src/addon/NUOPC/src/NUOPC_RunSequenceDef.F90 +++ b/src/addon/NUOPC/src/NUOPC_RunSequenceDef.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/NUOPC/tests/ESMF_NUOPC_UTest.F90 b/src/addon/NUOPC/tests/ESMF_NUOPC_UTest.F90 index 449da2eafd..c2f37a668e 100644 --- a/src/addon/NUOPC/tests/ESMF_NUOPC_UTest.F90 +++ b/src/addon/NUOPC/tests/ESMF_NUOPC_UTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/esmpy/LICENSE b/src/addon/esmpy/LICENSE index 2b167b2124..2da26ac7fa 100644 --- a/src/addon/esmpy/LICENSE +++ b/src/addon/esmpy/LICENSE @@ -1,6 +1,6 @@ Earth System Modeling Framework Python Interface (ESMPy) -Copyright (c) 2002-2024 University Corporation for Atmospheric Research, +Copyright (c) 2002-2025 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/addon/esmpy/README.md b/src/addon/esmpy/README.md index c948644d36..e8b2436935 100644 --- a/src/addon/esmpy/README.md +++ b/src/addon/esmpy/README.md @@ -1,6 +1,6 @@ # Earth System Modeling Framework Python Interface (ESMPy) -> Copyright (c) 2002-2024, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. Licensed under the University of Illinois-NCSA License. +> Copyright (c) 2002-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. Licensed under the University of Illinois-NCSA License. * [ESMPy Documentation](https://earthsystemmodeling.org/esmpy_doc/nightly/develop/html/) * [Installation](https://earthsystemmodeling.org/esmpy_doc/nightly/develop/html/install.html) diff --git a/src/addon/esmpy/doc/api.rst b/src/addon/esmpy/doc/api.rst index d10194e6e0..f28c2f8582 100644 --- a/src/addon/esmpy/doc/api.rst +++ b/src/addon/esmpy/doc/api.rst @@ -941,7 +941,7 @@ MPI.Spawn raise ValueError('Could not connect to parent - ' + usage) # worker code goes here, regridding etc.. - print "Hello World from PET #"+str(rank) + print("Hello World from PET #"+str(rank)) # Shutdown comm.Disconnect() diff --git a/src/addon/esmpy/doc/conf.py b/src/addon/esmpy/doc/conf.py index 576e9de07d..4e3a89f9f8 100644 --- a/src/addon/esmpy/doc/conf.py +++ b/src/addon/esmpy/doc/conf.py @@ -51,7 +51,7 @@ # General information about the project. project = u'ESMPy' -copyright = u'2011-2024, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. Licensed under the University of Illinois-NCSA License' +copyright = u'2011-2025, University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. Licensed under the University of Illinois-NCSA License' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/src/addon/esmpy/doc/install.rst b/src/addon/esmpy/doc/install.rst index 96df08d5eb..41a330fc2c 100644 --- a/src/addon/esmpy/doc/install.rst +++ b/src/addon/esmpy/doc/install.rst @@ -9,8 +9,8 @@ Requirements The following packages are *required* to work with ESMPy: * `ESMF installation `_ -* `python `_, minimum version 3.7 -* `numpy `_ +* `python `_, minimum version 3.8 +* `numpy `_, minimum version 1.19 The following packages are *optional*: diff --git a/src/addon/esmpy/examples/mpi_spawn_regrid.py b/src/addon/esmpy/examples/mpi_spawn_regrid.py index 10d5bedf11..8d4cd4b6ff 100644 --- a/src/addon/esmpy/examples/mpi_spawn_regrid.py +++ b/src/addon/esmpy/examples/mpi_spawn_regrid.py @@ -11,6 +11,7 @@ from esmpy.util.cache_data import DATA_DIR from esmpy.util.exceptions import DataMissing +from functools import reduce # The data files can be retrieved from the ESMF data repository by uncommenting the # following block of code: @@ -94,8 +95,8 @@ def compute_error(dstfield, xctfield): meanrelerr = relerr / num_nodes meanrelerr = relerr / num_nodes - print "ESMPy regridding as a spawned MPI process:" - print " interpolation mean relative error = {0}".format(meanrelerr) + print("ESMPy regridding as a spawned MPI process:") + print(" interpolation mean relative error = {0}".format(meanrelerr)) ########################################### MAIN ############################# diff --git a/src/addon/esmpy/pyproject.toml b/src/addon/esmpy/pyproject.toml index 31a287e637..b19149623c 100644 --- a/src/addon/esmpy/pyproject.toml +++ b/src/addon/esmpy/pyproject.toml @@ -26,10 +26,14 @@ classifiers = [ "Topic :: Scientific/Engineering :: Oceanography", "Topic :: Software Development :: Libraries :: Application Frameworks", ] -requires-python = ">=3.7" +# The following is the earliest python version that we test with: +requires-python = ">=3.8" license = { text = "University of Illinois-NCSA" } dependencies = [ - "numpy", + # The following is the earliest numpy version that we test with; the latest we test + # with is version 2.x, so we assume that version 3 might break backwards + # compatibility: + "numpy >= 1.19, < 3", 'importlib-metadata; python_version < "3.8"', # setuptools-git-versioning shouldn't be needed here, but is # included as a workaround for problems with the build-time @@ -58,7 +62,7 @@ enabled = true template = "{tag}" dev_template = "{tag}" dirty_template = "{tag}" -starting_version = "8.8.0beta" # this is a backup for pip <= 22.0 where git-versioning doesn't work +starting_version = "8.9.0beta" # this is a backup for pip <= 22.0 where git-versioning doesn't work [tool.dynamic] version = "placeholder" # this is a placeholder for the version pulled with git-versioning diff --git a/src/addon/esmpy/src/esmpy/api/locstream.py b/src/addon/esmpy/src/esmpy/api/locstream.py index a311eb7a8d..566d532499 100644 --- a/src/addon/esmpy/src/esmpy/api/locstream.py +++ b/src/addon/esmpy/src/esmpy/api/locstream.py @@ -125,10 +125,17 @@ def __getitem__(self, slc): # re-initialize slc_ls slc_ls = get_formatted_slice(slc, self.rank) - # slice at will - try: + if not isinstance(slc_ls, slice): + # This handles the case where slc is a str, and so slc_ls remains equal to + # slc, and thus is also a str. In theory, we could enter this block with + # slc_ls being various other types emerging from get_formatted_slice; these + # cases are not currently handled (they will generally lead to exceptions in + # `__getitem__`). + ret = super(LocStream, self).__getitem__(slc_ls) - except TypeError: + else: + # slc_ls is a slice + ret = self.copy() # upper bounds and size diff --git a/src/addon/esmpy/src/esmpy/fragments/dump_esmf_internal_info.py b/src/addon/esmpy/src/esmpy/fragments/dump_esmf_internal_info.py index ed9b5f33b1..4175b0324e 100644 --- a/src/addon/esmpy/src/esmpy/fragments/dump_esmf_internal_info.py +++ b/src/addon/esmpy/src/esmpy/fragments/dump_esmf_internal_info.py @@ -1,3 +1,4 @@ +from functools import reduce # This file contains old routines to dump internal ESMF info from ESMPy Grid and Field objects # This code is likely obsolete, but was useful in the original development process .. # so it is being kept for a rainy day situation @@ -6,11 +7,11 @@ def dump_gridinfo(self, stagger): [x,y,z] = [0,1,2] - print "bounds - low, high" - print self.lower_bounds[stagger], \ - self.upper_bounds[stagger] - print "shape - [x, y, z] or [lat, lon]" - print self.coords[stagger][0].shape + print("bounds - low, high") + print(self.lower_bounds[stagger], \ + self.upper_bounds[stagger]) + print("shape - [x, y, z] or [lat, lon]") + print(self.coords[stagger][0].shape) if self.rank == 2: return [self.coords[stagger][x], self.coords[stagger][y]] @@ -20,11 +21,11 @@ def dump_gridinfo(self, stagger): def dump_gridinfo_lower(self, stagger): [x, y, z] = [0, 1, 2] - print "bounds - low, high" - print self.lower_bounds[stagger], \ - self.upper_bounds[stagger] - print "shape - [x, y, z] or [lat, lon]" - print self.coords[stagger][0].shape + print("bounds - low, high") + print(self.lower_bounds[stagger], \ + self.upper_bounds[stagger]) + print("shape - [x, y, z] or [lat, lon]") + print(self.coords[stagger][0].shape) # retrieve buffers to esmf coordinate memory gridptrX = self.get_grid_coords_from_esmc(x, stagger) @@ -67,10 +68,10 @@ def dump_gridinfo_ctypes(self, stagger, dim=2): np.dtype(constants._ESMF2PythonType[self.type]).itemsize*size) ycoords = np.frombuffer(ybuffer, constants._ESMF2PythonType[self.type]) - print "DIAGNOSTICS:" - print "self.type = ", self.type - print "constants._ESMF2PythonType", constants._ESMF2PythonType[self.type] - print "constants._ESMF2PythonType.itemsize", constants._ESMF2PythonType[self.type].itemsize + print("DIAGNOSTICS:") + print("self.type = ", self.type) + print("constants._ESMF2PythonType", constants._ESMF2PythonType[self.type]) + print("constants._ESMF2PythonType.itemsize", constants._ESMF2PythonType[self.type].itemsize) # find the size of the local coordinates at this stagger location @@ -80,12 +81,12 @@ def dump_gridinfo_ctypes(self, stagger, dim=2): # these appear to both return bounds information only lb, ub = ESMP_GridGetCoordBounds(self, staggerloc=stagger) - print "Bounds:" - print " ESMPy.Grid: ", size - print " ESMPy.ctypes1: ", lb, ub + print("Bounds:") + print(" ESMPy.Grid: ", size) + print(" ESMPy.ctypes1: ", lb, ub) - print "Coordinates:" + print("Coordinates:") I = ub[x]-lb[x] J = ub[y]-lb[y] if dim == 3: @@ -103,7 +104,7 @@ def dump_gridinfo_ctypes(self, stagger, dim=2): (ycoords[ind] > -1e-10 and 1e-10 > ycoords[ind] and ycoords[ind] != 0) or \ ycoords[ind] > 90: - print "[", i, ", ", j, "] = [", xcoords[ind], ", ", ycoords[ind], "]" + print("[", i, ", ", j, "] = [", xcoords[ind], ", ", ycoords[ind], "]") coordcount += 1 elif dim == 3: @@ -113,9 +114,9 @@ def dump_gridinfo_ctypes(self, stagger, dim=2): np.dtype(constants._ESMF2PythonType[self.type]).itemsize*size) zcoords = np.frombuffer(zbuffer, constants._ESMF2PythonType[self.type]) - for i in xrange(I): - for j in xrange(J): - for k in xrange(K): + for i in range(I): + for j in range(J): + for k in range(K): ind = i*I + j*J + k if (1e-10 > xcoords[ind] and xcoords[ind] != 0) or \ xcoords[ind] > 360 or \ @@ -123,10 +124,10 @@ def dump_gridinfo_ctypes(self, stagger, dim=2): (ycoords[ind] > -1e-10 and 1e-10 > ycoords[ind] and ycoords[ind] != 0) or \ ycoords[ind] > 90: - print "[", i, ", ", j, "] = [", xcoords[ind], ", ", ycoords[ind], "]" + print("[", i, ", ", j, "] = [", xcoords[ind], ", ", ycoords[ind], "]") coordcount += 1 - print "Coordcount = ", coordcount + print("Coordcount = ", coordcount) ''' # create a numpy array to point to the ESMF allocation # reshape the numpy array of coordinates using Fortran ordering in Grid @@ -148,4 +149,4 @@ def _dump_field_coords_(self): np.dtype(constants._ESMF2PythonType[self.type]).itemsize*size) esmf_coords = np.frombuffer(buffer, constants._ESMF2PythonType[self.type]) - print esmf_coords + print(esmf_coords) diff --git a/src/addon/esmpy/src/esmpy/fragments/extras.py b/src/addon/esmpy/src/esmpy/fragments/extras.py index 9d357fceb2..f247f586b0 100644 --- a/src/addon/esmpy/src/esmpy/fragments/extras.py +++ b/src/addon/esmpy/src/esmpy/fragments/extras.py @@ -112,11 +112,11 @@ def ESMP_ArraySpecSet(arrayspec, rank, typekind): if rc != _ESMP_SUCCESS: raise NameError('ESMC_ArraySpecSet() failed with rc = '+str(rc)) arrayspec.shallowMem = las.value - print 'sizeof(arrayspec) = '+str(sizeof(arrayspec)) - print 'arrayspec = '+str(arrayspec) - print 'sizeof(las) = '+str(sizeof(las)) - print 'las = '+str(las) - print "\n" + print('sizeof(arrayspec) = '+str(sizeof(arrayspec))) + print('arrayspec = '+str(arrayspec)) + print('sizeof(las) = '+str(sizeof(las))) + print('las = '+str(las)) + print("\n") return arrayspec diff --git a/src/addon/esmpy/src/esmpy/fragments/remap.py b/src/addon/esmpy/src/esmpy/fragments/remap.py index 8484f17b88..6dce0f167d 100755 --- a/src/addon/esmpy/src/esmpy/fragments/remap.py +++ b/src/addon/esmpy/src/esmpy/fragments/remap.py @@ -101,7 +101,7 @@ def remap(srcgrid, dstgrid, weights, method='bilinear'): if os.environ.get('ESMF_NUM_PROCS'): NUM_PROCS = os.environ.get('ESMF_NUM_PROCS') else: - print "ESMF_NUM_PROCS not defined in user environment, using default ESMF_NUM_PROCS=1" + print("ESMF_NUM_PROCS not defined in user environment, using default ESMF_NUM_PROCS=1") NUM_PROCS = "1" # read the esmf.mk and get the location of the executable and the OS for @@ -109,7 +109,7 @@ def remap(srcgrid, dstgrid, weights, method='bilinear'): if os.environ.get('ESMFMKFILE'): esmfmkfile = open(os.environ.get('ESMFMKFILE')) else: - print "ESMFMKFILE is not defined!" + print("ESMFMKFILE is not defined!") sys.exit for line in esmfmkfile: @@ -137,7 +137,7 @@ def remap(srcgrid, dstgrid, weights, method='bilinear'): options = '-m conserve' file = 'c' else: - print 'Method: '+method+' is not supported!' + print('Method: '+method+' is not supported!') sys.exit # TODO: what is this cruft? diff --git a/src/addon/esmpy/src/esmpy/interface/cbindings.py b/src/addon/esmpy/src/esmpy/interface/cbindings.py index 9ad79d74ce..bd63e7bda7 100644 --- a/src/addon/esmpy/src/esmpy/interface/cbindings.py +++ b/src/addon/esmpy/src/esmpy/interface/cbindings.py @@ -215,8 +215,8 @@ def ESMP_Initialize(logkind = constants.LogKind.MULTI): raise ValueError('ESMC_Initialize() failed with rc = '+str(rc)+'. '+ constants._errmsg) -_ESMF.ESMC_Finalize.restype = ct.c_int -_ESMF.ESMC_Finalize.argtypes = [] +_ESMF.ESMC_FinalizeWithFlag.restype = ct.c_int +_ESMF.ESMC_FinalizeWithFlag.argtypes = [ct.c_uint] def ESMP_Finalize(endFlag = constants.EndAction.NORMAL): """ @@ -389,7 +389,7 @@ def ESMP_VMGetGlobal(): constants._errmsg) return vm.ptr -_ESMF.ESMC_VMLogMemInfo.argtypes = [ct.c_int] +_ESMF.ESMC_VMLogMemInfo.restype = ct.c_int _ESMF.ESMC_VMLogMemInfo.argtypes = [ct.c_char_p] def ESMP_VMLogMemInfo(str): @@ -1216,7 +1216,8 @@ def ESMP_MeshCreate(parametricDim, spatialDim, coordSys=None): OptionalNamedConstant, Py3Char, OptionalNamedConstant, - Py3Char] + Py3Char, + ct.POINTER(ct.c_int)] @pio @netcdf @@ -2425,7 +2426,7 @@ def ESMP_GridspecInq(filename): #### RouteHandle ##################################################### _ESMF.ESMC_RouteHandleCreateFromFile.restype = ESMP_RouteHandle -_ESMF.ESMC_RouteHandleCreateFromFile.argtypes = [Py3Char] +_ESMF.ESMC_RouteHandleCreateFromFile.argtypes = [Py3Char, ct.POINTER(ct.c_int)] def ESMP_RouteHandleCreateFromFile(filename): """ Preconditions: ESMP has been initialized.\n diff --git a/src/addon/esmpy/src/esmpy/test/test_api/test_regrid.py b/src/addon/esmpy/src/esmpy/test/test_api/test_regrid.py index 3666f7841a..4ca3075655 100644 --- a/src/addon/esmpy/src/esmpy/test/test_api/test_regrid.py +++ b/src/addon/esmpy/src/esmpy/test/test_api/test_regrid.py @@ -836,11 +836,12 @@ def test_field_regrid_zeroregion(self): dst_mask_values=np.atleast_1d(np.array([0]))) dstfield = rh(srcfield, dstfield, zero_region=Region.SELECT) - # validate that the masked values were not zeroed out + # validate that the masked values were not zeroed out (zero_region=Region.SELECT + # should leave the masked values at their original values) for i in range(dstfield.data.shape[x]): for j in range(dstfield.data.shape[y]): if dstfield.grid.mask[StaggerLoc.CENTER][i, j] == 0: - assert(dstfield[i, j] == 0) + assert(dstfield.data[i, j] == -100) @pytest.mark.skipif(_ESMF_PIO==False, reason="PIO required in ESMF build") @pytest.mark.skipif(_ESMF_NETCDF==False, reason="NetCDF required in ESMF build") diff --git a/src/addon/esmpy/src/esmpy/util/grid_utilities.py b/src/addon/esmpy/src/esmpy/util/grid_utilities.py index 83597f85ca..38786f285f 100644 --- a/src/addon/esmpy/src/esmpy/util/grid_utilities.py +++ b/src/addon/esmpy/src/esmpy/util/grid_utilities.py @@ -95,8 +95,8 @@ def grid_create_from_coordinates(xcoords, ycoords, xcorners=False, ycorners=Fals if domask: mask = grid.add_item(esmpy.GridItem.MASK) mask[:] = 1 - mask[np.where((1.75 <= gridXCenter.any() < 2.25) & - (1.75 <= gridYCenter.any() < 2.25))] = 0 + mask[np.where((1.75 <= gridXCenter) & (gridXCenter < 2.25) & + (1.75 <= gridYCenter) & (gridYCenter < 2.25))] = 0 # add arbitrary areas values if doarea: @@ -180,8 +180,8 @@ def grid_create_from_coordinates_periodic(longitudes, latitudes, lon_corners=Fal if domask: mask = grid.add_item(esmpy.GridItem.MASK) mask[:] = 1 - mask[np.where((1.75 <= gridXCenter.any() < 2.25) & - (1.75 <= gridYCenter.any() < 2.25))] = 0 + mask[np.where((1.75 <= gridXCenter) & (gridXCenter < 2.25) & + (1.75 <= gridYCenter) & (gridYCenter < 2.25))] = 0 return grid @@ -286,9 +286,9 @@ def grid_create_from_coordinates_3d(xcoords, ycoords, zcoords, xcorners=False, y if domask: mask = grid.add_item(esmpy.GridItem.MASK) mask[:] = 1 - mask[np.where((1.75 < gridXCenter.data < 2.25) & - (1.75 < gridYCenter.data < 2.25) & - (1.75 < gridZCenter.data < 2.25))] = 0 + mask[np.where((1.75 <= gridXCenter) & (gridXCenter < 2.25) & + (1.75 <= gridYCenter) & (gridYCenter < 2.25) & + (1.75 <= gridZCenter) & (gridZCenter < 2.25))] = 0 # add arbitrary areas values if doarea: @@ -394,9 +394,9 @@ def grid_create_from_coordinates_periodic_3d(longitudes, latitudes, heights, if domask: mask = grid.add_item(esmpy.GridItem.MASK) mask[:] = 1 - mask[np.where((1.75 <= gridXCenter.data < 2.25) & - (1.75 <= gridYCenter.data < 2.25) & - (1.75 <= gridZCenter.data < 2.25))] = 0 + mask[np.where((1.75 <= gridXCenter) & (gridXCenter < 2.25) & + (1.75 <= gridYCenter) & (gridYCenter < 2.25) & + (1.75 <= gridZCenter) & (gridZCenter < 2.25))] = 0 return grid diff --git a/src/apps/ESMF_PrintInfo/ESMF_PrintInfo.F90 b/src/apps/ESMF_PrintInfo/ESMF_PrintInfo.F90 index 7f44a91fb5..89db8a9ec1 100644 --- a/src/apps/ESMF_PrintInfo/ESMF_PrintInfo.F90 +++ b/src/apps/ESMF_PrintInfo/ESMF_PrintInfo.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/apps/ESMF_PrintInfoC/ESMF_PrintInfoC.c b/src/apps/ESMF_PrintInfoC/ESMF_PrintInfoC.c index ee84b94bbd..ec7b6576fc 100644 --- a/src/apps/ESMF_PrintInfoC/ESMF_PrintInfoC.c +++ b/src/apps/ESMF_PrintInfoC/ESMF_PrintInfoC.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/apps/ESMF_Regrid/ESMF_Regrid.F90 b/src/apps/ESMF_Regrid/ESMF_Regrid.F90 index 2eea1fad7f..dd69c6450f 100644 --- a/src/apps/ESMF_Regrid/ESMF_Regrid.F90 +++ b/src/apps/ESMF_Regrid/ESMF_Regrid.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -112,9 +112,10 @@ program ESMF_RegridApp ! then broadcast the results to the rest of the Pets ! if (PetNo == 0) then - call ESMF_UtilGetArgIndex('--help', argindex=ind) + call ESMF_UtilGetArgIndex('-h', argindex=ind) + if (ind == -1) call ESMF_UtilGetArgIndex('--help', argindex=ind) if (ind /= -1) then - call PrintUsage() + call PrintUsage() terminateProg=.true. endif call ESMF_UtilGetArgIndex('--version', argindex=ind) @@ -526,7 +527,7 @@ subroutine PrintUsage() print *, " [--dst_regional]" print *, " [--check]" print *, " [--no_log]" - print *, " [--help]" + print *, " [--help|-h]" print *, " [--version]" print *, " [-V]" print *, "where" @@ -547,7 +548,7 @@ subroutine PrintUsage() print *, " where tilename is the tile name defined in the source grid file" print *, "--dstdatafile - If the destination grid is of type MOSAIC, the data is stored" print *, " in separated files, one per tile. dstdatafile is the prefix of" - print *, " the destination data file. The filename is srcdatafile.tilename.nc," + print *, " the destination data file. The filename is dstdatafile.tilename.nc," print *, " where tilename is the tile name defined in the destination grid file" print *, "--tilefile_path - The alternative file path for the tile files and mosaic data files" print *, " when either srcFile or dstFile is a GRIDSPEC MOSAIC grid. The path" @@ -578,7 +579,7 @@ subroutine PrintUsage() print *, " data(i,j,k,l)=2.0+(k-1)+2*(l-1)+cos(lat(i,j))**2*cos(2*lon(i,j)), assuming" print *, " it is a 2D grid " print *, "--no_log - Turn off the ESMF error log." - print *, "--help - Print this help message and exit." + print *, "--help or -h - Print this help message and exit." print *, "--version - Print ESMF version and license information and exit." print *, "-V - Print ESMF version number and exit." print *, "" diff --git a/src/apps/ESMF_RegridWeightGen/ESMF_RegridWeightGen.F90 b/src/apps/ESMF_RegridWeightGen/ESMF_RegridWeightGen.F90 index ef3ce33256..5d11967edb 100644 --- a/src/apps/ESMF_RegridWeightGen/ESMF_RegridWeightGen.F90 +++ b/src/apps/ESMF_RegridWeightGen/ESMF_RegridWeightGen.F90 @@ -2,7 +2,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, @@ -1379,7 +1379,7 @@ subroutine PrintUsage() print *, " [--no_log]" print *, " [--check]" print *, " [--checkFlag]" - print *, " [--help]" + print *, " [--help|-h]" print *, " [--version]" print *, " [-V]" print *, "where" diff --git a/src/apps/ESMF_Scrip2Unstruct/ESMF_Scrip2Unstruct.C b/src/apps/ESMF_Scrip2Unstruct/ESMF_Scrip2Unstruct.C index 3260ade56a..25b23b43e0 100644 --- a/src/apps/ESMF_Scrip2Unstruct/ESMF_Scrip2Unstruct.C +++ b/src/apps/ESMF_Scrip2Unstruct/ESMF_Scrip2Unstruct.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMC_api.tex b/src/doc/ESMC_api.tex index 8266190a87..d7727e752d 100644 --- a/src/doc/ESMC_api.tex +++ b/src/doc/ESMC_api.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMC_crefdoc.ctex b/src/doc/ESMC_crefdoc.ctex index f1416366f0..fd3786113e 100644 --- a/src/doc/ESMC_crefdoc.ctex +++ b/src/doc/ESMC_crefdoc.ctex @@ -14,7 +14,7 @@ \newcommand{\sreq}[1]{\subsection{\hspace{.2in}#1}} \newcommand{\ssreq}[1]{\subsubsection{\hspace{.2in}#1}} \newcommand{\mytitle}{\longname \docmttype ~~} -\newcommand{\myversion}{Version 8.8.0 beta snapshot} +\newcommand{\myversion}{Version 8.9.0 beta snapshot} \newenvironment {reqlist} diff --git a/src/doc/ESMC_infrautiloverview.tex b/src/doc/ESMC_infrautiloverview.tex index 9d867dee88..20ba0f9cf6 100644 --- a/src/doc/ESMC_infrautiloverview.tex +++ b/src/doc/ESMC_infrautiloverview.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_Regrid.tex b/src/doc/ESMF_Regrid.tex index e3629d85e2..0b341d5cff 100644 --- a/src/doc/ESMF_Regrid.tex +++ b/src/doc/ESMF_Regrid.tex @@ -21,7 +21,7 @@ \subsection{Description} a logically rectangular grid, the UGRID file format(~\ref{sec:fileformat:ugrid}) for unstructured grid and the GRIDSPEC Mosaic file format(~\ref{sec:fileformat:mosaic}) for cubed-sphere grid. For -the GRIDSPEC Mosaic file format, the data are stored in seperate data files, +the GRIDSPEC Mosaic file format, the data are stored in separate data files, one file per tile. The SCRIP format(~\ref{sec:fileformat:scrip}) and the ESMF unstructured grid format(~\ref{sec:fileformat:esmf}) are not supported because there is no way to define a variable field using these two formats. Currently, the tool only works with 2D grids, the support for the 3D grid will be made available in the future release. The variable array can be up to four dimensions. The @@ -113,7 +113,7 @@ \subsection{Description} The GRIDSPEC MOSAIC file(~\ref{sec:fileformat:mosaic}) can be identified by a dummy variable with {\tt standard\_name} attribute set to {\tt grid\_mosaic\_spec}. The data for a -GRIDSPEC Mosaic file are stored in seperate files, one tile per file. The +GRIDSPEC Mosaic file are stored in separate files, one tile per file. The name of the data file is not specified in the mosaic file. Therefore, additional optional argument {\tt --srcdatafile} or {\tt --dstdatafile} is required to provide the prefix of the datafile. The datafile is also a CF @@ -177,7 +177,7 @@ \subsection{Description} If the destination variable exists in the destination grid file, it has to have the same number of dimensions and the same type as the source variable. Except for the latitude and longitude dimensions, the size of the destination variable's extra dimensions (e.g., time and vertical layers) has to match with the -source variable. If the destination varialbe does not exist in the destination grid file, a +source variable. If the destination variable does not exist in the destination grid file, a new variable will be created with the same type and matching dimensions as the source variable. All the attributes of the source variable will be copied to the destination variable except those related to the grid definition (i.e. {\tt coordinates} attribute if the destination file is in @@ -255,7 +255,7 @@ \subsection{Usage}\label{sec:fileregridusage} [--dst_regional] [--check] [--no_log] - [--help] + [--help|-h] [--version] [-V] where @@ -280,7 +280,7 @@ \subsection{Usage}\label{sec:fileregridusage} is srcdatafile.tilename.nc, where tilename is the tile name defined in the MOSAIC file. - --srcdatafile - If the destination grid is a GRIDSPEC MOSAIC grid, the data + --dstdatafile - If the destination grid is a GRIDSPEC MOSAIC grid, the data is stored in separate files, one per tile. dstdatafile is the prefix of the destination data file. The filename is dstdatafile.tilename.nc, where tilename is the tile @@ -380,7 +380,7 @@ \subsection{Usage}\label{sec:fileregridusage} --no_log - Turn off the ESMF error log. - --help - Print the usage message and exit. + --help or -h - Print the usage message and exit. --version - Print ESMF version and license information and exit. diff --git a/src/doc/ESMF_RegridWeightGen.tex b/src/doc/ESMF_RegridWeightGen.tex index dc0f908d20..ad10292721 100644 --- a/src/doc/ESMF_RegridWeightGen.tex +++ b/src/doc/ESMF_RegridWeightGen.tex @@ -326,7 +326,7 @@ \subsection{Usage}\label{sec:regridusage} [--check] [--checkFlag] [--no_log] - [--help] + [--help|-h] [--version] [-V] @@ -603,7 +603,7 @@ \subsection{Usage}\label{sec:regridusage} --no_log - Turn off the ESMF Log files. By default, ESMF creates multiple log files, one per PET. - --help - Print the usage message and exit. + --help or -h - Print the usage message and exit. --version - Print ESMF version and license information and exit. diff --git a/src/doc/ESMF_api.tex b/src/doc/ESMF_api.tex index 06c9fa082f..6f09acc0b6 100644 --- a/src/doc/ESMF_api.tex +++ b/src/doc/ESMF_api.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_apperr.tex b/src/doc/ESMF_apperr.tex index a873c523ca..3fb0ca9080 100644 --- a/src/doc/ESMF_apperr.tex +++ b/src/doc/ESMF_apperr.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_appuml.tex b/src/doc/ESMF_appuml.tex index 7efb51061f..a909b1aa57 100644 --- a/src/doc/ESMF_appuml.tex +++ b/src/doc/ESMF_appuml.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_infrautiloverview.tex b/src/doc/ESMF_infrautiloverview.tex index 35790e83da..97c975396a 100644 --- a/src/doc/ESMF_infrautiloverview.tex +++ b/src/doc/ESMF_infrautiloverview.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_refdoc.ctex b/src/doc/ESMF_refdoc.ctex index f50f960db5..c17a761cd6 100644 --- a/src/doc/ESMF_refdoc.ctex +++ b/src/doc/ESMF_refdoc.ctex @@ -15,7 +15,7 @@ \newcommand{\sreq}[1]{\subsection{\hspace{.2in}#1}} \newcommand{\ssreq}[1]{\subsubsection{\hspace{.2in}#1}} \newcommand{\mytitle}{\longname \docmttype ~~} -\newcommand{\myversion}{Version 8.8.0 beta snapshot} +\newcommand{\myversion}{Version 8.9.0 beta snapshot} \input{common_commands} diff --git a/src/doc/ESMF_superoverview.tex b/src/doc/ESMF_superoverview.tex index 2b02333b7d..5ecc3755b1 100644 --- a/src/doc/ESMF_superoverview.tex +++ b/src/doc/ESMF_superoverview.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/ESMF_usrdoc.ctex b/src/doc/ESMF_usrdoc.ctex index 74541c66be..918ec03a9b 100644 --- a/src/doc/ESMF_usrdoc.ctex +++ b/src/doc/ESMF_usrdoc.ctex @@ -14,7 +14,7 @@ \newcommand{\sreq}[1]{\subsection{\hspace{.2in}#1}} \newcommand{\ssreq}[1]{\subsubsection{\hspace{.2in}#1}} \newcommand{\mytitle}{\longname \docmttype ~~} -\newcommand{\myversion}{Version 8.8.0 beta snapshot} +\newcommand{\myversion}{Version 8.9.0 beta snapshot} \newenvironment {reqlist} diff --git a/src/doc/common_commands.tex b/src/doc/common_commands.tex index 60bbb6e88f..f3c090975c 100644 --- a/src/doc/common_commands.tex +++ b/src/doc/common_commands.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/dev_guide/code_conv_gen.tex b/src/doc/dev_guide/code_conv_gen.tex index eeaf5e8399..b511b9c7fc 100644 --- a/src/doc/dev_guide/code_conv_gen.tex +++ b/src/doc/dev_guide/code_conv_gen.tex @@ -390,7 +390,7 @@ \subsubsection{License and Copyright Information} \begin{verbatim} ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/title_alldoc.tex b/src/doc/title_alldoc.tex index ab72fed658..1d3cd538e3 100644 --- a/src/doc/title_alldoc.tex +++ b/src/doc/title_alldoc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/doc/verstitle_alldoc.tex b/src/doc/verstitle_alldoc.tex index 82b56a32e4..1d34946c43 100644 --- a/src/doc/verstitle_alldoc.tex +++ b/src/doc/verstitle_alldoc.tex @@ -1,7 +1,7 @@ % $Id$ % % Earth System Modeling Framework -% Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +% Copyright (c) 2002-2025, University Corporation for Atmospheric Research, % Massachusetts Institute of Technology, Geophysical Fluid Dynamics % Laboratory, University of Michigan, National Centers for Environmental % Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/include/ESMCI_Test.h b/src/epilogue/include/ESMCI_Test.h index f1c4db21c4..a068641c35 100644 --- a/src/epilogue/include/ESMCI_Test.h +++ b/src/epilogue/include/ESMCI_Test.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/include/ESMC_Test.h b/src/epilogue/include/ESMC_Test.h index 8dc94e8c85..1fd265b7b5 100644 --- a/src/epilogue/include/ESMC_Test.h +++ b/src/epilogue/include/ESMC_Test.h @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/src/ESMCI_Test.C b/src/epilogue/src/ESMCI_Test.C index 2e21b21fe9..b986b8f153 100644 --- a/src/epilogue/src/ESMCI_Test.C +++ b/src/epilogue/src/ESMCI_Test.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/src/ESMC_Test.C b/src/epilogue/src/ESMC_Test.C index 69f1ff028f..15c233c65c 100644 --- a/src/epilogue/src/ESMC_Test.C +++ b/src/epilogue/src/ESMC_Test.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/src/ESMF_Test.F90 b/src/epilogue/src/ESMF_Test.F90 index faa22d9857..6f34a67183 100644 --- a/src/epilogue/src/ESMF_Test.F90 +++ b/src/epilogue/src/ESMF_Test.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/tests/ESMCI_TestUTest.C b/src/epilogue/tests/ESMCI_TestUTest.C index 43796ec203..0c706575b6 100644 --- a/src/epilogue/tests/ESMCI_TestUTest.C +++ b/src/epilogue/tests/ESMCI_TestUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/tests/ESMC_TestUTest.c b/src/epilogue/tests/ESMC_TestUTest.c index 1fd5716277..e8f449f98d 100644 --- a/src/epilogue/tests/ESMC_TestUTest.c +++ b/src/epilogue/tests/ESMC_TestUTest.c @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/epilogue/tests/ESMF_TestUTest.F90 b/src/epilogue/tests/ESMF_TestUTest.F90 index c13b9ede9a..6c14d4d9ad 100644 --- a/src/epilogue/tests/ESMF_TestUTest.F90 +++ b/src/epilogue/tests/ESMF_TestUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_ExceptionsSubr.C b/src/prologue/tests/ESMCI_ExceptionsSubr.C index ae0ec96c70..e479fa0939 100644 --- a/src/prologue/tests/ESMCI_ExceptionsSubr.C +++ b/src/prologue/tests/ESMCI_ExceptionsSubr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_ExceptionsUTest.C b/src/prologue/tests/ESMCI_ExceptionsUTest.C index a2742c0181..74e86c68c1 100644 --- a/src/prologue/tests/ESMCI_ExceptionsUTest.C +++ b/src/prologue/tests/ESMCI_ExceptionsUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_FeatureSubr.C b/src/prologue/tests/ESMCI_FeatureSubr.C index 8d0749c4e1..541b774264 100644 --- a/src/prologue/tests/ESMCI_FeatureSubr.C +++ b/src/prologue/tests/ESMCI_FeatureSubr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_FeatureUTest.C b/src/prologue/tests/ESMCI_FeatureUTest.C index f75ec664c7..5cf2ee41d8 100644 --- a/src/prologue/tests/ESMCI_FeatureUTest.C +++ b/src/prologue/tests/ESMCI_FeatureUTest.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_StringSubr.C b/src/prologue/tests/ESMCI_StringSubr.C index 3ad5c9d38e..a94ddfa920 100644 --- a/src/prologue/tests/ESMCI_StringSubr.C +++ b/src/prologue/tests/ESMCI_StringSubr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMCI_WordsizeSubr.C b/src/prologue/tests/ESMCI_WordsizeSubr.C index fb4130802e..699912dce5 100644 --- a/src/prologue/tests/ESMCI_WordsizeSubr.C +++ b/src/prologue/tests/ESMCI_WordsizeSubr.C @@ -1,7 +1,7 @@ // $Id$ // // Earth System Modeling Framework -// Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +// Copyright (c) 2002-2025, University Corporation for Atmospheric Research, // Massachusetts Institute of Technology, Geophysical Fluid Dynamics // Laboratory, University of Michigan, National Centers for Environmental // Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_ExceptionsUTest.F90 b/src/prologue/tests/ESMF_ExceptionsUTest.F90 index 7cb0645961..e9008029ea 100644 --- a/src/prologue/tests/ESMF_ExceptionsUTest.F90 +++ b/src/prologue/tests/ESMF_ExceptionsUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_F90ArrayPtrUTest.F90 b/src/prologue/tests/ESMF_F90ArrayPtrUTest.F90 index acda416449..44301401f2 100644 --- a/src/prologue/tests/ESMF_F90ArrayPtrUTest.F90 +++ b/src/prologue/tests/ESMF_F90ArrayPtrUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_F95PtrBData.F90 b/src/prologue/tests/ESMF_F95PtrBData.F90 index a7b17c166f..77d75a9e85 100644 --- a/src/prologue/tests/ESMF_F95PtrBData.F90 +++ b/src/prologue/tests/ESMF_F95PtrBData.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_F95PtrUTest.F90 b/src/prologue/tests/ESMF_F95PtrUTest.F90 index e3e3830d6c..ffe85386b0 100644 --- a/src/prologue/tests/ESMF_F95PtrUTest.F90 +++ b/src/prologue/tests/ESMF_F95PtrUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_FeatureSubr.F90 b/src/prologue/tests/ESMF_FeatureSubr.F90 index b74b10157c..e270ca3920 100644 --- a/src/prologue/tests/ESMF_FeatureSubr.F90 +++ b/src/prologue/tests/ESMF_FeatureSubr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_FeatureTR15581Subr.F90 b/src/prologue/tests/ESMF_FeatureTR15581Subr.F90 index cdb1a0654a..a602ebfe39 100644 --- a/src/prologue/tests/ESMF_FeatureTR15581Subr.F90 +++ b/src/prologue/tests/ESMF_FeatureTR15581Subr.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_FeatureUTest.F90 b/src/prologue/tests/ESMF_FeatureUTest.F90 index 85d6742d2b..a9f2dc2cf5 100644 --- a/src/prologue/tests/ESMF_FeatureUTest.F90 +++ b/src/prologue/tests/ESMF_FeatureUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_LAPACKUTest.F90 b/src/prologue/tests/ESMF_LAPACKUTest.F90 index a46dc6955a..315dde6889 100644 --- a/src/prologue/tests/ESMF_LAPACKUTest.F90 +++ b/src/prologue/tests/ESMF_LAPACKUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_StringUTest.F90 b/src/prologue/tests/ESMF_StringUTest.F90 index dcaf645fa1..4cd0c3b277 100644 --- a/src/prologue/tests/ESMF_StringUTest.F90 +++ b/src/prologue/tests/ESMF_StringUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/prologue/tests/ESMF_WordsizeUTest.F90 b/src/prologue/tests/ESMF_WordsizeUTest.F90 index 360052f9ed..cb185ba772 100644 --- a/src/prologue/tests/ESMF_WordsizeUTest.F90 +++ b/src/prologue/tests/ESMF_WordsizeUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/system_tests/ESMF_XGridConcurrent/coupler_comp.F90 b/src/system_tests/ESMF_XGridConcurrent/coupler_comp.F90 index 743428466a..70394643b3 100644 --- a/src/system_tests/ESMF_XGridConcurrent/coupler_comp.F90 +++ b/src/system_tests/ESMF_XGridConcurrent/coupler_comp.F90 @@ -116,9 +116,9 @@ subroutine user_init(comp, importState, exportState, clock, rc) print *, "User Coupler Init starting, localPet =", localPet ! Need to reconcile import and export states - call ESMF_StateReconcile(importState, vm, rc=rc) + call ESMF_StateReconcile(importState, vm=vm, rc=rc) if (rc/=ESMF_SUCCESS) return ! bail out - call ESMF_StateReconcile(exportState, vm, rc=rc) + call ESMF_StateReconcile(exportState, vm=vm, rc=rc) if (rc/=ESMF_SUCCESS) return ! bail out call ESMF_StatePrint(importState, nestedFlag=.true., rc=rc) diff --git a/src/test_harness/src/ESMF_TestHarnessDistMod.F90 b/src/test_harness/src/ESMF_TestHarnessDistMod.F90 index d2767a5820..08c79ad1c6 100644 --- a/src/test_harness/src/ESMF_TestHarnessDistMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessDistMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessGridMod.F90 b/src/test_harness/src/ESMF_TestHarnessGridMod.F90 index eda7f88759..6bb38c76f3 100644 --- a/src/test_harness/src/ESMF_TestHarnessGridMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessGridMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessMod.F90 b/src/test_harness/src/ESMF_TestHarnessMod.F90 index 4c1e0ae029..61ebaf92c3 100644 --- a/src/test_harness/src/ESMF_TestHarnessMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessParser.F90 b/src/test_harness/src/ESMF_TestHarnessParser.F90 index 9102e839fb..432a7562a6 100644 --- a/src/test_harness/src/ESMF_TestHarnessParser.F90 +++ b/src/test_harness/src/ESMF_TestHarnessParser.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessReportMod.F90 b/src/test_harness/src/ESMF_TestHarnessReportMod.F90 index d01c3afcc2..99afe90291 100644 --- a/src/test_harness/src/ESMF_TestHarnessReportMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessReportMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessTypesMod.F90 b/src/test_harness/src/ESMF_TestHarnessTypesMod.F90 index 9d86c0d0b3..7bc078eec8 100644 --- a/src/test_harness/src/ESMF_TestHarnessTypesMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessTypesMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessUTest.F90 b/src/test_harness/src/ESMF_TestHarnessUTest.F90 index 47b7911beb..1025f8954a 100644 --- a/src/test_harness/src/ESMF_TestHarnessUTest.F90 +++ b/src/test_harness/src/ESMF_TestHarnessUTest.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory, diff --git a/src/test_harness/src/ESMF_TestHarnessUtilMod.F90 b/src/test_harness/src/ESMF_TestHarnessUtilMod.F90 index 823169ce0f..305b4c6135 100644 --- a/src/test_harness/src/ESMF_TestHarnessUtilMod.F90 +++ b/src/test_harness/src/ESMF_TestHarnessUtilMod.F90 @@ -1,7 +1,7 @@ ! $Id$ ! ! Earth System Modeling Framework -! Copyright (c) 2002-2024, University Corporation for Atmospheric Research, +! Copyright (c) 2002-2025, University Corporation for Atmospheric Research, ! Massachusetts Institute of Technology, Geophysical Fluid Dynamics ! Laboratory, University of Michigan, National Centers for Environmental ! Prediction, Los Alamos National Laboratory, Argonne National Laboratory,