diff --git a/.github/workflows/landda_ci_cd.yml b/.github/workflows/landda_ci_cd._yml similarity index 100% rename from .github/workflows/landda_ci_cd.yml rename to .github/workflows/landda_ci_cd._yml diff --git a/CMakeLists.txt b/CMakeLists.txt index dc2bdbb9..84a7f032 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ cmake_minimum_required( VERSION 3.12 ) project( LandDA VERSION 0.0.0 LANGUAGES C CXX Fortran) if(DEFINED ENV{JEDI_INSTALL}) - set( JEDI_INSTALL $ENV{JEDI_INSTALL}/fv3-bundle) + set( JEDI_INSTALL $ENV{JEDI_INSTALL}/jedi-bundle) else() message(FATAL_ERROR "Define the environment variable 'JEDI_INSTALL' to point to the parent directory of fv3-bundle on your system") endif() @@ -21,6 +21,14 @@ enable_testing() include( ecbuild_system NO_POLICY_SCOPE ) ecbuild_declare_project() +# Inlcude externalproject +# ----------------------- +include(ExternalProject) + +# Initialize bundle +# ----------------- +ecbuild_bundle_initialize() + list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) include( landda_compiler_flags ) @@ -36,6 +44,16 @@ include_directories( ${NETCDF_INCLUDE_DIRS} ) ################################################################################ set( LANDDA_LINKER_LANGUAGE CXX) +ExternalProject_Add(ufs-weather-model + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model + GIT_REPOSITORY https://github.com/ufs-community/ufs-weather-model + GIT_SUBMODULES_RECURSE TRUE + GIT_TAG develop + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ufs-weather-model + CMAKE_ARGS ${SOURCE_DIR} -DAPP=LND -DMPI=ON -DCMAKE_BUILD_TYPE=Release + INSTALL_COMMAND cmake + ) + add_subdirectory( vector2tile ) add_subdirectory( ufs-land-driver ) add_subdirectory( DA_update/add_jedi_incr ) diff --git a/modulefiles/landda_container.intel.lua b/modulefiles/landda_container.intel.lua new file mode 100644 index 00000000..f7c0036d --- /dev/null +++ b/modulefiles/landda_container.intel.lua @@ -0,0 +1,75 @@ +help([[ +loads Land DA prerequisites for Singularity/Intel +]]) + +setenv("EPICHOME", "/opt") + +prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"spack-stack/spack-stack-1.3.0/envs/unified-dev/install/modulefiles/Core")) + +load("stack-intel/2021.8.0") +load("stack-intel-oneapi-mpi/2021.8.0") +load("stack-python/3.8.10") +load("cmake/3.23.1") +load("ecbuild/3.6.5") +load("libjpeg/2.1.0") +load("jasper/2.0.32") +load("zlib/1.2.13") +load("libpng/1.6.37") +load("pkg-config/0.29.2") +load("hdf5/1.14.0") +load("curl/7.68.0") +load("zstd/1.5.2") +load("netcdf-c/4.9.2") +load("netcdf-fortran/4.6.0") +load("parallel-netcdf/1.12.2") +load("parallelio/2.5.9") +load("esmf/8.3.0b09") +load("fms/2022.04") +load("bacio/2.4.1") +load("crtm-fix/2.4.0_emc") +load("git-lfs/2.9.2") +load("crtm/2.4.0") +load("g2/3.4.5") +load("g2tmpl/1.10.2") +load("ip/3.3.3") +load("sp/2.3.3") +load("w3emc/2.9.2") +load("gftl/1.8.1") +load("gftl-shared/1.5.0") +load("yafyaml/0.5.1") +load("mapl/2.22.0-esmf-8.3.0b09") +load("openblas/0.3.19") +load("py-setuptools/59.4.0") +load("py-numpy/1.22.3") +load("py-cftime/1.0.3.4") +load("py-cython/0.29.32") +load("py-f90nml/1.4.3") +load("py-markupsafe/2.1.1") +load("py-jinja2/3.1.2") +load("py-netcdf4/1.5.3") +load("py-bottleneck/1.3.5") +load("py-pyparsing/3.0.9") +load("py-packaging/21.3") +load("py-numexpr/2.8.3") +load("py-six/1.16.0") +load("py-python-dateutil/2.8.2") +load("py-pytz/2022.2.1") +load("py-pandas/1.4.0") +load("py-pyyaml/6.0") +--modules below this line used for jedi builds +load("udunits/2.2.28") +load("boost/1.78.0") +load("eigen/3.4.0") +load("eckit/1.20.2") +load("fftw/3.3.10") +load("fckit/0.10.0") +load("fiat/1.1.0") +load("ectrans/1.2.0") +load("atlas/0.32.1") + +setenv("CC", "mpiicc") +setenv("CXX", "mpiicpc") +setenv("FC", "mpiifort") + +setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"")) + diff --git a/modulefiles/landda_hera.intel.lua b/modulefiles/landda_hera.intel.lua index 55b5af4e..97473220 100644 --- a/modulefiles/landda_hera.intel.lua +++ b/modulefiles/landda_hera.intel.lua @@ -1,26 +1,88 @@ help([[ -loads Land DA prerequisites for Hera/Intel +loads UFS Model prerequisites for Hera/Intel ]]) -setenv("EPICHOME", "/scratch1/NCEPDEV/nems/role.epic") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.3.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +load(pathJoin("stack-intel", stack_intel_ver)) + +stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) + +stack_python_ver=os.getenv("stack_python_ver") or "3.9.12" +load(pathJoin("stack-python", stack_python_ver)) + +cmake_ver=os.getenv("cmake_ver") or "3.23.1" +load(pathJoin("cmake", cmake_ver)) + +ecbuild_ver=os.getenv("ecbuild_ver") or "3.6.5" +load(pathJoin("ecbuild", ecbuild_ver)) + +jasper_ver=os.getenv("jasper_ver") or "2.0.32" +load(pathJoin("jasper", jasper_ver)) + +zlib_ver=os.getenv("zlib_ver") or "1.2.13" +load(pathJoin("zlib", zlib_ver)) + +libpng_ver=os.getenv("libpng_ver") or "1.6.37" +load(pathJoin("libpng", libpng_ver)) + +hdf5_ver=os.getenv("hdf5_ver") or "1.14.0" +load(pathJoin("hdf5", hdf5_ver)) + +netcdf_c_ver=os.getenv("netcdf_ver") or "4.9.0" +load(pathJoin("netcdf-c", netcdf_c_ver)) + +netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0" +load(pathJoin("netcdf-fortran", netcdf_fortran_ver)) -prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"miniconda3/modulefiles")) +pio_ver=os.getenv("pio_ver") or "2.5.9" +load(pathJoin("parallelio", pio_ver)) -load("miniconda3/4.12.0") +esmf_ver=os.getenv("esmf_ver") or "8.3.0b09" +load(pathJoin("esmf", esmf_ver)) -prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"spack-stack/envs/landda-release-1.0-intel/install/modulefiles/Core")) +fms_ver=os.getenv("fms_ver") or "2022.04" +load(pathJoin("fms",fms_ver)) -load("stack-intel") -load("stack-intel-oneapi-mpi") -load("netcdf-c") -load("netcdf-fortran") -load("cmake") -load("ecbuild") -load("stack-python") +bacio_ver=os.getenv("bacio_ver") or "2.4.1" +load(pathJoin("bacio", bacio_ver)) + +crtm_ver=os.getenv("crtm_ver") or "2.4.0" +load(pathJoin("crtm", crtm_ver)) + +g2_ver=os.getenv("g2_ver") or "3.4.5" +load(pathJoin("g2", g2_ver)) + +g2tmpl_ver=os.getenv("g2tmpl_ver") or "1.10.2" +load(pathJoin("g2tmpl", g2tmpl_ver)) + +ip_ver=os.getenv("ip_ver") or "3.3.3" +load(pathJoin("ip", ip_ver)) + +sp_ver=os.getenv("sp_ver") or "2.3.3" +load(pathJoin("sp", sp_ver)) + +w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +load(pathJoin("w3emc", w3emc_ver)) + +gftl_shared_ver=os.getenv("gftl_shared_ver") or "v1.5.0" +load(pathJoin("gftl-shared", gftl_shared_ver)) + +mapl_ver=os.getenv("mapl_ver") or "2.22.0-esmf-8.3.0b09" +load(pathJoin("mapl", mapl_ver)) + +load("ufs-pyenv") +load("atlas") setenv("CC", "mpiicc") setenv("CXX", "mpiicpc") setenv("FC", "mpiifort") -setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"contrib")) +setenv("CMAKE_Platform", "hera.intel") + +setenv("EPICHOME", "/scratch1/NCEPDEV/nems/role.epic") +setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"contrib/v1.1")) -whatis("Description: Land DA build environment") +whatis("Description: UFS build environment") diff --git a/modulefiles/landda_orion.intel.lua b/modulefiles/landda_orion.intel.lua index 212e03cf..2fb76f77 100644 --- a/modulefiles/landda_orion.intel.lua +++ b/modulefiles/landda_orion.intel.lua @@ -1,26 +1,88 @@ help([[ -loads Land DA prerequisites for Orion/Intel +loads UFS Model prerequisites for Orion/Intel ]]) -setenv("EPICHOME", "/work/noaa/epic-ps/role-epic-ps") +prepend_path("MODULEPATH", "/work/noaa/epic-ps/role-epic-ps/spack-stack/spack-stack-1.3.0/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/work/noaa/da/role-da/spack-stack/modulefiles") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2" +load(pathJoin("stack-intel", stack_intel_ver)) + +stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) + +stack_python_ver=os.getenv("stack_python_ver") or "3.9.7" +load(pathJoin("stack-python", stack_python_ver)) + +cmake_ver=os.getenv("cmake_ver") or "3.22.1" +load(pathJoin("cmake", cmake_ver)) + +ecbuild_ver=os.getenv("ecbuild_ver") or "3.6.5" +load(pathJoin("ecbuild", ecbuild_ver)) + +jasper_ver=os.getenv("jasper_ver") or "2.0.32" +load(pathJoin("jasper", jasper_ver)) + +zlib_ver=os.getenv("zlib_ver") or "1.2.13" +load(pathJoin("zlib", zlib_ver)) + +libpng_ver=os.getenv("libpng_ver") or "1.6.37" +load(pathJoin("libpng", libpng_ver)) + +hdf5_ver=os.getenv("hdf5_ver") or "1.14.0" +load(pathJoin("hdf5", hdf5_ver)) + +netcdf_c_ver=os.getenv("netcdf_ver") or "4.9.0" +load(pathJoin("netcdf-c", netcdf_c_ver)) + +netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0" +load(pathJoin("netcdf-fortran", netcdf_fortran_ver)) -prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"miniconda3/modulefiles")) +pio_ver=os.getenv("pio_ver") or "2.5.9" +load(pathJoin("parallelio", pio_ver)) -load("miniconda3/4.12.0") +esmf_ver=os.getenv("esmf_ver") or "8.3.0b09" +load(pathJoin("esmf", esmf_ver)) -prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"spack-stack/envs/landda-release-1.0-intel/install/modulefiles/Core")) +fms_ver=os.getenv("fms_ver") or "2022.04" +load(pathJoin("fms",fms_ver)) -load("stack-intel") -load("stack-intel-oneapi-mpi") -load("netcdf-c") -load("netcdf-fortran") -load("cmake") -load("ecbuild") -load("stack-python") +bacio_ver=os.getenv("bacio_ver") or "2.4.1" +load(pathJoin("bacio", bacio_ver)) + +crtm_ver=os.getenv("crtm_ver") or "2.4.0" +load(pathJoin("crtm", crtm_ver)) + +g2_ver=os.getenv("g2_ver") or "3.4.5" +load(pathJoin("g2", g2_ver)) + +g2tmpl_ver=os.getenv("g2tmpl_ver") or "1.10.2" +load(pathJoin("g2tmpl", g2tmpl_ver)) + +ip_ver=os.getenv("ip_ver") or "3.3.3" +load(pathJoin("ip", ip_ver)) + +sp_ver=os.getenv("sp_ver") or "2.3.3" +load(pathJoin("sp", sp_ver)) + +w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +load(pathJoin("w3emc", w3emc_ver)) + +gftl_shared_ver=os.getenv("gftl_shared_ver") or "v1.5.0" +load(pathJoin("gftl-shared", gftl_shared_ver)) + +mapl_ver=os.getenv("mapl_ver") or "2.22.0-esmf-8.3.0b09" +load(pathJoin("mapl", mapl_ver)) + +load("ufs-pyenv") setenv("CC", "mpiicc") setenv("CXX", "mpiicpc") setenv("FC", "mpiifort") -setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"contrib")) +setenv("CMAKE_Platform", "orion.intel") + +setenv("EPICHOME", "/work/noaa/epic-ps/role-epic-ps") +setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"contrib/v1.1")) + +whatis("Description: UFS build environment") -whatis("Description: Land DA build environment") diff --git a/modulefiles/landda_singularity.intel.lua b/modulefiles/landda_singularity.intel.lua index 49a9a32e..a8a9d61e 100644 --- a/modulefiles/landda_singularity.intel.lua +++ b/modulefiles/landda_singularity.intel.lua @@ -1,26 +1,97 @@ help([[ -loads Land DA prerequisites for Singularity/Intel +loads UFS Model prerequisites for Hera/Intel ]]) setenv("EPICHOME", "/opt") ---prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"miniconda3/modulefiles")) ---miniconda3_ver=os.getenv("miniconda3_ver") or "4.12.0" ---load(pathJoin("miniconda3", miniconda3_ver)) +prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"spack-stack/spack-stack-1.3.0/envs/unified-dev/install/modulefiles/Core")) -prepend_path("MODULEPATH", pathJoin(os.getenv("EPICHOME"),"spack-stack/envs/landda-release-1.0-intel/install/modulefiles/Core")) +stack_intel_ver=os.getenv("stack_intel_ver") or "2021.8.0" +load(pathJoin("stack-intel", stack_intel_ver)) -load("stack-intel") -load("stack-intel-oneapi-mpi") -load("netcdf-c") -load("netcdf-fortran") -load("cmake") -load("ecbuild") -load("stack-python") +load("intel-oneapi-mpi/2021.8.0") +stack_impi_ver=os.getenv("stack_impi_ver") or "2021.8.0" +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) + +stack_python_ver=os.getenv("stack_python_ver") or "3.8.10" +load(pathJoin("stack-python", stack_python_ver)) + +cmake_ver=os.getenv("cmake_ver") or "3.23.1" +load(pathJoin("cmake", cmake_ver)) + +ecbuild_ver=os.getenv("ecbuild_ver") or "3.6.5" +load(pathJoin("ecbuild", ecbuild_ver)) + +jasper_ver=os.getenv("jasper_ver") or "2.0.32" +load(pathJoin("jasper", jasper_ver)) + +zlib_ver=os.getenv("zlib_ver") or "1.2.13" +load(pathJoin("zlib", zlib_ver)) + +libpng_ver=os.getenv("libpng_ver") or "1.6.37" +load(pathJoin("libpng", libpng_ver)) + +hdf5_ver=os.getenv("hdf5_ver") or "1.14.0" +load(pathJoin("hdf5", hdf5_ver)) + +netcdf_c_ver=os.getenv("netcdf_ver") or "4.9.2" +load(pathJoin("netcdf-c", netcdf_c_ver)) + +netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0" +load(pathJoin("netcdf-fortran", netcdf_fortran_ver)) + +pio_ver=os.getenv("pio_ver") or "2.5.9" +load(pathJoin("parallelio", pio_ver)) + +esmf_ver=os.getenv("esmf_ver") or "8.3.0b09" +load(pathJoin("esmf", esmf_ver)) + +fms_ver=os.getenv("fms_ver") or "2022.04" +load(pathJoin("fms",fms_ver)) + +bacio_ver=os.getenv("bacio_ver") or "2.4.1" +load(pathJoin("bacio", bacio_ver)) + +crtm_ver=os.getenv("crtm_ver") or "2.4.0" +load(pathJoin("crtm", crtm_ver)) + +g2_ver=os.getenv("g2_ver") or "3.4.5" +load(pathJoin("g2", g2_ver)) + +g2tmpl_ver=os.getenv("g2tmpl_ver") or "1.10.2" +load(pathJoin("g2tmpl", g2tmpl_ver)) + +ip_ver=os.getenv("ip_ver") or "3.3.3" +load(pathJoin("ip", ip_ver)) + +sp_ver=os.getenv("sp_ver") or "2.3.3" +load(pathJoin("sp", sp_ver)) + +w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +load(pathJoin("w3emc", w3emc_ver)) + +gftl_shared_ver=os.getenv("gftl_shared_ver") or "1.5.0" +load(pathJoin("gftl-shared", gftl_shared_ver)) + +mapl_ver=os.getenv("mapl_ver") or "2.22.0-esmf-8.3.0b09" +load(pathJoin("mapl", mapl_ver)) + +load("py-cftime/1.0.3.4") +load("py-cython/0.29.32") +load("py-f90nml/1.4.3") +load("py-jinja2/3.1.2") +load("py-netcdf4/1.5.3") +load("py-numpy/1.22.3") +load("py-pandas/1.4.0") +load("py-python-dateutil/2.8.2") +load("py-pyyaml/6.0") + +load("atlas") setenv("CC", "mpiicc") setenv("CXX", "mpiicpc") setenv("FC", "mpiifort") + setenv("JEDI_INSTALL", pathJoin(os.getenv("EPICHOME"),"")) -whatis("Description: Land DA build environment") +whatis("Description: UFS build environment") diff --git a/release.environment b/release.environment index 443fb9f8..0a6b9c25 100644 --- a/release.environment +++ b/release.environment @@ -6,7 +6,7 @@ export LANDDA_INPUTS=${LANDDA_INPUTS:-${LANDDAROOT}/inputs} export CYCLEDIR=$(pwd) export LANDDA_EXPTS=${LANDDA_EXPTS:-${LANDDAROOT}/landda_expts} if [[ ! $BASELINE =~ 'hera.internal' ]]; then - export PYTHON=`which python` + export PYTHON=`/usr/bin/which python` fi export BUILDDIR=${BUILDDIR:-${CYCLEDIR}/build} @@ -14,15 +14,15 @@ export BUILDDIR=${BUILDDIR:-${CYCLEDIR}/build} if [[ ${USE_SINGULARITY} =~ yes ]]; then EPICHOME=/opt #use the python that is built into the container. It has all the pythonpaths set and can run the ioda converters - export PYTHON=$PWD/singularity/bin/python + export PYTHON=$PWD/build/bin/python #JEDI is installed under /opt in the container export JEDI_INSTALL=/opt #Scripts that launch containerized versions of the executables are in $PWD/singularity/bin They should be called #from the host system to be run (e.g. mpiexec -n 6 $BUILDDIR/bin/fv3jedi_letkf.x ) - export BUILDDIR=$PWD/singularity - export JEDI_EXECDIR=${CYCLEDIR}/singularity/bin + export BUILDDIR=$PWD/build + export JEDI_EXECDIR=${CYCLEDIR}/build/bin module try-load singularity - export SINGULARITYBIN=`which singularity` + export SINGULARITYBIN=`/usr/bin/which singularity` sed -i 's/singularity exec/${SINGULARITYBIN} exec/g' run_container_executable.sh fi @@ -36,6 +36,6 @@ export OUTDIR=${LANDDA_EXPTS}/${exp_name} export TEST_BASEDIR=${TEST_BASEDIR:-${EPICHOME}/landda/cycle_land/DA_GHCN_test/mem000/restarts/vector} # JEDI directories -export JEDI_EXECDIR=${JEDI_EXECDIR:-"${JEDI_INSTALL}/fv3-bundle/build/bin"} -export IODA_BUILD_DIR=${JEDI_INSTALL}/ioda-bundle/build -export JEDI_STATICDIR=${JEDI_INSTALL}/fv3-bundle/fv3-jedi/test/Data +export JEDI_EXECDIR=${JEDI_EXECDIR:-"${JEDI_INSTALL}/jedi-bundle/build/bin"} +export IODA_BUILD_DIR=${JEDI_INSTALL}/jedi-bundle/build +export JEDI_STATICDIR=${JEDI_INSTALL}/jedi-bundle/fv3-jedi/test/Data diff --git a/run_container_executable.sh b/run_container_executable.sh new file mode 100755 index 00000000..152b3de6 --- /dev/null +++ b/run_container_executable.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +export SINGULARITYENV_FI_PROVIDER=tcp +export SINGULARITY_SHELL=/bin/bash +BINDDIR="/"`pwd | awk -F"/" '{print $2}'` +CONTAINERLOC=${EPICCONTAINERS:-${HOME}} +img=${img:-${CONTAINERLOC}/ubuntu20.04-intel-ue-landda.img} +CONTAINERBASE="/"`echo $img | xargs realpath | awk -F"/" '{print $2}'` +cmd=$(basename "$0") +arg="$@" +if [ ! -z "$LANDDA_INPUTS" ]; then + INPUTBASE="/"`echo $LANDDA_INPUTS | xargs realpath | awk -F"/" '{print $2}'` + INPUTBIND="-B $INPUTBASE:$INPUTBASE" +else + INPUTBIND="" +fi +echo running: ${SINGULARITYBIN} exec $img $cmd $arg +${SINGULARITYBIN} exec -B $BINDDIR:$BINDDIR -B $CONTAINERBASE:$CONTAINERBASE $INPUTBIND $img $cmd $arg + diff --git a/test/runtime_vars.sh b/test/runtime_vars.sh index 2e1a5b65..19d3b07e 100755 --- a/test/runtime_vars.sh +++ b/test/runtime_vars.sh @@ -36,12 +36,12 @@ export EXECDIR=${EXECDIR:-$project_binary_dir/bin} export LANDDA_INPUTS=${LANDDA_INPUTS:-"`dirname $project_source_dir`/inputs"} # set IODA path -export IODA_BUILD_DIR=${IODA_BUILD_DIR:-"${JEDI_INSTALL}/ioda-bundle/build"} +export IODA_BUILD_DIR=${IODA_BUILD_DIR:-"${JEDI_INSTALL}/jedi-bundle/build"} export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}".format(*version))'` export PYTHONPATH=$PYTHONPATH:${IODA_BUILD_DIR}/lib/python${PYTHON_VERSION}/pyioda:${IODA_BUILD_DIR}/lib/pyiodaconv # JEDI directories -export JEDI_EXECDIR=${JEDI_EXECDIR:-"${JEDI_INSTALL}/fv3-bundle/build/bin"} +export JEDI_EXECDIR=${JEDI_EXECDIR:-"${JEDI_INSTALL}/jedi-bundle/build/bin"} export JEDI_STATICDIR=${JEDI_STATICDIR:-"${JEDI_EXECDIR}/../fv3-jedi/test/Data"} # set executables