Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
70cb3fc
Use SABER blocks chaining for training (#852)
Apr 18, 2023
75dec0a
Adapt to name changes in ufo (#867)
wsmigaj Mar 18, 2023
cb0a473
Use VertInterp instead of MarineVertInterp (#874)
travissluka Apr 19, 2023
9dc935b
remove linear var change from ensevariance ctest (#881)
travissluka May 3, 2023
051cb7a
Bugfixes for BUMP (#869)
May 3, 2023
bdfad33
A few fixes to the Model to Analysis variable change (#847)
guillaumevernieres May 12, 2023
2d7be80
Remove discontinuities in the balance op (#885)
guillaumevernieres May 19, 2023
3bfb201
default plots (#888)
cmgas May 25, 2023
7f4cc74
add VADER to SOCA (#887)
travissluka May 30, 2023
5cc3b00
switched to ens. templ. (#894)
guillaumevernieres Jun 12, 2023
8857f48
Implementation of EnsMeanAndVariance (#892)
guillaumevernieres Jun 13, 2023
c15014e
Read the std. dev. instead of the variance (#896)
guillaumevernieres Jun 13, 2023
4231ce2
Use the generic oops interpolator (#898)
travissluka Jun 15, 2023
36913d2
Update version (#899)
ytremolet Jun 16, 2023
27d53e0
remove ewok repo (#889)
cmgas Jun 16, 2023
c8813da
Merge B matrix-related applications (#890)
benjaminmenetrier Jun 22, 2023
e5812e3
update for VADER PR#586 (#902)
travissluka Jun 22, 2023
0d6d195
Fix vertical gradient (#914)
kbhargava Jun 30, 2023
a570424
More robust fit optimization in BUMP (#916)
benjaminmenetrier Jul 10, 2023
068498a
Add u,v and biogeochem variables to the vertical remapping (#912)
guillaumevernieres Jul 13, 2023
7efe282
changes to answers (#920)
travissluka Jul 13, 2023
33274de
Adapt to OOPS #2258 (#931)
travissluka Jul 20, 2023
eda35b2
update references (#932)
travissluka Jul 26, 2023
cefd6ab
Compile with C++17 (#934)
fmahebert Jul 26, 2023
1cb9d50
add dummy field support (#935)
travissluka Jul 28, 2023
1dd52c1
cleanup soca bundle (#933)
travissluka Jul 28, 2023
887880d
add ctests for 4DEnVAR and hybrid-4DEnVAR (#936)
travissluka Jul 31, 2023
4fb24e3
Add OASIM and test obs to the repo... but don't do anything with it (…
travissluka Aug 2, 2023
7b58dfd
switch 4denvar tests to sequential, add a subwindow (#940)
travissluka Aug 3, 2023
87b103c
limit remap log to 1 pe only. (#942)
guillaumevernieres Aug 4, 2023
cf2a3d4
Change the mask value (#922)
guillaumevernieres Aug 16, 2023
63310bc
Use VADER for hofx3d test (#943)
travissluka Aug 17, 2023
0346e65
fix (#948)
travissluka Aug 25, 2023
0833bcf
move gsw to before vader (#950)
travissluka Aug 26, 2023
d0f56a7
Atlas interface update (#949)
travissluka Aug 29, 2023
7c518d0
keep fortran logs on only 1 PE (#953)
travissluka Sep 14, 2023
a4ae131
Update version to 1.6.0 (#957)
shlyaeva Sep 25, 2023
0b514bb
Updates for updated CI containers (#959)
shlyaeva Sep 25, 2023
fc4677b
updating test reference after oops update on crosstime covariance (#955)
ncrossette Sep 26, 2023
e2049c1
adding soca hofx test for oasim (#963)
HamidehGMAO Oct 10, 2023
12befe9
Update ref prints after atlas bugfix in oops (#965)
fmahebert Oct 18, 2023
ef327de
Use icepack_FOUND in code CMakeLists (#967)
danholdaway Oct 23, 2023
30daee8
Remove EnsVariance application and test (EnsMeanAndVariance supersede…
shlyaeva Nov 1, 2023
e5fe619
Update NICAS square-root call (#962)
benjaminmenetrier Nov 8, 2023
7220445
Explicit 2D Diffusion Correlation Operator (#966)
travissluka Nov 10, 2023
e658994
explicit diffusion part 2 - variable groups (#974)
travissluka Nov 14, 2023
0abcfab
Change methods of saber blocks to take oops::FieldSet3D (#978)
benjaminmenetrier Nov 30, 2023
d995670
Update time window configuration (#979)
travissluka Dec 7, 2023
5ba9837
disable enshofx (#984)
travissluka Dec 8, 2023
15eab96
Add mesh connectivity in atlas (#983)
travissluka Dec 12, 2023
4f8be3c
Merge branch 'develop' of https://github.com/jcsda-internal/soca into…
climbfuji Dec 12, 2023
c6641b8
update yamls to adapt to oops/pull/2434 (#986)
travissluka Dec 13, 2023
513fdaa
Merge branch 'develop' of https://github.com/jcsda-internal/soca into…
climbfuji Dec 13, 2023
542b088
Update ModelUFS for param/config changes in oops develop
fmahebert Dec 13, 2023
a08894c
Adapt to saber block interface change (#982)
shlyaeva Dec 13, 2023
12eb06c
Merge branch 'develop' of https://github.com/jcsda-internal/soca into…
climbfuji Dec 13, 2023
e28d795
Attempt to make soca feature/ufs_dom compile
climbfuji Dec 13, 2023
81f15f4
Fix merge
fmahebert Dec 15, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ latex

*.pyc
build
._*
10 changes: 5 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@
env:
global:
- MAIN_REPO=soca
- LIB_REPOS="gsw mom6 icepack oops vader ioda ufo saber"
- BUILD_OPT="-DBUILD_ICEPACK=ON"
- LIB_REPOS="gsw mom6 icepack oasim oops vader ioda ufo saber"
- BUILD_OPT="-DBUILD_ICEPACK=ON -DBUILD_OASIM=ON"
- BUILD_OPT_mom6="-DENABLE_OCEAN_BGC=ON"
- BUILD_OPT_oops="-DENABLE_QG_MODEL=OFF -DENABLE_LORENZ95_MODEL=OFF"
- BUILD_OPT_ioda="-DBUILD_PYTHON_BINDINGS=OFF -DBUILD_TESTING=OFF"
- BUILD_OPT_ufo="-DLOCAL_PATH_TESTFILES_IODA=NONE"
- BUILD_OPT_saber="-DENABLE_TESTS=OFF"
- BUILD_OPT_soca="-DENABLE_OCEAN_BGC=ON"
- MATCH_REPOS="saber oops ioda ufo mom6 soca"
- MATCH_REPOS="saber oops ioda ufo mom6 soca oasim vader"
- LFS_REPOS=""
# ENABLE_VALGRIND="ON"

Expand Down Expand Up @@ -108,13 +108,13 @@ script:
- |
# Build code
docker exec -it jcsda_container bash \
-c '. /etc/profile.d/z10_spack_environment.sh && cd /jcsda/work && /jcsda/work/repo.src/${MAIN_REPO}/.github/travisci/build.sh; exit $?' \
-c '. /opt/spack-environment/activate.sh && cd /jcsda/work && /jcsda/work/repo.src/${MAIN_REPO}/.github/travisci/build.sh; exit $?' \
|| travis_terminate 1

- |
# run tests
docker exec -it jcsda_container bash \
-c '. /etc/profile.d/z10_spack_environment.sh && cd /jcsda/work/repo.build/${MAIN_REPO} && ctest --output-on-failure' \
-c '. /opt/spack-environment/activate.sh && cd /jcsda/work/repo.build/${MAIN_REPO} && ctest --output-on-failure' \
|| travis_terminate 1


Expand Down
15 changes: 10 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
################################################################################

cmake_minimum_required( VERSION 3.12 )
project( soca VERSION 1.5.0 LANGUAGES C CXX Fortran)
project( soca VERSION 1.6.0 LANGUAGES C CXX Fortran)

find_package(ecbuild 3.3.2 REQUIRED)
include( ecbuild_system NO_POLICY_SCOPE )
Expand All @@ -31,6 +31,13 @@ find_package( vader 1.4.0 REQUIRED)
find_package( saber 1.7.0 REQUIRED)
find_package( ioda 2.6.0 REQUIRED)
find_package( ufo 1.7.0 REQUIRED)
# fms
find_package(FMS 2022.04 REQUIRED COMPONENTS R4 R8)
if (FV3_PRECISION MATCHES DOUBLE OR NOT FV3_PRECISION)
add_library(fms ALIAS FMS::fms_r8)
else()
add_library(fms ALIAS FMS::fms_r4)
endif()
if(FV3_FORECAST_MODEL MATCHES UFS)
find_package( ESMF MODULE REQUIRED STATIC)
find_package( crtm 2.2.3)
Expand All @@ -43,13 +50,11 @@ if(FV3_FORECAST_MODEL MATCHES UFS)
find_package( nemsio REQUIRED)
find_package( PIO 2.5.3 REQUIRED COMPONENTS C Fortran)
else()
find_package( fms 2020.4.0 REQUIRED)
find_package( mom6 2020.4.0 REQUIRED)
endif()

if ( BUILD_ICEPACK )
find_package( icepack 1.2.0 REQUIRED)
endif()
# Optionally look for icepack
find_package( icepack 1.2.0 QUIET)

include_directories( ${NETCDF_INCLUDE_DIRS} ${DEPEND_LIB_ROOT}/include_r8 ${DEPEND_LIB_ROOT}/MOM6/mod )
include_directories( ${DEPEND_LIB_ROOT}/../ufs-weather-model/src/ufs-weather-model-build/MOM6-interface/mod_solo)
Expand Down
8 changes: 6 additions & 2 deletions bundle/.gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
atlas/
crtm/
eckit/
fckit/
fms/
gsw/
icepack/
ioda-data/
ioda/
jedicmake/
mom6/
oasim/
oops/
saber-data/
saber/
soca
test-data-release/
ufo-data/
ufo/
vader/
72 changes: 46 additions & 26 deletions bundle/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) COPYRIGHT 2018-2020 UCAR
# (C) COPYRIGHT 2018-2023 UCAR
#
# THIS SOFTWARE IS LICENSED UNDER THE TERMS OF THE APACHE LICENCE VERSION 2.0
# WHICH CAN BE OBTAINED AT HTTP://WWW.APACHE.ORG/LICENSES/LICENSE-2.0.
Expand All @@ -14,32 +14,19 @@ include( ecbuild_bundle )

ecbuild_bundle_initialize()

ecbuild_bundle( PROJECT jedicmake GIT "https://github.com/jcsda-internal/jedi-cmake.git" UPDATE BRANCH develop RECURSIVE )
include( jedicmake/cmake/Functions/git_functions.cmake )

# ECMWF repos that you probably dont need to build yourself because they
# should be in jedi-stack and the containers

option(BUILD_ECKIT "download and build eckit (not needed if in a jedi container)")
if ( BUILD_ECKIT )
ecbuild_bundle( PROJECT eckit GIT "https://github.com/ecmwf/eckit.git" UPDATE TAG 1.16.0 )
endif ()

option(BUILD_FCKIT "download and build fckit (not needed if in a jedi container)")
if (BUILD_FCKIT)
ecbuild_bundle( PROJECT fckit GIT "https://github.com/jcsda-internal/fckit.git" UPDATE BRANCH release-stable )
# TODO: replace with https://github.com/ecmwf/fckit.git TAG 0.9.2
endif()

option(BUILD_ATLAS "download and build atlas")
if (BUILD_ATLAS)
ecbuild_bundle( PROJECT atlas GIT "https://github.com/ecmwf/atlas.git" TAG 0.29.0 )
# Use external jedi-cmake or build in bundle
if(DEFINED ENV{jedi_cmake_ROOT})
include( $ENV{jedi_cmake_ROOT}/share/jedicmake/Functions/git_functions.cmake )
else ()
ecbuild_bundle( PROJECT jedicmake GIT "https://github.com/jcsda-internal/jedi-cmake.git" UPDATE BRANCH develop RECURSIVE )
include( jedicmake/cmake/Functions/git_functions.cmake )
endif()


#===================================================================================================
# other optional repositories

option(BUILD_FMS "download and build fms" ON)
#===================================================================================================
option(BUILD_FMS "download and build fms" OFF) # NOTE, changed to default=OFF, but this will be removed in the future
if ( BUILD_FMS )
ecbuild_bundle( PROJECT fms GIT "https://github.com/jcsda/FMS.git" UPDATE BRANCH release-stable )
endif ()
Expand All @@ -49,17 +36,50 @@ if ( BUILD_ICEPACK )
ecbuild_bundle( PROJECT icepack GIT "https://github.com/JCSDA-internal/Icepack.git" UPDATE BRANCH feature/ecbuild-new )
endif()

option(BUILD_UFSM6C6 "download and install the UFS" OFF)
option(BUILD_OASIM "download and build OASIM ocean color forward operator" OFF)
if ( BUILD_OASIM )
ecbuild_bundle( PROJECT oasim GIT "https://github.com/JCSDA-internal/oasim.git" UPDATE BRANCH develop )
endif ()

#===================================================================================================
# required repositories

#===================================================================================================
ecbuild_bundle( PROJECT gsw GIT "https://github.com/jcsda-internal/GSW-Fortran.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT oops GIT "https://github.com/jcsda-internal/oops.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT vader GIT "https://github.com/jcsda-internal/vader.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT saber GIT "https://github.com/jcsda-internal/saber.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT ioda GIT "https://github.com/jcsda-internal/ioda.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT gsw GIT "https://github.com/jcsda-internal/GSW-Fortran.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT ufo GIT "https://github.com/jcsda-internal/ufo.git" UPDATE BRANCH develop )
ecbuild_bundle( PROJECT mom6 GIT "https://github.com/jcsda-internal/MOM6.git" UPDATE BRANCH main-ecbuild RECURSIVE )
ecbuild_bundle( PROJECT soca SOURCE "../" )

#===================================================================================================
# optional test data for the upstream repos
#===================================================================================================
option(TEST_IODA "download and ioda-data repo needed for ioda ctests" OFF)
if ( TEST_IODA )
find_branch_name(REPO_DIR_NAME ioda)
if( NOT DEFINED ENV{LOCAL_PATH_JEDI_TESTFILES} AND NOT DEFINED ${GIT_TAG_FUNC} )
ecbuild_bundle( PROJECT ioda-data GIT "https://github.com/JCSDA-internal/ioda-data.git" BRANCH develop UPDATE )
endif()
endif ()

option(TEST_UFO "download and ufo-data repo needed for ufo ctests" OFF)
if ( TEST_UFO )
find_branch_name(REPO_DIR_NAME ufo)
if( NOT DEFINED ENV{LOCAL_PATH_JEDI_TESTFILES} AND NOT DEFINED ${GIT_TAG_FUNC} )
ecbuild_bundle( PROJECT ufo-data GIT "https://github.com/JCSDA-internal/ufo-data.git" BRANCH develop UPDATE )
endif()
endif ()

option(TEST_SABER "download and saber-data repo needed for ioda ctests" OFF)
if ( TEST_SABER )
find_branch_name(REPO_DIR_NAME saber)
if( NOT DEFINED ENV{LOCAL_PATH_JEDI_TESTFILES} AND NOT DEFINED ${GIT_TAG_FUNC} )
ecbuild_bundle( PROJECT saber-data GIT "https://github.com/JCSDA-internal/saber-data.git" BRANCH develop UPDATE )
endif()
endif ()

#===================================================================================================

ecbuild_bundle_finalize()
10 changes: 10 additions & 0 deletions cmake/soca_compiler_flags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@

add_definitions ( -Duse_libMPI -Duse_netCDF -DSPMD )

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_FORTRAN_STANDARD 08)
set(CMAKE_FORTRAN_STANDARD_REQUIRED ON)
set(CMAKE_FORTRAN_EXTENSIONS OFF)

if( NOT CMAKE_BUILD_TYPE MATCHES "Debug" )
add_definitions( -DNDEBUG )
endif( )
Expand Down
15 changes: 0 additions & 15 deletions src/mains/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
#ecbuild_add_executable( TARGET soca_dirac.x
# SOURCES Dirac.cc
# LIBS ${UFS_LIBS}
# )

ecbuild_add_executable( TARGET test_soca_model.x
SOURCES TestModel.cc
LIBS ${UFS_LIBS}
)

ecbuild_add_executable( TARGET soca_forecast.x
SOURCES Forecast.cc
LIBS ${UFS_LIBS}
Expand Down Expand Up @@ -55,11 +45,6 @@ ecbuild_add_executable( TARGET soca_ensmeanandvariance.x
LIBS ${UFS_LIBS}
)

ecbuild_add_executable( TARGET soca_ensvariance.x
SOURCES EnsVariance.cc
LIBS ${UFS_LIBS}
)

ecbuild_add_executable( TARGET soca_ensrecenter.x
SOURCES EnsRecenter.cc
LIBS ${UFS_LIBS}
Expand Down
17 changes: 0 additions & 17 deletions src/mains/EnsVariance.cc

This file was deleted.

7 changes: 3 additions & 4 deletions src/soca/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ target_include_directories(soca PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:include/soca>)

target_compile_features( soca PUBLIC cxx_std_11 )

target_link_libraries( soca PUBLIC NetCDF::NetCDF_Fortran )
target_link_libraries( soca PUBLIC fckit )
target_link_libraries( soca PUBLIC atlas )
Expand All @@ -39,20 +37,21 @@ target_link_libraries( soca PUBLIC FMS::fms_r8 )
target_link_libraries( soca PUBLIC gsw )
target_link_libraries( soca PUBLIC mom6 )
target_link_libraries( soca PUBLIC oops )
target_link_libraries( soca PUBLIC vader )
target_link_libraries( soca PUBLIC saber )
target_link_libraries( soca PUBLIC ioda )
target_link_libraries( soca PUBLIC ufo )
target_link_libraries( soca PUBLIC vader )

include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${DEPEND_LIB_ROOT}/mod )

if ( BUILD_ICEPACK )
if( ${icepack_FOUND} )
target_link_libraries( soca PUBLIC icepack )
endif()

# Add source code in the subdirectories
add_subdirectory(AnalyticInit)
add_subdirectory(Covariance)
add_subdirectory(ExplicitDiffusion)
add_subdirectory(Fields)
add_subdirectory(Geometry)
add_subdirectory(GeometryIterator)
Expand Down
Loading