Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JCB-based obs+bias staging, Jedi class updates, and marine B-matrix refactoring #2992

Merged

Conversation

DavidNew-NOAA
Copy link
Contributor

@DavidNew-NOAA DavidNew-NOAA commented Oct 8, 2024

Description

This PR is a companion to GDASApp PR #1312 (merged) and JCB-GDAS PR #31 (merged).

This PR does three things:

  1. It changes the observation and bias staging for the atmospheric analysis tasks to use JCB templates instead of reading the full JEDI input configuration dictionary in order to construct a list of files to stage. This is cleaner and places fewer constraints on how to initialize the analysis.
  2. The Jedi constructor now takes as input a dictionary that is essentially subset of the task_config dictionary. This makes the code clearer and less opaque and makes debugging easier. Each dictionary is constructed from a YAML file with configuration parameters for each JEDI application that is run.
  3. All JEDI applications and their input YAMLs are now initialized in the initialize job of the AtmAnalysis and AtmEnsAnalysis. Before, in the atmensanl* jobs for example, the LETKF solver was initialized in the atmensanlinitcjob, but the LETKF solver and FV3 increment converter were both initialized and executed in the atmensanlobs and atmensanlfv3inc jobs respectively. This makes more sense in terms of resource allocation.

Addendum:

I'm now rolling in the refactoring of the marine B-matrix task into this PR. That makes it also a companion of GDASApp PR #1346 and JCB-GDAS PR #36.

These new changes introduce the Jedi class and JCB into the marine B-matrix job.

Partially resolves GDASApp issue #1296

Type of change

  • Bug fix (fixes something broken)
  • New feature (adds functionality)
  • Maintenance (code refactor, clean-up, new CI test, etc.)

Change characteristics

  • Is this a breaking change (a change in existing functionality)? YES
  • Does this change require a documentation update? NO
  • Does this change require an update to any of the following submodules? NO
    • EMC verif-global
    • GDAS #1346
    • GFS-utils
    • GSI
    • GSI-monitor
    • GSI-utils
    • UFS-utils
    • UFS-weather-model
    • wxflow

How has this been tested?

C96C48_ufs_hybatmDA CI runs successfully
GDASApp jjob tests pass successfully

Checklist

  • Any dependent changes have been merged and published
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have documented my code, including function, input, and output descriptions
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • This change is covered by an existing CI test or a new one has been added
  • I have made corresponding changes to the system documentation if necessary

RussTreadon-NOAA and others added 30 commits August 28, 2024 17:01
@emcbot emcbot added the CI-Hera-Passed **Bot use only** CI testing on Hera for this PR has completed successfully label Nov 16, 2024
@emcbot
Copy link

emcbot commented Nov 16, 2024

CI Passed on Hera in Build# 2
Built and ran in directory /scratch1/NCEPDEV/global/CI/2992


Experiment C96_S2SWA_gefs_replay_ics_32534bb9 Completed 1 Cycles: *SUCCESS* at Sat Nov 16 00:52:38 UTC 2024
Experiment C48_ATM_32534bb9 Completed 2 Cycles: *SUCCESS* at Sat Nov 16 02:05:34 UTC 2024
Experiment C48mx500_3DVarAOWCDA_32534bb9 Completed 2 Cycles: *SUCCESS* at Sat Nov 16 02:11:39 UTC 2024
Experiment C48_S2SW_32534bb9 Completed 2 Cycles: *SUCCESS* at Sat Nov 16 03:06:44 UTC 2024
Experiment C48_S2SWA_gefs_32534bb9 Completed 1 Cycles: *SUCCESS* at Sat Nov 16 03:13:49 UTC 2024
Experiment C96C48_hybatmaerosnowDA_32534bb9 Completed 3 Cycles: *SUCCESS* at Sat Nov 16 06:21:06 UTC 2024
Experiment C96_atm3DVar_32534bb9 Completed 3 Cycles: *SUCCESS* at Sat Nov 16 06:27:06 UTC 2024
Experiment C96C48_hybatmDA_32534bb9 Completed 3 Cycles: *SUCCESS* at Sat Nov 16 06:27:08 UTC 2024
Experiment C96C48_ufs_hybatmDA_32534bb9 Completed 3 Cycles: *SUCCESS* at Sat Nov 16 06:51:28 UTC 2024

