Creating and using static BE with FV3-JEDI

Hi all,

I am trying to run a fv3-jedi experiment. I am starting simple with 3D Var using the Skylab v1 release of JEDI. I am struggling to create and read in the static BE required for a 3D Var run. Unfortunately the documentation is not up to date for the yaml required to do this for Skylab v1 as the formatting etc has changed since the last JEDI Academy (which i attended).

Could someone please provide a working yaml for 1) creating a static BE (calling fv3jedi_error_covariance_training.x), 2) reading the static BE and running JEDI in 3D var mode (calling fv3jedi_var.x).



Hi Michael,

You can also use fv3-jedi 3dvar test yamls as examples for your experiment. In v3-jedi/test/CMakeLists.txt you can see details of each test including yaml, executable, and dependent tests.

For example for fv3jedi_test_tier1_3dvar_geos-cf we have:

ecbuild_add_test( TARGET   fv3jedi_test_tier1_3dvar_geos-cf
                  MPI      6
                  ARGS     testinput/3dvar_geos-cf.yaml
                  COMMAND  fv3jedi_var.x
                  TEST_DEPENDS fv3jedi_test_tier1_bumpparameters_nicas_geos-cf )

This test depends on outputs from fv3jedi_test_tier1_bumpparameters_nicas_geos-cf test which uses fv3jedi_error_covariance_training.x and testinput/bumpparameters_nicas_geos-cf.yaml. So you can use testintpu/bumpparameters_nicas_geos-cf.yaml as a template for your experiment when creating B. After that you can use testinput/3dvar_geos-cf.yaml as a template for the next step of your experiment.

I hope this is helpful. Please let me know if you have any further questions.


Hi Maryam,

Thanks for your advice but I was hoping to get an example that didn’t use the GOES model as I don’t have access to that model, I only have FV3-GFS. I was also hoping to get an example that didn’t use aerosols as well but I don’t see one in the tester directory you pointed to. The closest I could find was 3dvar_gfs_aero.yaml but again it uses aerosols only when I wanted to use the normal atmospheric variables (e.g. temperature and sfc pressure). Please let me know if I am missing a yaml that would be better for me in that tester directory.

I also wanted to point out that after closely examining the GOES tester you pointed me to, there seems to be an error. The CMakeLists.txt says is only depends on fv3jedi_test_tier1_bumpparameters_nicas_geos-cf but that test doesn’t create the StdDev files that are required by the testinput/3dvar_geos-cf.yaml. Am I confused? If so how are the StdDev files required for this test made? They must be created or the test will fail as far as I can tell from poking around at yamls.

Digging deeper on the 3dvar_gfs_aero.yaml, after following the chain of yamls outlined in the CMakeList file it seems like the first step to run this and make the StdDev files required by it is run staticb_var-mom_DATE_aero.yaml first and create the files need to make the StdDev files. Is this correct or am I missing some prior step? How does one run this script with automation, as it appears to be build for automation and looping through dates. Is there a trick to this and/or any documentation on doing this? Is not clear at all to me. I could just try to fill in dates but would like to take advantage of the automation for myself if possible.


Hi @mjm, I’ll try to answer some of your questions:

  1. The dependencies in test/CMakeLists.txt are not up-to-date. Tests are passing only because they are executed in the correct order when running ctest, but they might fail with ctest -jN where N is the number of tasks run in parallel.
  2. If you want to run FV3-GFS with normal atmospheric variables, you have two sets of yamls you can look at:
  • Simplified test case: run bumpparameters_nicas_gfs.yaml to generate a correlation operator with fixed length-scales and then dirac_gfs.yaml to run the Dirac test with this operator.
  • Full test case: run the staticb_[...]_gfs.yaml tests in the order they appear in test/CMakeLists.txt (or running ctest -N) to generate the different static B operators (vertical balance, standard-deviation, correlation operator) and staticb_dirac_local_gfs_12pe.yaml to run the Dirac test with all these elements combined.

If you want to learn more about the static B training in FV3-JEDI, you can watch this video where I present the full workflow, based on this presentation. I think some of your questions might be answered there. Please let me know if you need any further explanations after watching the video.