Skip to content

Commit

Permalink
Merge branch 'develop' into feature/mathomp4/nvhpc-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mathomp4 authored Feb 8, 2024
2 parents 54a9441 + 5c8180c commit d731f24
Show file tree
Hide file tree
Showing 38 changed files with 535 additions and 287 deletions.
6 changes: 3 additions & 3 deletions Apps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ install(
DESTINATION bin/forcing_converter)

ecbuild_add_executable (TARGET Regrid_Util.x SOURCES Regrid_Util.F90)
target_link_libraries (Regrid_Util.x PRIVATE MAPL MPI::MPI_Fortran esmf)
target_link_libraries (Regrid_Util.x PRIVATE MAPL MPI::MPI_Fortran ESMF::ESMF)
target_include_directories (Regrid_Util.x PRIVATE $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(Regrid_Util.x PRIVATE OpenMP::OpenMP_Fortran)
endif ()

ecbuild_add_executable (TARGET time_ave_util.x SOURCES time_ave_util.F90)
target_link_libraries (time_ave_util.x PRIVATE MAPL MPI::MPI_Fortran esmf)
target_link_libraries (time_ave_util.x PRIVATE MAPL MPI::MPI_Fortran ESMF::ESMF)
target_include_directories (time_ave_util.x PRIVATE $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(time_ave_util.x PRIVATE OpenMP::OpenMP_Fortran)
endif ()

ecbuild_add_executable (TARGET Comp_Testing_Driver.x SOURCES Comp_Testing_Driver.F90)
target_link_libraries (Comp_Testing_Driver.x PRIVATE MAPL MPI::MPI_Fortran esmf)
target_link_libraries (Comp_Testing_Driver.x PRIVATE MAPL MPI::MPI_Fortran ESMF::ESMF)
target_include_directories (Comp_Testing_Driver.x PRIVATE $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Added nf90 interface to read and write 1d string
- Convert from ABI Fixed Grid to lon/lat coordinates used in MAPL_XYGridFactory (supporting geostationary GOES-R series)
- Modify trajectory sampler for a collection with multiple platforms: P3B (air craft) + FIREX
- Modify swath sampler to handle two Epoch swath grids
Expand All @@ -33,6 +34,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
now required), NAG no longer needs this workaround.
- Refactor the CircleCI workflows for more flexibility
- Fix field utils issue - add npes argument to test subroutine decorators.
- Change MAPL CMake to use `ESMF::ESMF` target instead of `esmf` or `ESMF` as the imported target name
- Updated `FindESMF.cmake` to match that of ESMF `develop` as of commit `da8f410`. This will be in ESMF 8.6.1+
- Requires ESMA_cmake 3.40.0 or later as this adds the `ESMF::ESMF` target ALIAS for Baselibs and non-Baselibs builds
- Changed `CMakePresets.json`
- Updated to version 7 and required CMake 3.27.0 (the minimum version that supports CMakePresets.json v7)
- Changed build style on NCCS machines to by default put build and install directories in a user-specified directory so as not to
Expand All @@ -45,8 +49,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
we anticipate this here
- Add explicit `Fortran_MODULE_DIRECTORY` to `CMakeLists.txt` in benchmarks to avoid race condition in Ninja builds
- Add check to make sure ESMF was not built as `mpiuni`
- Fixed failing tests for `field_utils`.
- Various fixes for NVHPC work


### Removed

### Deprecated
Expand Down
11 changes: 6 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -147,20 +147,21 @@ if (NOT Baselibs_FOUND)
add_definitions(-DH5_HAVE_PARALLEL)
endif()

if (NOT TARGET esmf)
if (NOT TARGET ESMF::ESMF)
find_package(ESMF 8.6.0 MODULE REQUIRED)

# ESMF as used in MAPL requires MPI
# NOTE: This looks odd because some versions of FindESMF.cmake out in the
# world provide an "esmf" target while others provide "ESMF". So we
# need this ugliness to support both.
if (TARGET esmf)
target_link_libraries(esmf INTERFACE MPI::MPI_Fortran)
if (TARGET ESMF::ESMF)
target_link_libraries(ESMF::ESMF INTERFACE MPI::MPI_Fortran)
else()
target_link_libraries(ESMF INTERFACE MPI::MPI_Fortran)
target_link_libraries(ESMF::ESMF INTERFACE MPI::MPI_Fortran)
# MAPL and GEOS use lowercase target due to historical reasons but
# the latest FindESMF.cmake file from ESMF produces an ESMF target.
add_library(esmf ALIAS ESMF)
add_library(ESMF::ESMF ALIAS ESMF)
add_library(ESMF::ESMF ALIAS esmf)
endif()
endif ()
else ()
Expand Down
2 changes: 1 addition & 1 deletion MAPL/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ esma_set_this()
esma_add_library (${this}
SRCS MAPL.F90
DEPENDENCIES MAPL.base MAPL.generic MAPL.pfio MAPL_cfio_r4 MAPL.gridcomps MAPL.orbit MAPL.griddedio MAPL.field_utils ${EXTDATA_TARGET}
esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran
ESMF::ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran
$<$<BOOL:${BUILD_WITH_FLAP}>:FLAP::FLAP>
TYPE ${MAPL_LIBRARY_TYPE}
)
Expand Down
2 changes: 1 addition & 1 deletion MAPL_cfio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ endif ()

esma_add_library (${lib}
SRCS ${srcs}
DEPENDENCIES esmf NetCDF::NetCDF_Fortran
DEPENDENCIES ESMF::ESMF NetCDF::NetCDF_Fortran
TYPE ${LIBRARY_TYPE}
)

Expand Down
6 changes: 3 additions & 3 deletions Tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ set (srcs
if (BUILD_WITH_FARGPARSE)

ecbuild_add_executable (TARGET ExtDataDriver.x SOURCES ${srcs})
target_link_libraries (ExtDataDriver.x PRIVATE MAPL FARGPARSE::fargparse esmf)
target_link_libraries (ExtDataDriver.x PRIVATE MAPL FARGPARSE::fargparse ESMF::ESMF)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(ExtDataDriver.x PRIVATE OpenMP::OpenMP_Fortran)
Expand All @@ -21,14 +21,14 @@ if (BUILD_WITH_FARGPARSE)
add_subdirectory(ExtData_Testing_Framework EXCLUDE_FROM_ALL)

ecbuild_add_executable (TARGET pfio_MAPL_demo.x SOURCES pfio_MAPL_demo.F90)
target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FARGPARSE::fargparse esmf)
target_link_libraries (pfio_MAPL_demo.x PRIVATE MAPL FARGPARSE::fargparse ESMF::ESMF)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(pfio_MAPL_demo.x PRIVATE OpenMP::OpenMP_Fortran)
endif ()
set_target_properties(pfio_MAPL_demo.x PROPERTIES Fortran_MODULE_DIRECTORY ${MODULE_DIRECTORY})
ecbuild_add_executable (TARGET MAPL_demo_fargparse.x SOURCES MAPL_demo_fargparse.F90)
target_link_libraries (MAPL_demo_fargparse.x PRIVATE MAPL FARGPARSE::fargparse esmf)
target_link_libraries (MAPL_demo_fargparse.x PRIVATE MAPL FARGPARSE::fargparse ESMF::ESMF)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(MAPL_demo_fargparse.x PRIVATE OpenMP::OpenMP_Fortran)
Expand Down
4 changes: 2 additions & 2 deletions base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ esma_add_library(
${this} SRCS ${srcs}
DEPENDENCIES MAPL.shared MAPL.constants MAPL.profiler MAPL.pfio MAPL_cfio_r4 MAPL.field_utils PFLOGGER::pflogger
GFTL_SHARED::gftl-shared-v2 GFTL_SHARED::gftl-shared-v1 GFTL::gftl-v2 GFTL::gftl-v1
esmf NetCDF::NetCDF_Fortran MPI::MPI_Fortran
ESMF::ESMF NetCDF::NetCDF_Fortran MPI::MPI_Fortran
TYPE ${MAPL_LIBRARY_TYPE})

# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
Expand All @@ -90,7 +90,7 @@ foreach(dir ${OSX_EXTRA_LIBRARY_PATH})
target_link_libraries(${this} PUBLIC "-Xlinker -rpath -Xlinker ${dir}")
endforeach()

ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS esmf MAPL.shared)
ecbuild_add_executable (TARGET cub2latlon.x SOURCES cub2latlon_regridder.F90 DEPENDS ESMF::ESMF MAPL.shared)
target_link_libraries (cub2latlon.x PRIVATE ${this} MAPL.pfio MPI::MPI_Fortran)
# CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
Expand Down
2 changes: 1 addition & 1 deletion base/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ set (SRCS
# MAPL_Initialize.F90
# )
#target_link_libraries (base_extras MAPL.shared MAPL.pfunit
# esmf NetCDF::NetCDF_Fortran)
# ESMF::ESMF NetCDF::NetCDF_Fortran)

add_pfunit_ctest(MAPL.base.tests
TEST_SOURCES ${TEST_SRCS}
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/io/checkpoint_simulator/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ecbuild_add_executable (
SOURCES checkpoint_simulator.F90
DEFINITIONS USE_MPI)

target_link_libraries (${exe} PRIVATE MAPL.shared MPI::MPI_Fortran FARGPARSE::fargparse esmf )
target_link_libraries (${exe} PRIVATE MAPL.shared MPI::MPI_Fortran FARGPARSE::fargparse ESMF::ESMF )
target_include_directories (${exe} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${exe} PROPERTIES Fortran_MODULE_DIRECTORY ${MODULE_DIRECTORY})

Expand Down
5 changes: 5 additions & 0 deletions cmake/FindESMF.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ if(EXISTS ${ESMFMKFILE})
endif()
endif()

# Add target alias to facilitate unambiguous linking
if(NOT TARGET ESMF::ESMF)
add_library(ESMF::ESMF ALIAS ESMF)
endif()

# Add ESMF include directories
set(ESMF_INCLUDE_DIRECTORIES "")
separate_arguments(_ESMF_F90COMPILEPATHS UNIX_COMMAND ${ESMF_F90COMPILEPATHS})
Expand Down
2 changes: 1 addition & 1 deletion components.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ESMA_env:
ESMA_cmake:
local: ./ESMA_cmake
remote: ../ESMA_cmake.git
tag: v3.37.0
tag: v3.40.0
develop: develop

ecbuild:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ set (srcs

esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL_LIBRARY_TYPE})

target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)

target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
2 changes: 1 addition & 1 deletion docs/tutorial/grid_comps/leaf_comp_a/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
2 changes: 1 addition & 1 deletion docs/tutorial/grid_comps/leaf_comp_b/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL TYPE ${MAPL
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG")
target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran)
endif ()
target_link_libraries(${this} PRIVATE esmf)
target_link_libraries(${this} PRIVATE ESMF::ESMF)
target_include_directories (${this} PUBLIC $<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
set_target_properties (${this} PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}})
#target_compile_definitions(${this} PRIVATE SYSTEM_DSO_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
4 changes: 2 additions & 2 deletions field_utils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ esma_add_library(${this}

target_include_directories (${this} PUBLIC
$<BUILD_INTERFACE:${MAPL_SOURCE_DIR}/include>)
#target_link_libraries (${this} PUBLIC esmf NetCDF::NetCDF_Fortran)
target_link_libraries (${this} PUBLIC esmf)
#target_link_libraries (${this} PUBLIC ESMF::ESMF NetCDF::NetCDF_Fortran)
target_link_libraries (${this} PUBLIC ESMF::ESMF)

if (PFUNIT_FOUND)
# Turning off until test with GNU can be fixed
Expand Down
63 changes: 34 additions & 29 deletions field_utils/tests/Test_FieldArithmetic.pf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module Test_FieldArithmetic
use MAPL_FieldUtilities
use MAPL_FieldPointerUtilities
use ESMF
use funit
use pfunit
use MAPL_ExceptionHandling

implicit none
Expand All @@ -21,8 +21,8 @@ contains
! Making the fields should be done in the tests themselves so because
! of the npes argument.
@Before
subroutine set_up_data()
implicit none
subroutine set_up_data(this)
class(MpiTestMethod), intent(inout) :: this

integer :: status, rc

Expand All @@ -35,23 +35,25 @@ contains
allocate(y8array, source=R8_ARRAY_DEFAULT)
y4array = y4array + ADD_R4
y8array = y8array + ADD_R8
XR4 = mk_field(R4_ARRAY_DEFAULT, regDecomp=REG_DECOMP_DEFAULT, minIndex=MIN_INDEX_DEFAULT, maxIndex=MAX_INDEX_DEFAULT, &
indexflag=INDEX_FLAG_DEFAULT, name = 'XR4', _RC)
YR4 = mk_field(y4array, regDecomp=REG_DECOMP_DEFAULT, minIndex=MIN_INDEX_DEFAULT, maxIndex=MAX_INDEX_DEFAULT, &
indexflag=INDEX_FLAG_DEFAULT, name = 'YR4', _RC)
XR8 = mk_field(R8_ARRAY_DEFAULT, regDecomp=REG_DECOMP_DEFAULT, minIndex=MIN_INDEX_DEFAULT, maxIndex=MAX_INDEX_DEFAULT, &
indexflag=INDEX_FLAG_DEFAULT, name = 'XR8', _RC)
YR8 = mk_field(y8array, regDecomp=REG_DECOMP_DEFAULT, minIndex=MIN_INDEX_DEFAULT, maxIndex=MAX_INDEX_DEFAULT, &
indexflag=INDEX_FLAG_DEFAULT, name = 'YR8', _RC)
XR4 = mk_field(R4_ARRAY_DEFAULT, name = 'XR4', _RC)
YR4 = mk_field(y4array, name = 'YR4', _RC)
XR8 = mk_field(R8_ARRAY_DEFAULT, name = 'XR8', _RC)
YR8 = mk_field(y8array, name = 'YR8', _RC)
call ESMF_AttributeSet(xr4,name="missing_value",value=undef,_RC)
call ESMF_AttributeSet(xr8,name="missing_value",value=undef,_RC)
call ESMF_AttributeSet(yr4,name="missing_value",value=undef,_RC)
call ESMF_AttributeSet(yr8,name="missing_value",value=undef,_RC)

end subroutine set_up_data

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldAddR4()
@after
subroutine teardown(this)
class(MpiTestMethod), intent(inout) :: this
end subroutine teardown

@Test(npes=[4])
subroutine test_FieldAddR4(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
type(ESMF_Field) :: y
real(kind=ESMF_KIND_R4), pointer :: x_ptr(:,:), y_ptr(:,:)
Expand All @@ -66,19 +68,17 @@ contains
call ESMF_FieldGet(y , farrayPtr = y_ptr, _RC)

x_ptr = 2.0
y_ptr = 3.0
y_ptr = 3.0
result_array = x_ptr
result_array = 5.0
call FieldAdd(y, x, y, _RC)
@assertEqual(y_ptr, result_array)

end subroutine test_FieldAddR4

! Rather than use the fields created in setup, make the fields
! in this subroutine to make sure that the npes match the
! regDecomp.
@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldAddR4_missing
@Test(npes=[4])
subroutine test_FieldAddR4_missing(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
type(ESMF_Field) :: y
real(kind=ESMF_KIND_R4), pointer :: x_ptr(:,:), y_ptr(:,:)
Expand All @@ -98,8 +98,9 @@ contains
@assertEqual(y_ptr, result_array)
end subroutine test_FieldAddR4_missing

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldAddR8()
@Test(npes=[4])
subroutine test_FieldAddR8(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
type(ESMF_Field) :: y
real(kind=ESMF_KIND_R8), pointer :: x_ptr(:,:), y_ptr(:,:)
Expand All @@ -121,8 +122,9 @@ contains
@assertEqual(y_ptr, result_array)
end subroutine test_FieldAddR8

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldPowR4()
@Test(npes=[4])
subroutine test_FieldPowR4(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
real(kind=ESMF_KIND_R4), pointer :: x_ptr(:,:)
real(kind=ESMF_KIND_R4), allocatable :: result_array(:,:)
Expand All @@ -140,8 +142,9 @@ contains
@assertEqual(x_ptr, result_array)
end subroutine test_FieldPowR4

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldPowR8()
@Test(npes=[4])
subroutine test_FieldPowR8(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
real(kind=ESMF_KIND_R8), pointer :: x_ptr(:,:)
real(kind=ESMF_KIND_R8), allocatable :: result_array(:,:)
Expand All @@ -159,8 +162,9 @@ contains
@assertEqual(x_ptr, result_array)
end subroutine test_FieldPowR8

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldSinR4()
@Test(npes=[4])
subroutine test_FieldSinR4(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
real(kind=ESMF_KIND_R4), pointer :: x_ptr(:,:)
real(kind=ESMF_KIND_R4), allocatable :: result_array(:,:)
Expand All @@ -176,8 +180,9 @@ contains
@assertEqual(x_ptr, result_array)
end subroutine test_FieldSinR4

@Test(npes=product(REG_DECOMP_DEFAULT))
subroutine test_FieldNegR4()
@Test(npes=[4])
subroutine test_FieldNegR4(this)
class(MpiTestMethod), intent(inout) :: this
type(ESMF_Field) :: x
real(kind=ESMF_KIND_R4), pointer :: x_ptr(:,:)
real(kind=ESMF_KIND_R4), allocatable :: result_array(:,:)
Expand Down
Loading

0 comments on commit d731f24

Please sign in to comment.