diff --git a/cime_config/customize/case_post_run_io.py b/cime_config/customize/case_post_run_io.py index bb44477ebb57..83419aa81348 100755 --- a/cime_config/customize/case_post_run_io.py +++ b/cime_config/customize/case_post_run_io.py @@ -74,6 +74,12 @@ def _convert_adios_to_nc(case): # Load the environment case.load_env(reset=True) + # Reset MPICH/MPI GPU support, if enabled + is_mpich_gpu_enabled = os.environ.get('MPICH_GPU_SUPPORT_ENABLED') + if int(0 if is_mpich_gpu_enabled is None else is_mpich_gpu_enabled) == 1: + logger.info("Resetting support for GPU in MPICH/MPI library (since its not used by the tool)") + os.environ['MPICH_GPU_SUPPORT_ENABLED'] = str(0); + run_func = lambda: run_cmd(cmd, from_dir=rundir)[0] # Run the modified case diff --git a/components/cmake/modules/FindPIO.cmake b/components/cmake/modules/FindPIO.cmake index 7df8a9ba1062..0277918ac8e0 100644 --- a/components/cmake/modules/FindPIO.cmake +++ b/components/cmake/modules/FindPIO.cmake @@ -18,6 +18,9 @@ endif() if (PIO_VERSION STREQUAL 2) # This is a pio2 library set(PIOLIBS "${PIO_LIBDIR}/libpiof.a;${PIO_LIBDIR}/libpioc.a") + if (DEFINED ENV{ADIOS2_ROOT}) + list(APPEND PIOLIBS "${PIO_LIBDIR}/libadios2pio-nm-lib.a") + endif() else() # This is a pio1 library set(PIOLIBS "${PIO_LIBDIR}/libpio.a") diff --git a/driver-mct/cime_config/config_component.xml b/driver-mct/cime_config/config_component.xml index 431fdbe6b8d4..5b5126af8930 100644 --- a/driver-mct/cime_config/config_component.xml +++ b/driver-mct/cime_config/config_component.xml @@ -2692,10 +2692,10 @@ integer - 1,2 + 1,2,3 run_pio env_run.xml - pio rearranger choice box=1, subset=2 + pio rearranger choice box=1, subset=2, any=3 $PIO_VERSION $PIO_VERSION diff --git a/driver-mct/cime_config/namelist_definition_modelio.xml b/driver-mct/cime_config/namelist_definition_modelio.xml index ce0275e59bf3..2860ffd7106f 100644 --- a/driver-mct/cime_config/namelist_definition_modelio.xml +++ b/driver-mct/cime_config/namelist_definition_modelio.xml @@ -90,9 +90,9 @@ integer pio pio_inparm - -99,1,2 + -99,1,2,3 - Rearranger method for pio 1=box, 2=subset. + Rearranger method for pio 1=box, 2=subset, 3=any. $CPL_PIO_REARRANGER diff --git a/driver-moab/cime_config/config_component.xml b/driver-moab/cime_config/config_component.xml index e497381a333c..be0ee0fbd776 100644 --- a/driver-moab/cime_config/config_component.xml +++ b/driver-moab/cime_config/config_component.xml @@ -2684,10 +2684,10 @@ integer - 1,2 + 1,2,3 run_pio env_run.xml - pio rearranger choice box=1, subset=2 + pio rearranger choice box=1, subset=2, any=3 $PIO_VERSION $PIO_VERSION diff --git a/driver-moab/cime_config/namelist_definition_modelio.xml b/driver-moab/cime_config/namelist_definition_modelio.xml index ce0275e59bf3..2860ffd7106f 100644 --- a/driver-moab/cime_config/namelist_definition_modelio.xml +++ b/driver-moab/cime_config/namelist_definition_modelio.xml @@ -90,9 +90,9 @@ integer pio pio_inparm - -99,1,2 + -99,1,2,3 - Rearranger method for pio 1=box, 2=subset. + Rearranger method for pio 1=box, 2=subset, 3=any. $CPL_PIO_REARRANGER diff --git a/externals/scorpio b/externals/scorpio index de0b1ca2200f..cdd541e0cd70 160000 --- a/externals/scorpio +++ b/externals/scorpio @@ -1 +1 @@ -Subproject commit de0b1ca2200f62c6eb5e3fd40147965409e97123 +Subproject commit cdd541e0cd708bece13b1f3ee42f66dfd6440aa7 diff --git a/share/build/buildlib.spio b/share/build/buildlib.spio index d65d55479361..49b898202f72 100755 --- a/share/build/buildlib.spio +++ b/share/build/buildlib.spio @@ -106,6 +106,9 @@ def buildlib(bldroot, installpath, case): if "ADIOS2_ROOT" in os.environ: cmake_opts += "-DWITH_ADIOS2:BOOL=ON " + if "FROM_CREATE_TEST" in os.environ and os.environ["FROM_CREATE_TEST"] == "True": + cmake_opts += "-DADIOS_BP2NC_TEST:BOOL=ON " + if debug: cmake_opts += "-DPIO_ENABLE_LOGGING=ON " # Case changes for NetCDF/NETCDF forces us to do this. For other packages diff --git a/share/util/shr_pio_mod.F90 b/share/util/shr_pio_mod.F90 index ed7dfdaa2ed8..0935bce351a5 100644 --- a/share/util/shr_pio_mod.F90 +++ b/share/util/shr_pio_mod.F90 @@ -730,7 +730,8 @@ subroutine shr_pio_namelist_set(npes,mycomm, pio_stride, pio_root, pio_numiotask if(pio_stride == 1 .and. .not. pio_async_interface) then pio_root = 0 endif - if(pio_rearranger .ne. PIO_REARR_SUBSET .and. pio_rearranger .ne. PIO_REARR_BOX) then + if(pio_rearranger .ne. PIO_REARR_SUBSET .and. pio_rearranger .ne. PIO_REARR_BOX .and.& + pio_rearranger .ne. PIO_REARR_ANY) then write(shr_log_unit,*) 'pio_rearranger value, ',pio_rearranger,& ', not supported - using PIO_REARR_BOX' pio_rearranger = PIO_REARR_BOX