@RussTreadon-NOAA
Copy link
Contributor

Hercules C96C48_hybatmDA failure

Examine log files

/work2/noaa/global/CI/HERCULES/2992/RUNTESTS/COMROOT/C96C48_hybatmDA_32534bb9/logs/2021122106/enkfgdas_fcst_mem001.log
/work2/noaa/global/CI/HERCULES/2992/RUNTESTS/COMROOT/C96C48_hybatmDA_32534bb9/logs/2021122106/enkfgdas_fcst_mem002.log

Both forecast jobs died near the start of the model integration with nan messages

0: PASS: fcstRUN phase 1, n_atmsteps =                9 time is        12.491381
 0:  in atmos_model update, fhzero=   6.00000000000000      fhour=   3.333333
 0:   0.0000000E+00
 0: PASS: fcstRUN phase 2, n_atmsteps =                9 time is         3.004835
 4:
 4: FATAL from PE     4: NaN in input field of mpp_reproducing_sum(_2d), this indicates numerical instability
 4:
 4: Image              PC                Routine            Line        Source
 4: ufs_model.x        00000000056109A9  mpp_mod_mp_mpp_er          72  mpp_util_mpi.inc
 4: ufs_model.x        00000000058DBC7E  mpp_efp_mod_mp_mp         195  mpp_efp.F90
 4: ufs_model.x        0000000005824A7C  mpp_domains_mod_m         143  mpp_global_sum.fh
 4: ufs_model.x        0000000002F8D680  fv_grid_utils_mod        3077  fv_grid_utils.F90
 4: ufs_model.x        0000000002FC6949  fv_mapz_mod_mp_la         794  fv_mapz.F90
 4: libiomp5.so        0000150A777F6F13  __kmp_invoke_micr     Unknown  Unknown
 4: libiomp5.so        0000150A77766664  __kmp_fork_call       Unknown  Unknown
 4: libiomp5.so        0000150A7771FD23  __kmpc_fork_call      Unknown  Unknown
 4: ufs_model.x        0000000002FC1E3B  fv_mapz_mod_mp_la         683  fv_mapz.F90
 4: ufs_model.x        0000000002F69276  fv_dynamics_mod_m         771  fv_dynamics.F90
 4: ufs_model.x        0000000002EB982B  atmosphere_mod_mp         688  atmosphere.F90
 4: ufs_model.x        0000000002DA8B58  atmos_model_mod_m         879  atmos_model.F90
 4: ufs_model.x        0000000002C1F7E7  module_fcst_grid_        1335  module_fcst_grid_comp.F90
 4: ufs_model.x        0000000000ADA2E4  Unknown               Unknown  Unknown
 4: ufs_model.x        0000000000ADE25F  Unknown               Unknown  Unknown
 4: ufs_model.x        000000000114E75A  Unknown               Unknown  Unknown
 4: ufs_model.x        00000000012E3358  Unknown               Unknown  Unknown
 4: ufs_model.x        0000000000ADB73A  Unknown               Unknown  Unknown
 4: ufs_model.x        00000000009ED880  Unknown               Unknown  Unknown
 4: ufs_model.x        0000000000DC5641  Unknown               Unknown  Unknown
 4: ufs_model.x        0000000002C0D8D1  fv3atm_cap_mod_mp        1085  fv3_cap.F90
 4: ufs_model.x        0000000002C0D33B  fv3atm_cap_mod_mp        1034  fv3_cap.F90

This is an odd failure. C96C48_hybatmDA is GSI-based atmospheric DA. This PR does not alter either the forecast model or GSI-based DA.

Install DavidNew-NOAA:feature/jcb-obsbias at 32534bb on Hercules in /work/noaa/da/rtreadon/git/global-workflow/pr2992_final. Set up and run C96C48_hybatmDA CI. C96C48_hybatmDA successfully ran all jobs.

(gdasapp) hercules-login-2:/work/noaa/stmp/rtreadon/EXPDIR/prgsi_pr2992_final$ rocotostat -d prgsi_pr2992_final.db -w prgsi_pr2992_final.xml -c all -s
   CYCLE         STATE           ACTIVATED              DEACTIVATED
