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

Update gdas.cd #2978

Open
wants to merge 12 commits into
base: develop
Choose a base branch
from
1 change: 1 addition & 0 deletions ci/cases/pr/C96C48_hybatmaerosnowDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ arguments:
yaml: {{ HOMEgfs }}/ci/cases/yamls/atmaerosnowDA_defaults_ci.yaml

skip_ci_on_hosts:
- wcoss2
- orion
- gaea
- hercules
2 changes: 1 addition & 1 deletion sorc/gdas.cd
Submodule gdas.cd updated 94 files
+1 −1 .github/workflows/hera.yaml
+1 −1 .github/workflows/norms.yaml
+1 −1 .github/workflows/orion.yaml
+1 −1 .github/workflows/unittests.yaml
+1 −1 .github/workflows/unittests_g-w.yaml
+4 −4 .gitmodules
+2 −2 build.sh
+4 −0 mains/gdas.cc
+95 −0 modulefiles/GDAS/gaeac6.intel.lua
+1 −0 modulefiles/GDAS/hera.intel.lua
+15 −14 modulefiles/GDAS/hercules.intel.lua
+1 −0 modulefiles/GDAS/orion.intel.lua
+1 −0 modulefiles/GDAS/wcoss2.intel.lua
+1 −1 parm/io/fv3jedi_fieldmetadata_fv3inc.yaml
+1 −1 parm/io/fv3jedi_fieldmetadata_restart.yaml
+1 −1 parm/jcb-gdas
+1 −1 parm/soca/berror/obsolete/soca_parameters_diffusion_hz.yaml
+1 −1 parm/soca/berror/obsolete/soca_parameters_diffusion_vt.yaml
+2 −2 parm/soca/berror/soca_hybrid_bmat.yaml
+11 −11 parm/soca/berror/soca_parameters_diffusion_hz.yaml.j2
+9 −8 parm/soca/berror/soca_parameters_diffusion_vt.yaml.j2
+0 −42 parm/soca/berror/soca_static_bmat.yaml
+2 −2 parm/soca/berror/soca_vtscales.yaml.j2
+1 −0 parm/soca/marine-jcb-base.yaml
+45 −0 parm/soca/obs/config/icec_amsu_mb_l2.yaml
+45 −0 parm/soca/obs/config/icec_atms_n20_l2.yaml
+45 −0 parm/soca/obs/config/icec_atms_n21_l2.yaml
+45 −0 parm/soca/obs/config/icec_atms_npp_l2.yaml
+45 −0 parm/soca/obs/config/icec_gmi_gpm_l2.yaml
+45 −0 parm/soca/obs/config/icec_ssmis_f17_l2.yaml
+45 −0 parm/soca/obs/config/icec_viirs_n20_l2_north.yaml
+45 −0 parm/soca/obs/config/icec_viirs_n20_l2_south.yaml
+8 −0 parm/soca/obs/obs_list.yaml
+64 −0 parm/soca/obsprep/obsprep_config.yaml
+1 −1 sorc/da-utils
+1 −1 sorc/fv3-jedi
+1 −1 sorc/ioda
+1 −1 sorc/iodaconv
+1 −1 sorc/oops
+1 −1 sorc/saber
+1 −1 sorc/soca
+1 −1 sorc/ufo
+1 −1 sorc/vader
+2 −0 test/CMakeLists.txt
+7 −5 test/aero/CMakeLists.txt
+40 −40 test/atm/global-workflow/3dvar.ref
+8 −8 test/atm/global-workflow/lgetkf_observer.ref
+20 −20 test/atm/global-workflow/lgetkf_solver.ref
+1 −1 test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml
+1 −1 test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref
+35 −33 test/gw-ci/CMakeLists.txt
+172 −0 test/marine/CMakeLists.txt
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_argo_2021063006.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_bathy_2021063006.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_glider_2021063006.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_tesac_2021063006.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_tropical_2019010700.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_profile_xbtctd_2021063006.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_surface_drifter_2019010700.yaml.in
+13 −0 test/marine/testinput/bufr2ioda_insitu_surface_trkob_2021063006.yaml.in
+23 −0 test/marine/testref/bufr2ioda_insitu_profile_argo_2021063006.ref
+20 −0 test/marine/testref/bufr2ioda_insitu_profile_bathy_2021063006.ref
+23 −0 test/marine/testref/bufr2ioda_insitu_profile_glider_2021063006.ref
+23 −0 test/marine/testref/bufr2ioda_insitu_profile_tesac_2021063006.ref
+25 −0 test/marine/testref/bufr2ioda_insitu_profile_tropical_2019010700.ref
+23 −0 test/marine/testref/bufr2ioda_insitu_profile_xbtctd_2021063006.ref
+20 −0 test/marine/testref/bufr2ioda_insitu_surface_drifter_2019010700.ref
+19 −0 test/marine/testref/bufr2ioda_insitu_surface_trkob_2021063006.ref
+1 −1 test/snow/letkfoi_snow.yaml
+3 −0 ush/detect_machine.sh
+33 −0 ush/ioda/bufr2ioda/marine/b2i/argo_ioda_variables.py
+0 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/__init__.py
+71 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/bufr2ioda_config.py
+119 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/bufr2ioda_converter.py
+99 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/ioda_addl_vars.py
+96 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/ioda_metadata.py
+128 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/ioda_variables.py
+131 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/ocean.py
+176 −0 ush/ioda/bufr2ioda/marine/b2i/b2iconverter/util.py
+59 −0 ush/ioda/bufr2ioda/marine/b2i/bathy_ioda_variables.py
+39 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_argo.py
+32 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_bathy.py
+33 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_glider.py
+34 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_tesac.py
+40 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_tropical.py
+33 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_profile_xbtctd.py
+38 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_surface_drifter.py
+38 −0 ush/ioda/bufr2ioda/marine/b2i/bufr2ioda_insitu_surface_trkob.py
+132 −0 ush/ioda/bufr2ioda/marine/b2i/drifter_ioda_variables.py
+41 −0 ush/ioda/bufr2ioda/marine/b2i/glider_ioda_variables.py
+27 −0 ush/ioda/bufr2ioda/marine/b2i/tesac_ioda_variables.py
+86 −0 ush/ioda/bufr2ioda/marine/b2i/trkob_ioda_variables.py
+80 −0 ush/ioda/bufr2ioda/marine/b2i/tropical_ioda_variables.py
+25 −0 ush/ioda/bufr2ioda/marine/b2i/xbtctd_ioda_variables.py
1 change: 1 addition & 0 deletions ush/python/pygfs/task/marine_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ def _prep_variational_yaml(self: Task) -> None:
envconfig_jcb['cyc'] = os.getenv('cyc')
envconfig_jcb['SOCA_NINNER'] = self.task_config.SOCA_NINNER
envconfig_jcb['obs_list'] = ['adt_rads_all']
envconfig_jcb['MOM6_LEVS'] = mdau.get_mom6_levels(str(self.task_config.OCNRES))

