-
Notifications
You must be signed in to change notification settings - Fork 13
Sync RDASApp submodule with upstream repositories
This document provides guidance of syncing RDASApp submodules under sorc directory with upstream repositories. Team who takes on this task includes: Junjun, Haidao, Hongli, Janet, Donnie, Sam, Guoqing, Shun, Ming.
Check the CMakeLists.txt
of the following bundles for tracing upstream repositories. A list of all upstream repositories can also be found in .gitmodules
.
-
https://github.com/JCSDA-internal/jedi-bundle: CMakeLists.txt
-
https://github.com/JCSDA-internal/mpas-bundle: CMakeLists.txt
Note: the repositories in JSCDA-intenal and JCSDA space are synced. We mostly follow repositories in JCSDA space. If certain functions we need only in JSCDA-intenal repositories, we will follow JSCDA-intenal.
Basic JEDI repositories
- oops
-
https://github.com/jcsda/oops.git and https://github.com/jcsda-internal/oops.git
- Head of the develop branch
-
https://github.com/jcsda/oops.git and https://github.com/jcsda-internal/oops.git
- vader
-
https://github.com/jcsda/vader.git and https://github.com/jcsda-internal/vader.git
- Head of the develop branch
-
https://github.com/jcsda/vader.git and https://github.com/jcsda-internal/vader.git
- saber
-
https://github.com/jcsda/saber.git and https://github.com/jcsda-internal/saber.git
- Head of the develop branch
-
https://github.com/jcsda/saber.git and https://github.com/jcsda-internal/saber.git
- ioda
-
https://github.com/jcsda/ioda.git and https://github.com/jcsda-internal/ioda.git
- Head of the develop branch
-
https://github.com/jcsda/ioda.git and https://github.com/jcsda-internal/ioda.git
- ufo
-
https://github.com/jcsda/ufo.git and https://github.com/jcsda-internal/ufo.git
- Head of the develop branch
-
https://github.com/jcsda/ufo.git and https://github.com/jcsda-internal/ufo.git
- iodaconv
-
https://github.com/jcsda/ioda-converters.git and https://github.com/jcsda-internal/ioda-converters.git
- Head of the develop branch
-
https://github.com/jcsda/ioda-converters.git and https://github.com/jcsda-internal/ioda-converters.git
- crtm
-
https://github.com/NOAA-EMC/GDASApp/tree/develop/sorc
- submodule crtm
-
https://github.com/jcsda/CRTMv3.git
- Head of the develop branch
-
https://github.com/NOAA-EMC/GDASApp/tree/develop/sorc
- jedicmake
-
https://github.com/NOAA-EMC/GDASApp/tree/develop/sorc
- submodule jedicmake
-
https://github.com/NOAA-EMC/GDASApp/tree/develop/sorc
- gsibec
-
https://github.com/geos-esm/GSIbec
- TAG 1.2.1
-
https://github.com/geos-esm/GSIbec
MPAS interface
- mpas
-
https://github.com/MPAS-Dev/MPAS-Model
- TAG v8.2.1
-
https://github.com/MPAS-Dev/MPAS-Model
- mpas-jedi
-
https://github.com/JCSDA-internal/mpas-jedi and https://github.com/jcsda/mpas-jedi.git
- Head of the develop branch
-
https://github.com/JCSDA-internal/mpas-jedi and https://github.com/jcsda/mpas-jedi.git
FV3 interface
- fv3-jedi
-
https://github.com/jcsda/fv3-jedi.git and https://github.com/jcsda-internal/fv3-jedi.git
- Head of the develop branch
-
https://github.com/jcsda/fv3-jedi.git and https://github.com/jcsda-internal/fv3-jedi.git
- fv3
-
https://github.com/jcsda/GFDL_atmos_cubed_sphere.git
- release-stable
-
https://github.com/jcsda/GFDL_atmos_cubed_sphere.git
- femps
-
https://github.com/jcsda/femps.git and https://github.com/jcsda-internal/femps.git
- Head of the develop branch
-
https://github.com/jcsda/femps.git and https://github.com/jcsda-internal/femps.git
- fv3-jedi-lm
-
https://github.com/jcsda/fv3-jedi-linearmodel.git and https://github.com/jcsda-internal/fv3-jedi-linearmodel.git
- Head of the develop branch
-
https://github.com/jcsda/fv3-jedi-linearmodel.git and https://github.com/jcsda-internal/fv3-jedi-linearmodel.git
git clone --recurse-submodules https://github.com/NOAA-EMC/RDASApp.git
Instructions for updating individual submodules can be found on the Wiki page: working with RDASApp submodules
The submodules in RDASApp can also be bulk updated with a single command. First, edit .gitmodules
and comment out any submodules that you do not want to update (such as the tagged versions of MPAS
, gsibec
, or CRTM
). Then, you can run the following command from the base directory in RDASApp:
cd RDASApp
git submodule update --init --remote
Each subdirectory that is updated should then be committed following the wiki article linked above. Note: if using the git submodule update
option, then please do not commit any changes made to .gitmodules
.
./build.sh
After updating the RDASApp submodules, we should run ctests for the major submodules to ensure that everything works as expected. At the moment, it is sufficient to run ctests for rrfs-test
, ufo
, mpas-jedi
, and fv3-jedi
. The ctests are located under the build directory. Before running a ctest, the following two steps should be done,
source ush/load_rdas.sh
export SLURM_ACCOUNT=$account
where $account
is your valid slurm resource account (e.g., fv3-cam, da-cpu, wrfruc, rtrr, nrtrr, etc.).
cd build/rrfs-test
ctest -j8
We should get "100% tests passed, 0 tests failed". If a test fails due to a ReferenceMismatchError
, then the test reference data for the ctests might need to be udpated. Please navigate to build/rrfs-test/rundir-${TESTNAME}
and locate a file called rrfs-${DYCORE}-${TESTTYPE}.out
. You can replace the corresponding .ref
file in rrfs-test/testoutput
with this file and rerun the ctests. Please commit the new .ref
file with your PR.
cd build/mpas-jedi
ctest
Note: Be sure to use ctest
instead of ctest -jN
as the mpas-jedi testing dependencies may not be set up.
The five tests might fail due to the CRTM version:
37 - test_mpasjedi_3denvar_amsua_allsky (Failed)
38 - test_mpasjedi_3denvar_amsua_bc (Failed)
43 - test_mpasjedi_4denvar_VarBC (Failed)
44 - test_mpasjedi_4denvar_VarBC_nonpar (Failed)
54 - test_mpasjedi_lgetkf_height_vloc (Failed)
The following two tests might might also fail due to RDASApp rejecting one more radiosonde wind observation than the clean mpas-bundle.
40 - test_mpasjedi_3dfgat (Failed)
47 - test_mpasjedi_4dfgat (Failed)
cd build/fv3-jedi
ctest -j8
The following tests might fail:
70 - fv3jedi_test_tier1_hofx_nomodel_abi_radii (Failed)
88 - fv3jedi_test_tier1_hyb-3dvar (Failed)
91 - fv3jedi_test_tier1_3dvar_lam_cmaq (Failed)
96 - fv3jedi_test_tier1_hyb-fgat_fv3lm (Failed)
98 - fv3jedi_test_tier1_4denvar (Failed)
99 - fv3jedi_test_tier1_4denvar_seq (Failed)
109 - fv3jedi_test_tier1_diffstates_gfs (Failed)
111 - fv3jedi_test_tier1_diffstates_lam_cmaq (Failed)
112 - fv3jedi_test_tier1_addincrement_gfs (Failed)
125 - fv3jedi_test_tier1_eda_3dvar_control_pert (Failed)
cd build/ufo
ctest
The following tests might fail:
146 - ufo_test_tier1_test_ufo_qc_variableassignment (Failed)
166 - ufo_test_tier1_test_ufo_tropics_qc_filters (Failed)
494 - ufo_test_tier1_test_ufo_variabletransforms_rhumidity (Failed)
497 - ufo_test_tier1_test_ufo_variabletransforms_shumidity (Failed)
Note that it is typically not necessary to run all ctests included in RDASApp (there are ~2000 total tests). But if you would like to verify, then you can follow the below steps:
cd build
ctest -j8
If you notice many failures of ufo
, fv3-jedi
, or mpas-jedi
ctests, then this might indicate that their respective data directories need to be updated. Please note that these repositories are only accessible under the JCSDA-internal
group on GitHub. If you do not have access to these repositories, then please contact another member of the syncing team.
Repository list:
https://github.com/JCSDA-internal/ufo-data
https://github.com/JCSDA-internal/ioda-data
https://github.com/JCSDA-internal/mpas-jedi-data
https://github.com/JCSDA-internal/fv3-jedi-data
These data are currently staged on each of the supported RDASApp machines. If you need to update them, please contact a member of the fix management team to stage the updated directories on $RDAS_DATA. You will also need to update the links to the new data in your PR. These links are contained under fix/jcsda
.
Once the above steps are done, please create a PR documenting the updated hashes for each submodule and the status of the ctests. See examples in #194 or #217.