202112201800        Done    Nov 16 2024 11:58:06    Nov 16 2024 13:00:04
202112210000        Done    Nov 16 2024 11:58:06    Nov 16 2024 19:04:02
202112210600        Done    Nov 16 2024 11:58:06    Nov 16 2024 18:44:03

Examine output from /work2/noaa/global/CI/HERCULES/2992/RUNTESTS/COMROOT/C96C48_hybatmDA_32534bb9/. The enkf.x analysis increments for 20211221 06Z are nonphysical

 0:  time level            1
 0:  --------------
 0: ens. mean anal. increment min/max  u   -12204.3056641        7737.84765625
 0: ens. mean anal. increment min/max  v   -11370.2402344        8705.36914062
 0: ens. mean anal. increment min/max  tv   -2873.78125000        4715.19384766
 0: ens. mean anal. increment min/max  q  -0.978207349777       0.497514724731
 0: ens. mean anal. increment min/max  oz  -0.121405441314E-02   0.924816820771E-03
 0: ens. mean anal. increment min/max  ps   -1131.41528320        623.390930176
 0:  time level            2
 0:  --------------
 0: ens. mean anal. increment min/max  u   -10770.1357422        8994.37695312
 0: ens. mean anal. increment min/max  v   -9961.04296875        12255.5898438
 0: ens. mean anal. increment min/max  tv   -2885.21777344        6381.37304688
 0: ens. mean anal. increment min/max  q   -1.11263489723       0.543511331081
 0: ens. mean anal. increment min/max  oz  -0.126553326845E-02   0.859888270497E-03
 0: ens. mean anal. increment min/max  ps   -947.946472168        614.040649414
 0:  time level            3
 0:  --------------
 0: ens. mean anal. increment min/max  u   -9989.00585938        8761.36914062
 0: ens. mean anal. increment min/max  v   -7961.80371094        11510.4707031
 0: ens. mean anal. increment min/max  tv   -3515.27587891        5955.34912109
 0: ens. mean anal. increment min/max  q   -1.03635215759       0.862098753452
 0: ens. mean anal. increment min/max  oz  -0.934842391871E-03   0.881655723788E-03
 0: ens. mean anal. increment min/max  ps   -765.077331543        606.946655273

Compare this with the successful rerun

0:  time level            1
 0:  --------------
 0: ens. mean anal. increment min/max  u   -53.3018913269        49.1635665894
 0: ens. mean anal. increment min/max  v   -52.7409667969        49.9739608765
 0: ens. mean anal. increment min/max  tv   -16.9043731689        9.42595672607
 0: ens. mean anal. increment min/max  q  -0.238635810092E-02   0.335678178817E-02
 0: ens. mean anal. increment min/max  oz  -0.139211806527E-05   0.174592651092E-05
 0: ens. mean anal. increment min/max  ps   -2.33502197266        4.34594726562
 0:  time level            2
 0:  --------------
 0: ens. mean anal. increment min/max  u   -34.5535125732        29.5668640137
 0: ens. mean anal. increment min/max  v   -38.0788955688        39.3475875854
 0: ens. mean anal. increment min/max  tv   -14.1956558228        13.5581207275
 0: ens. mean anal. increment min/max  q  -0.306937331334E-02   0.292858737521E-02
 0: ens. mean anal. increment min/max  oz  -0.134557058118E-05   0.189299998965E-05
 0: ens. mean anal. increment min/max  ps   -2.89700317383        5.60110473633
 0:  time level            3
 0:  --------------
 0: ens. mean anal. increment min/max  u   -33.2891349792        65.5625305176
 0: ens. mean anal. increment min/max  v   -40.9432754517        40.9033317566
 0: ens. mean anal. increment min/max  tv   -18.5473480225        11.8623199463
 0: ens. mean anal. increment min/max  q  -0.335096800700E-02   0.276062171906E-02
 0: ens. mean anal. increment min/max  oz  -0.137578490467E-05   0.206520826396E-05
 0: ens. mean anal. increment min/max  ps   -3.58447265625        7.21514892578

Comparison of the enkfstat files from the two runs show no differences apart from timing statistics, different order of printout, and ensemble mean analysis increments.

I have not seen this error in my many runs of C96C48_hybatmDA on Hercules. A rerun of C96C48_hybatmDA via automated CI is likely to succeed. This, however, sidesteps the above failure. Why / how nonphysical increments were generated in this case remains unresolved.

