From 58ecf8aba7f34ee786f07d1a9be50ba22e56655f Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 2 Jun 2026 12:14:06 -0400 Subject: [PATCH 01/13] Initial commit --- parm/atm/jcb-base.yaml.j2 | 40 ++++++++ .../atmosphere/atmosphere_background.yaml.j2 | 57 +---------- .../atmosphere_background_ensemble.yaml.j2 | 58 +---------- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 95 ++----------------- ...ere_background_error_static_gsibec.yaml.j2 | 24 +---- ...phere_final_increment_cubed_sphere.yaml.j2 | 26 +---- ...ere_final_increment_fms_nonrestart.yaml.j2 | 3 +- ...tmosphere_final_increment_gaussian.yaml.j2 | 10 +- .../atmosphere_model_pseudo.yaml.j2 | 23 +---- ...t_ensemble_increments_cubed_sphere.yaml.j2 | 13 +-- ...utput_ensemble_increments_gaussian.yaml.j2 | 10 +- ...here_posterior_output_cubed_sphere.yaml.j2 | 2 - ...mosphere_posterior_output_gaussian.yaml.j2 | 10 +- 13 files changed, 64 insertions(+), 307 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index d09aa9b85..26a3d11e5 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -78,6 +78,46 @@ atmosphere_variational_increment_type: {{ ATMINC_GRID | default('cubed_grid_sphe atmosphere_iau_hours: {{ IAUFHRS }} atmosphere_iau_times_iso: {{ iau_times_iso }} +# UFS variables +atmosphere_background_state_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio,snow_water,rain_water,graupel,cloud_ice_number_concentration,rain_number_concentration,geopotential_height_at_surface,slmsk,sheleg,skin_temperature_at_surface,vtype,stype,vfrac,soilt,soilm,totalSnowDepthMeters,eastward_wind_at_surface,northward_wind_at_surface,f10m,air_pressure_thickness] +atmosphere_fv3_increment_fields: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio] +atmosphere_ufs_fields_split_by_level: [soilMoistureVolumetric,stc] + +# GSIBEC variables +atmosphere_gsibec_hybrid_control2analysis_input_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,mole_fraction_of_ozone_in_air,snow_water,rain_water,graupel] +atmosphere_gsibec_static_control2analysis_input_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,mole_fraction_of_ozone_in_air] +atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio] + +# UFS variable names +atmosphere_ufs_field_io_names: + eastward_wind: ugrd + northward_wind: vgrd + air_temperature: tmp + layer_thickness: delz + air_pressure_thickness: dpres + air_pressure_at_surface: pressfc + water_vapor_mixing_ratio_wrt_moist_air: spfh + cloud_liquid_ice: icmr + cloud_liquid_water: clwmr + snow_water: snmr + rain_water: rwmr + graupel: grle + cloud_ice_number_concentration: nccice + rain_number_concentration: nconrd + ozone_mass_mixing_ratio: o3mr + geopotential_height_at_surface: hgtsfc + slmsk: land + sheleg: weasd + skin_temperature_at_surface: tmpsfc + stype: sotyp + vfrac: veg + totalSnowDepthMeters: snod + eastward_wind_at_surface: ugrd_hyblev1 + northward_wind_at_surface: vgrd_hyblev1 + soilm: soilw1 + soilt: soilt1 + soilMoistureVolumetric: smc + # Observation things # ------------------ observations: all_observations diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 index f5a10238a..14e1cf48c 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 @@ -6,58 +6,5 @@ filenames: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 -state variables: -- eastward_wind -- northward_wind -- air_temperature -- air_pressure_thickness -- air_pressure_at_surface -- water_vapor_mixing_ratio_wrt_moist_air -- cloud_liquid_ice -- cloud_liquid_water -- snow_water -- rain_water -- graupel -- cloud_ice_number_concentration -- rain_number_concentration -- ozone_mass_mixing_ratio -- geopotential_height_at_surface -- slmsk -- sheleg -- skin_temperature_at_surface -- vtype -- stype -- vfrac -- soilt -- soilm -- totalSnowDepthMeters -- eastward_wind_at_surface -- northward_wind_at_surface -- f10m -field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - layer_thickness: delz - air_pressure_thickness: dpres - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - cloud_ice_number_concentration: nccice - rain_number_concentration: nconrd - ozone_mass_mixing_ratio: o3mr - geopotential_height_at_surface: hgtsfc - slmsk: land - sheleg: weasd - skin_temperature_at_surface: tmpsfc - stype: sotyp - vfrac: veg - totalSnowDepthMeters: snod - eastward_wind_at_surface: ugrd_hyblev1 - northward_wind_at_surface: vgrd_hyblev1 - soilm: soilw1 - soilt: soilt1 +state variables: {{ atmosphere_background_state_variables }} +field io names: {{ atmosphere_ufs_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index a9e96487c..7d1948b83 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -4,62 +4,8 @@ members from template: datetime: '{{ atmosphere_background_time_iso }}' filetype: cube sphere history provider: ufs - state variables: - - eastward_wind - - northward_wind - - air_temperature - - layer_thickness - - air_pressure_thickness - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - cloud_ice_number_concentration - - rain_number_concentration - - ozone_mass_mixing_ratio - - geopotential_height_at_surface - - slmsk - - sheleg - - skin_temperature_at_surface - - vtype - - stype - - vfrac - - soilt - - soilm - - totalSnowDepthMeters - - eastward_wind_at_surface - - northward_wind_at_surface - - f10m - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - layer_thickness: delz - air_pressure_thickness: dpres - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - cloud_ice_number_concentration: nccice - rain_number_concentration: nconrd - ozone_mass_mixing_ratio: o3mr - geopotential_height_at_surface: hgtsfc - slmsk: land - sheleg: weasd - skin_temperature_at_surface: tmpsfc - stype: sotyp - vfrac: veg - totalSnowDepthMeters: snod - eastward_wind_at_surface: ugrd_hyblev1 - northward_wind_at_surface: vgrd_hyblev1 - soilm: soilw1 - soilt: soilt1 + state variables: {{ atmosphere_background_state_variables }} + field io names: {{ atmosphere_ufs_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 2218d2ad5..70fa12ea5 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -28,35 +28,11 @@ components: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface, - water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, - snow_water,rain_water,graupel,ozone_mass_mixing_ratio] + state variables to inverse: {{ analysis_variables }} linear variable change: linear variable change name: Control2Analysis - input variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - mole_fraction_of_ozone_in_air - output variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio + input variables: {{ atmosphere_control2analysis_input_variables_with_mole_fraction_ozone }} + output variables: {{ analysis_variables }} weight: value: 0.125 - covariance: @@ -66,30 +42,8 @@ components: datetime: "{{ atmosphere_background_time_iso }}" filetype: cube sphere history provider: ufs - state variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr + state variables: {{ analysis_variables }} + field io names: {{ atmosphere_ufs_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: @@ -103,18 +57,7 @@ components: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio + active variables: {{ analysis_variables }} read: general: universe length-scale: 4641.0e3 @@ -263,29 +206,7 @@ components: value: 1.8 linear variable change: linear variable change name: Control2Analysis - input variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - output variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio + input variables: {{ analysis_variables }} + output variables: {{ analysis_variables }} weight: value: 0.875 diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 index 10b5a5007..41ac90f9c 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 @@ -26,26 +26,8 @@ saber outer blocks: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface, - water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, - ozone_mass_mixing_ratio] + state variables to inverse: {{ atmosphere_gsibec_static_state_variables_to_inverse }} linear variable change: linear variable change name: Control2Analysis - input variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - mole_fraction_of_ozone_in_air - output variables: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - ozone_mass_mixing_ratio + input variables: {{ atmosphere_gsibec_static_control2analysis_input_variables }} + output variables: {{ atmosphere_gsibec_static_state_variables_to_inverse }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index a80494337..1502d21a0 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -3,30 +3,8 @@ output: filetype: cube sphere history filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs - fields to write: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr + fields to write: {{ analysis_variables }} + field io names: {{ atmosphere_ufs_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index efac27abe..7adc83018 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -3,7 +3,8 @@ output: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc - fields to write: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] + fields to write: {{ atmosphere_fv3_increment_fields }} + field io names: {{ atmosphere_ufs_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 index 414aa0bd6..75adb7acd 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 @@ -3,15 +3,7 @@ output: filetype: auxgrid gridtype: gaussian filename: {{atmosphere_final_increment_prefix}} - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - ozone_mass_mixing_ratio: o3mr + field io names: {{ atmosphere_ufs_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 index 74af652ba..6c8b1accb 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 @@ -8,25 +8,4 @@ filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' filename_sfcw: '%yyyy%mm%dd.%hh%MM%ss.fv_srf_wnd.res.nc' filename_cplr: '%yyyy%mm%dd.%hh%MM%ss.coupler.res' tstep: {{atmosphere_forecast_timestep}} -field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - layer_thickness: delz - air_pressure_thickness: dpres - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - ozone_mass_mixing_ratio: o3mr - geopotential_height_at_surface: hgtsfc - slmsk: land - sheleg: weasd - skin_temperature_at_surface: tmpsfc - stype: sotyp - vfrac: veg - totalSnowDepthMeters: snod - eastward_wind_at_surface: ugrd_hyblev1 - northward_wind_at_surface: vgrd_hyblev1 - soilm: soilw1 - soilt: soilt1 +field io names: {{ atmosphere_ufs_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index 7f159e380..e65cfcb47 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,15 +1,4 @@ filetype: cube sphere history provider: ufs filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc -field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr +field io names: {{ atmosphere_ufs_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 index 6d3d3b2af..54e85aefc 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 @@ -1,12 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_ensemble_increment_prefix}} -field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - ozone_mass_mixing_ratio: o3mr +field io names: {{ atmosphere_ufs_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 index aa72fc7e3..9eedeb17b 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -1,5 +1,3 @@ filetype: cube sphere history provider: ufs -ufs soil nlev: 4 -ufs fields split by level: [smc,stc] filename: ./anl/{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmanl.ensmean.nc diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 index a14180d5f..3754c4e8f 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 @@ -1,12 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_posterior_output_gaussian}} -field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - ozone_mass_mixing_ratio: o3mr +field io names: {{ atmosphere_ufs_field_io_names }} From 2d6c0c6e47fbb19307a2efe2b256a03b6668716b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 3 Jun 2026 13:09:02 -0400 Subject: [PATCH 02/13] Save progress --- parm/aero/jcb-base.yaml.j2 | 72 +++++++++++-- parm/atm/jcb-base.yaml.j2 | 102 +++++++++++++++--- .../aero/aero_convert_background.yaml.j2 | 51 +-------- .../aero/aero_gen_bmatrix_diagb.yaml.j2 | 71 +----------- .../aero/aero_gen_bmatrix_diffusion.yaml.j2 | 34 +----- .../atmosphere/atm_addincrement.yaml.j2 | 68 +----------- .../fv3jedi_correction_increment.yaml.j2 | 42 +------- .../fv3jedi_ensemble_recenter.yaml.j2 | 70 +----------- .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 61 ++--------- .../fv3jedi_fv3inc_variational.yaml.j2 | 61 ++--------- .../model/aero/aero_background.yaml.j2 | 38 +------ ..._background_error_static_diffusion.yaml.j2 | 32 +----- .../aero_final_increment_cubed_sphere.yaml.j2 | 38 +------ .../model/aero/aero_model_pseudo.yaml.j2 | 38 +------ .../atmosphere/atmosphere_background.yaml.j2 | 2 +- .../atmosphere_background_ensemble.yaml.j2 | 2 +- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 4 +- ...phere_final_increment_cubed_sphere.yaml.j2 | 2 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 4 +- ...tmosphere_final_increment_gaussian.yaml.j2 | 2 +- .../atmosphere_model_pseudo.yaml.j2 | 2 +- ...t_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...utput_ensemble_increments_gaussian.yaml.j2 | 2 +- ...mosphere_posterior_output_gaussian.yaml.j2 | 2 +- 24 files changed, 207 insertions(+), 595 deletions(-) diff --git a/parm/aero/jcb-base.yaml.j2 b/parm/aero/jcb-base.yaml.j2 index 3563a8b71..c423e16bf 100644 --- a/parm/aero/jcb-base.yaml.j2 +++ b/parm/aero/jcb-base.yaml.j2 @@ -24,19 +24,71 @@ minimizer: DRPCG final_diagnostics_departures: anlmob final_prints_frequency: PT3H number_of_outer_loops: 1 -analysis_variables: [mass_fraction_of_sulfate_in_air, - mass_fraction_of_hydrophobic_black_carbon_in_air, - mass_fraction_of_hydrophilic_black_carbon_in_air, - mass_fraction_of_hydrophobic_organic_carbon_in_air, - mass_fraction_of_hydrophilic_organic_carbon_in_air, - mass_fraction_of_dust001_in_air, mass_fraction_of_dust002_in_air, - mass_fraction_of_dust003_in_air, mass_fraction_of_dust004_in_air, - mass_fraction_of_dust005_in_air, mass_fraction_of_sea_salt001_in_air, - mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air, - mass_fraction_of_sea_salt004_in_air] +{% set _analysis_vars = ['mass_fraction_of_sulfate_in_air', + 'mass_fraction_of_hydrophobic_black_carbon_in_air', + 'mass_fraction_of_hydrophilic_black_carbon_in_air', + 'mass_fraction_of_hydrophobic_organic_carbon_in_air', + 'mass_fraction_of_hydrophilic_organic_carbon_in_air', + 'mass_fraction_of_dust001_in_air', + 'mass_fraction_of_dust002_in_air', + 'mass_fraction_of_dust003_in_air', + 'mass_fraction_of_dust004_in_air', + 'mass_fraction_of_dust005_in_air', + 'mass_fraction_of_sea_salt001_in_air', + 'mass_fraction_of_sea_salt002_in_air', + 'mass_fraction_of_sea_salt003_in_air', + 'mass_fraction_of_sea_salt004_in_air'] %} +analysis_variables: {{ _analysis_vars }} # Model things # ------------ + +# Variables +aero_det_state_variables: {{ _analysis_vars + ['air_temperature', + 'air_pressure_thickness', + 'water_vapor_mixing_ratio_wrt_moist_air'] }} +aero_bmat_state_variables: {{ _analysis_vars + ['mass_fraction_of_sea_salt005_in_air'] }} + +# Variable IO names +aero_field_io_names: + air_temperature: T + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: sphum + mass_fraction_of_sulfate_in_air: so4 + mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 + mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 + mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 + mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 + mass_fraction_of_dust001_in_air: dust1 + mass_fraction_of_dust002_in_air: dust2 + mass_fraction_of_dust003_in_air: dust3 + mass_fraction_of_dust004_in_air: dust4 + mass_fraction_of_dust005_in_air: dust5 + mass_fraction_of_sea_salt001_in_air: seas1 + mass_fraction_of_sea_salt002_in_air: seas2 + mass_fraction_of_sea_salt003_in_air: seas3 + mass_fraction_of_sea_salt004_in_air: seas4 + mass_fraction_of_sea_salt005_in_air: seas5 + slmsk: slmsk +aero_field_io_names_crtm: + air_temperature: T + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: sphum + mass_fraction_of_sulfate_in_air: so4 + mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 + mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 + mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 + mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 + mass_fraction_of_dust001_in_air: dust1 + mass_fraction_of_dust002_in_air: dust2 + mass_fraction_of_dust003_in_air: dust3 + mass_fraction_of_dust004_in_air: dust4 + mass_fraction_of_dust005_in_air: dust5 + mass_fraction_of_sea_salt001_in_air: seas2 + mass_fraction_of_sea_salt002_in_air: seas3 + mass_fraction_of_sea_salt003_in_air: seas4 + mass_fraction_of_sea_salt004_in_air: seas5 + # Geometry aero_layout_x: {{ layout_x | default(1, true) }} aero_layout_y: {{ layout_y | default(1, true) }} diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 26a3d11e5..f417b4f19 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -31,10 +31,84 @@ atmosphere_ninner_1: {{ NINNER_LOOP1 | default(2, true) }} atmosphere_grad_red_1: 1e-10 atmosphere_ninner_2: {{ NINNER_LOOP2 | default(4, true) }} atmosphere_grad_red_2: 1e-10 -analysis_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,snow_water,rain_water,graupel,ozone_mass_mixing_ratio] +{% set _analysis_vars = ['eastward_wind', + 'northward_wind', + 'air_temperature', + 'water_vapor_mixing_ratio_wrt_moist_air', + 'cloud_liquid_ice', + 'cloud_liquid_water', + 'snow_water', + 'rain_water', + 'graupel', + 'ozone_mass_mixing_ratio', + 'air_pressure_at_surface'] %} +analysis_variables: {{ _analysis_vars }} # Model things # ------------ + +# State variables +atmosphere_background_state_variables: {{ _analysis_vars + ['cloud_ice_number_concentration', + 'rain_number_concentration', + 'geopotential_height_at_surface', + 'slmsk', + 'sheleg', + 'skin_temperature_at_surface', + 'vtype', + 'stype', + 'vfrac', + 'soilt', + 'soilm', + 'totalSnowDepthMeters', + 'eastward_wind_at_surface', + 'northward_wind_at_surface', + 'f10m', + 'air_pressure_thickness'] }} + +# Increment variables +{% set _shared_increment_vars = ['eastward_wind', + 'northward_wind', + 'air_temperature', + 'water_vapor_mixing_ratio_wrt_moist_air', + 'cloud_liquid_ice', + 'cloud_liquid_water', + 'snow_water', + 'rain_water', + 'graupel', + 'ozone_mass_mixing_ratio'] } +atmosphere_increment_variables: {{ _shared_increment_vars + ['air_pressure_at_surface'] }} +atmosphere_increment_variables_fv3: {{ _shared_increment_vars + ['air_pressure_thickness', + 'layer_thickness'] }} + +# GSIBEC-related variables +atmosphere_gsibec_hybrid_control2analysis_input_variables: [eastward_wind, + northward_wind, + air_temperature, + air_pressure_at_surface, + water_vapor_mixing_ratio_wrt_moist_air, + cloud_liquid_ice, + cloud_liquid_water, + snow_water, + rain_water, + graupel, + mole_fraction_of_ozone_in_air] +atmosphere_gsibec_static_control2analysis_input_variables: [eastward_wind, + northward_wind, + air_temperature, + air_pressure_at_surface, + water_vapor_mixing_ratio_wrt_moist_air, + cloud_liquid_ice, + cloud_liquid_water, + mole_fraction_of_ozone_in_air] +atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind, + northward_wind, + air_temperature, + air_pressure_at_surface, + water_vapor_mixing_ratio_wrt_moist_air, + cloud_liquid_ice, + cloud_liquid_water, + ozone_mass_mixing_ratio] + # Geometry atmosphere_layout_x: {{ layout_x | default(1, true) }} atmosphere_layout_y: {{ layout_y | default(1, true) }} @@ -78,18 +152,8 @@ atmosphere_variational_increment_type: {{ ATMINC_GRID | default('cubed_grid_sphe atmosphere_iau_hours: {{ IAUFHRS }} atmosphere_iau_times_iso: {{ iau_times_iso }} -# UFS variables -atmosphere_background_state_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio,snow_water,rain_water,graupel,cloud_ice_number_concentration,rain_number_concentration,geopotential_height_at_surface,slmsk,sheleg,skin_temperature_at_surface,vtype,stype,vfrac,soilt,soilm,totalSnowDepthMeters,eastward_wind_at_surface,northward_wind_at_surface,f10m,air_pressure_thickness] -atmosphere_fv3_increment_fields: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio] -atmosphere_ufs_fields_split_by_level: [soilMoistureVolumetric,stc] - -# GSIBEC variables -atmosphere_gsibec_hybrid_control2analysis_input_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,mole_fraction_of_ozone_in_air,snow_water,rain_water,graupel] -atmosphere_gsibec_static_control2analysis_input_variables: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,mole_fraction_of_ozone_in_air] -atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind,northward_wind,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,ozone_mass_mixing_ratio] - # UFS variable names -atmosphere_ufs_field_io_names: +atmosphere_ufs_background_field_io_names: eastward_wind: ugrd northward_wind: vgrd air_temperature: tmp @@ -117,6 +181,20 @@ atmosphere_ufs_field_io_names: soilm: soilw1 soilt: soilt1 soilMoistureVolumetric: smc +atmosphere_ufs_increment_field_io_names: + eastward_wind: u_inc + northward_wind: v_inc + air_temperature: T_inc + water_vapor_mixing_ratio_wrt_moist_air: sphum_inc + cloud_liquid_water: liq_wat_inc + ozone_mass_mixing_ratio: o3mr_inc + cloud_liquid_ice: icmr_inc + snow_water: snmr_inc + rain_water: rwmr_inc + graupel: grle_inc + air_pressure_thickness: delp_inc + layer_thickness: delz_inc + air_pressure_at_surface: pressfc_inc # Observation things # ------------------ diff --git a/parm/jcb-gdas/algorithm/aero/aero_convert_background.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_convert_background.yaml.j2 index 7b4d38c0e..eba04aee2 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_convert_background.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_convert_background.yaml.j2 @@ -24,38 +24,8 @@ states: - input: datetime: '{{ aero_background_error_time_iso }}' filetype: fms restart - state variables: - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air - - mass_fraction_of_sea_salt005_in_air - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + state variables: {{ aero_bmat_state_variables }} + field io names: {{ aero_field_io_names }} datapath: {{ aero_background_path }} filename_core: '{{ aero_background_error_time_fv3 }}.fv_core.res.nc' filename_trcr: '{{ aero_background_error_time_fv3 }}.fv_tracer.res.nc' @@ -66,19 +36,4 @@ states: filename_core: 'anlres.fv_core.res.nc' filename_trcr: 'anlres.fv_tracer.res.nc' filename_cplr: 'anlres.coupler.res' - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + field io names: {{ aero_field_io_names }} diff --git a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 index 62e88a91a..8eca94d5b 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 @@ -16,8 +16,7 @@ geometry: skip coupler file: true state variables: - slmsk - field io names: - slmsk: slmsk + field io names: {{ aero_field_io_names }} datapath: {{ aero_background_path }}/ filename_orog: {{ aero_orog_prefix }}_oro_data.nc filename_sfcd: {{ aero_background_error_time_fv3 }}.sfc_data.nc @@ -25,38 +24,8 @@ date: '{{ aero_background_error_time_iso }}' background: datetime: '{{ aero_background_error_time_iso }}' filetype: fms restart - state variables: - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air - - mass_fraction_of_sea_salt005_in_air - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + state variables: {{ aero_bmat_state_variables }} + field io names: {{ aero_field_io_names }} datapath: {{ aero_background_path }} filename_core: '{{ aero_background_error_time_fv3 }}.anlres.fv_core.res.nc' filename_trcr: '{{ aero_background_error_time_fv3 }}.anlres.fv_tracer.res.nc' @@ -66,22 +35,7 @@ background error: datapath: {{ aero_standard_deviation_path }} filename_trcr: stddev.fv_tracer.res.nc filename_cplr: stddev.coupler.res - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + field io names: {{ aero_field_io_names }} climate background error: geometry: fms initialization: @@ -100,22 +54,7 @@ climate background error: datapath: {{ aero_climatological_b_path }} filename_trcr: stddev.fv_tracer.res.nc filename_cplr: stddev.coupler.res - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + field io names: {{ aero_field_io_names }} diagb weight: {{ aero_diagb_weight }} staticb rescaling factor: {{ aero_diagb_static_rescale_factor }} diff --git a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diffusion.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diffusion.yaml.j2 index d1eaa28e2..630bf9e29 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diffusion.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diffusion.yaml.j2 @@ -13,38 +13,8 @@ date: '{{ aero_background_error_time_iso }}' background: datetime: '{{ aero_background_error_time_iso }}' filetype: fms restart - state variables: - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air - - mass_fraction_of_sea_salt005_in_air - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas1 - mass_fraction_of_sea_salt002_in_air: seas2 - mass_fraction_of_sea_salt003_in_air: seas3 - mass_fraction_of_sea_salt004_in_air: seas4 - mass_fraction_of_sea_salt005_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + state variables: {{ aero_bmat_state_variables }} + field io names: {{ aero_field_io_names }} datapath: {{ aero_background_path }} filename_core: '{{ aero_background_error_time_fv3 }}.anlres.fv_core.res.nc' filename_trcr: '{{ aero_background_error_time_fv3 }}.anlres.fv_tracer.res.nc' diff --git a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 index b11b3bdfc..10868e3d8 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 @@ -24,62 +24,16 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml state: datetime: '{{ atmosphere_background_time_iso }}' - state variables: - - eastward_wind - - northward_wind - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr - air_pressure_thickness: dpres - layer_thickness: delz + state variables: {{ atmosphere_increment_variables_fv3 }} + field io names: {{ atmosphere_ufs_background_field_io_names }} filetype: cube sphere history provider: ufs filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc datapath: ./ max allowable geometry difference: 1e-4 increment: - added variables: - - eastward_wind - - northward_wind - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + added variables: {{ atmosphere_increment_variables_fv3 }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: fms restart is restart: false filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc @@ -88,16 +42,4 @@ output: filetype: auxgrid gridtype: gaussian filename: atmanl. - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr - air_pressure_thickness: dpres - layer_thickness: delz + field io names: {{ atmosphere_ufs_background_field_io_names }} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 index 170392af0..e125782b5 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 @@ -64,37 +64,13 @@ forecast hours: datapath: ./ filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc max allowable geometry difference: 1e-04 - field io names: - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr - air_pressure_thickness: dpres - layer_thickness: delz + field io names: {{ atmosphere_ufs_background_field_io_names }} variational increment: filetype: fms restart is restart: false datapath: ./ filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + field io names: {{ atmosphere_ufs_increment_field_io_names }} ensemble mean analysis: filetype: cube sphere history provider: ufs @@ -105,17 +81,5 @@ forecast hours: provider: ufs datapath: ./ filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + field io names: {{ atmosphere_ufs_increment_field_io_names }} {% endfor %} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index f71b855ad..153914fec 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -25,64 +25,16 @@ members: npz: {{ atmosphere_npz_anl }} state: datetime: '{{ atmosphere_iau_times_iso[ihour] }}' - state variables: - - eastward_wind - - northward_wind - - air_temperature - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + state variables: {{ atmosphere_increment_variables_fv3 }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: cube sphere history provider: ufs datapath: ./ filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc max allowable geometry difference: 1e-4 increment: - added variables: - - eastward_wind - - northward_wind - - air_temperature - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + added variables: {{ atmosphere_increment_variables_fv3 }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: cube sphere history provider: ufs datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} @@ -92,18 +44,6 @@ members: is restart: false datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} filename_nonrestart: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_ratmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_ice: icmr_inc - cloud_liquid_water: liq_wat_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - ozone_mass_mixing_ratio: o3mr_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + field io names: {{ atmosphere_ufs_increment_field_io_names }} {% endfor %} {% endfor %} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 9cf1fb727..8df8dc74f 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -13,32 +13,9 @@ variable change: - graupel - ozone_mass_mixing_ratio - geopotential_height_at_surface - output variables: &fv3incrvars - - eastward_wind - - northward_wind - - air_temperature - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness -jedi increment variables: -- eastward_wind -- northward_wind -- air_temperature -- air_pressure_at_surface -- water_vapor_mixing_ratio_wrt_moist_air -- cloud_liquid_ice -- cloud_liquid_water -- snow_water -- rain_water -- graupel -- ozone_mass_mixing_ratio -fv3 increment variables: *fv3incrvars + output variables: {{ atmosphere_increment_variables_fv3 }} +jedi increment variables: {{ atmosphere_increment_variables }} +fv3 increment variables: {{ atmosphere_increment_variables_fv3 }} background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -84,25 +61,11 @@ members from template: max allowable geometry difference: 1e-4 datetime: '{{ atmosphere_background_time_iso }}' state variables: *bkgvars - field io names: &field_io_names - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - layer_thickness: delz - air_pressure_thickness: dpres - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr - geopotential_height_at_surface: hgtsfc + field io names: {{ atmosphere_ufs_background_field_io_names }} jedi increment input: filetype: cube sphere history provider: ufs - field io names: *field_io_names + field io names: {{ atmosphere_ufs_increment_field_io_names }} datapath: ./anl/mem%mem% filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: @@ -116,19 +79,7 @@ members from template: filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc {% endif %} datapath: ./anl/mem%mem% - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_water: liq_wat_inc - ozone_mass_mixing_ratio: o3mr_inc - cloud_liquid_ice: icmr_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + field io names: {{ atmosphere_ufs_increment_field_io_names }} pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 437efbac5..e59645353 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -13,32 +13,9 @@ variable change: - rain_water - graupel - geopotential_height_at_surface - output variables: &fv3incrvars - - eastward_wind - - northward_wind - - air_temperature - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - air_pressure_thickness - - layer_thickness -jedi increment variables: -- eastward_wind -- northward_wind -- air_temperature -- air_pressure_at_surface -- water_vapor_mixing_ratio_wrt_moist_air -- cloud_liquid_ice -- cloud_liquid_water -- snow_water -- rain_water -- graupel -- ozone_mass_mixing_ratio -fv3 increment variables: *fv3incrvars + output variables: {{ atmosphere_increment_variables_fv3 }} +jedi increment variables: {{ atmosphere_increment_variables }} +fv3 increment variables: {{ atmosphere_increment_variables_fv3 }} background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -95,25 +72,11 @@ members: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 state variables: *bkgvars - field io names: &field_io_names - eastward_wind: ugrd - northward_wind: vgrd - air_temperature: tmp - layer_thickness: delz - air_pressure_thickness: dpres - air_pressure_at_surface: pressfc - water_vapor_mixing_ratio_wrt_moist_air: spfh - cloud_liquid_ice: icmr - cloud_liquid_water: clwmr - snow_water: snmr - rain_water: rwmr - graupel: grle - ozone_mass_mixing_ratio: o3mr - geopotential_height_at_surface: hgtsfc + field io names: {{ atmosphere_ufs_background_field_io_names }} jedi increment input: filetype: cube sphere history provider: ufs - field io names: *field_io_names + field io names: {{ atmosphere_ufs_increment_field_io_names }} datapath: ./anl filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: @@ -127,19 +90,7 @@ members: datapath: ./anl filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc {% endif %} - field io names: - eastward_wind: u_inc - northward_wind: v_inc - air_temperature: T_inc - water_vapor_mixing_ratio_wrt_moist_air: sphum_inc - cloud_liquid_water: liq_wat_inc - ozone_mass_mixing_ratio: o3mr_inc - cloud_liquid_ice: icmr_inc - snow_water: snmr_inc - rain_water: rwmr_inc - graupel: grle_inc - air_pressure_thickness: delp_inc - layer_thickness: delz_inc + field io names: {{ atmosphere_ufs_increment_field_io_names }} # Optionally test the application {% if do_testing | default(false) %} test: diff --git a/parm/jcb-gdas/model/aero/aero_background.yaml.j2 b/parm/jcb-gdas/model/aero/aero_background.yaml.j2 index daf6d4ef8..946655fc7 100644 --- a/parm/jcb-gdas/model/aero/aero_background.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_background.yaml.j2 @@ -5,39 +5,5 @@ filename is datetime templated: true filename_core: '%yyyy%mm%dd.%hh%MM%ss.fv_core.res.nc' filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc' filename_cplr: '%yyyy%mm%dd.%hh%MM%ss.coupler.res' -state variables: -- air_temperature -- air_pressure_thickness -- water_vapor_mixing_ratio_wrt_moist_air -- mass_fraction_of_sulfate_in_air -- mass_fraction_of_hydrophobic_black_carbon_in_air -- mass_fraction_of_hydrophilic_black_carbon_in_air -- mass_fraction_of_hydrophobic_organic_carbon_in_air -- mass_fraction_of_hydrophilic_organic_carbon_in_air -- mass_fraction_of_dust001_in_air -- mass_fraction_of_dust002_in_air -- mass_fraction_of_dust003_in_air -- mass_fraction_of_dust004_in_air -- mass_fraction_of_dust005_in_air -- mass_fraction_of_sea_salt001_in_air -- mass_fraction_of_sea_salt002_in_air -- mass_fraction_of_sea_salt003_in_air -- mass_fraction_of_sea_salt004_in_air -field io names: - air_temperature: T - air_pressure_thickness: delp - water_vapor_mixing_ratio_wrt_moist_air: sphum - mass_fraction_of_sulfate_in_air: so4 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas2 - mass_fraction_of_sea_salt002_in_air: seas3 - mass_fraction_of_sea_salt003_in_air: seas4 - mass_fraction_of_sea_salt004_in_air: seas5 +state variables: {{ aero_det_state_variables }} +field io names: {{ aero_field_io_names_crtm }} diff --git a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 index cb29115f3..c75751735 100644 --- a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 @@ -3,21 +3,7 @@ saber central block: saber block name: diffusion read: groups: - - variables: - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air + - variables: {{ analysis_variables }} horizontal: filepath: "{{aero_berror_data_directory}}/diffusion_hz" vertical: @@ -36,18 +22,4 @@ saber outer blocks: filename_trcr: '{{ aero_cycle_time_fv3 }}.stddev.fv_tracer.res.nc' filename_cplr: '{{ aero_cycle_time_fv3 }}.stddev.coupler.res' date: "{{ aero_cycle_time_iso }}" - field io names: - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas2 - mass_fraction_of_sea_salt002_in_air: seas3 - mass_fraction_of_sea_salt003_in_air: seas4 - mass_fraction_of_sea_salt004_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + field io names: {{ aero_field_io_names_crtm }} diff --git a/parm/jcb-gdas/model/aero/aero_final_increment_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/aero/aero_final_increment_cubed_sphere.yaml.j2 index 74c96986b..b1f8acfb8 100644 --- a/parm/jcb-gdas/model/aero/aero_final_increment_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_final_increment_cubed_sphere.yaml.j2 @@ -17,39 +17,5 @@ output: filename_core: '{{ aero_cycle_time_fv3 }}.fv_core.res.nc' filename_trcr: '{{ aero_cycle_time_fv3 }}.fv_tracer.res.nc' filename_cplr: '{{ aero_cycle_time_fv3 }}.coupler.res' - state variables: - - air_temperature - - air_pressure_thickness - - water_vapor_mixing_ratio_wrt_moist_air - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air - field io names: - air_temperature: T - air_pressure_thickness: delp - water_vapor_mixing_ratio_wrt_moist_air: sphum - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas2 - mass_fraction_of_sea_salt002_in_air: seas3 - mass_fraction_of_sea_salt003_in_air: seas4 - mass_fraction_of_sea_salt004_in_air: seas5 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_sulfate_in_air: so4 + state variables: {{ aero_det_state_variables }} + field io names: {{ aero_field_io_names_crtm }} diff --git a/parm/jcb-gdas/model/aero/aero_model_pseudo.yaml.j2 b/parm/jcb-gdas/model/aero/aero_model_pseudo.yaml.j2 index a5c879a5b..be816a127 100644 --- a/parm/jcb-gdas/model/aero/aero_model_pseudo.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_model_pseudo.yaml.j2 @@ -7,40 +7,6 @@ filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc' filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' filename_sfcw: '%yyyy%mm%dd.%hh%MM%ss.fv_srf_wnd.res.nc' filename_cplr: '%yyyy%mm%dd.%hh%MM%ss.coupler.res' -state variables: -- air_temperature -- air_pressure_thickness -- water_vapor_mixing_ratio_wrt_moist_air -- mass_fraction_of_sulfate_in_air -- mass_fraction_of_hydrophobic_black_carbon_in_air -- mass_fraction_of_hydrophilic_black_carbon_in_air -- mass_fraction_of_hydrophobic_organic_carbon_in_air -- mass_fraction_of_hydrophilic_organic_carbon_in_air -- mass_fraction_of_dust001_in_air -- mass_fraction_of_dust002_in_air -- mass_fraction_of_dust003_in_air -- mass_fraction_of_dust004_in_air -- mass_fraction_of_dust005_in_air -- mass_fraction_of_sea_salt001_in_air -- mass_fraction_of_sea_salt002_in_air -- mass_fraction_of_sea_salt003_in_air -- mass_fraction_of_sea_salt004_in_air -field io names: - air_temperature: T - air_pressure_thickness: delp - water_vapor_mixing_ratio_wrt_moist_air: sphum - mass_fraction_of_sulfate_in_air: so4 - mass_fraction_of_hydrophobic_black_carbon_in_air: bc1 - mass_fraction_of_hydrophilic_black_carbon_in_air: bc2 - mass_fraction_of_hydrophobic_organic_carbon_in_air: oc1 - mass_fraction_of_hydrophilic_organic_carbon_in_air: oc2 - mass_fraction_of_dust001_in_air: dust1 - mass_fraction_of_dust002_in_air: dust2 - mass_fraction_of_dust003_in_air: dust3 - mass_fraction_of_dust004_in_air: dust4 - mass_fraction_of_dust005_in_air: dust5 - mass_fraction_of_sea_salt001_in_air: seas2 - mass_fraction_of_sea_salt002_in_air: seas3 - mass_fraction_of_sea_salt003_in_air: seas4 - mass_fraction_of_sea_salt004_in_air: seas5 +state variables: {{ aero_det_state_variables }} +field io names: {{ aero_field_io_names_crtm }} tstep: {{aero_forecast_timestep}} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 index 14e1cf48c..3567251bb 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 @@ -7,4 +7,4 @@ filenames: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 state variables: {{ atmosphere_background_state_variables }} -field io names: {{ atmosphere_ufs_field_io_names }} +field io names: {{ atmosphere_ufs_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index 7d1948b83..24dd83f0e 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -5,7 +5,7 @@ members from template: filetype: cube sphere history provider: ufs state variables: {{ atmosphere_background_state_variables }} - field io names: {{ atmosphere_ufs_field_io_names }} + field io names: {{ atmosphere_ufs_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 70fa12ea5..5c5d41a44 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -31,7 +31,7 @@ components: state variables to inverse: {{ analysis_variables }} linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_control2analysis_input_variables_with_mole_fraction_ozone }} + input variables: {{ atmosphere_gsibec_hybrid_control2analysis_input_variables }} output variables: {{ analysis_variables }} weight: value: 0.125 @@ -43,7 +43,7 @@ components: filetype: cube sphere history provider: ufs state variables: {{ analysis_variables }} - field io names: {{ atmosphere_ufs_field_io_names }} + field io names: {{ atmosphere_ufs_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 1502d21a0..7288c61ac 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -4,7 +4,7 @@ output: filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs fields to write: {{ analysis_variables }} - field io names: {{ atmosphere_ufs_field_io_names }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 7adc83018..46d6c05cc 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -3,8 +3,8 @@ output: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc - fields to write: {{ atmosphere_fv3_increment_fields }} - field io names: {{ atmosphere_ufs_field_io_names }} + fields to write: {{ atmosphere_increment_variables }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 index 75adb7acd..81d1d046b 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 @@ -3,7 +3,7 @@ output: filetype: auxgrid gridtype: gaussian filename: {{atmosphere_final_increment_prefix}} - field io names: {{ atmosphere_ufs_field_io_names }} + field io names: {{ atmosphere_ufs_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 index 6c8b1accb..4601da8fa 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 @@ -8,4 +8,4 @@ filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' filename_sfcw: '%yyyy%mm%dd.%hh%MM%ss.fv_srf_wnd.res.nc' filename_cplr: '%yyyy%mm%dd.%hh%MM%ss.coupler.res' tstep: {{atmosphere_forecast_timestep}} -field io names: {{ atmosphere_ufs_field_io_names }} +field io names: {{ atmosphere_ufs_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index e65cfcb47..7f52a6948 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,4 +1,4 @@ filetype: cube sphere history provider: ufs filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc -field io names: {{ atmosphere_ufs_field_io_names }} +field io names: {{ atmosphere_ufs_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 index 54e85aefc..2fca50017 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 @@ -1,4 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_ensemble_increment_prefix}} -field io names: {{ atmosphere_ufs_field_io_names }} +field io names: {{ atmosphere_ufs_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 index 3754c4e8f..11a387df1 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 @@ -1,4 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_posterior_output_gaussian}} -field io names: {{ atmosphere_ufs_field_io_names }} +field io names: {{ atmosphere_ufs_background_field_io_names }} From a414d71d31bc57c4db03051192658fe04f6d7f7a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 3 Jun 2026 14:10:11 -0400 Subject: [PATCH 03/13] Finished atmosphere and aerosol templates --- parm/atm/jcb-base.yaml.j2 | 140 +++++++++--------- .../aero/aero_gen_bmatrix_diagb.yaml.j2 | 18 +-- .../atmosphere/atm_addincrement.yaml.j2 | 4 +- .../fv3jedi_correction_increment.yaml.j2 | 14 +- .../fv3jedi_ensemble_recenter.yaml.j2 | 4 +- .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 22 +-- .../fv3jedi_fv3inc_variational.yaml.j2 | 22 +-- .../aero_final_increment_gaussian.yaml.j2 | 16 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 2 +- 9 files changed, 85 insertions(+), 157 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index f417b4f19..d6f4b6027 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -31,26 +31,30 @@ atmosphere_ninner_1: {{ NINNER_LOOP1 | default(2, true) }} atmosphere_grad_red_1: 1e-10 atmosphere_ninner_2: {{ NINNER_LOOP2 | default(4, true) }} atmosphere_grad_red_2: 1e-10 -{% set _analysis_vars = ['eastward_wind', - 'northward_wind', - 'air_temperature', - 'water_vapor_mixing_ratio_wrt_moist_air', - 'cloud_liquid_ice', - 'cloud_liquid_water', - 'snow_water', - 'rain_water', - 'graupel', - 'ozone_mass_mixing_ratio', - 'air_pressure_at_surface'] %} + +# Analysis variables +{% set _shared_vars = ['eastward_wind', + 'northward_wind', + 'air_temperature', + 'water_vapor_mixing_ratio_wrt_moist_air', + 'cloud_liquid_ice', + 'cloud_liquid_water', + 'snow_water', + 'rain_water', + 'graupel', + 'ozone_mass_mixing_ratio'] %} +{% set _analysis_vars = _shared_vars + ['air_pressure_at_surface'] %} +{% set _fv3_increment_vars = _shared_vars + ['air_pressure_thickness', + 'layer_thickness'] %} analysis_variables: {{ _analysis_vars }} # Model things # ------------ # State variables -atmosphere_background_state_variables: {{ _analysis_vars + ['cloud_ice_number_concentration', +atmosphere_background_state_variables: {{ _analysis_vars + ['geopotential_height_at_surface', + 'cloud_ice_number_concentration', 'rain_number_concentration', - 'geopotential_height_at_surface', 'slmsk', 'sheleg', 'skin_temperature_at_surface', @@ -64,42 +68,32 @@ atmosphere_background_state_variables: {{ _analysis_vars + ['cloud_ice_number_co 'northward_wind_at_surface', 'f10m', 'air_pressure_thickness'] }} +atmosphere_jedi2fv3inc_state_variables: {{ _analysis_vars + ['geopotential_height_at_surface'] }} # Increment variables -{% set _shared_increment_vars = ['eastward_wind', - 'northward_wind', - 'air_temperature', - 'water_vapor_mixing_ratio_wrt_moist_air', - 'cloud_liquid_ice', - 'cloud_liquid_water', - 'snow_water', - 'rain_water', - 'graupel', - 'ozone_mass_mixing_ratio'] } -atmosphere_increment_variables: {{ _shared_increment_vars + ['air_pressure_at_surface'] }} -atmosphere_increment_variables_fv3: {{ _shared_increment_vars + ['air_pressure_thickness', - 'layer_thickness'] }} +atmosphere_jedi_increment_variables: {{ _analysis_vars }} +atmosphere_fv3_increment_variables: {{ _fv3_increment_vars }} # GSIBEC-related variables atmosphere_gsibec_hybrid_control2analysis_input_variables: [eastward_wind, northward_wind, air_temperature, - air_pressure_at_surface, water_vapor_mixing_ratio_wrt_moist_air, cloud_liquid_ice, cloud_liquid_water, snow_water, rain_water, graupel, - mole_fraction_of_ozone_in_air] + mole_fraction_of_ozone_in_air, + air_pressure_at_surface] atmosphere_gsibec_static_control2analysis_input_variables: [eastward_wind, northward_wind, air_temperature, - air_pressure_at_surface, water_vapor_mixing_ratio_wrt_moist_air, cloud_liquid_ice, cloud_liquid_water, - mole_fraction_of_ozone_in_air] + mole_fraction_of_ozone_in_air, + air_pressure_at_surface] atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind, northward_wind, air_temperature, @@ -109,49 +103,6 @@ atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind, cloud_liquid_water, ozone_mass_mixing_ratio] -# Geometry -atmosphere_layout_x: {{ layout_x | default(1, true) }} -atmosphere_layout_y: {{ layout_y | default(1, true) }} -atmosphere_npx_ges: {{ npx_ges | default(49, true) }} -atmosphere_npy_ges: {{ npy_ges | default(49, true) }} -atmosphere_npz_ges: {{ npz_ges | default(127, true) }} -atmosphere_npx_his: {{ npx_his | default(49, true) }} -atmosphere_npy_his: {{ npy_his | default(49, true) }} -atmosphere_npz_his: {{ npz_his | default(127, true) }} -atmosphere_npx_anl: {{ npx_anl | default(49, true) }} -atmosphere_npy_anl: {{ npy_anl | default(49, true) }} -atmosphere_npz_anl: {{ npz_anl | default(127, true) }} - -atmosphere_fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS - -# Background -atmosphere_background_path: ./bkg -atmosphere_background_ensemble_path: ./ens/mem%mem% - -# Default background time is for 3D applications -atmosphere_background_time_iso: "{{ current_cycle | to_isotime }}" - -# Background error -atmosphere_bump_data_directory: "{{ DATA }}/berror" -atmosphere_gsibec_path: "{{ DATA }}/berror" -atmosphere_number_ensemble_members: {{ NMEM_ENS | default(1, true) }} -atmosphere_layout_gsib_x: {{ layout_gsib_x | default(1, true) }} -atmosphere_layout_gsib_y: {{ layout_gsib_y | default(1, true) }} - -# Forecasting -atmosphere_forecast_timestep: "{{ BKG_TSTEP }}" - -# Write final increment on Guassian grid in variational -atmosphere_final_increment_prefix: "./anl/atminc." - -atmosphere_variational_history_prefix: "{{GPREFIX}}" -atmosphere_variational_analysis_prefix: "{{APREFIX}}" -atmosphere_variational_increment_type: {{ ATMINC_GRID | default('cubed_grid_sphere', true) }} - -# IAU hours -atmosphere_iau_hours: {{ IAUFHRS }} -atmosphere_iau_times_iso: {{ iau_times_iso }} - # UFS variable names atmosphere_ufs_background_field_io_names: eastward_wind: ugrd @@ -196,6 +147,49 @@ atmosphere_ufs_increment_field_io_names: layer_thickness: delz_inc air_pressure_at_surface: pressfc_inc +# Geometry +atmosphere_layout_x: {{ layout_x | default(1, true) }} +atmosphere_layout_y: {{ layout_y | default(1, true) }} +atmosphere_npx_ges: {{ npx_ges | default(49, true) }} +atmosphere_npy_ges: {{ npy_ges | default(49, true) }} +atmosphere_npz_ges: {{ npz_ges | default(127, true) }} +atmosphere_npx_his: {{ npx_his | default(49, true) }} +atmosphere_npy_his: {{ npy_his | default(49, true) }} +atmosphere_npz_his: {{ npz_his | default(127, true) }} +atmosphere_npx_anl: {{ npx_anl | default(49, true) }} +atmosphere_npy_anl: {{ npy_anl | default(49, true) }} +atmosphere_npz_anl: {{ npz_anl | default(127, true) }} + +atmosphere_fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS + +# Background +atmosphere_background_path: ./bkg +atmosphere_background_ensemble_path: ./ens/mem%mem% + +# Default background time is for 3D applications +atmosphere_background_time_iso: "{{ current_cycle | to_isotime }}" + +# Background error +atmosphere_bump_data_directory: "{{ DATA }}/berror" +atmosphere_gsibec_path: "{{ DATA }}/berror" +atmosphere_number_ensemble_members: {{ NMEM_ENS | default(1, true) }} +atmosphere_layout_gsib_x: {{ layout_gsib_x | default(1, true) }} +atmosphere_layout_gsib_y: {{ layout_gsib_y | default(1, true) }} + +# Forecasting +atmosphere_forecast_timestep: "{{ BKG_TSTEP }}" + +# Write final increment on Guassian grid in variational +atmosphere_final_increment_prefix: "./anl/atminc." + +atmosphere_variational_history_prefix: "{{GPREFIX}}" +atmosphere_variational_analysis_prefix: "{{APREFIX}}" +atmosphere_variational_increment_type: {{ ATMINC_GRID | default('cubed_grid_sphere', true) }} + +# IAU hours +atmosphere_iau_hours: {{ IAUFHRS }} +atmosphere_iau_times_iso: {{ iau_times_iso }} + # Observation things # ------------------ observations: all_observations diff --git a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 index 8eca94d5b..7abd7b88d 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_gen_bmatrix_diagb.yaml.j2 @@ -57,24 +57,8 @@ climate background error: field io names: {{ aero_field_io_names }} diagb weight: {{ aero_diagb_weight }} staticb rescaling factor: {{ aero_diagb_static_rescale_factor }} - variables: - name: - - mass_fraction_of_sulfate_in_air - - mass_fraction_of_hydrophobic_black_carbon_in_air - - mass_fraction_of_hydrophilic_black_carbon_in_air - - mass_fraction_of_hydrophobic_organic_carbon_in_air - - mass_fraction_of_hydrophilic_organic_carbon_in_air - - mass_fraction_of_dust001_in_air - - mass_fraction_of_dust002_in_air - - mass_fraction_of_dust003_in_air - - mass_fraction_of_dust004_in_air - - mass_fraction_of_dust005_in_air - - mass_fraction_of_sea_salt001_in_air - - mass_fraction_of_sea_salt002_in_air - - mass_fraction_of_sea_salt003_in_air - - mass_fraction_of_sea_salt004_in_air - - mass_fraction_of_sea_salt005_in_air + name: {{ aero_bmat_state_variables }} {% set rescaling_factor_file = aero_rescaling_factor_file|default(aero_gen_bmatrix_rescale_default) %} {% include rescaling_factor_file %} diff --git a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 index 10868e3d8..d00b29f88 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 @@ -24,7 +24,7 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml state: datetime: '{{ atmosphere_background_time_iso }}' - state variables: {{ atmosphere_increment_variables_fv3 }} + state variables: {{ atmosphere_fv3_increment_variables }} field io names: {{ atmosphere_ufs_background_field_io_names }} filetype: cube sphere history provider: ufs @@ -32,7 +32,7 @@ state: datapath: ./ max allowable geometry difference: 1e-4 increment: - added variables: {{ atmosphere_increment_variables_fv3 }} + added variables: {{ atmosphere_fv3_increment_variables }} field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: fms restart is restart: false diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 index e125782b5..e22122cc8 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 @@ -1,16 +1,4 @@ -increment variables: -- cloud_liquid_water -- layer_thickness -- air_pressure_thickness -- cloud_liquid_ice -- snow_water -- rain_water -- graupel -- ozone_mass_mixing_ratio -- water_vapor_mixing_ratio_wrt_moist_air -- air_temperature -- eastward_wind -- northward_wind +increment variables: {{ atmosphere_fv3_increment_variables }} deterministic background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index 153914fec..d0c976f31 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -25,7 +25,7 @@ members: npz: {{ atmosphere_npz_anl }} state: datetime: '{{ atmosphere_iau_times_iso[ihour] }}' - state variables: {{ atmosphere_increment_variables_fv3 }} + state variables: {{ atmosphere_fv3_increment_variables }} field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: cube sphere history provider: ufs @@ -33,7 +33,7 @@ members: filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc max allowable geometry difference: 1e-4 increment: - added variables: {{ atmosphere_increment_variables_fv3 }} + added variables: {{ atmosphere_fv3_increment_variables }} field io names: {{ atmosphere_ufs_increment_field_io_names }} filetype: cube sphere history provider: ufs diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 8df8dc74f..d63f0c22e 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -1,21 +1,9 @@ variable change: variable change name: Model2GeoVaLs - input variables: &bkgvars - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - snow_water - - rain_water - - graupel - - ozone_mass_mixing_ratio - - geopotential_height_at_surface - output variables: {{ atmosphere_increment_variables_fv3 }} -jedi increment variables: {{ atmosphere_increment_variables }} -fv3 increment variables: {{ atmosphere_increment_variables_fv3 }} + input variables: {{ atmosphere_jedi2fv3inc_state_variables }} + output variables: {{ atmosphere_fv3_increment_variables }} +jedi increment variables: {{ atmosphere_jedi_increment_variables }} +fv3 increment variables: {{ atmosphere_fv3_increment_variables }} background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -60,7 +48,7 @@ members from template: - {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 datetime: '{{ atmosphere_background_time_iso }}' - state variables: *bkgvars + state variables: {{ atmosphere_jedi2fv3inc_state_variables }} field io names: {{ atmosphere_ufs_background_field_io_names }} jedi increment input: filetype: cube sphere history diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index e59645353..29d6edef9 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -1,21 +1,9 @@ variable change: variable change name: Model2GeoVaLs - input variables: &bkgvars - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - ozone_mass_mixing_ratio - - snow_water - - rain_water - - graupel - - geopotential_height_at_surface - output variables: {{ atmosphere_increment_variables_fv3 }} -jedi increment variables: {{ atmosphere_increment_variables }} -fv3 increment variables: {{ atmosphere_increment_variables_fv3 }} + input variables: {{ atmosphere_jedi2fv3inc_state_variables }} + output variables: {{ atmosphere_fv3_increment_variables }} +jedi increment variables: {{ atmosphere_jedi_increment_variables }} +fv3 increment variables: {{ atmosphere_fv3_increment_variables }} background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -71,7 +59,7 @@ members: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 - state variables: *bkgvars + state variables: {{ atmosphere_jedi2fv3inc_state_variables }} field io names: {{ atmosphere_ufs_background_field_io_names }} jedi increment input: filetype: cube sphere history diff --git a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 index 87f0b689f..06157bb6b 100644 --- a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -3,21 +3,7 @@ local interpolator type: atlas interpolator interpolation method: type: finite-element number of latitude gridpoints: {{ aero_npy_anl - 1 }} -variables to output: -- mass_fraction_of_sulfate_in_air -- mass_fraction_of_hydrophobic_black_carbon_in_air -- mass_fraction_of_hydrophilic_black_carbon_in_air -- mass_fraction_of_hydrophobic_organic_carbon_in_air -- mass_fraction_of_hydrophilic_organic_carbon_in_air -- mass_fraction_of_dust001_in_air -- mass_fraction_of_dust002_in_air -- mass_fraction_of_dust003_in_air -- mass_fraction_of_dust004_in_air -- mass_fraction_of_dust005_in_air -- mass_fraction_of_sea_salt001_in_air -- mass_fraction_of_sea_salt002_in_air -- mass_fraction_of_sea_salt003_in_air -- mass_fraction_of_sea_salt004_in_air +variables to output: {{ analysis_variables }} all model levels: true datapath: {{ aero_analysis_path }} prefix: aeroinc_gauss diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 46d6c05cc..498082757 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -3,7 +3,7 @@ output: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc - fields to write: {{ atmosphere_increment_variables }} + fields to write: {{ atmosphere_jedi_increment_variables }} field io names: {{ atmosphere_ufs_increment_field_io_names }} geometry: fms initialization: From 54ecb4fe5d95165ea38e7ec08ac3504f9463d9ec Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 5 Jun 2026 11:24:59 -0400 Subject: [PATCH 04/13] Finished prototype for snow and soil --- .../snow/fv3jedi_land_ensrecenter.yaml.j2 | 24 +++++-------- .../snow/fv3jedi_snow_ensmean.yaml.j2 | 28 +++------------ .../snow/snow_ims_scf_preprocess.yaml.j2 | 13 ++----- .../algorithm/soil/soil_addincrement.yaml.j2 | 34 ++++--------------- .../snow/snow_3dvar_outer_loop_1.yaml.j2 | 4 +-- .../model/snow/snow_background.yaml.j2 | 16 ++------- .../snow/snow_final_increment_fms.yaml.j2 | 8 ++--- .../soil/soil_3dvar_outer_loop_1.yaml.j2 | 4 +-- .../model/soil/soil_background.yaml.j2 | 18 ++-------- .../soil/soil_final_increment_fms.yaml.j2 | 12 ++----- parm/jcb-gdas/model/soil/soil_output.yaml.j2 | 18 ++-------- parm/snow/jcb-base.yaml.j2 | 16 +++++++++ parm/soil/jcb-base.yaml.j2 | 18 ++++++++++ 13 files changed, 66 insertions(+), 147 deletions(-) diff --git a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 index 5d1eb1630..cf1347c49 100644 --- a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 @@ -10,8 +10,7 @@ geometry: npy: {{ npy_ges }} npz: {{ npz_ges }} date: "{{ snow_background_time_iso }}" -variables: -- totalSnowDepth +variables: {{ analysis_variables }} increment mask: variable: - slmsk @@ -33,10 +32,8 @@ increment mask: deterministic increment: datetime: "{{ snow_increment_time_iso }}" filetype: fms restart - state variables: - - totalSnowDepth - field io names: - totalSnowDepth: snodl + state variables: {{ analysis_variables }} + field io names: {{ snow_field_io_names }} datapath: ./inc/det_ensres filename is datetime templated: true filename_core: "snowinc.%yyyy%mm%dd.%hh%MM%ss.fv_core.res.nc" @@ -48,10 +45,8 @@ deterministic increment: deterministic background: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: - - totalSnowDepth - field io names: - totalSnowDepth: snodl + state variables: {{ analysis_variables }} + field io names: {{ snow_field_io_names }} datapath: ./bkg/det_ensres filename is datetime templated: true filename_core: "%yyyy%mm%dd.%hh%MM%ss.fv_core.res.nc" @@ -65,8 +60,7 @@ output increment: datapath: ./inc/ensmean datetime: "{{ snow_increment_time_iso }}" filetype: fms restart - field io names: - totalSnowDepth: snodl + field io names: {{ snow_field_io_names }} prefix: snowinc filename_core: "{{ snow_increment_time_fv3 }}.fv_core.res.nc" filename_trcr: "{{ snow_increment_time_fv3 }}.fv_tracer.res.nc" @@ -80,10 +74,8 @@ ensemble backgrounds: template: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: - - totalSnowDepth - field io names: - totalSnowDepth: snodl + state variables: {{ analysis_variables }} + field io names: {{ snow_field_io_names }} datapath: ./bkg/mem%mem% filename is datetime templated: true filename_core: "%yyyy%mm%dd.%hh%MM%ss.fv_core.res.nc" diff --git a/parm/jcb-gdas/algorithm/snow/fv3jedi_snow_ensmean.yaml.j2 b/parm/jcb-gdas/algorithm/snow/fv3jedi_snow_ensmean.yaml.j2 index 9bd29e33a..c460ecf1f 100644 --- a/parm/jcb-gdas/algorithm/snow/fv3jedi_snow_ensmean.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/fv3jedi_snow_ensmean.yaml.j2 @@ -11,35 +11,15 @@ mean output: filename_sfcd: sfc_data.nc filename_sfcw: fv_srf_wnd.res.nc filename_cplr: coupler.res - state variables: - - totalSnowDepth - - vtype - - slmsk - - filtered_orography - - stc - - sheleg - - fraction_of_ice - field io names: - totalSnowDepth: snodl - filtered_orography: orog_filt - fraction_of_ice: fice + state variables: {{ snow_ensmean_state_variables }} + field io names: {{ snow_field_io_names }} ensemble: members from template: template: datetime: '{{ snow_background_time_iso }}' filetype: fms restart - state variables: - - totalSnowDepth - - vtype - - slmsk - - filtered_orography - - stc - - sheleg - - fraction_of_ice - field io names: - totalSnowDepth: snodl - filtered_orography: orog_filt - fraction_of_ice: fice + state variables: {{ snow_ensmean_state_variables }} + field io names: {{ snow_field_io_names }} datapath: ./bkg/mem%mem%/ filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' diff --git a/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 b/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 index 7d5f4e9e0..1b5cc7b78 100644 --- a/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 @@ -17,8 +17,7 @@ geometry: datetime: '{{ snow_background_time_iso }}' state variables: - filtered_orography - field io names: - filtered_orography: orog_filt + field io names: {{ snow_field_io_names }} filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' filename_orog: '{{ snow_orog_prefix }}_oro_data.nc' @@ -26,15 +25,7 @@ date: '{{ snow_background_time_iso }}' output ioda file: '{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}ims_snow.tm00.nc' input scf file: './obs/ims{{ snow_background_time_julian }}_4km_v1.3.{{ ims_scf_obs_suffix }}' mapping file: './obs/IMS4km_to_FV3_mapping.{{ snow_orog_prefix }}_oro_data.nc' -variables: -- totalSnowDepth -- vtype -- slmsk -- sheleg -- filtered_orography -- fraction_of_ice -- fraction_of_land -- stc +variables: {{ snow_background_state_variables }} background: {% filter indent(width=2) %} {% set background_file = background_file|default(model_component ~ 'background', true) ~ '.yaml.j2' %} diff --git a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 index d6f01865f..bd7b2db5c 100644 --- a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 @@ -23,28 +23,16 @@ increment geometry: npz: {{ soil_npz_anl }} # field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml state: - state variables: - - soilMoistureVolumetric - - stc - - totalSnowDepth - - sheleg - - vtype - - slmsk - - fraction_of_ice - field io names: - totalSnowDepth: snodl - soilMoistureVolumetric: smc - fraction_of_ice: fice + state variables: {{ soil_addincrement_state_variables }} + field io names: {{ soil_field_io_names }} datapath: ./bkg filetype: fms restart skip coupler file: true datetime: '{{ soil_background_time_iso }}' filename_sfcd: {{ soil_background_time_fv3 }}.sfc_data.nc increment: - added variables: - - soilMoistureVolumetric - field io names: - soilMoistureVolumetric: smc + added variables: {{ analysis_variables }} + field io names: {{ soil_field_io_names }} datapath: ./anl filetype: fms restart skip coupler file: true @@ -60,15 +48,5 @@ output: filename is datetime templated: true datetime: '{{ soil_background_time_iso }}' filename_sfcd: {{ soil_background_time_fv3 }}.sfc_data.nc - state variables: - - soilMoistureVolumetric - - stc - - totalSnowDepth - - sheleg - - vtype - - slmsk - - fraction_of_ice - field io names: - soilMoistureVolumetric: smc - totalSnowDepth: snodl - fraction_of_ice: fice + state variables: {{ soil_addincrement_state_variables }} + field io names: {{ soil_field_io_names }} diff --git a/parm/jcb-gdas/model/snow/snow_3dvar_outer_loop_1.yaml.j2 b/parm/jcb-gdas/model/snow/snow_3dvar_outer_loop_1.yaml.j2 index 53085b711..a6bca5695 100644 --- a/parm/jcb-gdas/model/snow/snow_3dvar_outer_loop_1.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_3dvar_outer_loop_1.yaml.j2 @@ -20,9 +20,7 @@ state variables: - filtered_orography - fraction_of_land - field io names: - filtered_orography: orog_filt - fraction_of_land: land_frac + field io names: {{ snow_field_io_names }} datapath: {{ snow_orog_files_path }}/ filename_orog: {{ snow_orog_prefix }}_oro_data.nc diagnostics: diff --git a/parm/jcb-gdas/model/snow/snow_background.yaml.j2 b/parm/jcb-gdas/model/snow/snow_background.yaml.j2 index 1f1ccb57b..d922eed27 100644 --- a/parm/jcb-gdas/model/snow/snow_background.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_background.yaml.j2 @@ -2,20 +2,8 @@ datapath: {{ snow_background_path }} filetype: fms restart skip coupler file: true datetime: '{{ snow_background_time_iso }}' -state variables: -- totalSnowDepth -- vtype -- slmsk -- sheleg -- filtered_orography -- fraction_of_ice -- fraction_of_land -- stc -field io names: - totalSnowDepth: snodl - filtered_orography: orog_filt - fraction_of_ice: fice - fraction_of_land: land_frac +state variables: {{ snow_background_state_variables }} +field io names: {{ snow_field_io_names }} filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' filename_orog: '{{ snow_orog_prefix }}_oro_data.nc' diff --git a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 index 7c9e13e23..8e6a6d995 100644 --- a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 @@ -5,12 +5,8 @@ output: filetype: fms restart filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' - state variables: - - totalSnowDepth - - vtype - - slmsk - field io names: - totalSnowDepth: snodl + state variables: {{ snow_increment_state_variables }} + field io names: {{ snow_field_io_names }} geometry: fms initialization: namelist filename: "{{ snow_fv3jedi_files_path }}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/soil/soil_3dvar_outer_loop_1.yaml.j2 b/parm/jcb-gdas/model/soil/soil_3dvar_outer_loop_1.yaml.j2 index 302fd4a33..8dd306dbe 100644 --- a/parm/jcb-gdas/model/soil/soil_3dvar_outer_loop_1.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_3dvar_outer_loop_1.yaml.j2 @@ -20,9 +20,7 @@ state variables: - filtered_orography - fraction_of_land - field io names: - filtered_orography: orog_filt - fraction_of_land: land_frac + field io names: {{ soil_field_io_names }} datapath: {{ soil_orog_files_path }}/ filename_orog: {{ soil_orog_prefix }}_oro_data.nc diagnostics: diff --git a/parm/jcb-gdas/model/soil/soil_background.yaml.j2 b/parm/jcb-gdas/model/soil/soil_background.yaml.j2 index c495e93f9..9757d30ea 100644 --- a/parm/jcb-gdas/model/soil/soil_background.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_background.yaml.j2 @@ -2,22 +2,8 @@ datapath: {{ soil_background_path }} filetype: fms restart skip coupler file: true datetime: '{{ soil_background_time_iso }}' -state variables: -- soilMoistureVolumetric -- stc -- totalSnowDepth -- sheleg -- vtype -- slmsk -- filtered_orography -- fraction_of_ice -- fraction_of_land -field io names: - soilMoistureVolumetric: smc - totalSnowDepth: snodl - filtered_orography: orog_filt - fraction_of_ice: fice - fraction_of_land: land_frac +state variables: {{ soil_background_state_variables }} +field io names: {{ soil_field_io_names }} filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' filename_orog: '{{ soil_orog_prefix }}_oro_data.nc' diff --git a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 index b3a7f22f8..30be93dc0 100644 --- a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 @@ -5,16 +5,8 @@ output: filetype: fms restart filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' - state variables: - - soilMoistureVolumetric - - stc - - totalSnowDepth - - sheleg - - vtype - - slmsk - field io names: - soilMoistureVolumetric: smc - totalSnowDepth: snodl + state variables: {{ soil_increment_state_variables }} + field io names: {{ soil_field_io_names }} geometry: fms initialization: namelist filename: "{{ soil_fv3jedi_files_path }}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/soil/soil_output.yaml.j2 b/parm/jcb-gdas/model/soil/soil_output.yaml.j2 index 83e44b6ee..33f579f8f 100644 --- a/parm/jcb-gdas/model/soil/soil_output.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_output.yaml.j2 @@ -1,19 +1,5 @@ -state variables: -- soilMoistureVolumetric -- stc -- totalSnowDepth -- sheleg -- vtype -- slmsk -- filtered_orography -- fraction_of_ice -- fraction_of_land -field io names: - soilMoistureVolumetric: smc - totalSnowDepth: snodl - filtered_orography: orog_filt - fraction_of_ice: fice - fraction_of_land: land_frac +state variables: {{ soil_background_state_variables }} +field io names: {{ soil_field_io_names }} datapath: ./anl prefix: soil_finanl filetype: fms restart diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index d4766d0cc..5307b2721 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -42,6 +42,22 @@ number_of_outer_loops: 1 # Model things # ------------ + +# State variables +snow_background_state_variables: [totalSnowDepth, vtype, slmsk, sheleg, + filtered_orography, fraction_of_ice, + fraction_of_land, stc] +snow_ensmean_state_variables: [totalSnowDepth, vtype, slmsk, filtered_orography, + stc, sheleg, fraction_of_ice] +snow_increment_state_variables: [totalSnowDepth, vtype, slmsk] + +# Variable IO names +snow_field_io_names: + totalSnowDepth: snodl + filtered_orography: orog_filt + fraction_of_ice: fice + fraction_of_land: land_frac + # Geometry snow_layout_x: {{ layout_x | default(1, true) }} snow_layout_y: {{ layout_y | default(1, true) }} diff --git a/parm/soil/jcb-base.yaml.j2 b/parm/soil/jcb-base.yaml.j2 index e8071f966..1539dfabc 100644 --- a/parm/soil/jcb-base.yaml.j2 +++ b/parm/soil/jcb-base.yaml.j2 @@ -42,6 +42,24 @@ number_of_outer_loops: 1 # Model things # ------------ + +# State variables +soil_background_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, + sheleg, vtype, slmsk, filtered_orography, + fraction_of_ice, fraction_of_land] +soil_addincrement_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, + sheleg, vtype, slmsk, fraction_of_ice] +soil_increment_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, + sheleg, vtype, slmsk] + +# Variable IO names +soil_field_io_names: + soilMoistureVolumetric: smc + totalSnowDepth: snodl + filtered_orography: orog_filt + fraction_of_ice: fice + fraction_of_land: land_frac + # Geometry soil_layout_x: {{ layout_x | default(1, true) }} soil_layout_y: {{ layout_y | default(1, true) }} From 0bc54237de04a865502548596b31592ce01a1fb5 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 5 Jun 2026 12:03:33 -0400 Subject: [PATCH 05/13] Finished marine prototype --- parm/atm/jcb-base.yaml.j2 | 3 +- .../model/marine/marine_background.yaml.j2 | 16 +------- .../marine/marine_background_ensemble.yaml.j2 | 2 +- ...d_error_hybrid_diffusion_diffusion.yaml.j2 | 20 +--------- ..._background_error_static_diffusion.yaml.j2 | 20 +--------- parm/marine/jcb-base.yaml.j2 | 38 +++++++++++++------ parm/snow/jcb-base.yaml.j2 | 12 +++++- parm/soil/jcb-base.yaml.j2 | 20 +++++++--- 8 files changed, 60 insertions(+), 71 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index d6f4b6027..2df41c20d 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -239,7 +239,8 @@ bias_files_dict: # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: [eastward_wind,northward_wind,layer_thickness,air_pressure_thickness,air_temperature,air_pressure_at_surface,water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water,snow_water,rain_water,graupel,ozone_mass_mixing_ratio] +increment_variables: {{ _analysis_vars + ['air_pressure_thickness', + 'layer_thickness'] %}} atm_enkfonly: {{ DOENKFONLY_ATM | default(false, true) }} diff --git a/parm/jcb-gdas/model/marine/marine_background.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background.yaml.j2 index 4be1f74fc..bdcd445cd 100644 --- a/parm/jcb-gdas/model/marine/marine_background.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background.yaml.j2 @@ -3,18 +3,4 @@ basename: {{ marine_background_path}} ocn_filename: MOM.res.nc ice_filename: cice.res.nc date: "{{ marine_background_time }}" -state variables: -- sea_ice_area_fraction -- sea_ice_thickness -- sea_ice_snow_thickness -- snow_ice_surface_temperature -- air_temperature -- bulk_ice_salinity -- sea_water_salinity -- sea_water_potential_temperature -#- eastward_sea_water_velocity -#- northward_sea_water_velocity -- sea_surface_height_above_geoid -- sea_water_cell_thickness -- ocean_mixed_layer_thickness -- sea_water_depth +state variables: {{ marine_background_state_variables }} diff --git a/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 index 911cf80ac..e79760c22 100644 --- a/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 @@ -5,6 +5,6 @@ members from template: ice_filename: "ice.%mem%.nc" read_from_file: 1 basename: {{ marine_enspert_relpath }}/ens/ - state variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction] + state variables: {{ increment_variables }} pattern: '%mem%' nmembers: {{ marine_number_ensemble_members }} diff --git a/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 index 6ff6713a4..420117622 100644 --- a/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 @@ -34,24 +34,8 @@ components: ice_filename: 'ice.bkgerr_parametric_stddev.nc' read_from_file: 3 linear variable change: - input variables: - - sea_ice_area_fraction - - sea_ice_thickness - - sea_ice_snow_thickness - - sea_water_salinity - - sea_water_potential_temperature - #- eastward_sea_water_velocity - #- northward_sea_water_velocity - - sea_surface_height_above_geoid - output variables: - - sea_ice_area_fraction - - sea_ice_thickness - - sea_ice_snow_thickness - - sea_water_salinity - - sea_water_potential_temperature - #- eastward_sea_water_velocity - #- northward_sea_water_velocity - - sea_surface_height_above_geoid + input variables: {{ analysis_variables }} + output variables: {{ analysis_variables }} linear variable changes: - linear variable change name: BalanceSOCA weight: diff --git a/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 index 0d663c57f..c53389cfb 100644 --- a/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 @@ -50,23 +50,7 @@ saber outer blocks: # load model: /work/noaa/da/gvernier/ai/runs/antarctic.pt linear variable change: - input variables: - - sea_ice_area_fraction - - sea_ice_thickness - - sea_ice_snow_thickness - - sea_water_salinity - - sea_water_potential_temperature - #- eastward_sea_water_velocity - #- northward_sea_water_velocity - - sea_surface_height_above_geoid - output variables: - - sea_ice_area_fraction - - sea_ice_thickness - - sea_ice_snow_thickness - - sea_water_salinity - - sea_water_potential_temperature - #- eastward_sea_water_velocity - #- northward_sea_water_velocity - - sea_surface_height_above_geoid + input variables: {{ analysis_variables }} + output variables: {{ analysis_variables }} linear variable changes: - linear variable change name: BalanceSOCA diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index 74804dd05..1086f534c 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -25,18 +25,27 @@ minimizer: RPCG final_diagnostics_departures: oman final_prints_frequency: PT3H number_of_outer_loops: 1 -analysis_variables: -- sea_ice_area_fraction -- sea_ice_thickness -- sea_ice_snow_thickness -- sea_water_salinity -- sea_water_potential_temperature -#- eastward_sea_water_velocity -#- northward_sea_water_velocity -- sea_surface_height_above_geoid + +# Analysis variables +{% set _analysis_vars = ['sea_ice_area_fraction', + 'sea_ice_thickness', + 'sea_ice_snow_thickness', + 'sea_water_salinity', + 'sea_water_potential_temperature', + 'sea_surface_height_above_geoid'] %} +analysis_variables: {{ _analysis_vars }} # Model things # ------------ + +# State variables +marine_background_state_variables: {{ _analysis_vars + ['air_temperature', + 'bulk_ice_salinity', + 'sea_water_cell_thickness', + 'ocean_mixed_layer_thickness', + 'sea_water_depth', + 'snow_ice_surface_temperature'] }} + marine_window_begin: '{{ WINDOW_BEGIN }}' marine_window_middle: '{{ WINDOW_MIDDLE }}' marine_window_begin_iso: '{{ WINDOW_BEGIN | to_isotime }}' @@ -114,7 +123,14 @@ local_ensemble_da_solver: Deterministic LETKF use_linear_observer: true # Increment variables -increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction] +increment_variables: +- sea_ice_area_fraction +- sea_water_salinity +- sea_water_potential_temperature +- sea_surface_height_above_geoid +- sea_water_cell_thickness +- eastward_sea_water_velocity +- northward_sea_water_velocity # Driver driver_save_posterior_mean: true @@ -132,5 +148,3 @@ inflation_mult: 1.1 # Using LETKF app? (used in obs YAMLs) marine_letkf_app: {{ letkf_app | default(false) }} marine_letkf_dist_halo_size: '{{ DIST_HALO_SIZE }}' - - diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 5307b2721..340ba827c 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -127,7 +127,17 @@ snow_number_ensemble_members: {{NMEM_ENS}} # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: [ua,va,DZ,delp,t,ps,sphum,ice_wat,liq_wat,o3mr] +increment_variables: +- eastward_wind +- northward_wind +- layer_thickness +- air_pressure_thickness +- air_temperature +- air_pressure_at_surface +- water_vapor_mixing_ratio_wrt_moist_air +- cloud_liquid_ice +- cloud_liquid_water +- ozone_mass_mixing_ratio # Veritcal localization for GETKF vl_fraction_of_retained_variance: 0.750 diff --git a/parm/soil/jcb-base.yaml.j2 b/parm/soil/jcb-base.yaml.j2 index 1539dfabc..53c115843 100644 --- a/parm/soil/jcb-base.yaml.j2 +++ b/parm/soil/jcb-base.yaml.j2 @@ -45,12 +45,12 @@ number_of_outer_loops: 1 # State variables soil_background_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk, filtered_orography, - fraction_of_ice, fraction_of_land] + sheleg, vtype, slmsk, filtered_orography, + fraction_of_ice, fraction_of_land] soil_addincrement_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk, fraction_of_ice] + sheleg, vtype, slmsk, fraction_of_ice] soil_increment_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk] + sheleg, vtype, slmsk] # Variable IO names soil_field_io_names: @@ -129,7 +129,17 @@ soil_number_ensemble_members: {{NMEM_ENS}} # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: [ua,va,DZ,delp,t,ps,sphum,ice_wat,liq_wat,o3mr] +increment_variables: +- eastward_wind +- northward_wind +- layer_thickness +- air_pressure_thickness +- air_temperature +- air_pressure_at_surface +- water_vapor_mixing_ratio_wrt_moist_air +- cloud_liquid_ice +- cloud_liquid_water +- ozone_mass_mixing_ratio # Veritcal localization for GETKF vl_fraction_of_retained_variance: 0.750 From bb943a0f68f0d0615ad2ce12a9e9be8dce3639fc Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 10 Jun 2026 11:48:32 -0400 Subject: [PATCH 06/13] Slight renaming --- parm/atm/jcb-base.yaml.j2 | 2 +- .../algorithm/soil/soil_addincrement.yaml.j2 | 2 +- .../snow/snow_final_increment_fms.yaml.j2 | 2 +- .../soil/soil_final_increment_fms.yaml.j2 | 2 +- parm/marine/jcb-base.yaml.j2 | 7 +++++ parm/snow/jcb-base.yaml.j2 | 28 ++++++++++++++----- parm/soil/jcb-base.yaml.j2 | 25 +++++++++++------ 7 files changed, 49 insertions(+), 19 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 2df41c20d..ac445b78b 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -103,7 +103,7 @@ atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind, cloud_liquid_water, ozone_mass_mixing_ratio] -# UFS variable names +# Variable IO names atmosphere_ufs_background_field_io_names: eastward_wind: ugrd northward_wind: vgrd diff --git a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 index bd7b2db5c..e0c0e7be1 100644 --- a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 @@ -23,7 +23,7 @@ increment geometry: npz: {{ soil_npz_anl }} # field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml state: - state variables: {{ soil_addincrement_state_variables }} + state variables: {{ analysis_variables }} field io names: {{ soil_field_io_names }} datapath: ./bkg filetype: fms restart diff --git a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 index 8e6a6d995..61e3197ae 100644 --- a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' - state variables: {{ snow_increment_state_variables }} + state variables: {{ snow_increment_variables }} field io names: {{ snow_field_io_names }} geometry: fms initialization: diff --git a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 index 30be93dc0..ae26eeb04 100644 --- a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' - state variables: {{ soil_increment_state_variables }} + state variables: {{ soil_increment_variables }} field io names: {{ soil_field_io_names }} geometry: fms initialization: diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index 1086f534c..c687c4098 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -122,6 +122,13 @@ marine_config_path: '{{COMOUT_CONF}}' local_ensemble_da_solver: Deterministic LETKF use_linear_observer: true +{% set _analysis_vars = ['sea_ice_area_fraction', + 'sea_ice_thickness', + 'sea_ice_snow_thickness', + 'sea_water_salinity', + 'sea_water_potential_temperature', + 'sea_surface_height_above_geoid'] %} + # Increment variables increment_variables: - sea_ice_area_fraction diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 340ba827c..e611868e0 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -33,23 +33,37 @@ snow_increment_time_fv3: "{{ bkg_time_fv3 }}" # Analysis standard things # ------------------------ -analysis_variables: [totalSnowDepth] minimizer: DRPCG final_diagnostics_departures: anlmob final_prints_frequency: PT3H cost_type: 3D-Var number_of_outer_loops: 1 +# Analysis variables +{% set _analysis_vars = ['totalSnowDepth'] %} +analysis_variables: {{ _analysis_vars }} + # Model things # ------------ # State variables -snow_background_state_variables: [totalSnowDepth, vtype, slmsk, sheleg, - filtered_orography, fraction_of_ice, - fraction_of_land, stc] -snow_ensmean_state_variables: [totalSnowDepth, vtype, slmsk, filtered_orography, - stc, sheleg, fraction_of_ice] -snow_increment_state_variables: [totalSnowDepth, vtype, slmsk] +snow_background_state_variables: {{ _analysis_vars + ['vtype', + 'slmsk', + 'sheleg', + 'filtered_orography', + 'fraction_of_ice', + 'fraction_of_land', + 'stc'] }} +snow_ensmean_state_variables: {{ _analysis_vars + ['vtype', + 'slmsk', + 'filtered_orography', + 'stc', + 'sheleg', + 'fraction_of_ice'] }} + +# Increment variables +snow_increment_variables: {{ _analysis_vars + ['vtype', + 'slmsk'] }} # Variable IO names snow_field_io_names: diff --git a/parm/soil/jcb-base.yaml.j2 b/parm/soil/jcb-base.yaml.j2 index 53c115843..3112fb5e5 100644 --- a/parm/soil/jcb-base.yaml.j2 +++ b/parm/soil/jcb-base.yaml.j2 @@ -33,24 +33,33 @@ soil_increment_time_fv3: "{{ bkg_time_fv3 }}" # Analysis standard things # ------------------------ -analysis_variables: [soilMoistureVolumetric] minimizer: DRPCG final_diagnostics_departures: anlmob final_prints_frequency: PT3H cost_type: 3D-Var number_of_outer_loops: 1 +# Analysis variables +{% set _analysis_vars = ['soilMoistureVolumetric'] %} +analysis_variables: {{ _analysis_vars }} + # Model things # ------------ # State variables -soil_background_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk, filtered_orography, - fraction_of_ice, fraction_of_land] -soil_addincrement_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk, fraction_of_ice] -soil_increment_state_variables: [soilMoistureVolumetric, stc, totalSnowDepth, - sheleg, vtype, slmsk] +soil_background_state_variables: {{ _analysis_vars + ['stc', + 'totalSnowDepth', + 'sheleg', + 'vtype', + 'slmsk', + 'fraction_of_ice' + 'filtered_orography', + 'fraction_of_land'] }} +soil_increment_variables: {{ _analysis_vars + ['stc', + 'totalSnowDepth', + 'sheleg', + 'vtype', + 'slmsk'] }} # Variable IO names soil_field_io_names: From 60b88eae2a8870a885e6e794142e88a337286bcc Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 10 Jun 2026 11:51:26 -0400 Subject: [PATCH 07/13] Clean up --- parm/marine/jcb-base.yaml.j2 | 7 ------- parm/snow/jcb-base.yaml.j2 | 12 +----------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index c687c4098..1086f534c 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -122,13 +122,6 @@ marine_config_path: '{{COMOUT_CONF}}' local_ensemble_da_solver: Deterministic LETKF use_linear_observer: true -{% set _analysis_vars = ['sea_ice_area_fraction', - 'sea_ice_thickness', - 'sea_ice_snow_thickness', - 'sea_water_salinity', - 'sea_water_potential_temperature', - 'sea_surface_height_above_geoid'] %} - # Increment variables increment_variables: - sea_ice_area_fraction diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index e611868e0..5092deec0 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -141,17 +141,7 @@ snow_number_ensemble_members: {{NMEM_ENS}} # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: -- eastward_wind -- northward_wind -- layer_thickness -- air_pressure_thickness -- air_temperature -- air_pressure_at_surface -- water_vapor_mixing_ratio_wrt_moist_air -- cloud_liquid_ice -- cloud_liquid_water -- ozone_mass_mixing_ratio +increment_variables: {{ _analysis_vars }} # Veritcal localization for GETKF vl_fraction_of_retained_variance: 0.750 From 2e66337c2679b3cbc968202eb7cc549331392137 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 11 Jun 2026 10:37:09 -0400 Subject: [PATCH 08/13] some re-refactoring --- parm/atm/jcb-base.yaml.j2 | 66 ++++++++----------- .../atmosphere/atm_addincrement.yaml.j2 | 6 +- .../fv3jedi_correction_increment.yaml.j2 | 6 +- .../fv3jedi_ensemble_recenter.yaml.j2 | 6 +- .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 6 +- .../fv3jedi_fv3inc_variational.yaml.j2 | 6 +- .../atmosphere/atmosphere_background.yaml.j2 | 2 +- .../atmosphere_background_ensemble.yaml.j2 | 2 +- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 16 ++--- ...ere_background_error_static_gsibec.yaml.j2 | 6 +- ...phere_final_increment_cubed_sphere.yaml.j2 | 4 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 2 +- ...tmosphere_final_increment_gaussian.yaml.j2 | 2 +- .../atmosphere_model_pseudo.yaml.j2 | 2 +- ...t_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...utput_ensemble_increments_gaussian.yaml.j2 | 2 +- ...mosphere_posterior_output_gaussian.yaml.j2 | 2 +- 17 files changed, 63 insertions(+), 75 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index ac445b78b..a14038f74 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -38,14 +38,28 @@ atmosphere_grad_red_2: 1e-10 'air_temperature', 'water_vapor_mixing_ratio_wrt_moist_air', 'cloud_liquid_ice', - 'cloud_liquid_water', - 'snow_water', - 'rain_water', - 'graupel', - 'ozone_mass_mixing_ratio'] %} -{% set _analysis_vars = _shared_vars + ['air_pressure_at_surface'] %} -{% set _fv3_increment_vars = _shared_vars + ['air_pressure_thickness', - 'layer_thickness'] %} + 'cloud_liquid_water'] %} +{% set _analysis_vars = _shared_vars + ['ozone_mass_mixing_ratio', + 'snow_water', + 'rain_water', + 'graupel', + 'air_pressure_at_surface'] %} +{% set _fv3_increment_vars = _shared_vars + ['ozone_mass_mixing_ratio', + 'snow_water', + 'rain_water', + 'graupel', + 'air_pressure_thickness', + 'layer_thickness'] %} +{% set _analysis_vars_molesO3 = _shared_vars + ['mole_fraction_of_ozone_in_air', + 'snow_water', + 'rain_water', + 'graupel', + 'air_pressure_at_surface'] %} +{% set _analysis_vars_noprecip = _shared_vars + ['ozone_mass_mixing_ratio', + 'air_pressure_at_surface'] %} +{% set _analysis_vars_molesO3_noprecip = _shared_vars + ['mole_fraction_of_ozone_in_air', + 'air_pressure_at_surface'] %} + analysis_variables: {{ _analysis_vars }} # Model things @@ -72,39 +86,13 @@ atmosphere_jedi2fv3inc_state_variables: {{ _analysis_vars + ['geopotential_heigh # Increment variables atmosphere_jedi_increment_variables: {{ _analysis_vars }} +atmosphere_jedi_increment_variables_molesO3: {{ _analysis_vars_molesO3 }} +atmosphere_jedi_increment_variables_noprecip: {{ _analysis_vars_noprecip }} +atmosphere_jedi_increment_variables_molesO3_noprecip: {{ _analysis_vars_molesO3_noprecip }} atmosphere_fv3_increment_variables: {{ _fv3_increment_vars }} -# GSIBEC-related variables -atmosphere_gsibec_hybrid_control2analysis_input_variables: [eastward_wind, - northward_wind, - air_temperature, - water_vapor_mixing_ratio_wrt_moist_air, - cloud_liquid_ice, - cloud_liquid_water, - snow_water, - rain_water, - graupel, - mole_fraction_of_ozone_in_air, - air_pressure_at_surface] -atmosphere_gsibec_static_control2analysis_input_variables: [eastward_wind, - northward_wind, - air_temperature, - water_vapor_mixing_ratio_wrt_moist_air, - cloud_liquid_ice, - cloud_liquid_water, - mole_fraction_of_ozone_in_air, - air_pressure_at_surface] -atmosphere_gsibec_static_state_variables_to_inverse: [eastward_wind, - northward_wind, - air_temperature, - air_pressure_at_surface, - water_vapor_mixing_ratio_wrt_moist_air, - cloud_liquid_ice, - cloud_liquid_water, - ozone_mass_mixing_ratio] - # Variable IO names -atmosphere_ufs_background_field_io_names: +atmosphere_background_field_io_names: eastward_wind: ugrd northward_wind: vgrd air_temperature: tmp @@ -132,7 +120,7 @@ atmosphere_ufs_background_field_io_names: soilm: soilw1 soilt: soilt1 soilMoistureVolumetric: smc -atmosphere_ufs_increment_field_io_names: +atmosphere_increment_field_io_names: eastward_wind: u_inc northward_wind: v_inc air_temperature: T_inc diff --git a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 index d00b29f88..8a9bec6c0 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/atm_addincrement.yaml.j2 @@ -25,7 +25,7 @@ increment geometry: state: datetime: '{{ atmosphere_background_time_iso }}' state variables: {{ atmosphere_fv3_increment_variables }} - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} filetype: cube sphere history provider: ufs filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc @@ -33,7 +33,7 @@ state: max allowable geometry difference: 1e-4 increment: added variables: {{ atmosphere_fv3_increment_variables }} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} filetype: fms restart is restart: false filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc @@ -42,4 +42,4 @@ output: filetype: auxgrid gridtype: gaussian filename: atmanl. - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 index e22122cc8..223adbb2a 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 @@ -52,13 +52,13 @@ forecast hours: datapath: ./ filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc max allowable geometry difference: 1e-04 - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} variational increment: filetype: fms restart is restart: false datapath: ./ filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} ensemble mean analysis: filetype: cube sphere history provider: ufs @@ -69,5 +69,5 @@ forecast hours: provider: ufs datapath: ./ filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} {% endfor %} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index d0c976f31..57ce10297 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -26,7 +26,7 @@ members: state: datetime: '{{ atmosphere_iau_times_iso[ihour] }}' state variables: {{ atmosphere_fv3_increment_variables }} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} filetype: cube sphere history provider: ufs datapath: ./ @@ -34,7 +34,7 @@ members: max allowable geometry difference: 1e-4 increment: added variables: {{ atmosphere_fv3_increment_variables }} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} filetype: cube sphere history provider: ufs datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} @@ -44,6 +44,6 @@ members: is restart: false datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} filename_nonrestart: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_ratmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} {% endfor %} {% endfor %} diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index d63f0c22e..3afca50e6 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -49,11 +49,11 @@ members from template: max allowable geometry difference: 1e-4 datetime: '{{ atmosphere_background_time_iso }}' state variables: {{ atmosphere_jedi2fv3inc_state_variables }} - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} jedi increment input: filetype: cube sphere history provider: ufs - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} datapath: ./anl/mem%mem% filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: @@ -67,7 +67,7 @@ members from template: filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc {% endif %} datapath: ./anl/mem%mem% - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 29d6edef9..8a9713bfd 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -60,11 +60,11 @@ members: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 state variables: {{ atmosphere_jedi2fv3inc_state_variables }} - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} jedi increment input: filetype: cube sphere history provider: ufs - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} datapath: ./anl filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: @@ -78,7 +78,7 @@ members: datapath: ./anl filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc {% endif %} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} # Optionally test the application {% if do_testing | default(false) %} test: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 index 3567251bb..311f33b9a 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 @@ -7,4 +7,4 @@ filenames: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 state variables: {{ atmosphere_background_state_variables }} -field io names: {{ atmosphere_ufs_background_field_io_names }} +field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index 24dd83f0e..b0c17ee68 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -5,7 +5,7 @@ members from template: filetype: cube sphere history provider: ufs state variables: {{ atmosphere_background_state_variables }} - field io names: {{ atmosphere_ufs_background_field_io_names }} + field io names: {{ atmosphere_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 5c5d41a44..4b14697fa 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -28,11 +28,11 @@ components: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: {{ analysis_variables }} + state variables to inverse: {{ atmosphere_jedi_increment_variables }} linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_gsibec_hybrid_control2analysis_input_variables }} - output variables: {{ analysis_variables }} + input variables: {{ atmosphere_jedi_increment_variables_molesO3 }} + output variables: {{ atmosphere_jedi_increment_variables }} weight: value: 0.125 - covariance: @@ -42,8 +42,8 @@ components: datetime: "{{ atmosphere_background_time_iso }}" filetype: cube sphere history provider: ufs - state variables: {{ analysis_variables }} - field io names: {{ atmosphere_ufs_background_field_io_names }} + state variables: {{ atmosphere_jedi_increment_variables }} + field io names: {{ atmosphere_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true filenames: @@ -57,7 +57,7 @@ components: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: {{ analysis_variables }} + active variables: {{ atmosphere_jedi_increment_variables }} read: general: universe length-scale: 4641.0e3 @@ -206,7 +206,7 @@ components: value: 1.8 linear variable change: linear variable change name: Control2Analysis - input variables: {{ analysis_variables }} - output variables: {{ analysis_variables }} + input variables: {{ atmosphere_jedi_increment_variables }} + output variables: {{ atmosphere_jedi_increment_variables }} weight: value: 0.875 diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 index 41ac90f9c..40cff0007 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 @@ -26,8 +26,8 @@ saber outer blocks: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: {{ atmosphere_gsibec_static_state_variables_to_inverse }} + state variables to inverse: {{ atmosphere_jedi_increment_variables_noprecip }} linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_gsibec_static_control2analysis_input_variables }} - output variables: {{ atmosphere_gsibec_static_state_variables_to_inverse }} + input variables: {{ atmosphere_jedi_increment_variables_molesO3_noprecip }} + output variables: {{ atmosphere_jedi_increment_variables_noprecip }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 7288c61ac..a04c0b135 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -3,8 +3,8 @@ output: filetype: cube sphere history filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs - fields to write: {{ analysis_variables }} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + fields to write: {{ atmosphere_jedi_increment_variables }} + field io names: {{ atmosphere_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 498082757..c13481726 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -4,7 +4,7 @@ output: is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc fields to write: {{ atmosphere_jedi_increment_variables }} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 index 81d1d046b..7367f5899 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_gaussian.yaml.j2 @@ -3,7 +3,7 @@ output: filetype: auxgrid gridtype: gaussian filename: {{atmosphere_final_increment_prefix}} - field io names: {{ atmosphere_ufs_increment_field_io_names }} + field io names: {{ atmosphere_increment_field_io_names }} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 index 4601da8fa..1f57dbc0d 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_model_pseudo.yaml.j2 @@ -8,4 +8,4 @@ filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' filename_sfcw: '%yyyy%mm%dd.%hh%MM%ss.fv_srf_wnd.res.nc' filename_cplr: '%yyyy%mm%dd.%hh%MM%ss.coupler.res' tstep: {{atmosphere_forecast_timestep}} -field io names: {{ atmosphere_ufs_background_field_io_names }} +field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index 7f52a6948..ebd85ac11 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,4 +1,4 @@ filetype: cube sphere history provider: ufs filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc -field io names: {{ atmosphere_ufs_background_field_io_names }} +field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 index 2fca50017..c29420b4a 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_output_ensemble_increments_gaussian.yaml.j2 @@ -1,4 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_ensemble_increment_prefix}} -field io names: {{ atmosphere_ufs_background_field_io_names }} +field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 index 11a387df1..402ecb4b8 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_posterior_output_gaussian.yaml.j2 @@ -1,4 +1,4 @@ filetype: auxgrid gridtype: gaussian filename: {{atmosphere_posterior_output_gaussian}} -field io names: {{ atmosphere_ufs_background_field_io_names }} +field io names: {{ atmosphere_background_field_io_names }} From 47c463876e7a5dac9ed0e860c7636675f40da63f Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 11 Jun 2026 10:40:31 -0400 Subject: [PATCH 09/13] cleanup --- parm/aero/jcb-base.yaml.j2 | 3 +++ parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/parm/aero/jcb-base.yaml.j2 b/parm/aero/jcb-base.yaml.j2 index c423e16bf..e7dc5a09b 100644 --- a/parm/aero/jcb-base.yaml.j2 +++ b/parm/aero/jcb-base.yaml.j2 @@ -49,6 +49,9 @@ aero_det_state_variables: {{ _analysis_vars + ['air_temperature', 'water_vapor_mixing_ratio_wrt_moist_air'] }} aero_bmat_state_variables: {{ _analysis_vars + ['mass_fraction_of_sea_salt005_in_air'] }} +# Increment variables: +aero_increment_variables: {{ _analysis_vars }} + # Variable IO names aero_field_io_names: air_temperature: T diff --git a/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 index 895995ee4..81c324f65 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 @@ -24,13 +24,13 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml state: datetime: '{{ aero_background_time_iso }}' - state variables: {{ analysis_variables }} + state variables: {{ aero_increment_variables }} filetype: cube sphere history provider: ufs datapath: ./ filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf006.nc increment: - added variables: {{ analysis_variables }} + added variables: {{ aero_increment_variables }} filetype: fms restart datapath: ./ filename is datetime templated: true From 68adb8ca845b2c799df66a39a742381f0907df1a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 11 Jun 2026 12:40:39 -0400 Subject: [PATCH 10/13] Save changes --- .../algorithm/snow/snow_addincrement.yaml.j2 | 4 ++-- .../model/soil/soil_background_error.yaml.j2 | 12 ++++-------- .../model/soil/soil_final_increment_fms.yaml.j2 | 2 +- parm/marine/jcb-base.yaml.j2 | 6 ++++++ parm/snow/jcb-base.yaml.j2 | 6 +++--- parm/soil/jcb-base.yaml.j2 | 5 ++++- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 index 1ac692e0d..e93447cbc 100644 --- a/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 @@ -24,13 +24,13 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml state: datetime: '{{ snow_background_time_iso }}' - state variables: {{ analysis_variables }} + state variables: {{ snow_increment_variables }} filetype: cube sphere history provider: ufs datapath: ./ filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc increment: - added variables: {{ analysis_variables }} + added variables: {{ snow_increment_variables }} filetype: fms restart datapath: ./ filename is datetime templated: true diff --git a/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 b/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 index c1220bea3..4d8b20c0d 100644 --- a/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 @@ -12,16 +12,13 @@ saber central block: resolution: 4 explicit length-scales: true horizontal length-scale: - - groups: - - soilMoistureVolumetric + - groups: {{ soil_increment_variables }} value: 1000000.0 vertical length-scale: - - groups: - - soilMoistureVolumetric + - groups: {{ soil_increment_variables }} value: 1500.0 interpolation type: - - groups: - - soilMoistureVolumetric + - groups: {{ soil_increment_variables }} type: c0 same horizontal convolution: true io: @@ -35,6 +32,5 @@ saber outer blocks: variance: explicit stddev: true stddev: - - variables: - - soilMoistureVolumetric + - variables: {{ soil_increment_variables }} value: 0.2 diff --git a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 index ae26eeb04..a4123ebf2 100644 --- a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' - state variables: {{ soil_increment_variables }} + state variables: {{ soil_final_increment_variables }} field io names: {{ soil_field_io_names }} geometry: fms initialization: diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index 1086f534c..d09550e3c 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -46,6 +46,12 @@ marine_background_state_variables: {{ _analysis_vars + ['air_temperature', 'sea_water_depth', 'snow_ice_surface_temperature'] }} +marine_saber_state_variables: +- 'sea_water_potential_temperature', +- 'sea_water_salinity', +- 'sea_surface_height_above_geoid', +- 'sea_ice_area_fraction' + marine_window_begin: '{{ WINDOW_BEGIN }}' marine_window_middle: '{{ WINDOW_MIDDLE }}' marine_window_begin_iso: '{{ WINDOW_BEGIN | to_isotime }}' diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 5092deec0..e10b6d20c 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -56,10 +56,10 @@ snow_background_state_variables: {{ _analysis_vars + ['vtype', 'stc'] }} snow_ensmean_state_variables: {{ _analysis_vars + ['vtype', 'slmsk', - 'filtered_orography', - 'stc', 'sheleg', - 'fraction_of_ice'] }} + 'filtered_orography', + 'fraction_of_ice', + 'stc'] }} # Increment variables snow_increment_variables: {{ _analysis_vars + ['vtype', diff --git a/parm/soil/jcb-base.yaml.j2 b/parm/soil/jcb-base.yaml.j2 index 3112fb5e5..d539b29db 100644 --- a/parm/soil/jcb-base.yaml.j2 +++ b/parm/soil/jcb-base.yaml.j2 @@ -55,7 +55,10 @@ soil_background_state_variables: {{ _analysis_vars + ['stc', 'fraction_of_ice' 'filtered_orography', 'fraction_of_land'] }} -soil_increment_variables: {{ _analysis_vars + ['stc', + +# Increment variables +soil_increment_variables: {{ _analysis_vars }} +soil_final_increment_variables: {{ _analysis_vars + ['stc', 'totalSnowDepth', 'sheleg', 'vtype', From aaf6400cbe108220a892724112fa155998699d9a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 11 Jun 2026 12:52:51 -0400 Subject: [PATCH 11/13] Almost done save marine --- .../algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 | 8 ++++---- parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 | 5 ++--- .../aero/aero_background_error_static_diffusion.yaml.j2 | 2 +- .../model/aero/aero_final_increment_gaussian.yaml.j2 | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 index cf1347c49..9cc6bbcd7 100644 --- a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 @@ -10,7 +10,7 @@ geometry: npy: {{ npy_ges }} npz: {{ npz_ges }} date: "{{ snow_background_time_iso }}" -variables: {{ analysis_variables }} +variables: {{ snow_increment_variables }} increment mask: variable: - slmsk @@ -32,7 +32,7 @@ increment mask: deterministic increment: datetime: "{{ snow_increment_time_iso }}" filetype: fms restart - state variables: {{ analysis_variables }} + state variables: {{ snow_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./inc/det_ensres filename is datetime templated: true @@ -45,7 +45,7 @@ deterministic increment: deterministic background: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: {{ analysis_variables }} + state variables: {{ snow_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./bkg/det_ensres filename is datetime templated: true @@ -74,7 +74,7 @@ ensemble backgrounds: template: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: {{ analysis_variables }} + state variables: {{ snow_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./bkg/mem%mem% filename is datetime templated: true diff --git a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 index e0c0e7be1..00afb153a 100644 --- a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 @@ -21,9 +21,8 @@ increment geometry: npx: {{ soil_npx_anl }} npy: {{ soil_npy_anl }} npz: {{ soil_npz_anl }} -# field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml state: - state variables: {{ analysis_variables }} + state variables: {{ soil_increment_variables }} field io names: {{ soil_field_io_names }} datapath: ./bkg filetype: fms restart @@ -31,7 +30,7 @@ state: datetime: '{{ soil_background_time_iso }}' filename_sfcd: {{ soil_background_time_fv3 }}.sfc_data.nc increment: - added variables: {{ analysis_variables }} + added variables: {{ soil_increment_variables }} field io names: {{ soil_field_io_names }} datapath: ./anl filetype: fms restart diff --git a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 index c75751735..7f3d66dc9 100644 --- a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 @@ -3,7 +3,7 @@ saber central block: saber block name: diffusion read: groups: - - variables: {{ analysis_variables }} + - variables: {{ aero_increment_variables }} horizontal: filepath: "{{aero_berror_data_directory}}/diffusion_hz" vertical: diff --git a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 index 06157bb6b..0bdb69248 100644 --- a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -3,7 +3,7 @@ local interpolator type: atlas interpolator interpolation method: type: finite-element number of latitude gridpoints: {{ aero_npy_anl - 1 }} -variables to output: {{ analysis_variables }} +variables to output: {{ aero_increment_variables }} all model levels: true datapath: {{ aero_analysis_path }} prefix: aeroinc_gauss From 1b4ae5e7168bbd41350967e24145a187f5d8901b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 11 Jun 2026 12:54:09 -0400 Subject: [PATCH 12/13] Almost done save marine --- parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 | 2 +- parm/snow/jcb-base.yaml.j2 | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 index 61e3197ae..4bcdc9419 100644 --- a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' - state variables: {{ snow_increment_variables }} + state variables: {{ snow_final_increment_variables }} field io names: {{ snow_field_io_names }} geometry: fms initialization: diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index e10b6d20c..6de5ca382 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -62,8 +62,9 @@ snow_ensmean_state_variables: {{ _analysis_vars + ['vtype', 'stc'] }} # Increment variables -snow_increment_variables: {{ _analysis_vars + ['vtype', - 'slmsk'] }} +snow_increment_variables: {{ _analysis_vars }} +snow_final_increment_variables: {{ _analysis_vars + ['vtype', + 'slmsk'] }} # Variable IO names snow_field_io_names: From 2cbf8404ec9f7f8071f9e7876ee9067585fffd63 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 12 Jun 2026 10:56:21 -0400 Subject: [PATCH 13/13] Final changes --- parm/aero/jcb-base.yaml.j2 | 2 +- parm/atm/jcb-base.yaml.j2 | 88 +++++++++++-------- .../algorithm/aero/aero_addincrement.yaml.j2 | 4 +- .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 2 +- .../fv3jedi_fv3inc_variational.yaml.j2 | 2 +- .../snow/fv3jedi_land_ensrecenter.yaml.j2 | 8 +- .../algorithm/snow/snow_addincrement.yaml.j2 | 4 +- .../snow/snow_ims_scf_preprocess.yaml.j2 | 2 +- .../algorithm/soil/soil_addincrement.yaml.j2 | 4 +- ..._background_error_static_diffusion.yaml.j2 | 2 +- .../aero_final_increment_gaussian.yaml.j2 | 2 +- .../atmosphere/atmosphere_background.yaml.j2 | 2 +- .../atmosphere_background_ensemble.yaml.j2 | 2 +- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 14 +-- ...ere_background_error_static_gsibec.yaml.j2 | 6 +- ...phere_final_increment_cubed_sphere.yaml.j2 | 2 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 2 +- .../model/marine/marine_background.yaml.j2 | 2 +- .../marine/marine_background_ensemble.yaml.j2 | 2 +- ...d_error_hybrid_diffusion_diffusion.yaml.j2 | 18 ++-- ..._background_error_static_diffusion.yaml.j2 | 10 +-- .../model/snow/snow_background.yaml.j2 | 2 +- .../snow/snow_final_increment_fms.yaml.j2 | 2 +- .../model/soil/soil_background.yaml.j2 | 2 +- .../model/soil/soil_background_error.yaml.j2 | 8 +- .../soil/soil_final_increment_fms.yaml.j2 | 2 +- parm/jcb-gdas/model/soil/soil_output.yaml.j2 | 2 +- parm/marine/jcb-base.yaml.j2 | 44 ++++++---- parm/snow/jcb-base.yaml.j2 | 22 ++--- parm/soil/jcb-base.yaml.j2 | 40 ++++----- 30 files changed, 152 insertions(+), 152 deletions(-) diff --git a/parm/aero/jcb-base.yaml.j2 b/parm/aero/jcb-base.yaml.j2 index e7dc5a09b..64ca2b8ba 100644 --- a/parm/aero/jcb-base.yaml.j2 +++ b/parm/aero/jcb-base.yaml.j2 @@ -50,7 +50,7 @@ aero_det_state_variables: {{ _analysis_vars + ['air_temperature', aero_bmat_state_variables: {{ _analysis_vars + ['mass_fraction_of_sea_salt005_in_air'] }} # Increment variables: -aero_increment_variables: {{ _analysis_vars }} +aero_det_increment_variables: {{ _analysis_vars }} # Variable IO names aero_field_io_names: diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index a14038f74..14a11dab3 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -39,26 +39,26 @@ atmosphere_grad_red_2: 1e-10 'water_vapor_mixing_ratio_wrt_moist_air', 'cloud_liquid_ice', 'cloud_liquid_water'] %} -{% set _analysis_vars = _shared_vars + ['ozone_mass_mixing_ratio', +{% set _analysis_vars = _shared_vars + ['air_pressure_at_surface', + 'ozone_mass_mixing_ratio', 'snow_water', 'rain_water', - 'graupel', - 'air_pressure_at_surface'] %} -{% set _fv3_increment_vars = _shared_vars + ['ozone_mass_mixing_ratio', + 'graupel'] %} +{% set _analysis_vars_molesO3 = _shared_vars + ['air_pressure_at_surface', + 'mole_fraction_of_ozone_in_air', 'snow_water', 'rain_water', - 'graupel', - 'air_pressure_thickness', - 'layer_thickness'] %} -{% set _analysis_vars_molesO3 = _shared_vars + ['mole_fraction_of_ozone_in_air', + 'graupel'] %} +{% set _analysis_vars_noprecip = _shared_vars + ['air_pressure_at_surface', + 'ozone_mass_mixing_ratio'] %} +{% set _analysis_vars_molesO3_noprecip = _shared_vars + ['air_pressure_at_surface', + 'mole_fraction_of_ozone_in_air'] %} +{% set _fv3_increment_vars = _shared_vars + ['air_pressure_thickness', + 'layer_thickness', + 'ozone_mass_mixing_ratio', 'snow_water', 'rain_water', - 'graupel', - 'air_pressure_at_surface'] %} -{% set _analysis_vars_noprecip = _shared_vars + ['ozone_mass_mixing_ratio', - 'air_pressure_at_surface'] %} -{% set _analysis_vars_molesO3_noprecip = _shared_vars + ['mole_fraction_of_ozone_in_air', - 'air_pressure_at_surface'] %} + 'graupel'] %} analysis_variables: {{ _analysis_vars }} @@ -66,29 +66,29 @@ analysis_variables: {{ _analysis_vars }} # ------------ # State variables -atmosphere_background_state_variables: {{ _analysis_vars + ['geopotential_height_at_surface', - 'cloud_ice_number_concentration', - 'rain_number_concentration', - 'slmsk', - 'sheleg', - 'skin_temperature_at_surface', - 'vtype', - 'stype', - 'vfrac', - 'soilt', - 'soilm', - 'totalSnowDepthMeters', - 'eastward_wind_at_surface', - 'northward_wind_at_surface', - 'f10m', - 'air_pressure_thickness'] }} +atmosphere_det_state_variables: {{ _analysis_vars + ['geopotential_height_at_surface', + 'cloud_ice_number_concentration', + 'rain_number_concentration', + 'slmsk', + 'sheleg', + 'skin_temperature_at_surface', + 'vtype', + 'stype', + 'vfrac', + 'soilt', + 'soilm', + 'totalSnowDepthMeters', + 'eastward_wind_at_surface', + 'northward_wind_at_surface', + 'f10m', + 'air_pressure_thickness'] }} atmosphere_jedi2fv3inc_state_variables: {{ _analysis_vars + ['geopotential_height_at_surface'] }} # Increment variables -atmosphere_jedi_increment_variables: {{ _analysis_vars }} -atmosphere_jedi_increment_variables_molesO3: {{ _analysis_vars_molesO3 }} -atmosphere_jedi_increment_variables_noprecip: {{ _analysis_vars_noprecip }} -atmosphere_jedi_increment_variables_molesO3_noprecip: {{ _analysis_vars_molesO3_noprecip }} +atmosphere_det_increment_variables: {{ _analysis_vars }} +atmosphere_det_increment_variables_molesO3: {{ _analysis_vars_molesO3 }} +atmosphere_det_increment_variables_noprecip: {{ _analysis_vars_noprecip }} +atmosphere_det_increment_variables_molesO3_noprecip: {{ _analysis_vars_molesO3_noprecip }} atmosphere_fv3_increment_variables: {{ _fv3_increment_vars }} # Variable IO names @@ -227,8 +227,24 @@ bias_files_dict: # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: {{ _analysis_vars + ['air_pressure_thickness', - 'layer_thickness'] %}} +{% set _increment_vars = _analysis_vars + ['air_pressure_thickness', + 'layer_thickness'] %} + +atmosphere_ens_state_variables: {{ _increment_vars + ['geopotential_height_at_surface', + 'cloud_ice_number_concentration', + 'rain_number_concentration', + 'slmsk', + 'sheleg', + 'skin_temperature_at_surface', + 'vtype', + 'stype', + 'vfrac', + 'soilt', + 'soilm', + 'totalSnowDepthMeters', + 'eastward_wind_at_surface', + 'northward_wind_at_surface', + 'f10m'] }} atm_enkfonly: {{ DOENKFONLY_ATM | default(false, true) }} diff --git a/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 index 81c324f65..9720889ab 100644 --- a/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/aero/aero_addincrement.yaml.j2 @@ -24,13 +24,13 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml state: datetime: '{{ aero_background_time_iso }}' - state variables: {{ aero_increment_variables }} + state variables: {{ aero_det_increment_variables }} filetype: cube sphere history provider: ufs datapath: ./ filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf006.nc increment: - added variables: {{ aero_increment_variables }} + added variables: {{ aero_det_increment_variables }} filetype: fms restart datapath: ./ filename is datetime templated: true diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 3afca50e6..333a34352 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -2,7 +2,7 @@ variable change: variable change name: Model2GeoVaLs input variables: {{ atmosphere_jedi2fv3inc_state_variables }} output variables: {{ atmosphere_fv3_increment_variables }} -jedi increment variables: {{ atmosphere_jedi_increment_variables }} +jedi increment variables: {{ atmosphere_det_increment_variables }} fv3 increment variables: {{ atmosphere_fv3_increment_variables }} background geometry: fms initialization: diff --git a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 8a9713bfd..123ef067b 100644 --- a/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/parm/jcb-gdas/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -2,7 +2,7 @@ variable change: variable change name: Model2GeoVaLs input variables: {{ atmosphere_jedi2fv3inc_state_variables }} output variables: {{ atmosphere_fv3_increment_variables }} -jedi increment variables: {{ atmosphere_jedi_increment_variables }} +jedi increment variables: {{ atmosphere_det_increment_variables }} fv3 increment variables: {{ atmosphere_fv3_increment_variables }} background geometry: fms initialization: diff --git a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 index 9cc6bbcd7..715e39993 100644 --- a/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/fv3jedi_land_ensrecenter.yaml.j2 @@ -10,7 +10,7 @@ geometry: npy: {{ npy_ges }} npz: {{ npz_ges }} date: "{{ snow_background_time_iso }}" -variables: {{ snow_increment_variables }} +variables: {{ snow_det_increment_variables }} increment mask: variable: - slmsk @@ -32,7 +32,7 @@ increment mask: deterministic increment: datetime: "{{ snow_increment_time_iso }}" filetype: fms restart - state variables: {{ snow_increment_variables }} + state variables: {{ snow_det_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./inc/det_ensres filename is datetime templated: true @@ -45,7 +45,7 @@ deterministic increment: deterministic background: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: {{ snow_increment_variables }} + state variables: {{ snow_det_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./bkg/det_ensres filename is datetime templated: true @@ -74,7 +74,7 @@ ensemble backgrounds: template: datetime: "{{ snow_background_time_iso }}" filetype: fms restart - state variables: {{ snow_increment_variables }} + state variables: {{ snow_det_increment_variables }} field io names: {{ snow_field_io_names }} datapath: ./bkg/mem%mem% filename is datetime templated: true diff --git a/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 index e93447cbc..58c4628ae 100644 --- a/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/snow_addincrement.yaml.j2 @@ -24,13 +24,13 @@ increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml state: datetime: '{{ snow_background_time_iso }}' - state variables: {{ snow_increment_variables }} + state variables: {{ snow_det_increment_variables }} filetype: cube sphere history provider: ufs datapath: ./ filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc increment: - added variables: {{ snow_increment_variables }} + added variables: {{ snow_det_increment_variables }} filetype: fms restart datapath: ./ filename is datetime templated: true diff --git a/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 b/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 index 1b5cc7b78..181b08136 100644 --- a/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 +++ b/parm/jcb-gdas/algorithm/snow/snow_ims_scf_preprocess.yaml.j2 @@ -25,7 +25,7 @@ date: '{{ snow_background_time_iso }}' output ioda file: '{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}ims_snow.tm00.nc' input scf file: './obs/ims{{ snow_background_time_julian }}_4km_v1.3.{{ ims_scf_obs_suffix }}' mapping file: './obs/IMS4km_to_FV3_mapping.{{ snow_orog_prefix }}_oro_data.nc' -variables: {{ snow_background_state_variables }} +variables: {{ snow_det_state_variables }} background: {% filter indent(width=2) %} {% set background_file = background_file|default(model_component ~ 'background', true) ~ '.yaml.j2' %} diff --git a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 index 00afb153a..37b15f13e 100644 --- a/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 +++ b/parm/jcb-gdas/algorithm/soil/soil_addincrement.yaml.j2 @@ -22,7 +22,7 @@ increment geometry: npy: {{ soil_npy_anl }} npz: {{ soil_npz_anl }} state: - state variables: {{ soil_increment_variables }} + state variables: {{ soil_det_increment_variables }} field io names: {{ soil_field_io_names }} datapath: ./bkg filetype: fms restart @@ -30,7 +30,7 @@ state: datetime: '{{ soil_background_time_iso }}' filename_sfcd: {{ soil_background_time_fv3 }}.sfc_data.nc increment: - added variables: {{ soil_increment_variables }} + added variables: {{ soil_det_increment_variables }} field io names: {{ soil_field_io_names }} datapath: ./anl filetype: fms restart diff --git a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 index 7f3d66dc9..e925226ca 100644 --- a/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_background_error_static_diffusion.yaml.j2 @@ -3,7 +3,7 @@ saber central block: saber block name: diffusion read: groups: - - variables: {{ aero_increment_variables }} + - variables: {{ aero_det_increment_variables }} horizontal: filepath: "{{aero_berror_data_directory}}/diffusion_hz" vertical: diff --git a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 index 0bdb69248..d75a42111 100644 --- a/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/parm/jcb-gdas/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -3,7 +3,7 @@ local interpolator type: atlas interpolator interpolation method: type: finite-element number of latitude gridpoints: {{ aero_npy_anl - 1 }} -variables to output: {{ aero_increment_variables }} +variables to output: {{ aero_det_increment_variables }} all model levels: true datapath: {{ aero_analysis_path }} prefix: aeroinc_gauss diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 index 311f33b9a..fe49b95b7 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background.yaml.j2 @@ -6,5 +6,5 @@ filenames: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc max allowable geometry difference: 1e-4 -state variables: {{ atmosphere_background_state_variables }} +state variables: {{ atmosphere_det_state_variables }} field io names: {{ atmosphere_background_field_io_names }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index b0c17ee68..b6bdb28e6 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -4,7 +4,7 @@ members from template: datetime: '{{ atmosphere_background_time_iso }}' filetype: cube sphere history provider: ufs - state variables: {{ atmosphere_background_state_variables }} + state variables: {{ atmosphere_ens_state_variables }} field io names: {{ atmosphere_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 4b14697fa..fa75955b8 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -28,11 +28,11 @@ components: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: {{ atmosphere_jedi_increment_variables }} + state variables to inverse: {{ atmosphere_det_increment_variables }} linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_jedi_increment_variables_molesO3 }} - output variables: {{ atmosphere_jedi_increment_variables }} + input variables: {{ atmosphere_det_increment_variables_molesO3 }} + output variables: {{ atmosphere_det_increment_variables }} weight: value: 0.125 - covariance: @@ -42,7 +42,7 @@ components: datetime: "{{ atmosphere_background_time_iso }}" filetype: cube sphere history provider: ufs - state variables: {{ atmosphere_jedi_increment_variables }} + state variables: {{ atmosphere_det_increment_variables }} field io names: {{ atmosphere_background_field_io_names }} datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true @@ -57,7 +57,7 @@ components: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: {{ atmosphere_jedi_increment_variables }} + active variables: {{ atmosphere_det_increment_variables }} read: general: universe length-scale: 4641.0e3 @@ -206,7 +206,7 @@ components: value: 1.8 linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_jedi_increment_variables }} - output variables: {{ atmosphere_jedi_increment_variables }} + input variables: {{ atmosphere_det_increment_variables }} + output variables: {{ atmosphere_det_increment_variables }} weight: value: 0.875 diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 index 40cff0007..5e66178ee 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_background_error_static_gsibec.yaml.j2 @@ -26,8 +26,8 @@ saber outer blocks: local interpolator type: oops unstructured grid interpolator inverse interpolator: local interpolator type: oops unstructured grid interpolator - state variables to inverse: {{ atmosphere_jedi_increment_variables_noprecip }} + state variables to inverse: {{ atmosphere_det_increment_variables_noprecip }} linear variable change: linear variable change name: Control2Analysis - input variables: {{ atmosphere_jedi_increment_variables_molesO3_noprecip }} - output variables: {{ atmosphere_jedi_increment_variables_noprecip }} + input variables: {{ atmosphere_det_increment_variables_molesO3_noprecip }} + output variables: {{ atmosphere_det_increment_variables_noprecip }} diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index a04c0b135..d2eef5bc8 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -3,7 +3,7 @@ output: filetype: cube sphere history filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs - fields to write: {{ atmosphere_jedi_increment_variables }} + fields to write: {{ atmosphere_det_increment_variables }} field io names: {{ atmosphere_increment_field_io_names }} geometry: fms initialization: diff --git a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index c13481726..e88573d69 100644 --- a/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/parm/jcb-gdas/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -3,7 +3,7 @@ output: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc - fields to write: {{ atmosphere_jedi_increment_variables }} + fields to write: {{ atmosphere_det_increment_variables }} field io names: {{ atmosphere_increment_field_io_names }} geometry: fms initialization: diff --git a/parm/jcb-gdas/model/marine/marine_background.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background.yaml.j2 index bdcd445cd..eabf1b23b 100644 --- a/parm/jcb-gdas/model/marine/marine_background.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background.yaml.j2 @@ -3,4 +3,4 @@ basename: {{ marine_background_path}} ocn_filename: MOM.res.nc ice_filename: cice.res.nc date: "{{ marine_background_time }}" -state variables: {{ marine_background_state_variables }} +state variables: {{ marine_det_state_variables }} diff --git a/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 index e79760c22..dbf968065 100644 --- a/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 @@ -5,6 +5,6 @@ members from template: ice_filename: "ice.%mem%.nc" read_from_file: 1 basename: {{ marine_enspert_relpath }}/ens/ - state variables: {{ increment_variables }} + state variables: {{ marine_ens_state_variables }} pattern: '%mem%' nmembers: {{ marine_number_ensemble_members }} diff --git a/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 index 420117622..ad6f2bcf7 100644 --- a/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 @@ -7,11 +7,7 @@ components: saber block name: diffusion read: groups: - - variables: - - sea_water_potential_temperature - - sea_water_salinity - - sea_surface_height_above_geoid - - sea_ice_area_fraction + - variables: {{ marine_saber_central_block_variables }} horizontal: filepath: ./staticb/hz_ocean vertical: @@ -34,8 +30,8 @@ components: ice_filename: 'ice.bkgerr_parametric_stddev.nc' read_from_file: 3 linear variable change: - input variables: {{ analysis_variables }} - output variables: {{ analysis_variables }} + input variables: {{ marine_det_increment_variables }} + output variables: {{ marine_det_increment_variables }} linear variable changes: - linear variable change name: BalanceSOCA weight: @@ -52,7 +48,7 @@ components: basename: ../ensdata/ ocn_filename: ocn.pert.%mem%.nc ice_filename: ice.pert.%mem%.nc - state variables: + state variables: # TODO(David): This variable list could be centralized in jcb-base.yaml.j2 - sea_water_potential_temperature - sea_water_salinity #- eastward_sea_water_velocity @@ -70,11 +66,7 @@ components: saber block name: diffusion read: groups: - - variables: - - sea_water_potential_temperature - - sea_water_salinity - - sea_surface_height_above_geoid - - sea_ice_area_fraction + - variables: {{ marine_saber_central_block_variables }} multivariate strategy: duplicated horizontal: filepath: ./staticb/hz_ocean diff --git a/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 b/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 index c53389cfb..4f0dad733 100644 --- a/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 +++ b/parm/jcb-gdas/model/marine/marine_background_error_static_diffusion.yaml.j2 @@ -4,11 +4,7 @@ saber central block: saber block name: diffusion read: groups: - - variables: - - sea_water_potential_temperature - - sea_water_salinity - - sea_surface_height_above_geoid - - sea_ice_area_fraction + - variables: {{ marine_saber_central_block_variables }} horizontal: filepath: ./staticb/hz_ocean vertical: @@ -50,7 +46,7 @@ saber outer blocks: # load model: /work/noaa/da/gvernier/ai/runs/antarctic.pt linear variable change: - input variables: {{ analysis_variables }} - output variables: {{ analysis_variables }} + input variables: {{ marine_det_increment_variables }} + output variables: {{ marine_det_increment_variables }} linear variable changes: - linear variable change name: BalanceSOCA diff --git a/parm/jcb-gdas/model/snow/snow_background.yaml.j2 b/parm/jcb-gdas/model/snow/snow_background.yaml.j2 index d922eed27..8676c5ca8 100644 --- a/parm/jcb-gdas/model/snow/snow_background.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_background.yaml.j2 @@ -2,7 +2,7 @@ datapath: {{ snow_background_path }} filetype: fms restart skip coupler file: true datetime: '{{ snow_background_time_iso }}' -state variables: {{ snow_background_state_variables }} +state variables: {{ snow_det_state_variables }} field io names: {{ snow_field_io_names }} filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' diff --git a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 index 4bcdc9419..0d1cb6996 100644 --- a/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/snow/snow_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res' - state variables: {{ snow_final_increment_variables }} + state variables: {{ snow_det_increment_variables_final }} field io names: {{ snow_field_io_names }} geometry: fms initialization: diff --git a/parm/jcb-gdas/model/soil/soil_background.yaml.j2 b/parm/jcb-gdas/model/soil/soil_background.yaml.j2 index 9757d30ea..7957a9a9d 100644 --- a/parm/jcb-gdas/model/soil/soil_background.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_background.yaml.j2 @@ -2,7 +2,7 @@ datapath: {{ soil_background_path }} filetype: fms restart skip coupler file: true datetime: '{{ soil_background_time_iso }}' -state variables: {{ soil_background_state_variables }} +state variables: {{ soil_det_state_variables }} field io names: {{ soil_field_io_names }} filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' diff --git a/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 b/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 index 4d8b20c0d..ba8169e71 100644 --- a/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_background_error.yaml.j2 @@ -12,13 +12,13 @@ saber central block: resolution: 4 explicit length-scales: true horizontal length-scale: - - groups: {{ soil_increment_variables }} + - groups: {{ soil_det_increment_variables }} value: 1000000.0 vertical length-scale: - - groups: {{ soil_increment_variables }} + - groups: {{ soil_det_increment_variables }} value: 1500.0 interpolation type: - - groups: {{ soil_increment_variables }} + - groups: {{ soil_det_increment_variables }} type: c0 same horizontal convolution: true io: @@ -32,5 +32,5 @@ saber outer blocks: variance: explicit stddev: true stddev: - - variables: {{ soil_increment_variables }} + - variables: {{ soil_det_increment_variables }} value: 0.2 diff --git a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 index a4123ebf2..7623c70a3 100644 --- a/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_final_increment_fms.yaml.j2 @@ -5,7 +5,7 @@ output: filetype: fms restart filename_sfcd: '{{ soil_background_time_fv3 }}.sfc_data.nc' filename_cplr: '{{ soil_background_time_fv3 }}.coupler.res' - state variables: {{ soil_final_increment_variables }} + state variables: {{ soil_det_increment_variables_final }} field io names: {{ soil_field_io_names }} geometry: fms initialization: diff --git a/parm/jcb-gdas/model/soil/soil_output.yaml.j2 b/parm/jcb-gdas/model/soil/soil_output.yaml.j2 index 33f579f8f..a860f789d 100644 --- a/parm/jcb-gdas/model/soil/soil_output.yaml.j2 +++ b/parm/jcb-gdas/model/soil/soil_output.yaml.j2 @@ -1,4 +1,4 @@ -state variables: {{ soil_background_state_variables }} +state variables: {{ soil_det_state_variables }} field io names: {{ soil_field_io_names }} datapath: ./anl prefix: soil_finanl diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index d09550e3c..1ef9f68ec 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -39,19 +39,22 @@ analysis_variables: {{ _analysis_vars }} # ------------ # State variables -marine_background_state_variables: {{ _analysis_vars + ['air_temperature', - 'bulk_ice_salinity', - 'sea_water_cell_thickness', - 'ocean_mixed_layer_thickness', - 'sea_water_depth', - 'snow_ice_surface_temperature'] }} - -marine_saber_state_variables: -- 'sea_water_potential_temperature', -- 'sea_water_salinity', -- 'sea_surface_height_above_geoid', +marine_det_state_variables: {{ _analysis_vars + ['air_temperature', + 'bulk_ice_salinity', + 'sea_water_cell_thickness', + 'ocean_mixed_layer_thickness', + 'sea_water_depth', + 'snow_ice_surface_temperature'] }} + +marine_saber_central_block_variables: +- 'sea_water_potential_temperature' +- 'sea_water_salinity' +- 'sea_surface_height_above_geoid' - 'sea_ice_area_fraction' +# Increment variables +marine_det_increment_variables: {{ _analysis_vars }} + marine_window_begin: '{{ WINDOW_BEGIN }}' marine_window_middle: '{{ WINDOW_MIDDLE }}' marine_window_begin_iso: '{{ WINDOW_BEGIN | to_isotime }}' @@ -129,14 +132,17 @@ local_ensemble_da_solver: Deterministic LETKF use_linear_observer: true # Increment variables -increment_variables: -- sea_ice_area_fraction -- sea_water_salinity -- sea_water_potential_temperature -- sea_surface_height_above_geoid -- sea_water_cell_thickness -- eastward_sea_water_velocity -- northward_sea_water_velocity +{% set _increment_vars = ['sea_ice_area_fraction', + 'sea_water_salinity', + 'sea_water_potential_temperature', + 'sea_surface_height_above_geoid', + 'sea_water_cell_thickness', + 'eastward_sea_water_velocity', + 'northward_sea_water_velocity'] %} +increment_variables: {{ _increment_vars }} + +# State variables +marine_ens_state_variables: {{ _increment_vars }} # Driver driver_save_posterior_mean: true diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 6de5ca382..e5043ac62 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -47,13 +47,13 @@ analysis_variables: {{ _analysis_vars }} # ------------ # State variables -snow_background_state_variables: {{ _analysis_vars + ['vtype', - 'slmsk', - 'sheleg', - 'filtered_orography', - 'fraction_of_ice', - 'fraction_of_land', - 'stc'] }} +snow_det_state_variables: {{ _analysis_vars + ['vtype', + 'slmsk', + 'sheleg', + 'filtered_orography', + 'fraction_of_ice', + 'fraction_of_land', + 'stc'] }} snow_ensmean_state_variables: {{ _analysis_vars + ['vtype', 'slmsk', 'sheleg', @@ -62,9 +62,9 @@ snow_ensmean_state_variables: {{ _analysis_vars + ['vtype', 'stc'] }} # Increment variables -snow_increment_variables: {{ _analysis_vars }} -snow_final_increment_variables: {{ _analysis_vars + ['vtype', - 'slmsk'] }} +snow_det_increment_variables: {{ _analysis_vars }} +snow_det_increment_variables_final: {{ _analysis_vars + ['vtype', + 'slmsk'] }} # Variable IO names snow_field_io_names: @@ -142,7 +142,7 @@ snow_number_ensemble_members: {{NMEM_ENS}} # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: {{ _analysis_vars }} +increment_variables: {{ _analysis_vars }} # dummy for now # Veritcal localization for GETKF vl_fraction_of_retained_variance: 0.750 diff --git a/parm/soil/jcb-base.yaml.j2 b/parm/soil/jcb-base.yaml.j2 index d539b29db..65cc6285d 100644 --- a/parm/soil/jcb-base.yaml.j2 +++ b/parm/soil/jcb-base.yaml.j2 @@ -47,22 +47,22 @@ analysis_variables: {{ _analysis_vars }} # ------------ # State variables -soil_background_state_variables: {{ _analysis_vars + ['stc', - 'totalSnowDepth', - 'sheleg', - 'vtype', - 'slmsk', - 'fraction_of_ice' - 'filtered_orography', - 'fraction_of_land'] }} +soil_det_state_variables: {{ _analysis_vars + ['stc', + 'totalSnowDepth', + 'sheleg', + 'vtype', + 'slmsk', + 'fraction_of_ice' + 'filtered_orography', + 'fraction_of_land'] }} # Increment variables -soil_increment_variables: {{ _analysis_vars }} -soil_final_increment_variables: {{ _analysis_vars + ['stc', - 'totalSnowDepth', - 'sheleg', - 'vtype', - 'slmsk'] }} +soil_det_increment_variables: {{ _analysis_vars }} +soil_det_increment_variables_final: {{ _analysis_vars + ['stc', + 'totalSnowDepth', + 'sheleg', + 'vtype', + 'slmsk'] }} # Variable IO names soil_field_io_names: @@ -141,17 +141,7 @@ soil_number_ensemble_members: {{NMEM_ENS}} # ------------------------- local_ensemble_da_solver: Deterministic GETKF -increment_variables: -- eastward_wind -- northward_wind -- layer_thickness -- air_pressure_thickness -- air_temperature -- air_pressure_at_surface -- water_vapor_mixing_ratio_wrt_moist_air -- cloud_liquid_ice -- cloud_liquid_water -- ozone_mass_mixing_ratio +increment_variables: {{ _analysis_vars}} # dummy for now # Veritcal localization for GETKF vl_fraction_of_retained_variance: 0.750