From 007f36cec98329803e050bc9d2cf03990386e39a Mon Sep 17 00:00:00 2001 From: Marshall Ward Date: Thu, 23 May 2024 16:14:22 -0400 Subject: [PATCH] Autoconf: Detect FMS IO implementation This patch allows autoconf to detect the version of FMS IO that is implemented in its library, and select the appropriate "infra" in the MOM6 source. The allows for removal of the --with-framework flag, and should prevent future FMS library/infra mismatches. --- .testing/Makefile | 1 - ac/configure.ac | 21 ++++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/.testing/Makefile b/.testing/Makefile index a1461fe7ab..2efead315d 100644 --- a/.testing/Makefile +++ b/.testing/Makefile @@ -286,7 +286,6 @@ $(BUILD)/unit/Makefile: MOM_ENV += $(COV_FCFLAGS) $(COV_LDFLAGS) $(BUILD)/timing/Makefile: MOM_ENV += $(OPT_FCFLAGS) $(MOM_LDFLAGS) # Configure script flags -MOM_ACFLAGS := --with-framework=$(FRAMEWORK) $(BUILD)/openmp/Makefile: MOM_ACFLAGS += --enable-openmp $(BUILD)/coupled/Makefile: MOM_ACFLAGS += --with-driver=FMS_cap $(BUILD)/nuopc/Makefile: MOM_ACFLAGS += --with-driver=nuopc_cap diff --git a/ac/configure.ac b/ac/configure.ac index c774c39129..8196e2eb01 100644 --- a/ac/configure.ac +++ b/ac/configure.ac @@ -79,18 +79,6 @@ AS_IF([test "x$with_driver" != "x"], # used to configure a header based on a template. #AC_CONFIG_HEADERS(["$MEM_LAYOUT/MOM_memory.h"]) -# Select the model framework (default: FMS1) -# NOTE: We can phase this out after the FMS1 I/O has been removed from FMS and -# replace with a detection test. For now, it is a user-defined switch. -MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS2 -AC_ARG_WITH([framework], - AS_HELP_STRING([--with-framework=fms1|fms2], [Select the model framework])) -AS_CASE(["$with_framework"], - [fms1], [MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS1], - [fms2], [MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS2], - [MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS2] -) - # Explicitly assume free-form Fortran AC_LANG(Fortran) @@ -220,7 +208,6 @@ AX_FC_CHECK_LIB([FMS], [fms_init], [fms_mod], ] ) - # Verify that FMS is at least 2019.01.02 # NOTE: 2019.01.02 introduced two changes: # - diag_axis_init supports an optional domain_position argument @@ -236,6 +223,14 @@ AC_COMPILE_IFELSE( ] ) +# Determine the FMS IO implementation. +AX_FC_CHECK_MODULE([fms2_io_mod], [ + MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS2 +],[ + MODEL_FRAMEWORK=${srcdir}/config_src/infra/FMS1 +]) + + # Python interpreter test # Declare the Python interpreter variable