@RussTreadon-NOAA
Copy link
Contributor

@WalterKolczynski-NOAA - What's the path forward from here? We would like to get this PR merged into develop sooner rather than later.

  • I do not see a way to only run C96C48_hybatmDA via git CI labels. It's a waste of time and resources to rerun all configurations on Hercules. Do we accept the explanation above, manually rerun C96C48_hybatmDA, or modify g-w CI to only run a single configuration?

  • WCOSS2 dev (Dogwood) goes down tomorrow (12/19). Do we launch g-w CI on Dogwood today? My understanding is that WCOSS2 g-w CI is manual, not automatic. Is this correct?

  • Do we need to run CI on Orion?

@RussTreadon-NOAA
Copy link
Contributor

@aerorahul, @WalterKolczynski-NOAA , and @KateFriedman-NOAA

I manually launched g-w DA CI on WCOSS2 (Dogwood). We know C96C48_hybatmaerosnowDA and C48mx500_3DVarAOWCDA will fail. GDASApp must be built with spack-stack on WCOSS2 in order for select jobs in these configurations to successfully run to complete. GSI and JEDI based atmospheric DA, C96C48_hybatmDA and C96C48_ufs_hybatmDA, should pass.

The following g-w CI configuration do NOT contain a wcoss2 skip

  • C48_ATM.yaml
  • C48_S2SW.yaml
  • C96_atm3DVar_extended.yaml

Do these three configurations also need to be run on Dogwood?

@WalterKolczynski-NOAA
Copy link
Contributor

@WalterKolczynski-NOAA - What's the path forward from here? We would like to get this PR merged into develop sooner rather than later.

  • I do not see a way to only run C96C48_hybatmDA via git CI labels. It's a waste of time and resources to rerun all configurations on Hercules. Do we accept the explanation above, manually rerun C96C48_hybatmDA, or modify g-w CI to only run a single configuration?
  • WCOSS2 dev (Dogwood) goes down tomorrow (12/19). Do we launch g-w CI on Dogwood today? My understanding is that WCOSS2 g-w CI is manual, not automatic. Is this correct?
  • Do we need to run CI on Orion?

Unfortunately, the CI does not (yet) have the capability to select individual tests. We have to rerun them all on a platform.

Orion is not needed. Orion's support level has been downgraded and most of the things that would cause a failure on Orion will also cause a failure on Hercules anyway.

@aerorahul, @WalterKolczynski-NOAA , and @KateFriedman-NOAA

I manually launched g-w DA CI on WCOSS2 (Dogwood). We know C96C48_hybatmaerosnowDA and C48mx500_3DVarAOWCDA will fail. GDASApp must be built with spack-stack on WCOSS2 in order for select jobs in these configurations to successfully run to complete. GSI and JEDI based atmospheric DA, C96C48_hybatmDA and C96C48_ufs_hybatmDA, should pass.

The following g-w CI configuration do NOT contain a wcoss2 skip

  • C48_ATM.yaml
  • C48_S2SW.yaml
  • C96_atm3DVar_extended.yaml

Do these three configurations also need to be run on Dogwood?

Any tests that aren't being skipped should be run. It looks like the upgrade it postponed, so we should be able to get these in. I will run them overnight so hopefully they are complete by morning.

@WalterKolczynski-NOAA WalterKolczynski-NOAA added CI-Wcoss2-Building **Bot use only** CI testing is cloning/building on WCOSS CI-Hercules-Ready **CM use only** PR is ready for CI testing on Hercules and removed CI-Hercules-Failed **Bot use only** CI testing on Hercules for this PR has failed CI-Wcoss2-Building **Bot use only** CI testing is cloning/building on WCOSS labels Nov 19, 2024
@emcbot emcbot added CI-Hercules-Building **Bot use only** CI testing is cloning/building on Hercules and removed CI-Hercules-Ready **CM use only** PR is ready for CI testing on Hercules labels Nov 19, 2024
@WalterKolczynski-NOAA WalterKolczynski-NOAA added CI-Wcoss2-Building **Bot use only** CI testing is cloning/building on WCOSS CI-Wcoss2-Running **Bot use only** CI testing on WCOSS for this PR is in-progress and removed CI-Wcoss2-Building **Bot use only** CI testing is cloning/building on WCOSS labels Nov 19, 2024
@WalterKolczynski-NOAA
Copy link
Contributor

