diff --git a/.gitignore b/.gitignore index cbab8be5b..322611a56 100644 --- a/.gitignore +++ b/.gitignore @@ -183,4 +183,5 @@ install*/ /sorc/gdas /sorc/gdas-utils !/bundle/CMakeLists.txt +!/bundle/fv3-interface.cmake /bundle/* diff --git a/.gitmodules b/.gitmodules index 779a7faa7..80b3fdb68 100644 --- a/.gitmodules +++ b/.gitmodules @@ -49,10 +49,6 @@ path = sorc/icepack url = https://github.com/JCSDA-internal/Icepack.git branch = feature/ecbuild-new -[submodule "sorc/mom6"] - path = sorc/mom6 - url = https://github.com/jcsda-internal/MOM6.git - branch = main-ecbuild [submodule "sorc/soca"] path = sorc/soca url = https://github.com/jcsda-internal/soca.git @@ -73,10 +69,6 @@ path = sorc/crtm url = https://github.com/jcsda/crtm.git branch = release/crtm_jedi_v2.4.1 -[submodule "sorc/fms"] - path = sorc/fms - url = https://github.com/jcsda/fms.git - branch = release-stable [submodule "sorc/jcb"] path = sorc/jcb url = https://github.com/noaa-emc/jcb.git diff --git a/bundle/CMakeLists.txt b/bundle/CMakeLists.txt index 9493ac0c8..7481aa95e 100644 --- a/bundle/CMakeLists.txt +++ b/bundle/CMakeLists.txt @@ -36,6 +36,19 @@ option(BUILD_GDASBUNDLE "Build GDAS Bundle" ON) option(CLONE_JCSDADATA "Clone JCSDA test data repositories" OFF) option(WORKFLOW_TESTS "Include global-workflow dependent tests" OFF) +# Depend path for non-ecbuild packages +set(DEPEND_LIB_ROOT ${CMAKE_CURRENT_BINARY_DIR}/Depends) +list(APPEND CMAKE_PREFIX_PATH ${DEPEND_LIB_ROOT}) + +# Library path for non-ecbuild packages +link_directories(${CMAKE_CURRENT_BINARY_DIR}/lib) + +include( GNUInstallDirs ) +if(APPLE) + list( APPEND CMAKE_INSTALL_RPATH $ENV{llvm_openmp_ROOT}/lib ) +endif() +list( APPEND CMAKE_INSTALL_RPATH ${CMAKE_CURRENT_BINARY_DIR}/fv3 ) + # Initialize bundle # ----------------- ecbuild_bundle_initialize() @@ -84,8 +97,8 @@ if(BUILD_GDASBUNDLE) option(ENABLE_UFO_DATA "Obtain ufo test data from ufo-data repository (vs tarball)" ON) ecbuild_bundle( PROJECT ufo SOURCE "../sorc/ufo" ) -# FMS and FV3 dynamical core - ecbuild_bundle( PROJECT fms SOURCE "../sorc/fms" ) +# FV3 dynamical core + include(fv3-interface.cmake) ecbuild_bundle( PROJECT fv3 SOURCE "../sorc/fv3" ) # fv3-jedi and associated repositories @@ -100,7 +113,6 @@ if(BUILD_GDASBUNDLE) if ( BUILD_ICEPACK ) ecbuild_bundle( PROJECT icepack SOURCE "../sorc/icepack" ) endif() - ecbuild_bundle( PROJECT mom6 SOURCE "../sorc/mom6" ) ecbuild_bundle( PROJECT soca SOURCE "../sorc/soca" ) # Build JEDI/DA or other peripherals diff --git a/bundle/fv3-interface.cmake b/bundle/fv3-interface.cmake new file mode 100644 index 000000000..bde6826f3 --- /dev/null +++ b/bundle/fv3-interface.cmake @@ -0,0 +1,18 @@ +# FV3 dycore +set(OPENMP ON ) +set(32BIT OFF) +set(DEBUG OFF) +set(MOVING_NEST OFF) +set(MULTI_GASES OFF) +set(USE_GFSL63 ON ) +set(NO_PHYS ON ) +set(GFS_PHYS OFF) +set(GFS_TYPES OFF) +set(use_WRTCOMP OFF) +set(INTERNAL_FILE_NML ON ) +set(ENABLE_QUAD_PRECISION ON ) + +add_library(fv3dycore IMPORTED SHARED) +set_target_properties(fv3dycore PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/fv3/libfv3.dylib) + +message(WARN "WE ARE USING fv3-interface.cmake") diff --git a/modulefiles/GDAS/gaea.intel.lua b/modulefiles/GDAS/gaea.intel.lua index e2da9aea6..85d779669 100644 --- a/modulefiles/GDAS/gaea.intel.lua +++ b/modulefiles/GDAS/gaea.intel.lua @@ -43,6 +43,7 @@ load("fftw/3.3.10") load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") +load("fms/2023.04") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/hera.intel.lua b/modulefiles/GDAS/hera.intel.lua index 230498252..0d5c080c3 100644 --- a/modulefiles/GDAS/hera.intel.lua +++ b/modulefiles/GDAS/hera.intel.lua @@ -43,6 +43,7 @@ load("fftw/3.3.10") load("fckit/0.11.0") load("fiat/1.2.0") --load("ectrans/1.2.0") +load("fms/2023.04") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/hercules.intel.lua b/modulefiles/GDAS/hercules.intel.lua index b5d5f6cce..c59b26482 100644 --- a/modulefiles/GDAS/hercules.intel.lua +++ b/modulefiles/GDAS/hercules.intel.lua @@ -40,6 +40,7 @@ load("fftw/3.3.10") load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") +load("fms/2023.04") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/noaacloud.intel.lua b/modulefiles/GDAS/noaacloud.intel.lua index 2fcfb4af4..dec012d26 100644 --- a/modulefiles/GDAS/noaacloud.intel.lua +++ b/modulefiles/GDAS/noaacloud.intel.lua @@ -41,6 +41,7 @@ load("fftw/3.3.10") load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") +load("fms/2023.04") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/orion.intel.lua b/modulefiles/GDAS/orion.intel.lua index 0177e9302..e6692ceb1 100644 --- a/modulefiles/GDAS/orion.intel.lua +++ b/modulefiles/GDAS/orion.intel.lua @@ -40,6 +40,7 @@ load("fftw/3.3.10") load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") +load("fms/2023.04") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/wcoss2.intel.lua b/modulefiles/GDAS/wcoss2.intel.lua index 00181a6de..23a734bda 100644 --- a/modulefiles/GDAS/wcoss2.intel.lua +++ b/modulefiles/GDAS/wcoss2.intel.lua @@ -33,6 +33,7 @@ load("nco/5.0.6") load("gsl/2.7") load("prod_util/2.0.14") load("bufr/12.0.1") +load("fms-C/2023.04") -- hack for pybind11 setenv("pybind11_ROOT", "/apps/spack/python/3.8.6/intel/19.1.3.304/pjn2nzkjvqgmjw4hmyz43v5x4jbxjzpk/lib/python3.8/site-packages/pybind11/share/cmake/pybind11") @@ -40,6 +41,9 @@ setenv("pybind11_ROOT", "/apps/spack/python/3.8.6/intel/19.1.3.304/pjn2nzkjvqgmj -- hack for git-lfs prepend_path("PATH", "/apps/spack/git-lfs/2.11.0/gcc/11.2.0/m6b6nl5kfqngfteqbggydc7kflxere3s/bin") +-- hack for FMS +setenv('fms_DIR', '/apps/prod/hpc-stack/i-19.1.3.304__m-8.1.12__h-1.14.0__n-4.9.2__p-2.5.10__e-8.6.0pnetcdf/intel-19.1.3.304/cray-mpich-8.1.12/fms/2023.04/lib/cmake/fms/') + local mpiexec = '/pe/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/bin/mpirun' local mpinproc = '-n' setenv('MPIEXEC_EXEC', mpiexec) diff --git a/sorc/fms b/sorc/fms deleted file mode 160000 index 1f739141e..000000000 --- a/sorc/fms +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1f739141ef8b000a0bd75ae8bebfadea340299ba diff --git a/sorc/fv3 b/sorc/fv3 index 47b766295..ab25dc09d 160000 --- a/sorc/fv3 +++ b/sorc/fv3 @@ -1 +1 @@ -Subproject commit 47b766295682df2e53b59d0dd07b5c511b84dd67 +Subproject commit ab25dc09d955271f34ca6a3fa83af1093c85d9f7 diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index b5dd092e2..00173d7b0 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit b5dd092e22a1ec8efdddc2bfbd58628b695ad1c4 +Subproject commit 00173d7b0162c3c0d2c583032b8dbd4a026e5220 diff --git a/sorc/fv3-jedi-lm b/sorc/fv3-jedi-lm index af67095ee..a6e97d76e 160000 --- a/sorc/fv3-jedi-lm +++ b/sorc/fv3-jedi-lm @@ -1 +1 @@ -Subproject commit af67095ee87ffb472218aa386e34c6bfe64ca424 +Subproject commit a6e97d76ed7c0b2a27cf97512893a93d7e2b44bc diff --git a/sorc/ioda b/sorc/ioda index d4dc2cdaa..b8281e5a9 160000 --- a/sorc/ioda +++ b/sorc/ioda @@ -1 +1 @@ -Subproject commit d4dc2cdaa944f2a8220fa5207968f0dab6c8b183 +Subproject commit b8281e5a9e04c07bd871a275eacd4ecd697b9434 diff --git a/sorc/iodaconv b/sorc/iodaconv index 7fb44969a..3c437f464 160000 --- a/sorc/iodaconv +++ b/sorc/iodaconv @@ -1 +1 @@ -Subproject commit 7fb44969a419348ba07abad1544b443212fc8d6c +Subproject commit 3c437f464572ce8d5ab076b4ad713f7f7f24dd04 diff --git a/sorc/mom6 b/sorc/mom6 deleted file mode 160000 index 51ec489ad..000000000 --- a/sorc/mom6 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 51ec489ad7d8a86762bef4c46eabd9af5fc41fa4 diff --git a/sorc/oops b/sorc/oops index db0fc43c7..b9c322afc 160000 --- a/sorc/oops +++ b/sorc/oops @@ -1 +1 @@ -Subproject commit db0fc43c70f4b26b7e77782e8270a754d2a2aed7 +Subproject commit b9c322afc959c189f6c256ea74da91e8cbd925e3 diff --git a/sorc/saber b/sorc/saber index a2c8e1c78..bf5339c5f 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit a2c8e1c78faf045613b7a5c15627e31fe947dc9f +Subproject commit bf5339c5ffe1828efab728e89bbc545ac22ddc88 diff --git a/sorc/soca b/sorc/soca index 98e2be9f8..92519ab72 160000 --- a/sorc/soca +++ b/sorc/soca @@ -1 +1 @@ -Subproject commit 98e2be9f83fe45453a34a24b6420b21a7cb6e0c5 +Subproject commit 92519ab72b89a4c3b802501e71b7b66349fc8cc8 diff --git a/sorc/ufo b/sorc/ufo index d90c514fd..cd6650500 160000 --- a/sorc/ufo +++ b/sorc/ufo @@ -1 +1 @@ -Subproject commit d90c514fdc1d1e5cd7a2a88384c0e634da78987f +Subproject commit cd66505007b1559d79cb158bd6dc018a3943c1e7 diff --git a/sorc/vader b/sorc/vader index 8210eccf7..c4df3182d 160000 --- a/sorc/vader +++ b/sorc/vader @@ -1 +1 @@ -Subproject commit 8210eccf77b80f51cce470ecdd5dd4cc2ec646bc +Subproject commit c4df3182de5c050b430250b5beae198af6eeb717