# Write obs_list_short
save_as_yaml(parse_obs_list_file(self.task_config.MARINE_OBS_LIST_YAML), 'obs_list_short.yaml')
Expand Down
33 changes: 33 additions & 0 deletions ush/python/pygfs/utils/marine_da_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,36 @@ def clean_empty_obsspaces(config, target, app='var'):

# save cleaned yaml
save_as_yaml(config, target)


@logit(logger)
def get_mom6_levels(ocnres: str) -> int:
"""
Temporary function that returns the number of vertical levels in MOM6 given the horizontal resolution.
This is requiered by the diffusion saber block that now makes use of oops::util::FieldSetHelpers::writeFieldSet
and requires the number of levels in the configuration. I have been told this will be changed in the future.
guillaumevernieres marked this conversation as resolved.
Show resolved Hide resolved

Parameters
-----------
ocnres: str
Input resolution for ocean in str format. e.g. '500', '100', '050', '025'

Returns
-------
nlev: int
number of levels in the ocean model given an input resolution
"""

# Currently implemented resolutions
ocnres_to_nlev = {
'500': 25,
'100': 75,
'050': 75,
'025': 75
}
try:
nlev = ocnres_to_nlev.get(ocnres)
except KeyError:
raise KeyError("FATAL ERROR: Invalid ocnres value. Aborting.")

return nlev
Loading