CI Tests set up to run in /lfs/h2/emc/ptmp/walter.kolczynski/PR/PR_2992/RUNTESTS on WCOSS

@emcbot emcbot added CI-Hercules-Running **Bot use only** CI testing on Hercules for this PR is in-progress CI-Hercules-Passed **Bot use only** CI testing on Hercules for this PR has completed successfully and removed CI-Hercules-Building **Bot use only** CI testing is cloning/building on Hercules CI-Hercules-Running **Bot use only** CI testing on Hercules for this PR is in-progress labels Nov 19, 2024
@emcbot
Copy link

emcbot commented Nov 19, 2024

CI Passed on Hercules in Build# 3
Built and ran in directory /work2/noaa/global/CI/HERCULES/2992


Experiment C48_ATM_32534bb9 Completed 2 Cycles: *SUCCESS* at Tue Nov 19 01:50:40 CST 2024
Experiment C96_S2SWA_gefs_replay_ics_32534bb9 Completed 1 Cycles: *SUCCESS* at Tue Nov 19 02:08:56 CST 2024
Experiment C96_atm3DVar_32534bb9 Completed 3 Cycles: *SUCCESS* at Tue Nov 19 03:21:28 CST 2024
Experiment C96C48_hybatmDA_32534bb9 Completed 3 Cycles: *SUCCESS* at Tue Nov 19 03:21:33 CST 2024
Experiment C48_S2SW_32534bb9 Completed 2 Cycles: *SUCCESS* at Tue Nov 19 03:39:36 CST 2024
Experiment C48_S2SWA_gefs_32534bb9 Completed 1 Cycles: *SUCCESS* at Tue Nov 19 04:04:44 CST 2024

@RussTreadon-NOAA
Copy link
Contributor

WCOSS2 g-w CI
Install DavidNew-NOAA:feature/jcb-obsbias at 32534bb on Dogwood. Run the following g-w CI configurations

  • C96C48_hybatmDA - prgsi_pr2992
  • C96C48_ufs_hybatmDA - prjedi_pr2992
  • C96C48_hybatmaerosnowDA - praero_pr2992
  • C48mx500_3DVarAOWCDA - prwcda_pr2992
  • C48_ATM - pratm_pr2992
  • C48_S2SW - prswsw_pr2992
  • C96_atm3DVar_extended - pratm3dvar_pr2992

with the following results

/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/prgsi_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Nov 18 2024 15:05:08    Nov 18 2024 15:25:14
202112210000        Done    Nov 18 2024 15:05:08    Nov 18 2024 20:55:05
202112210600        Done    Nov 18 2024 15:05:08    Nov 18 2024 20:35:11
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/prjedi_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202402231800        Done    Nov 18 2024 15:05:19    Nov 18 2024 15:25:35
202402240000        Done    Nov 18 2024 15:05:19    Nov 18 2024 21:05:15
202402240600        Done    Nov 18 2024 15:05:19    Nov 18 2024 21:05:15
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/praero_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200      Active    Nov 18 2024 15:05:30             -          
202112201800      Active    Nov 18 2024 15:05:30             -          
202112210000      Active    Nov 18 2024 15:05:30             -          
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/prwcda_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103241200        Done    Nov 18 2024 15:05:36    Nov 18 2024 15:25:48
202103241800      Active    Nov 18 2024 15:05:36             -          
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/pratm_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Nov 18 2024 16:35:30    Nov 18 2024 20:50:15
202103231800        Done    Nov 18 2024 16:35:30    Nov 18 2024 21:00:16
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/pratm3dvar_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Nov 18 2024 16:35:33    Nov 18 2024 17:20:21
202112210000        Done    Nov 18 2024 16:35:33    Nov 19 2024 00:00:22
202112210600        Done    Nov 18 2024 16:35:33    Nov 19 2024 01:40:22
202112211200        Done    Nov 18 2024 17:25:29    Nov 19 2024 04:05:16
202112211800        Done    Nov 19 2024 00:05:15    Nov 19 2024 07:35:15
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/prs2sw_pr2992
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Nov 18 2024 16:35:35    Nov 18 2024 20:50:26
202103231800        Done    Nov 18 2024 16:35:35    Nov 18 2024 21:00:29

All jobs in all configurations except C96C48_hybatmaerosnowDA and C48mx500_3DVarAOWCDA successfully ran to completion.

Note that C96C48_hybatmaerosnowDA and C48mx500_3DVarAOWCDA are set to be skipped on WCOSS2. If GDASApp is rebuilt and run with spack-stack/1.6.0 these two configurations successfully run all jobs to completion.

The following configurations in ci/cases/pr list wcoss2 under the skip_ci_on_hosts: section

./C96C48_hybatmaerosnowDA.yaml:  - wcoss2
./C96C48_ufs_hybatmDA.yaml:  - wcoss2
./C96_S2SWA_gefs_replay_ics.yaml:  - wcoss2
./C48mx500_3DVarAOWCDA.yaml:  - wcoss2
./C48mx500_hybAOWCDA.yaml:  - wcoss2
./C96_atm3DVar.yaml:  - wcoss2
./C48_S2SWA_gefs.yaml:  - wcoss2

These ci configurations, apart from the three configurations which include JEDI based DA, were not run on Dogwood.

Based on the above g-w CI results we can change the CI-Wcoss2-Running label to CI-Wcoss2-Passed.

@RussTreadon-NOAA RussTreadon-NOAA added CI-Wcoss2-Passed **Bot use only** CI testing on WCOSS for this PR has completed successfully and removed CI-Wcoss2-Running **Bot use only** CI testing on WCOSS for this PR is in-progress labels Nov 19, 2024
@RussTreadon-NOAA
Copy link
Contributor

Acceptable (explainable) g-w CI results have been obtained on Hera, Hercules, and WCOSS2 (Dogwood).

@WalterKolczynski-NOAA , @aerorahul , @KateFriedman-NOAA : Are any more tests required before this PR can be merged into develop?

@WalterKolczynski-NOAA WalterKolczynski-NOAA merged commit 7ff942e into NOAA-EMC:develop Nov 19, 2024
10 of 11 checks passed
@RussTreadon-NOAA
Copy link
Contributor

Thank you @WalterKolczynski-NOAA

@DavidNew-NOAA DavidNew-NOAA deleted the feature/jcb-obsbias branch November 19, 2024 13:51
WalterKolczynski-NOAA pushed a commit to WalterKolczynski-NOAA/global-workflow that referenced this pull request Nov 22, 2024
…efactoring (NOAA-EMC#2992)

This PR is a companion to GDASApp PR
NOAA-EMC/GDASApp#1312 (merged) and NOAA-EMC/jcb-gdas#31
(merged).

This PR does three things:

1. It changes the observation and bias staging for the atmospheric
analysis tasks to use JCB templates instead of reading the full JEDI
input configuration dictionary in order to construct a list of files to
stage. This is cleaner and places fewer constraints on how to initialize
the analysis.
2. The ```Jedi``` constructor now takes as input a dictionary that is
essentially subset of the ```task_config``` dictionary. This makes the
code clearer and less opaque and makes debugging easier. Each dictionary
is constructed from a YAML file with configuration parameters for each
JEDI application that is run.
3. All JEDI applications and their input YAMLs are now initialized in
the initialize job of the ```AtmAnalysis``` and ```AtmEnsAnalysis```.
Before, in the ```atmensanl*``` jobs for example, the LETKF solver was
initialized in the ```atmensanlinit```cjob, but the LETKF solver and FV3
increment converter were both initialized and executed in the
```atmensanlobs``` and ```atmensanlfv3inc``` jobs respectively. This
makes more sense in terms of resource allocation.

Addendum:

I'm now rolling in the refactoring of the marine B-matrix task into this
PR. That makes it also a companion of NOAA-EMC/GDASApp#1346 and
NOAA-EMC/jcb-gdas#36.

These new changes introduce the ```Jedi``` class and JCB into the marine
B-matrix job.

Partially resolvesNOAA-EMC/GDASApp#1296

---------

Co-authored-by: RussTreadon-NOAA <[email protected]>
Co-authored-by: Rahul Mahajan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI-Hera-Passed **Bot use only** CI testing on Hera for this PR has completed successfully CI-Hercules-Passed **Bot use only** CI testing on Hercules for this PR has completed successfully CI-Wcoss2-Passed **Bot use only** CI testing on WCOSS for this PR has completed successfully
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants