From da9bb70612303d71083147c1338516c016dc9a21 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 14 Jan 2025 15:12:51 -0600 Subject: [PATCH 01/35] Initial commit --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 72 +++++++++++++++++++ .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 16 +++-- .../fv3jedi_fv3inc_variational.yaml.j2 | 33 ++++----- .../atmosphere/atmosphere_background.yaml.j2 | 2 +- ...phere_final_increment_cubed_sphere.yaml.j2 | 4 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 18 +++++ ...t_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...ensemble_increments_fms_nonrestart.yaml.j2 | 4 ++ ...here_posterior_output_cubed_sphere.yaml.j2 | 5 ++ .../gdas-atmosphere-templates.yaml | 6 +- 10 files changed, 131 insertions(+), 31 deletions(-) create mode 100644 algorithm/atmosphere/fv3jedi_ecen.yaml.j2 create mode 100644 model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 create mode 100644 model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 create mode 100644 model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 new file mode 100644 index 0000000..cbd2014 --- /dev/null +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -0,0 +1,72 @@ +forecast hours: ['006'] +window begin: {{ window_begin }} +state variables: [liq_wat,delz,delp,w,graupel,hgtsfc, + ice_wat,ice_nc,rain_nc,o3mr,rainwat,snowwat,sphum,t,ua,va] +increment variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] +background geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +increment geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml +ensemble mean analysis geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_anl }} + npy: {{ atmosphere_npy_anl }} + npz: {{ atmosphere_npz_anl }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +correction increment geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_anl }} + npy: {{ atmosphere_npy_anl }} + npz: {{ atmosphere_npz_anl }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml +additions from template: + pattern: '%hr%' + template: + background: + filetype: cube sphere history + provider: ufs + filename: ./atmf%hr%.nc + increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./atmi%hr%.nc + ensemble mean analysis: + filetype: cube sphere history + provider: ufs + filename: ./atma%hr%.ensmean.nc + correction increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./catmi%hr%.nc diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 576a133..ebb76c3 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -48,17 +48,19 @@ members from template: provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] - filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] + filenames: [ atmf006.nc, sfcf006.nc ] datetime: '{{ atmosphere_background_time_iso }}' state variables: *bkgvars jedi increment input: - filetype: cube sphere history - filename: ./anl/mem%mem%/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4 - provider: ufs + filetype: fms restart + is restart: false + datapath: ./anl/mem%mem% + filename_nonrestart: atminc.jedi.nc fv3 increment output: - filetype: auxgrid - gridtype: gaussian - filename: ./anl/mem%mem%/atminc. + filetype: fms restart + is restart: false + datapath: ./anl/mem%mem% + filename_nonrestart: atminc.nc pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index dd60ebb..4ea7eca 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -1,7 +1,7 @@ variable change: variable change name: Model2GeoVaLs - input variables: &bkgvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc] - output variables: &fv3incrvars [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + input variables: &bkgvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc] + output variables: &fv3incrvars [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] jedi increment variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] fv3 increment variables: *fv3incrvars background geometry: @@ -24,10 +24,10 @@ jedi increment geometry: layout: - {{ atmosphere_layout_x }} - {{ atmosphere_layout_y }} - npx: {{ atmosphere_npx_anl }} - npy: {{ atmosphere_npy_anl }} - npz: {{ atmosphere_npz_anl }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml fv3 increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -36,9 +36,9 @@ fv3 increment geometry: layout: - {{ atmosphere_layout_x }} - {{ atmosphere_layout_y }} - npx: {{ atmosphere_npx_anl }} - npy: {{ atmosphere_npy_anl }} - npz: {{ atmosphere_npz_anl }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml members: - background input: @@ -48,16 +48,17 @@ members: ufs soil nlev: 4 ufs fields split by level: [smc,stc] datetime: "{{ atmosphere_background_time_iso }}" - filenames: [ {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc ] + filenames: [ atmf006.nc, sfcf006.nc ] state variables: *bkgvars jedi increment input: - filetype: cube sphere history - filename: ./anl/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4 - provider: ufs + filetype: fms restart + is restart: false + filename is datetime templated: true + filename_nonrestart: ./anl/atminc.jedi.nc fv3 increment output: - filetype: auxgrid - gridtype: gaussian - filename: ./anl/atminc. + filetype: fms restart + is restart: false + filename_nonrestart: ./anl/atminc.nc # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/atmosphere/atmosphere_background.yaml.j2 b/model/atmosphere/atmosphere_background.yaml.j2 index 09a10c9..68a2dd8 100644 --- a/model/atmosphere/atmosphere_background.yaml.j2 +++ b/model/atmosphere/atmosphere_background.yaml.j2 @@ -2,7 +2,7 @@ datapath: {{ atmosphere_background_path }} filetype: cube sphere history provider: ufs datetime: "{{ atmosphere_background_time_iso }}" -filenames: [ {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc ] +filenames: [ atmf006.nc, sfcf006.nc ] state variables: [ua,va,t,delp,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc, slmsk,sheleg,tmpsfc,vtype,stype,vfrac,soilt1,soilw1,snwdphMeters, u_srf,v_srf,f10m] diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 7d9f7e7..e3b98ad 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -1,9 +1,9 @@ output: state component: filetype: cube sphere history - filename: ./anl/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4 + filename: ./anl/atminc.jedi.nc provider: ufs - fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] + fields to write: {{atmosphere_analysis_variables}} geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 new file mode 100644 index 0000000..cefc78a --- /dev/null +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -0,0 +1,18 @@ +output: + state component: + filetype: fms restart + is restart: false + filename_nonrestart: ./anl/atminc.jedi.nc + fields to write: {{atmosphere_analysis_variables}} +geometry: + fms initialization: + namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" + field table filename: "{{atmosphere_fv3jedi_files_path}}/field_table" + akbk: "{{atmosphere_fv3jedi_files_path}}/akbk.nc4" + layout: + - {{atmosphere_layout_x}} + - {{atmosphere_layout_y}} + npx: {{atmosphere_npx_ges}} + npy: {{atmosphere_npy_ges}} + npz: {{atmosphere_npz_ges}} + field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_fv3inc.yaml" diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index cf655f1..bd9b798 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,3 +1,3 @@ filetype: cube sphere history provider: ufs -filename: ./anl/mem%{member}%/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4 +filename: ./anl/mem%{member}%/atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 new file mode 100644 index 0000000..f279ee5 --- /dev/null +++ b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 @@ -0,0 +1,4 @@ +filetype: fms restart +is restart: false +datapath: ./anl/mem%{member}% +filename_nonrestart: atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 new file mode 100644 index 0000000..cddc67f --- /dev/null +++ b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -0,0 +1,5 @@ +filetype: cube sphere history +provider: ufs +ufs soil nlev: 4 +ufs fields split by level: [smc,stc] +filename: ./anl/atmanl.ensmean.nc diff --git a/test/client_integration/gdas-atmosphere-templates.yaml b/test/client_integration/gdas-atmosphere-templates.yaml index 4f66e4d..210fdd7 100644 --- a/test/client_integration/gdas-atmosphere-templates.yaml +++ b/test/client_integration/gdas-atmosphere-templates.yaml @@ -36,7 +36,7 @@ window_length: PT6H bound_to_include: begin minimizer: DRPCG final_diagnostics_departures: anlmob -analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] +analysis_variables: &anvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] number_of_outer_loops: 2 # Testing @@ -46,6 +46,7 @@ do_testing: false # Model things # ------------ +atmosphere_analysis_variables: *anvars atmosphere_layout_x: 2 atmosphere_layout_y: 2 atmosphere_npx_ges: 361 @@ -60,9 +61,6 @@ atmosphere_fv3jedi_files_path: DATA/fv3jedi atmosphere_background_path: DATA/bkg atmosphere_background_ensemble_path: "DATA/ens/mem%mem%" -atmosphere_variational_history_prefix: "bkg_" -atmosphere_ensemble_history_prefix: "ens_" - atmosphere_background_time_iso: '2024-02-02T00:00:00Z' # Background error From c69d5e592712f78918b991094d6735d768e9f8c9 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 15 Jan 2025 20:12:37 +0000 Subject: [PATCH 02/35] Save progress --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index cbd2014..5078976 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,8 +1,13 @@ forecast hours: ['006'] window begin: {{ window_begin }} -state variables: [liq_wat,delz,delp,w,graupel,hgtsfc, - ice_wat,ice_nc,rain_nc,o3mr,rainwat,snowwat,sphum,t,ua,va] -increment variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] +atmospheric state variables: [liq_wat,delz,delp,w,graupel,hgtsfc,ice_wat,ice_nc,rain_nc, + o3mr,rainwat,snowwat,sphum,t,ua,va] +surface state variables: [alnsf,alnwf,alvsf,alvwf,cnwat,crain,f10m,facsf,facwf,ffhh,ffmm, + fricv,icec,icetk,land,orog,sfcr,shdmax,shdmin,sltyp,snoalb,snod, + sotyp,spfh2m,tg3,tisfc,tmp2m,tmpsfc,tprcp,veg,vtype,weasd,c0,cd, + dconv,dtcool,qrain,tref,w0,wd,xs,xt,xtts,xu,xv,xz,xzts,zc] +atmospheric increment variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] +snow increment variables: [ background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -54,19 +59,23 @@ correction increment geometry: additions from template: pattern: '%hr%' template: - background: + atmospheric background: filetype: cube sphere history provider: ufs filename: ./atmf%hr%.nc - increment: + surface background: + filetype: cube sphere history + provider: ufs + filename: ./sfcf%hr%.nc + atmospheric increment: filetype: fms restart is restart: false filename_nonrestart: ./atmi%hr%.nc - ensemble mean analysis: + atmospheric ensemble mean analysis: filetype: cube sphere history provider: ufs filename: ./atma%hr%.ensmean.nc - correction increment: + atmospheric correction increment: filetype: fms restart is restart: false filename_nonrestart: ./catmi%hr%.nc From 57f550c61e44398e59808d26b181f6e2d464c9ff Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 17 Jan 2025 15:31:23 +0000 Subject: [PATCH 03/35] Save progress --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 368 +++++++++++++++++++++- 1 file changed, 357 insertions(+), 11 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index 5078976..fd12e2a 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,13 +1,84 @@ forecast hours: ['006'] window begin: {{ window_begin }} -atmospheric state variables: [liq_wat,delz,delp,w,graupel,hgtsfc,ice_wat,ice_nc,rain_nc, - o3mr,rainwat,snowwat,sphum,t,ua,va] -surface state variables: [alnsf,alnwf,alvsf,alvwf,cnwat,crain,f10m,facsf,facwf,ffhh,ffmm, - fricv,icec,icetk,land,orog,sfcr,shdmax,shdmin,sltyp,snoalb,snod, - sotyp,spfh2m,tg3,tisfc,tmp2m,tmpsfc,tprcp,veg,vtype,weasd,c0,cd, - dconv,dtcool,qrain,tref,w0,wd,xs,xt,xtts,xu,xv,xz,xzts,zc] -atmospheric increment variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] -snow increment variables: [ +atmospheric state variables: +- cloud_liquid_water +- layer_thickness +- air_pressure_thickness +- upward_air_velocity +- graupel +- geopotential_height_at_surface +- cloud_liquid_ice +- cloud_ice_number_concentration +- ozone_mass_mixing_ratio +- vertical_pressure_velocity +- air_pressure_at_surface +- rain_water +- snow_water +- water_vapor_mixing_ratio_wrt_moist_air +- air_temperature +- eastward_wind +- northward_wind +surface state variables: +- mean_nir_albedo_with_strong_cosz_dependency +- mean_nir_albedo_with_weak_cosz_dependency +- mean_vis_albedo_with_strong_cosz_dependency +- mean_vis_albedo_with_weak_cosz_dependency +- canopy_water +- instantaneous_categorical_rain +- f10m +- fractional_coverage_with_strong_cosz_dependency +- fractional_coverage_with_weak_cosz_dependency +- fh_parameter_from_PBL_scheme +- fm_parameter_from_PBL_scheme +- surface_velocity_scale +- ice_area_fraction +- sea_ice_category_thickness +- slmsk +- geopotential_height_at_surface +- surface_roughness_length +- maximum_fractional_coverage_of_green_vegetation +- minimum_fractional_coverage_of_green_vegetation +- surface_slope_type +- maximum_snow_albedo_in_fraction +- totalSnowDepth +- liquid_soil_moisture_at_layer-1 +- liquid_soil_moisture_at_layer-2 +- liquid_soil_moisture_at_layer-3 +- liquid_soil_moisture_at_layer-4 +- soil_temperature_at_layer-1 +- soil_temperature_at_layer-2 +- soil_temperature_at_layer-3 +- soil_temperature_at_layer-4 +- volumetric_soil_moisture_at_layer-1 +- volumetric_soil_moisture_at_layer-2 +- volumetric_soil_moisture_at_layer-3 +- volumetric_soil_moisture_at_layer-4 +- soil_type +- 2m_specific_humidity +- deep_soil_temperature +- surface_temperature_over_ice_fraction +- air_temperature_at_2m +- skin_temperature_at_surface +- total_precipitation +- vegetation_area_fraction +- vtype +- surface_snow_water_equivalent +- nsst_coefficient1_to_calculate_d(tz)/d(ts) +- nsst_coefficient2_to_calculate_d(tz)/d(ts) +- nsst_thickness_of_free_convection_layer +- nsst_sub-layer_cooling_amount +- nsst_sensible_heat_flux_due_to_rainfall +- nsst_reference_or_foundation_temperature +- nsst_coefficient3_to_calculate_d(tz)/d(ts) +- nsst_coefficient4_to_calculate_d(tz)/d(ts) +- nsst_salinity_content_in_diurnal_thermocline_layer +- nsst_heat_content_in_diurnal_thermocline_layer +- nsst_d(xt)/d(ts) +- nsst_u-current_content_in_diurnal_thermocline_layer +- nsst_v-current_content_in_diurnal_thermocline_layer +- nsst_diurnal_thermocline_layer_thickness +- nsst_d(xt)/d(ts) +- nsst_sub-layer_cooling_thickness background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -43,7 +114,7 @@ ensemble mean analysis geometry: npx: {{ atmosphere_npx_anl }} npy: {{ atmosphere_npy_anl }} npz: {{ atmosphere_npz_anl }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml correction increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -56,7 +127,7 @@ correction increment geometry: npy: {{ atmosphere_npy_anl }} npz: {{ atmosphere_npz_anl }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -additions from template: +additions from template: pattern: '%hr%' template: atmospheric background: @@ -66,7 +137,7 @@ additions from template: surface background: filetype: cube sphere history provider: ufs - filename: ./sfcf%hr%.nc + filename: ./sfcf%hr%.nc atmospheric increment: filetype: fms restart is restart: false @@ -79,3 +150,278 @@ additions from template: filetype: fms restart is restart: false filename_nonrestart: ./catmi%hr%.nc + atmospheric analysis to structured grid: + grid type: regular gaussian + local interpolator type: oops unstructured grid interpolator + all model levels: true + number of latitude gridpoints: 96 + prefix: atmanl + use time dimension: true + use dummy surface levels: false + level first dimension ordering: true + variables to output: + - cloud_liquid_water + - layer_thickness + - air_pressure_thickness + - upward_air_velocity + - graupel + - geopotential_height_at_surface + - cloud_liquid_ice + - cloud_ice_number_concentration + - ozone_mass_mixing_ratio + - vertical_pressure_velocity + - air_pressure_at_surface + - rain_water + - snow_water + - water_vapor_mixing_ratio_wrt_moist_air + - air_temperature + - eastward_wind + - northward_wind + field aliases: + dimensions: + - name: longitude + io name: grid_xt + variable io name: grid_xt + - name: latitude + io name: grid_yt + variable io name: grid_yt + - name: levels + io name: pfull + variable io name: pfull + variables + - name: cloud_liquid_water + io name: clwmr + - name: layer_thickness + io name: delz + - name: air_pressure_thickness + io name: delp + - name: upward_air_velocity + io name: dzdt + - name: graupel + io name: grle + - name: geopotential_height_at_surface + io name: hgtsfc + - name: cloud_liquid_ice + io name: icmr + - name: cloud_ice_number_concentration + io name: nccice + - name: ozone_mass_mixing_ratio + io name: o3mr + - vertical_pressure_velocity + io name: omga + - name: air_pressure_at_surface + io name: pressfc + - name: rain_water + io name: rwmr + - name: snow_water + io name: snmr + - name: water_vapor_mixing_ratio_wrt_moist_air + io name: spfh + - name: air_temperature + io name: tmp + - name: eastward_wind + io name: ugrd + - name: northward_wind + io name: vgrd + surface analysis to structured grid: + grid type: regular gaussian + local interpolator type: oops unstructured grid interpolator + all model levels: true + number of latitude gridpoints: 96 + prefix: sfcanl + use time dimension: true + use dummy surface levels: false + level first dimension ordering: true + variables to output: + - mean_nir_albedo_with_strong_cosz_dependency + - mean_nir_albedo_with_weak_cosz_dependency + - mean_vis_albedo_with_strong_cosz_dependency + - mean_vis_albedo_with_weak_cosz_dependency + - canopy_water + - instantaneous_categorical_rain + - f10m + - fractional_coverage_with_strong_cosz_dependency + - fractional_coverage_with_weak_cosz_dependency + - fh_parameter_from_PBL_scheme + - fm_parameter_from_PBL_scheme + - surface_velocity_scale + - ice_area_fraction + - sea_ice_category_thickness + - slmsk + - geopotential_height_at_surface + - surface_roughness_length + - maximum_fractional_coverage_of_green_vegetation + - minimum_fractional_coverage_of_green_vegetation + - surface_slope_type + - maximum_snow_albedo_in_fraction + - totalSnowDepth + - liquid_soil_moisture_at_layer-1 + - liquid_soil_moisture_at_layer-2 + - liquid_soil_moisture_at_layer-3 + - liquid_soil_moisture_at_layer-4 + - soil_temperature_at_layer-1 + - soil_temperature_at_layer-2 + - soil_temperature_at_layer-3 + - soil_temperature_at_layer-4 + - volumetric_soil_moisture_at_layer-1 + - volumetric_soil_moisture_at_layer-2 + - volumetric_soil_moisture_at_layer-3 + - volumetric_soil_moisture_at_layer-4 + - soil_type + - 2m_specific_humidity + - deep_soil_temperature + - surface_temperature_over_ice_fraction + - air_temperature_at_2m + - skin_temperature_at_surface + - total_precipitation + - vegetation_area_fraction + - vtype + - surface_snow_water_equivalent + - nsst_coefficient1_to_calculate_d(tz)/d(ts) + - nsst_coefficient2_to_calculate_d(tz)/d(ts) + - nsst_thickness_of_free_convection_layer + - nsst_sub-layer_cooling_amount + - nsst_sensible_heat_flux_due_to_rainfall + - nsst_reference_or_foundation_temperature + - nsst_coefficient3_to_calculate_d(tz)/d(ts) + - nsst_coefficient4_to_calculate_d(tz)/d(ts) + - nsst_salinity_content_in_diurnal_thermocline_layer + - nsst_heat_content_in_diurnal_thermocline_layer + - nsst_d(xt)/d(ts) + - nsst_u-current_content_in_diurnal_thermocline_layer + - nsst_v-current_content_in_diurnal_thermocline_layer + - nsst_diurnal_thermocline_layer_thickness + - nsst_d(xt)/d(ts) + - nsst_sub-layer_cooling_thickness + field aliases: + dimensions: + - name: longitude + io name: grid_xt + variable io name: grid_xt + - name: latitude + io name: grid_yt + variable io name: grid_yt + - name: levels + io name: pfull + variable io name: pfull + variables + - name: mean_nir_albedo_with_strong_cosz_dependency + io name: alnsf + - name: mean_nir_albedo_with_weak_cosz_dependency + io name: alnwf + - name: mean_vis_albedo_with_strong_cosz_dependency + io name: alvsf + - name: mean_vis_albedo_with_weak_cosz_dependency + io name: alvwf + - name: canopy_water + io name: cnwat + - name: instantaneous_categorical_rain + io name: crain + - name: f10m + io name: f10m + - name: fractional_coverage_with_strong_cosz_dependency + io name: facsf + - name: fractional_coverage_with_weak_cosz_dependency + io name: facwf + - name: fh_parameter_from_PBL_scheme + io name: ffhh + - name: fm_parameter_from_PBL_scheme + io name: ffmm + - name: surface_velocity_scale + io name: fricv + - name: ice_area_fraction + io name: icec + - name: sea_ice_category_thickness + io name: icetk + - name: slmsk + io name: land + - name: geopotential_height_at_surface + io name: orog + - name: surface_roughness_length + io name: sfcr + - name: maximum_fractional_coverage_of_green_vegetation + io name: shdmax + - name: minimum_fractional_coverage_of_green_vegetation + io name: shdmin + - name: surface_slope_type + io name: sltyp + - name: maximum_snow_albedo_in_fraction + io name: snoalb + - name: totalSnowDepth + io name: snod + - name: liquid_soil_moisture_at_layer-1 + io name: soill1 + - name: liquid_soil_moisture_at_layer-2 + io name: soill2 + - name: liquid_soil_moisture_at_layer-3 + io name: soill3 + - name: liquid_soil_moisture_at_layer-4 + io name: soill4 + - name: soil_temperature_at_layer-1 + io name: soilt1 + - name: soil_temperature_at_layer-2 + io name: soilt2 + - name: soil_temperature_at_layer-3 + io name: soilt3 + - name: soil_temperature_at_layer-4 + io name: soilt4 + - name: volumetric_soil_moisture_at_layer-1 + io name: soilm1 + - name: volumetric_soil_moisture_at_layer-2 + io name: soilm2 + - name: volumetric_soil_moisture_at_layer-3 + io name: soilm3 + - name: volumetric_soil_moisture_at_layer-4 + io name: soilm4 + - name: soil_type + io name: sotyp + - name: 2m_specific_humidity + io name: spfh2m + - name: deep_soil_temperature + io name: tg3 + - name: surface_temperature_over_ice_fraction + io name: tisfc + - name: air_temperature_at_2m + io name: tmp2m + - name: skin_temperature_at_surface + io name: tmpsfc + - name: total_precipitation + io name: tprcp + - name: vegetation_area_fraction + io name: veg + - name: vtype + io name: vtype + - name: surface_snow_water_equivalent + io name: weasd + - name: nsst_coefficient1_to_calculate_d(tz)/d(ts) + io name: c0 + - name: nsst_coefficient2_to_calculate_d(tz)/d(ts) + io name: cd + - name: nsst_thickness_of_free_convection_layer + io name: dconv + - name: nsst_sub-layer_cooling_amount + io name: dtcool + - name: nsst_sensible_heat_flux_due_to_rainfall + io name: qrain + - name: nsst_reference_or_foundation_temperature + io name: tref + - name: nsst_coefficient3_to_calculate_d(tz)/d(ts) + io name: w0 + - name: nsst_coefficient4_to_calculate_d(tz)/d(ts) + io name: wd + - name: nsst_salinity_content_in_diurnal_thermocline_layer + io name: xs + - name: nsst_heat_content_in_diurnal_thermocline_layer + io name: xt + - name: nsst_d(xt)/d(ts) + io name: xtts + - name: nsst_u-current_content_in_diurnal_thermocline_layer + io name: xu + - name: nsst_v-current_content_in_diurnal_thermocline_layer + io name: xv + - name: nsst_diurnal_thermocline_layer_thickness + io name: xz + - name: nsst_d(xt)/d(ts) + io name: xzts + - name: nsst_sub-layer_cooling_thickness + io name: zc From 72b40e7df10bb4ec6a07922325cf35ba53be43cb Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 17 Jan 2025 15:38:07 +0000 Subject: [PATCH 04/35] Save progress --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index fd12e2a..53fa738 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -18,6 +18,16 @@ atmospheric state variables: - air_temperature - eastward_wind - northward_wind +atmospheric increment variables: +- cloud_liquid_water +- layer_thickness +- air_pressure_thickness +- cloud_liquid_ice +- cloud_liquid_water +- ozone_mass_mixing_ratio +- air_temperature +- eastward_wind +- northward_wind surface state variables: - mean_nir_albedo_with_strong_cosz_dependency - mean_nir_albedo_with_weak_cosz_dependency From ed5f5524df43af3ad45a2357bbc9a45bac2568e4 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 22 Jan 2025 16:46:16 +0000 Subject: [PATCH 05/35] Update staging and ecen yaml --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 315 +----------------- .../fv3jedi_fv3inc_variational.yaml.j2 | 4 +- .../atmosphere_background_ensemble.yaml.j2 | 2 +- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 10 +- 4 files changed, 11 insertions(+), 320 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index 53fa738..b18d541 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,94 +1,15 @@ forecast hours: ['006'] window begin: {{ window_begin }} -atmospheric state variables: +atmospheric variables: - cloud_liquid_water - layer_thickness - air_pressure_thickness -- upward_air_velocity -- graupel -- geopotential_height_at_surface - cloud_liquid_ice -- cloud_ice_number_concentration - ozone_mass_mixing_ratio -- vertical_pressure_velocity -- air_pressure_at_surface -- rain_water -- snow_water - water_vapor_mixing_ratio_wrt_moist_air - air_temperature - eastward_wind - northward_wind -atmospheric increment variables: -- cloud_liquid_water -- layer_thickness -- air_pressure_thickness -- cloud_liquid_ice -- cloud_liquid_water -- ozone_mass_mixing_ratio -- air_temperature -- eastward_wind -- northward_wind -surface state variables: -- mean_nir_albedo_with_strong_cosz_dependency -- mean_nir_albedo_with_weak_cosz_dependency -- mean_vis_albedo_with_strong_cosz_dependency -- mean_vis_albedo_with_weak_cosz_dependency -- canopy_water -- instantaneous_categorical_rain -- f10m -- fractional_coverage_with_strong_cosz_dependency -- fractional_coverage_with_weak_cosz_dependency -- fh_parameter_from_PBL_scheme -- fm_parameter_from_PBL_scheme -- surface_velocity_scale -- ice_area_fraction -- sea_ice_category_thickness -- slmsk -- geopotential_height_at_surface -- surface_roughness_length -- maximum_fractional_coverage_of_green_vegetation -- minimum_fractional_coverage_of_green_vegetation -- surface_slope_type -- maximum_snow_albedo_in_fraction -- totalSnowDepth -- liquid_soil_moisture_at_layer-1 -- liquid_soil_moisture_at_layer-2 -- liquid_soil_moisture_at_layer-3 -- liquid_soil_moisture_at_layer-4 -- soil_temperature_at_layer-1 -- soil_temperature_at_layer-2 -- soil_temperature_at_layer-3 -- soil_temperature_at_layer-4 -- volumetric_soil_moisture_at_layer-1 -- volumetric_soil_moisture_at_layer-2 -- volumetric_soil_moisture_at_layer-3 -- volumetric_soil_moisture_at_layer-4 -- soil_type -- 2m_specific_humidity -- deep_soil_temperature -- surface_temperature_over_ice_fraction -- air_temperature_at_2m -- skin_temperature_at_surface -- total_precipitation -- vegetation_area_fraction -- vtype -- surface_snow_water_equivalent -- nsst_coefficient1_to_calculate_d(tz)/d(ts) -- nsst_coefficient2_to_calculate_d(tz)/d(ts) -- nsst_thickness_of_free_convection_layer -- nsst_sub-layer_cooling_amount -- nsst_sensible_heat_flux_due_to_rainfall -- nsst_reference_or_foundation_temperature -- nsst_coefficient3_to_calculate_d(tz)/d(ts) -- nsst_coefficient4_to_calculate_d(tz)/d(ts) -- nsst_salinity_content_in_diurnal_thermocline_layer -- nsst_heat_content_in_diurnal_thermocline_layer -- nsst_d(xt)/d(ts) -- nsst_u-current_content_in_diurnal_thermocline_layer -- nsst_v-current_content_in_diurnal_thermocline_layer -- nsst_diurnal_thermocline_layer_thickness -- nsst_d(xt)/d(ts) -- nsst_sub-layer_cooling_thickness background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -144,10 +65,6 @@ additions from template: filetype: cube sphere history provider: ufs filename: ./atmf%hr%.nc - surface background: - filetype: cube sphere history - provider: ufs - filename: ./sfcf%hr%.nc atmospheric increment: filetype: fms restart is restart: false @@ -160,12 +77,12 @@ additions from template: filetype: fms restart is restart: false filename_nonrestart: ./catmi%hr%.nc - atmospheric analysis to structured grid: + atmospheric increment to structured grid: grid type: regular gaussian local interpolator type: oops unstructured grid interpolator all model levels: true number of latitude gridpoints: 96 - prefix: atmanl + prefix: atminc use time dimension: true use dummy surface levels: false level first dimension ordering: true @@ -173,16 +90,8 @@ additions from template: - cloud_liquid_water - layer_thickness - air_pressure_thickness - - upward_air_velocity - - graupel - - geopotential_height_at_surface - cloud_liquid_ice - - cloud_ice_number_concentration - ozone_mass_mixing_ratio - - vertical_pressure_velocity - - air_pressure_at_surface - - rain_water - - snow_water - water_vapor_mixing_ratio_wrt_moist_air - air_temperature - eastward_wind @@ -205,26 +114,10 @@ additions from template: io name: delz - name: air_pressure_thickness io name: delp - - name: upward_air_velocity - io name: dzdt - - name: graupel - io name: grle - - name: geopotential_height_at_surface - io name: hgtsfc - name: cloud_liquid_ice io name: icmr - - name: cloud_ice_number_concentration - io name: nccice - name: ozone_mass_mixing_ratio io name: o3mr - - vertical_pressure_velocity - io name: omga - - name: air_pressure_at_surface - io name: pressfc - - name: rain_water - io name: rwmr - - name: snow_water - io name: snmr - name: water_vapor_mixing_ratio_wrt_moist_air io name: spfh - name: air_temperature @@ -233,205 +126,3 @@ additions from template: io name: ugrd - name: northward_wind io name: vgrd - surface analysis to structured grid: - grid type: regular gaussian - local interpolator type: oops unstructured grid interpolator - all model levels: true - number of latitude gridpoints: 96 - prefix: sfcanl - use time dimension: true - use dummy surface levels: false - level first dimension ordering: true - variables to output: - - mean_nir_albedo_with_strong_cosz_dependency - - mean_nir_albedo_with_weak_cosz_dependency - - mean_vis_albedo_with_strong_cosz_dependency - - mean_vis_albedo_with_weak_cosz_dependency - - canopy_water - - instantaneous_categorical_rain - - f10m - - fractional_coverage_with_strong_cosz_dependency - - fractional_coverage_with_weak_cosz_dependency - - fh_parameter_from_PBL_scheme - - fm_parameter_from_PBL_scheme - - surface_velocity_scale - - ice_area_fraction - - sea_ice_category_thickness - - slmsk - - geopotential_height_at_surface - - surface_roughness_length - - maximum_fractional_coverage_of_green_vegetation - - minimum_fractional_coverage_of_green_vegetation - - surface_slope_type - - maximum_snow_albedo_in_fraction - - totalSnowDepth - - liquid_soil_moisture_at_layer-1 - - liquid_soil_moisture_at_layer-2 - - liquid_soil_moisture_at_layer-3 - - liquid_soil_moisture_at_layer-4 - - soil_temperature_at_layer-1 - - soil_temperature_at_layer-2 - - soil_temperature_at_layer-3 - - soil_temperature_at_layer-4 - - volumetric_soil_moisture_at_layer-1 - - volumetric_soil_moisture_at_layer-2 - - volumetric_soil_moisture_at_layer-3 - - volumetric_soil_moisture_at_layer-4 - - soil_type - - 2m_specific_humidity - - deep_soil_temperature - - surface_temperature_over_ice_fraction - - air_temperature_at_2m - - skin_temperature_at_surface - - total_precipitation - - vegetation_area_fraction - - vtype - - surface_snow_water_equivalent - - nsst_coefficient1_to_calculate_d(tz)/d(ts) - - nsst_coefficient2_to_calculate_d(tz)/d(ts) - - nsst_thickness_of_free_convection_layer - - nsst_sub-layer_cooling_amount - - nsst_sensible_heat_flux_due_to_rainfall - - nsst_reference_or_foundation_temperature - - nsst_coefficient3_to_calculate_d(tz)/d(ts) - - nsst_coefficient4_to_calculate_d(tz)/d(ts) - - nsst_salinity_content_in_diurnal_thermocline_layer - - nsst_heat_content_in_diurnal_thermocline_layer - - nsst_d(xt)/d(ts) - - nsst_u-current_content_in_diurnal_thermocline_layer - - nsst_v-current_content_in_diurnal_thermocline_layer - - nsst_diurnal_thermocline_layer_thickness - - nsst_d(xt)/d(ts) - - nsst_sub-layer_cooling_thickness - field aliases: - dimensions: - - name: longitude - io name: grid_xt - variable io name: grid_xt - - name: latitude - io name: grid_yt - variable io name: grid_yt - - name: levels - io name: pfull - variable io name: pfull - variables - - name: mean_nir_albedo_with_strong_cosz_dependency - io name: alnsf - - name: mean_nir_albedo_with_weak_cosz_dependency - io name: alnwf - - name: mean_vis_albedo_with_strong_cosz_dependency - io name: alvsf - - name: mean_vis_albedo_with_weak_cosz_dependency - io name: alvwf - - name: canopy_water - io name: cnwat - - name: instantaneous_categorical_rain - io name: crain - - name: f10m - io name: f10m - - name: fractional_coverage_with_strong_cosz_dependency - io name: facsf - - name: fractional_coverage_with_weak_cosz_dependency - io name: facwf - - name: fh_parameter_from_PBL_scheme - io name: ffhh - - name: fm_parameter_from_PBL_scheme - io name: ffmm - - name: surface_velocity_scale - io name: fricv - - name: ice_area_fraction - io name: icec - - name: sea_ice_category_thickness - io name: icetk - - name: slmsk - io name: land - - name: geopotential_height_at_surface - io name: orog - - name: surface_roughness_length - io name: sfcr - - name: maximum_fractional_coverage_of_green_vegetation - io name: shdmax - - name: minimum_fractional_coverage_of_green_vegetation - io name: shdmin - - name: surface_slope_type - io name: sltyp - - name: maximum_snow_albedo_in_fraction - io name: snoalb - - name: totalSnowDepth - io name: snod - - name: liquid_soil_moisture_at_layer-1 - io name: soill1 - - name: liquid_soil_moisture_at_layer-2 - io name: soill2 - - name: liquid_soil_moisture_at_layer-3 - io name: soill3 - - name: liquid_soil_moisture_at_layer-4 - io name: soill4 - - name: soil_temperature_at_layer-1 - io name: soilt1 - - name: soil_temperature_at_layer-2 - io name: soilt2 - - name: soil_temperature_at_layer-3 - io name: soilt3 - - name: soil_temperature_at_layer-4 - io name: soilt4 - - name: volumetric_soil_moisture_at_layer-1 - io name: soilm1 - - name: volumetric_soil_moisture_at_layer-2 - io name: soilm2 - - name: volumetric_soil_moisture_at_layer-3 - io name: soilm3 - - name: volumetric_soil_moisture_at_layer-4 - io name: soilm4 - - name: soil_type - io name: sotyp - - name: 2m_specific_humidity - io name: spfh2m - - name: deep_soil_temperature - io name: tg3 - - name: surface_temperature_over_ice_fraction - io name: tisfc - - name: air_temperature_at_2m - io name: tmp2m - - name: skin_temperature_at_surface - io name: tmpsfc - - name: total_precipitation - io name: tprcp - - name: vegetation_area_fraction - io name: veg - - name: vtype - io name: vtype - - name: surface_snow_water_equivalent - io name: weasd - - name: nsst_coefficient1_to_calculate_d(tz)/d(ts) - io name: c0 - - name: nsst_coefficient2_to_calculate_d(tz)/d(ts) - io name: cd - - name: nsst_thickness_of_free_convection_layer - io name: dconv - - name: nsst_sub-layer_cooling_amount - io name: dtcool - - name: nsst_sensible_heat_flux_due_to_rainfall - io name: qrain - - name: nsst_reference_or_foundation_temperature - io name: tref - - name: nsst_coefficient3_to_calculate_d(tz)/d(ts) - io name: w0 - - name: nsst_coefficient4_to_calculate_d(tz)/d(ts) - io name: wd - - name: nsst_salinity_content_in_diurnal_thermocline_layer - io name: xs - - name: nsst_heat_content_in_diurnal_thermocline_layer - io name: xt - - name: nsst_d(xt)/d(ts) - io name: xtts - - name: nsst_u-current_content_in_diurnal_thermocline_layer - io name: xu - - name: nsst_v-current_content_in_diurnal_thermocline_layer - io name: xv - - name: nsst_diurnal_thermocline_layer_thickness - io name: xz - - name: nsst_d(xt)/d(ts) - io name: xzts - - name: nsst_sub-layer_cooling_thickness - io name: zc diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 4ea7eca..7f68fb4 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -1,7 +1,7 @@ variable change: variable change name: Model2GeoVaLs - input variables: &bkgvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc] - output variables: &fv3incrvars [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + input variables: &bkgvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc] + output variables: &fv3incrvars [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] jedi increment variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] fv3 increment variables: *fv3incrvars background geometry: diff --git a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index f3fed38..0f56f5f 100644 --- a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -9,7 +9,7 @@ members from template: u_srf,v_srf,f10m] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] + filenames: [ atmf006.nc, sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 5880917..96708cb 100644 --- a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -37,7 +37,7 @@ components: state variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] + filenames: [ {{ atmf006.nc, {{ sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{atmosphere_number_ensemble_members}} zero padding: 3 @@ -46,8 +46,8 @@ components: 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, - ozone_mass_mixing_ratio ] + water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, + ozone_mass_mixing_ratio ] read: general: universe length-scale: 2500.0e3 @@ -199,8 +199,8 @@ components: 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, - ozone_mass_mixing_ratio ] + water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, + ozone_mass_mixing_ratio ] output variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] weight: value: 0.875 From 57dfaa6a1b8755b536c977afa488f012b26d8975 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 22 Jan 2025 18:07:26 +0000 Subject: [PATCH 06/35] Add cubed_sphere_grid_ prefix back on in data dirs --- algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 6 +++--- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 6 +++--- model/atmosphere/atmosphere_background.yaml.j2 | 2 +- model/atmosphere/atmosphere_background_ensemble.yaml.j2 | 2 +- .../atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 | 2 +- .../atmosphere_final_increment_cubed_sphere.yaml.j2 | 2 +- .../atmosphere_final_increment_fms_nonrestart.yaml.j2 | 2 +- ...mosphere_output_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...sphere_output_ensemble_increments_fms_nonrestart.yaml.j2 | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index ebb76c3..b1dc627 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -48,19 +48,19 @@ members from template: provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] - filenames: [ atmf006.nc, sfcf006.nc ] + filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] datetime: '{{ atmosphere_background_time_iso }}' state variables: *bkgvars jedi increment input: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: atminc.jedi.nc + filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: atminc.nc + filename_nonrestart: cubed_sphere_grid_atminc.nc pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 7f68fb4..162dd1f 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -48,17 +48,17 @@ members: ufs soil nlev: 4 ufs fields split by level: [smc,stc] datetime: "{{ atmosphere_background_time_iso }}" - filenames: [ atmf006.nc, sfcf006.nc ] + filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] state variables: *bkgvars jedi increment input: filetype: fms restart is restart: false filename is datetime templated: true - filename_nonrestart: ./anl/atminc.jedi.nc + filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false - filename_nonrestart: ./anl/atminc.nc + filename_nonrestart: ./anl/cubed_sphere_grid_atminc.nc # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/atmosphere/atmosphere_background.yaml.j2 b/model/atmosphere/atmosphere_background.yaml.j2 index 68a2dd8..068203c 100644 --- a/model/atmosphere/atmosphere_background.yaml.j2 +++ b/model/atmosphere/atmosphere_background.yaml.j2 @@ -2,7 +2,7 @@ datapath: {{ atmosphere_background_path }} filetype: cube sphere history provider: ufs datetime: "{{ atmosphere_background_time_iso }}" -filenames: [ atmf006.nc, sfcf006.nc ] +filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] state variables: [ua,va,t,delp,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc, slmsk,sheleg,tmpsfc,vtype,stype,vfrac,soilt1,soilw1,snwdphMeters, u_srf,v_srf,f10m] diff --git a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index 0f56f5f..e910cff 100644 --- a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -9,7 +9,7 @@ members from template: u_srf,v_srf,f10m] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ atmf006.nc, sfcf006.nc ] + filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 96708cb..7e86b8a 100644 --- a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -37,7 +37,7 @@ components: state variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ {{ atmf006.nc, {{ sfcf006.nc ] + filenames: [ {{ cubed_sphere_grid_atmf006.nc, {{ cubed_sphere_grid_sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{atmosphere_number_ensemble_members}} zero padding: 3 diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index e3b98ad..5ad9966 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -1,7 +1,7 @@ output: state component: filetype: cube sphere history - filename: ./anl/atminc.jedi.nc + filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs fields to write: {{atmosphere_analysis_variables}} geometry: diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index cefc78a..545c3b4 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -2,7 +2,7 @@ output: state component: filetype: fms restart is restart: false - filename_nonrestart: ./anl/atminc.jedi.nc + filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc fields to write: {{atmosphere_analysis_variables}} geometry: fms initialization: diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index bd9b798..8d39113 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,3 +1,3 @@ filetype: cube sphere history provider: ufs -filename: ./anl/mem%{member}%/atminc.jedi.nc +filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 index f279ee5..ff02117 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 @@ -1,4 +1,4 @@ filetype: fms restart is restart: false datapath: ./anl/mem%{member}% -filename_nonrestart: atminc.jedi.nc +filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc From 3bc4995381fb458cb81ed7e9278e415473ade792 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 22 Jan 2025 18:10:25 +0000 Subject: [PATCH 07/35] Missed a file --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index b18d541..36f7677 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -64,19 +64,19 @@ additions from template: atmospheric background: filetype: cube sphere history provider: ufs - filename: ./atmf%hr%.nc + filename: ./cubed_sphere_grid_atmf%hr%.nc atmospheric increment: filetype: fms restart is restart: false - filename_nonrestart: ./atmi%hr%.nc + filename_nonrestart: ./cubed_sphere_grid_atmi%hr%.nc atmospheric ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./atma%hr%.ensmean.nc + filename: ./cubed_sphere_grid_atma%hr%.ensmean.nc atmospheric correction increment: filetype: fms restart is restart: false - filename_nonrestart: ./catmi%hr%.nc + filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc atmospheric increment to structured grid: grid type: regular gaussian local interpolator type: oops unstructured grid interpolator From c5c897f21ccff0ed03c74319b9315bcaacea15f9 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 23 Jan 2025 19:15:12 +0000 Subject: [PATCH 08/35] Debug --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 41 +++++++++++-------- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 2 +- ...here_posterior_output_cubed_sphere.yaml.j2 | 2 +- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index 36f7677..6b30ee0 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,5 +1,10 @@ forecast hours: ['006'] window begin: {{ window_begin }} +{% if run_type == "gdas" %} +compute correction increment: true +{% else %} +compute correction increment: false +{% endif %} atmospheric variables: - cloud_liquid_water - layer_thickness @@ -10,7 +15,7 @@ atmospheric variables: - air_temperature - eastward_wind - northward_wind -background geometry: +increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -21,8 +26,8 @@ background geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -increment geometry: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml +background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -33,7 +38,7 @@ increment geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml ensemble mean analysis geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -61,22 +66,10 @@ correction increment geometry: additions from template: pattern: '%hr%' template: - atmospheric background: - filetype: cube sphere history - provider: ufs - filename: ./cubed_sphere_grid_atmf%hr%.nc atmospheric increment: filetype: fms restart is restart: false filename_nonrestart: ./cubed_sphere_grid_atmi%hr%.nc - atmospheric ensemble mean analysis: - filetype: cube sphere history - provider: ufs - filename: ./cubed_sphere_grid_atma%hr%.ensmean.nc - atmospheric correction increment: - filetype: fms restart - is restart: false - filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc atmospheric increment to structured grid: grid type: regular gaussian local interpolator type: oops unstructured grid interpolator @@ -107,7 +100,7 @@ additions from template: - name: levels io name: pfull variable io name: pfull - variables + variables: - name: cloud_liquid_water io name: clwmr - name: layer_thickness @@ -126,3 +119,17 @@ additions from template: io name: ugrd - name: northward_wind io name: vgrd +{% if run_type == "gdas" %} + atmospheric background: + filetype: cube sphere history + provider: ufs + filename: ./cubed_sphere_grid_atmf%hr%.nc + atmospheric ensemble mean analysis: + filetype: cube sphere history + provider: ufs + filename: ./cubed_sphere_grid_atma%hr%.ensmean.nc + atmospheric correction increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc +{% endif %} diff --git a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index 7e86b8a..e4a172b 100644 --- a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -37,7 +37,7 @@ components: state variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ {{ cubed_sphere_grid_atmf006.nc, {{ cubed_sphere_grid_sfcf006.nc ] + filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{atmosphere_number_ensemble_members}} zero padding: 3 diff --git a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 index cddc67f..ace7dbc 100644 --- a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -2,4 +2,4 @@ filetype: cube sphere history provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] -filename: ./anl/atmanl.ensmean.nc +filename: ./anl/cubed_sphere_grid_atmanl.ensmean.nc From 6618b37cc784618c661394966c3f0ca3b972fbc1 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 27 Jan 2025 20:16:11 +0000 Subject: [PATCH 09/35] Save progress --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 56 ----------------- .../fv3jedi_fv3inc_variational.yaml.j2 | 51 ++++++++++++++++ .../aero_final_increment_gaussian.yaml.j2 | 61 ++++++++++++++++--- .../snow_final_increment_gaussian.yaml.j2 | 26 ++++++++ 4 files changed, 129 insertions(+), 65 deletions(-) create mode 100644 model/snow/snow_final_increment_gaussian.yaml.j2 diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index 6b30ee0..318b41f 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,10 +1,5 @@ forecast hours: ['006'] window begin: {{ window_begin }} -{% if run_type == "gdas" %} -compute correction increment: true -{% else %} -compute correction increment: false -{% endif %} atmospheric variables: - cloud_liquid_water - layer_thickness @@ -70,56 +65,6 @@ additions from template: filetype: fms restart is restart: false filename_nonrestart: ./cubed_sphere_grid_atmi%hr%.nc - atmospheric increment to structured grid: - grid type: regular gaussian - local interpolator type: oops unstructured grid interpolator - all model levels: true - number of latitude gridpoints: 96 - prefix: atminc - use time dimension: true - use dummy surface levels: false - level first dimension ordering: true - variables to output: - - cloud_liquid_water - - layer_thickness - - air_pressure_thickness - - cloud_liquid_ice - - ozone_mass_mixing_ratio - - water_vapor_mixing_ratio_wrt_moist_air - - air_temperature - - eastward_wind - - northward_wind - field aliases: - dimensions: - - name: longitude - io name: grid_xt - variable io name: grid_xt - - name: latitude - io name: grid_yt - variable io name: grid_yt - - name: levels - io name: pfull - variable io name: pfull - variables: - - name: cloud_liquid_water - io name: clwmr - - name: layer_thickness - io name: delz - - name: air_pressure_thickness - io name: delp - - name: cloud_liquid_ice - io name: icmr - - name: ozone_mass_mixing_ratio - io name: o3mr - - name: water_vapor_mixing_ratio_wrt_moist_air - io name: spfh - - name: air_temperature - io name: tmp - - name: eastward_wind - io name: ugrd - - name: northward_wind - io name: vgrd -{% if run_type == "gdas" %} atmospheric background: filetype: cube sphere history provider: ufs @@ -132,4 +77,3 @@ additions from template: filetype: fms restart is restart: false filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc -{% endif %} diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 162dd1f..e6a7045 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -59,6 +59,57 @@ members: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.nc + fv3 increment to structured grid: + grid type: regular gaussian + local interpolator type: atlas interpolator + interpolation method: + type: finite-element + all model levels: true + number of latitude gridpoints: {{ atmosphere_npy_ges - 1 }} + prefix: atminc + use time dimension: true + use dummy surface levels: false + level first dimension ordering: true + variables to output: + - cloud_liquid_water + - layer_thickness + - air_pressure_thickness + - cloud_liquid_ice + - ozone_mass_mixing_ratio + - water_vapor_mixing_ratio_wrt_moist_air + - air_temperature + - eastward_wind + - northward_wind + field aliases: + dimensions: + - name: longitude + io name: grid_xt + variable io name: grid_xt + - name: latitude + io name: grid_yt + variable io name: grid_yt + - name: levels + io name: pfull + variable io name: pfull + variables: + - name: cloud_liquid_water + io name: clwmr + - name: layer_thickness + io name: delz + - name: air_pressure_thickness + io name: dpres + - name: cloud_liquid_ice + io name: icmr + - name: ozone_mass_mixing_ratio + io name: o3mr + - name: water_vapor_mixing_ratio_wrt_moist_air + io name: spfh + - name: air_temperature + io name: tmp + - name: eastward_wind + io name: ugrd + - name: northward_wind + io name: vgrd # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/aero/aero_final_increment_gaussian.yaml.j2 b/model/aero/aero_final_increment_gaussian.yaml.j2 index 97ffc8d..eb72200 100644 --- a/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -4,15 +4,58 @@ interpolation method: type: finite-element number of latitude gridpoints: {{ aero_npy_ges - 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] + 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] all model levels: true datapath: {{ aero_analysis_path }} prefix: aeroinc_gauss +use time dimension: true +use dummy surface levels: false +level first dimension ordering: true +field aliases: + dimensions: + - name: longitude + io name: grid_xt + variable io name: grid_xt + - name: latitude + io name: grid_yt + variable io name: grid_yt + - name: levels + io name: pfull + variable io name: pfull + variables: + - name: mass_fraction_of_sulfate_in_air + io name: so4 + - name: mass_fraction_of_hydrophobic_black_carbon_in_air + io name: bc1 + - name: mass_fraction_of_hydrophilic_black_carbon_in_air + io name: bc2 + - name: mass_fraction_of_hydrophobic_organic_carbon_in_air + io name: oc1 + - name: mass_fraction_of_hydrophilic_organic_carbon_in_air + io name: oc2 + - name: mass_fraction_of_dust001_in_air + io name: dust1 + - name: mass_fraction_of_dust002_in_air + io name: dust2 + - name: mass_fraction_of_dust003_in_air + io name: dust3 + - name: mass_fraction_of_dust004_in_air + io name: dust4 + - name: mass_fraction_of_dust005_in_air + io name: dust5 + - name: mass_fraction_of_sea_salt001_in_air + io name: seas1 + - name: mass_fraction_of_sea_salt002_in_air + io name: seas2 + - name: mass_fraction_of_sea_salt003_in_air + io name: seas3 + - name: mass_fraction_of_sea_salt004_in_air + io name: seas4 diff --git a/model/snow/snow_final_increment_gaussian.yaml.j2 b/model/snow/snow_final_increment_gaussian.yaml.j2 new file mode 100644 index 0000000..f9936bd --- /dev/null +++ b/model/snow/snow_final_increment_gaussian.yaml.j2 @@ -0,0 +1,26 @@ +grid type: regular gaussian +local interpolator type: atlas interpolator +interpolation method: + type: finite-element +number of latitude gridpoints: {{ snow_npy_ges - 1 }} +variables to output: [totalSnowDepth] +all model levels: true +datapath: ./anl +prefix: snowinc_gauss +use time dimension: true +use dummy surface levels: false +level first dimension ordering: true +field aliases: + dimensions: + - name: longitude + io name: grid_xt + variable io name: grid_xt + - name: latitude + io name: grid_yt + variable io name: grid_yt + - name: levels + io name: pfull + variable io name: pfull + variables: + - name: totalSnowDepth + io name: snodl From 8e3803e0fd453208c011e0ad363d964c04a840a8 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 28 Jan 2025 22:15:27 +0000 Subject: [PATCH 10/35] Update --- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index e6a7045..54f1b8c 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -67,6 +67,7 @@ members: all model levels: true number of latitude gridpoints: {{ atmosphere_npy_ges - 1 }} prefix: atminc + write precision: float use time dimension: true use dummy surface levels: false level first dimension ordering: true From b5046991fd0ef1c6e0b9a2c9a38ac7a33e8d4282 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 30 Jan 2025 16:08:31 +0000 Subject: [PATCH 11/35] Save progress before redoing some stuff --- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 1 + model/snow/snow_final_increment_gaussian.yaml.j2 | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 54f1b8c..9e8585d 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -67,6 +67,7 @@ members: all model levels: true number of latitude gridpoints: {{ atmosphere_npy_ges - 1 }} prefix: atminc + datapath: ./anl write precision: float use time dimension: true use dummy surface levels: false diff --git a/model/snow/snow_final_increment_gaussian.yaml.j2 b/model/snow/snow_final_increment_gaussian.yaml.j2 index f9936bd..1c1f096 100644 --- a/model/snow/snow_final_increment_gaussian.yaml.j2 +++ b/model/snow/snow_final_increment_gaussian.yaml.j2 @@ -6,7 +6,7 @@ number of latitude gridpoints: {{ snow_npy_ges - 1 }} variables to output: [totalSnowDepth] all model levels: true datapath: ./anl -prefix: snowinc_gauss +prefix: snowinc use time dimension: true use dummy surface levels: false level first dimension ordering: true From 23671f2caa329447d541c3449c13b2a7b692e8c8 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 30 Jan 2025 16:23:55 +0000 Subject: [PATCH 12/35] Revert some stuff --- .../fv3jedi_fv3inc_variational.yaml.j2 | 53 ---------------- .../aero_final_increment_gaussian.yaml.j2 | 61 +++---------------- .../snow_final_increment_gaussian.yaml.j2 | 26 -------- 3 files changed, 9 insertions(+), 131 deletions(-) delete mode 100644 model/snow/snow_final_increment_gaussian.yaml.j2 diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 9e8585d..162dd1f 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -59,59 +59,6 @@ members: filetype: fms restart is restart: false filename_nonrestart: ./anl/cubed_sphere_grid_atminc.nc - fv3 increment to structured grid: - grid type: regular gaussian - local interpolator type: atlas interpolator - interpolation method: - type: finite-element - all model levels: true - number of latitude gridpoints: {{ atmosphere_npy_ges - 1 }} - prefix: atminc - datapath: ./anl - write precision: float - use time dimension: true - use dummy surface levels: false - level first dimension ordering: true - variables to output: - - cloud_liquid_water - - layer_thickness - - air_pressure_thickness - - cloud_liquid_ice - - ozone_mass_mixing_ratio - - water_vapor_mixing_ratio_wrt_moist_air - - air_temperature - - eastward_wind - - northward_wind - field aliases: - dimensions: - - name: longitude - io name: grid_xt - variable io name: grid_xt - - name: latitude - io name: grid_yt - variable io name: grid_yt - - name: levels - io name: pfull - variable io name: pfull - variables: - - name: cloud_liquid_water - io name: clwmr - - name: layer_thickness - io name: delz - - name: air_pressure_thickness - io name: dpres - - name: cloud_liquid_ice - io name: icmr - - name: ozone_mass_mixing_ratio - io name: o3mr - - name: water_vapor_mixing_ratio_wrt_moist_air - io name: spfh - - name: air_temperature - io name: tmp - - name: eastward_wind - io name: ugrd - - name: northward_wind - io name: vgrd # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/aero/aero_final_increment_gaussian.yaml.j2 b/model/aero/aero_final_increment_gaussian.yaml.j2 index 3d5067b..72eabe0 100644 --- a/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -4,58 +4,15 @@ 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] + 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] all model levels: true datapath: {{ aero_analysis_path }} prefix: aeroinc_gauss -use time dimension: true -use dummy surface levels: false -level first dimension ordering: true -field aliases: - dimensions: - - name: longitude - io name: grid_xt - variable io name: grid_xt - - name: latitude - io name: grid_yt - variable io name: grid_yt - - name: levels - io name: pfull - variable io name: pfull - variables: - - name: mass_fraction_of_sulfate_in_air - io name: so4 - - name: mass_fraction_of_hydrophobic_black_carbon_in_air - io name: bc1 - - name: mass_fraction_of_hydrophilic_black_carbon_in_air - io name: bc2 - - name: mass_fraction_of_hydrophobic_organic_carbon_in_air - io name: oc1 - - name: mass_fraction_of_hydrophilic_organic_carbon_in_air - io name: oc2 - - name: mass_fraction_of_dust001_in_air - io name: dust1 - - name: mass_fraction_of_dust002_in_air - io name: dust2 - - name: mass_fraction_of_dust003_in_air - io name: dust3 - - name: mass_fraction_of_dust004_in_air - io name: dust4 - - name: mass_fraction_of_dust005_in_air - io name: dust5 - - name: mass_fraction_of_sea_salt001_in_air - io name: seas1 - - name: mass_fraction_of_sea_salt002_in_air - io name: seas2 - - name: mass_fraction_of_sea_salt003_in_air - io name: seas3 - - name: mass_fraction_of_sea_salt004_in_air - io name: seas4 diff --git a/model/snow/snow_final_increment_gaussian.yaml.j2 b/model/snow/snow_final_increment_gaussian.yaml.j2 deleted file mode 100644 index 1c1f096..0000000 --- a/model/snow/snow_final_increment_gaussian.yaml.j2 +++ /dev/null @@ -1,26 +0,0 @@ -grid type: regular gaussian -local interpolator type: atlas interpolator -interpolation method: - type: finite-element -number of latitude gridpoints: {{ snow_npy_ges - 1 }} -variables to output: [totalSnowDepth] -all model levels: true -datapath: ./anl -prefix: snowinc -use time dimension: true -use dummy surface levels: false -level first dimension ordering: true -field aliases: - dimensions: - - name: longitude - io name: grid_xt - variable io name: grid_xt - - name: latitude - io name: grid_yt - variable io name: grid_yt - - name: levels - io name: pfull - variable io name: pfull - variables: - - name: totalSnowDepth - io name: snodl From 4f27f5444cc59e55c86263a7347f1959310dca19 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 30 Jan 2025 18:52:05 +0000 Subject: [PATCH 13/35] Add convert state algo for analcalc --- algorithm/atmosphere/atm_analcalc.yaml.j2 | 36 +++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 algorithm/atmosphere/atm_analcalc.yaml.j2 diff --git a/algorithm/atmosphere/atm_analcalc.yaml.j2 b/algorithm/atmosphere/atm_analcalc.yaml.j2 new file mode 100644 index 0000000..cc92133 --- /dev/null +++ b/algorithm/atmosphere/atm_analcalc.yaml.j2 @@ -0,0 +1,36 @@ +input geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml +output geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +states: +- input: + datetime: "{{ atmosphere_background_time_iso }}" + filetype: fms restart + is restart: false + state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + filename_nonrestart: cubed_sphere_grid_atmi006.nc + datapath: ./ + output: + filetype: auxgrid + gridtype: gaussian + filename: atmi006. From 7ee62c9ade6f9b98433c903010b1e75aaf29371e Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 30 Jan 2025 21:36:59 +0000 Subject: [PATCH 14/35] Add algorithm templates for snow and aero analcalc convertstate --- .../aero/aero_analcalc_convertstate.yaml.j2 | 35 +++++++++++++++++++ ...l.j2 => atm_analcalc_convertstate.yaml.j2} | 8 +++-- .../snow/snow_analcalc_convertstate.yaml.j2 | 35 +++++++++++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 algorithm/aero/aero_analcalc_convertstate.yaml.j2 rename algorithm/atmosphere/{atm_analcalc.yaml.j2 => atm_analcalc_convertstate.yaml.j2} (83%) create mode 100644 algorithm/snow/snow_analcalc_convertstate.yaml.j2 diff --git a/algorithm/aero/aero_analcalc_convertstate.yaml.j2 b/algorithm/aero/aero_analcalc_convertstate.yaml.j2 new file mode 100644 index 0000000..5f9a060 --- /dev/null +++ b/algorithm/aero/aero_analcalc_convertstate.yaml.j2 @@ -0,0 +1,35 @@ +input geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ aero_layout_x }} + - {{ aero_layout_y }} + npx: {{ aero_npx_ges }} + npy: {{ aero_npy_ges }} + npz: {{ aero_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +output geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ aero_layout_x }} + - {{ aero_layout_y }} + npx: {{ aero_npx_ges }} + npy: {{ aero_npy_ges }} + npz: {{ aero_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +states: +- input: + datetime: "{{ aero_background_time_iso }}" + filetype: fms restart + prefix: aeroinc + state variables: {{ analysis_variables }} + datapath: ./ + output: + filetype: auxgrid + gridtype: gaussian + filename: aeroi006. diff --git a/algorithm/atmosphere/atm_analcalc.yaml.j2 b/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 similarity index 83% rename from algorithm/atmosphere/atm_analcalc.yaml.j2 rename to algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 index cc92133..56da297 100644 --- a/algorithm/atmosphere/atm_analcalc.yaml.j2 +++ b/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 @@ -23,14 +23,16 @@ output geometry: npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml states: +{% for fh in iau_hours %} - input: - datetime: "{{ atmosphere_background_time_iso }}" + datetime: {{ atmosphere_background_time_iso }} filetype: fms restart is restart: false state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] - filename_nonrestart: cubed_sphere_grid_atmi006.nc + filename_nonrestart: cubed_sphere_grid_atmi{{ '%03d' % fh }}.nc datapath: ./ output: filetype: auxgrid gridtype: gaussian - filename: atmi006. + filename: atmi{{ '%03d' % fh }}. +{% endfor %} diff --git a/algorithm/snow/snow_analcalc_convertstate.yaml.j2 b/algorithm/snow/snow_analcalc_convertstate.yaml.j2 new file mode 100644 index 0000000..fa595a1 --- /dev/null +++ b/algorithm/snow/snow_analcalc_convertstate.yaml.j2 @@ -0,0 +1,35 @@ +input geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ snow_layout_x }} + - {{ snow_layout_y }} + npx: {{ snow_npx_ges }} + npy: {{ snow_npy_ges }} + npz: {{ snow_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +output geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ snow_layout_x }} + - {{ snow_layout_y }} + npx: {{ snow_npx_ges }} + npy: {{ snow_npy_ges }} + npz: {{ snow_npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +states: +- input: + datetime: "{{ snow_background_time_iso }}" + filetype: fms restart + prefix: snowinc + state variables: {{ analysis_variables }} + datapath: ./ + output: + filetype: auxgrid + gridtype: gaussian + filename: snowi006. From 71ef27ddd9c55b2a2deead2bbfbf191492b90724 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 31 Jan 2025 16:28:56 +0000 Subject: [PATCH 15/35] Revert unnecessary science change (increment resolution) --- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 6 +++--- .../atmosphere_final_increment_fms_nonrestart.yaml.j2 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 162dd1f..5d5e4c6 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -12,9 +12,9 @@ background geometry: layout: - {{ atmosphere_layout_x }} - {{ atmosphere_layout_y }} - npx: {{ atmosphere_npx_ges }} - npy: {{ atmosphere_npy_ges }} - npz: {{ atmosphere_npz_ges }} + npx: {{ atmosphere_npx_anl }} + npy: {{ atmosphere_npy_anl }} + npz: {{ atmosphere_npz_anl }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml jedi increment geometry: fms initialization: diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 545c3b4..5a4f953 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -12,7 +12,7 @@ geometry: layout: - {{atmosphere_layout_x}} - {{atmosphere_layout_y}} - npx: {{atmosphere_npx_ges}} - npy: {{atmosphere_npy_ges}} - npz: {{atmosphere_npz_ges}} + npx: {{atmosphere_npx_anl}} + npy: {{atmosphere_npy_anl}} + npz: {{atmosphere_npz_anl}} field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_fv3inc.yaml" From e83a1777b99a4efd3af04a3977094c4a1490e16f Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 3 Feb 2025 21:56:12 +0000 Subject: [PATCH 16/35] Revert "Revert unnecessary science change (increment resolution)" This reverts commit 71ef27ddd9c55b2a2deead2bbfbf191492b90724. --- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 6 +++--- .../atmosphere_final_increment_fms_nonrestart.yaml.j2 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 5d5e4c6..162dd1f 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -12,9 +12,9 @@ background geometry: layout: - {{ atmosphere_layout_x }} - {{ atmosphere_layout_y }} - npx: {{ atmosphere_npx_anl }} - npy: {{ atmosphere_npy_anl }} - npz: {{ atmosphere_npz_anl }} + npx: {{ atmosphere_npx_ges }} + npy: {{ atmosphere_npy_ges }} + npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml jedi increment geometry: fms initialization: diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 5a4f953..545c3b4 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -12,7 +12,7 @@ geometry: layout: - {{atmosphere_layout_x}} - {{atmosphere_layout_y}} - npx: {{atmosphere_npx_anl}} - npy: {{atmosphere_npy_anl}} - npz: {{atmosphere_npz_anl}} + npx: {{atmosphere_npx_ges}} + npy: {{atmosphere_npy_ges}} + npz: {{atmosphere_npz_ges}} field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_fv3inc.yaml" From 407be2b19b5845a2ee1b77cd5c0f5aae3b2655d3 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 9 Feb 2025 21:29:52 +0000 Subject: [PATCH 17/35] Some renaming --- algorithm/atmosphere/fv3jedi_ecen.yaml.j2 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 index 318b41f..1ecbeb8 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 @@ -1,6 +1,6 @@ forecast hours: ['006'] window begin: {{ window_begin }} -atmospheric variables: +increment variables: - cloud_liquid_water - layer_thickness - air_pressure_thickness @@ -10,7 +10,7 @@ atmospheric variables: - air_temperature - eastward_wind - northward_wind -increment geometry: +variational increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -22,7 +22,7 @@ increment geometry: npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -background geometry: +deterministic background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -61,19 +61,19 @@ correction increment geometry: additions from template: pattern: '%hr%' template: - atmospheric increment: + variational increment: filetype: fms restart is restart: false filename_nonrestart: ./cubed_sphere_grid_atmi%hr%.nc - atmospheric background: + deterministic background: filetype: cube sphere history provider: ufs filename: ./cubed_sphere_grid_atmf%hr%.nc - atmospheric ensemble mean analysis: + ensemble mean analysis: filetype: cube sphere history provider: ufs filename: ./cubed_sphere_grid_atma%hr%.ensmean.nc - atmospheric correction increment: + correction increment: filetype: fms restart is restart: false filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc From 2274a9def6c224b3ca9a7e307aa24c33094b52d7 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 10 Feb 2025 13:44:28 +0000 Subject: [PATCH 18/35] Revert a few things --- .../atmosphere_final_increment_cubed_sphere.yaml.j2 | 2 +- .../atmosphere_final_increment_fms_nonrestart.yaml.j2 | 2 +- test/client_integration/gdas-atmosphere-templates.yaml | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 5ad9966..3d462db 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/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_analysis_variables}} + fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index 545c3b4..beee4c0 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/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_analysis_variables}} + fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" diff --git a/test/client_integration/gdas-atmosphere-templates.yaml b/test/client_integration/gdas-atmosphere-templates.yaml index 210fdd7..4f66e4d 100644 --- a/test/client_integration/gdas-atmosphere-templates.yaml +++ b/test/client_integration/gdas-atmosphere-templates.yaml @@ -36,7 +36,7 @@ window_length: PT6H bound_to_include: begin minimizer: DRPCG final_diagnostics_departures: anlmob -analysis_variables: &anvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] +analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] number_of_outer_loops: 2 # Testing @@ -46,7 +46,6 @@ do_testing: false # Model things # ------------ -atmosphere_analysis_variables: *anvars atmosphere_layout_x: 2 atmosphere_layout_y: 2 atmosphere_npx_ges: 361 @@ -61,6 +60,9 @@ atmosphere_fv3jedi_files_path: DATA/fv3jedi atmosphere_background_path: DATA/bkg atmosphere_background_ensemble_path: "DATA/ens/mem%mem%" +atmosphere_variational_history_prefix: "bkg_" +atmosphere_ensemble_history_prefix: "ens_" + atmosphere_background_time_iso: '2024-02-02T00:00:00Z' # Background error From 08a8efc5d5673c26504bcd13a1a2eaaed8c8e07e Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 12 Feb 2025 02:20:27 +0000 Subject: [PATCH 19/35] Address reviewer comments --- .../aero/aero_analcalc_convertstate.yaml.j2 | 6 ++- .../atm_analcalc_convertstate.yaml.j2 | 8 ++-- ...l.j2 => fv3jedi_ensemble_recenter.yaml.j2} | 39 ++++++++++--------- .../snow/snow_analcalc_convertstate.yaml.j2 | 4 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 2 +- 5 files changed, 32 insertions(+), 27 deletions(-) rename algorithm/atmosphere/{fv3jedi_ecen.yaml.j2 => fv3jedi_ensemble_recenter.yaml.j2} (70%) diff --git a/algorithm/aero/aero_analcalc_convertstate.yaml.j2 b/algorithm/aero/aero_analcalc_convertstate.yaml.j2 index 5f9a060..7ac6ac1 100644 --- a/algorithm/aero/aero_analcalc_convertstate.yaml.j2 +++ b/algorithm/aero/aero_analcalc_convertstate.yaml.j2 @@ -23,8 +23,9 @@ output geometry: npz: {{ aero_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml states: +{% for ihour in range( aero_iau_hours | length ) %} - input: - datetime: "{{ aero_background_time_iso }}" + datetime: {{ aero_iau_times_iso[ihour] }} filetype: fms restart prefix: aeroinc state variables: {{ analysis_variables }} @@ -32,4 +33,5 @@ states: output: filetype: auxgrid gridtype: gaussian - filename: aeroi006. + filename: aeroi{{ '%03d' % aero_iau_hours[ihour] }}. +{% endfor %} diff --git a/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 b/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 index 56da297..1adbed2 100644 --- a/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 +++ b/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 @@ -23,16 +23,16 @@ output geometry: npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml states: -{% for fh in iau_hours %} +{% for ihour in range( atmosphere_iau_hours | length ) %} - input: - datetime: {{ atmosphere_background_time_iso }} + datetime: {{ atmosphere_iau_times_iso[ihour] }} filetype: fms restart is restart: false state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] - filename_nonrestart: cubed_sphere_grid_atmi{{ '%03d' % fh }}.nc + filename_nonrestart: cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc datapath: ./ output: filetype: auxgrid gridtype: gaussian - filename: atmi{{ '%03d' % fh }}. + filename: atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 similarity index 70% rename from algorithm/atmosphere/fv3jedi_ecen.yaml.j2 rename to algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index 1ecbeb8..e87d865 100644 --- a/algorithm/atmosphere/fv3jedi_ecen.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -58,22 +58,23 @@ correction increment geometry: npy: {{ atmosphere_npy_anl }} npz: {{ atmosphere_npz_anl }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -additions from template: - pattern: '%hr%' - template: - variational increment: - filetype: fms restart - is restart: false - filename_nonrestart: ./cubed_sphere_grid_atmi%hr%.nc - deterministic background: - filetype: cube sphere history - provider: ufs - filename: ./cubed_sphere_grid_atmf%hr%.nc - ensemble mean analysis: - filetype: cube sphere history - provider: ufs - filename: ./cubed_sphere_grid_atma%hr%.ensmean.nc - correction increment: - filetype: fms restart - is restart: false - filename_nonrestart: ./cubed_sphere_grid_catmi%hr%.nc +forecast hours: +{% for ihour in range( atmosphere_iau_hours | length ) %} +- forecast time: {{ atmosphere_iau_times_iso[ihour] }} + variational increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + deterministic background: + filetype: cube sphere history + provider: ufs + filename: ./cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + ensemble mean analysis: + filetype: cube sphere history + provider: ufs + filename: ./cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + correction increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc +{% endfor %} diff --git a/algorithm/snow/snow_analcalc_convertstate.yaml.j2 b/algorithm/snow/snow_analcalc_convertstate.yaml.j2 index fa595a1..26bfe7d 100644 --- a/algorithm/snow/snow_analcalc_convertstate.yaml.j2 +++ b/algorithm/snow/snow_analcalc_convertstate.yaml.j2 @@ -23,6 +23,7 @@ output geometry: npz: {{ snow_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml states: +{% for ihour in range( snow_iau_hours | length ) %} - input: datetime: "{{ snow_background_time_iso }}" filetype: fms restart @@ -32,4 +33,5 @@ states: output: filetype: auxgrid gridtype: gaussian - filename: snowi006. + filename: snowi{{ '%03d' % snow_iau_hours[ihour] }}. +{% endfor %} diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index beee4c0..efac27a 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/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: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] + fields to write: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] geometry: fms initialization: namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml" From 2d889b0f7d8d57a849e20252a6d3d2977fb25617 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 12 Feb 2025 15:22:01 +0000 Subject: [PATCH 20/35] Use fv3jedi_add_increments rather than convertstate --- ...te.yaml.j2 => aero_add_increments.yaml.j2} | 27 ++++++++++++------- ...ate.yaml.j2 => atm_add_increments.yaml.j2} | 25 ++++++++++------- ...te.yaml.j2 => snow_add_increments.yaml.j2} | 27 ++++++++++++------- 3 files changed, 49 insertions(+), 30 deletions(-) rename algorithm/aero/{aero_analcalc_convertstate.yaml.j2 => aero_add_increments.yaml.j2} (64%) rename algorithm/atmosphere/{atm_analcalc_convertstate.yaml.j2 => atm_add_increments.yaml.j2} (71%) rename algorithm/snow/{snow_analcalc_convertstate.yaml.j2 => snow_add_increments.yaml.j2} (65%) diff --git a/algorithm/aero/aero_analcalc_convertstate.yaml.j2 b/algorithm/aero/aero_add_increments.yaml.j2 similarity index 64% rename from algorithm/aero/aero_analcalc_convertstate.yaml.j2 rename to algorithm/aero/aero_add_increments.yaml.j2 index 7ac6ac1..7997c1c 100644 --- a/algorithm/aero/aero_analcalc_convertstate.yaml.j2 +++ b/algorithm/aero/aero_add_increments.yaml.j2 @@ -1,4 +1,5 @@ -input geometry: +variables: {{ analysis_variables }} +background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -9,8 +10,8 @@ input geometry: npx: {{ aero_npx_ges }} npy: {{ aero_npy_ges }} npz: {{ aero_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -output geometry: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -21,17 +22,23 @@ output geometry: npx: {{ aero_npx_ges }} npy: {{ aero_npy_ges }} npz: {{ aero_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -states: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +additions: {% for ihour in range( aero_iau_hours | length ) %} -- input: - datetime: {{ aero_iau_times_iso[ihour] }} +- datetime: {{ aero_iau_times_iso[ihour] }} + background: + filetype: cube sphere history + provider: ufs + filename: cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc + datapath: ./ + increment: filetype: fms restart + filename is datetime templated: true + filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc' prefix: aeroinc - state variables: {{ analysis_variables }} datapath: ./ - output: + analysis: filetype: auxgrid gridtype: gaussian - filename: aeroi{{ '%03d' % aero_iau_hours[ihour] }}. + filename: aeroa{{ '%03d' % aero_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 b/algorithm/atmosphere/atm_add_increments.yaml.j2 similarity index 71% rename from algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 rename to algorithm/atmosphere/atm_add_increments.yaml.j2 index 1adbed2..f2e3b20 100644 --- a/algorithm/atmosphere/atm_analcalc_convertstate.yaml.j2 +++ b/algorithm/atmosphere/atm_add_increments.yaml.j2 @@ -1,4 +1,5 @@ -input geometry: +variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] +background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -9,8 +10,8 @@ input geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -output geometry: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -21,18 +22,22 @@ output geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -states: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml +additions: {% for ihour in range( atmosphere_iau_hours | length ) %} -- input: - datetime: {{ atmosphere_iau_times_iso[ihour] }} +- datetime: {{ atmosphere_iau_times_iso[ihour] }} + background: + filetype: cube sphere history + provider: ufs + filename: cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + datapath: ./ + increment: filetype: fms restart is restart: false - state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] filename_nonrestart: cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc datapath: ./ - output: + analysis: filetype: auxgrid gridtype: gaussian - filename: atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}. + filename: atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/snow/snow_analcalc_convertstate.yaml.j2 b/algorithm/snow/snow_add_increments.yaml.j2 similarity index 65% rename from algorithm/snow/snow_analcalc_convertstate.yaml.j2 rename to algorithm/snow/snow_add_increments.yaml.j2 index 26bfe7d..cc9b395 100644 --- a/algorithm/snow/snow_analcalc_convertstate.yaml.j2 +++ b/algorithm/snow/snow_add_increments.yaml.j2 @@ -1,4 +1,5 @@ -input geometry: +variables: {{ analysis_variables }} +background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -9,8 +10,8 @@ input geometry: npx: {{ snow_npx_ges }} npy: {{ snow_npy_ges }} npz: {{ snow_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -output geometry: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -21,17 +22,23 @@ output geometry: npx: {{ snow_npx_ges }} npy: {{ snow_npy_ges }} npz: {{ snow_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -states: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +additions: {% for ihour in range( snow_iau_hours | length ) %} -- input: - datetime: "{{ snow_background_time_iso }}" +- datetime: {{ snow_iau_times_iso[ihour] }} + background: + filetype: cube sphere history + provider: ufs + filename: cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc + datapath: ./ + increment: filetype: fms restart + filename is datetime templated: true + filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' prefix: snowinc - state variables: {{ analysis_variables }} datapath: ./ - output: + analysis: filetype: auxgrid gridtype: gaussian - filename: snowi{{ '%03d' % snow_iau_hours[ihour] }}. + filename: snowa{{ '%03d' % snow_iau_hours[ihour] }}. {% endfor %} From a65b023aa2de4a2ec1264f7bac9b127cf9324dc8 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 13:52:16 +0000 Subject: [PATCH 21/35] Restore prefix to history files in rundirs --- algorithm/aero/aero_add_increments.yaml.j2 | 4 +- .../atmosphere/atm_add_increments.yaml.j2 | 6 +-- .../fv3jedi_ensemble_recenter.yaml.j2 | 37 +++++++------------ .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 4 +- .../fv3jedi_fv3inc_variational.yaml.j2 | 4 +- algorithm/snow/snow_add_increments.yaml.j2 | 4 +- .../atmosphere/atmosphere_background.yaml.j2 | 2 +- .../atmosphere_background_ensemble.yaml.j2 | 2 +- ...ackground_error_hybrid_gsibec_bump.yaml.j2 | 10 ++--- ...phere_final_increment_cubed_sphere.yaml.j2 | 2 +- ...ere_final_increment_fms_nonrestart.yaml.j2 | 2 +- ...t_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...here_posterior_output_cubed_sphere.yaml.j2 | 2 +- 13 files changed, 37 insertions(+), 44 deletions(-) diff --git a/algorithm/aero/aero_add_increments.yaml.j2 b/algorithm/aero/aero_add_increments.yaml.j2 index 7997c1c..ddf7069 100644 --- a/algorithm/aero/aero_add_increments.yaml.j2 +++ b/algorithm/aero/aero_add_increments.yaml.j2 @@ -29,7 +29,7 @@ additions: background: filetype: cube sphere history provider: ufs - filename: cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc datapath: ./ increment: filetype: fms restart @@ -40,5 +40,5 @@ additions: analysis: filetype: auxgrid gridtype: gaussian - filename: aeroa{{ '%03d' % aero_iau_hours[ihour] }}. + filename: {{ atmosphere_variational_history_prefix }}aeroa{{ '%03d' % aero_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/atm_add_increments.yaml.j2 b/algorithm/atmosphere/atm_add_increments.yaml.j2 index f2e3b20..af79a93 100644 --- a/algorithm/atmosphere/atm_add_increments.yaml.j2 +++ b/algorithm/atmosphere/atm_add_increments.yaml.j2 @@ -29,15 +29,15 @@ additions: background: filetype: cube sphere history provider: ufs - filename: cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc datapath: ./ increment: filetype: fms restart is restart: false - filename_nonrestart: cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc datapath: ./ analysis: filetype: auxgrid gridtype: gaussian - filename: atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. + filename: {{ atmosphere_variational_history_prefix }}atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index e87d865..f9c8e63 100644 --- a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -1,16 +1,5 @@ -forecast hours: ['006'] -window begin: {{ window_begin }} -increment variables: -- cloud_liquid_water -- layer_thickness -- air_pressure_thickness -- cloud_liquid_ice -- ozone_mass_mixing_ratio -- water_vapor_mixing_ratio_wrt_moist_air -- air_temperature -- eastward_wind -- northward_wind -variational increment geometry: +increment variables: [liq_wat,delz,delp,ice_wat,o3mr,sphum,t,ua,va] +deterministic background geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -21,8 +10,8 @@ variational increment geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -deterministic background geometry: + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml +variational increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -33,7 +22,7 @@ deterministic background geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml ensemble mean analysis geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -60,21 +49,21 @@ correction increment geometry: field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml forecast hours: {% for ihour in range( atmosphere_iau_hours | length ) %} -- forecast time: {{ atmosphere_iau_times_iso[ihour] }} - variational increment: - filetype: fms restart - is restart: false - filename_nonrestart: ./cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc +- datetime: {{ atmosphere_iau_times_iso[ihour] }} deterministic background: filetype: cube sphere history provider: ufs - filename: ./cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + variational increment: + filetype: fms restart + is restart: false + filename_nonrestart: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + filename: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc correction increment: filetype: fms restart is restart: false - filename_nonrestart: ./cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index b1dc627..7a26e32 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -48,7 +48,9 @@ members from template: provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] - filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] + filenames: + - {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc + - {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc datetime: '{{ atmosphere_background_time_iso }}' state variables: *bkgvars jedi increment input: diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 162dd1f..c1d58b5 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -48,7 +48,9 @@ members: ufs soil nlev: 4 ufs fields split by level: [smc,stc] datetime: "{{ atmosphere_background_time_iso }}" - filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] + filenames: + - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc + - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc state variables: *bkgvars jedi increment input: filetype: fms restart diff --git a/algorithm/snow/snow_add_increments.yaml.j2 b/algorithm/snow/snow_add_increments.yaml.j2 index cc9b395..e6e1bf8 100644 --- a/algorithm/snow/snow_add_increments.yaml.j2 +++ b/algorithm/snow/snow_add_increments.yaml.j2 @@ -29,7 +29,7 @@ additions: background: filetype: cube sphere history provider: ufs - filename: cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc datapath: ./ increment: filetype: fms restart @@ -40,5 +40,5 @@ additions: analysis: filetype: auxgrid gridtype: gaussian - filename: snowa{{ '%03d' % snow_iau_hours[ihour] }}. + filename: {{ atmosphere_variational_history_prefix }}snowa{{ '%03d' % snow_iau_hours[ihour] }}. {% endfor %} diff --git a/model/atmosphere/atmosphere_background.yaml.j2 b/model/atmosphere/atmosphere_background.yaml.j2 index 068203c..09a10c9 100644 --- a/model/atmosphere/atmosphere_background.yaml.j2 +++ b/model/atmosphere/atmosphere_background.yaml.j2 @@ -2,7 +2,7 @@ datapath: {{ atmosphere_background_path }} filetype: cube sphere history provider: ufs datetime: "{{ atmosphere_background_time_iso }}" -filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] +filenames: [ {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc ] state variables: [ua,va,t,delp,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc, slmsk,sheleg,tmpsfc,vtype,stype,vfrac,soilt1,soilw1,snwdphMeters, u_srf,v_srf,f10m] diff --git a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 index e910cff..f3fed38 100644 --- a/model/atmosphere/atmosphere_background_ensemble.yaml.j2 +++ b/model/atmosphere/atmosphere_background_ensemble.yaml.j2 @@ -9,7 +9,7 @@ members from template: u_srf,v_srf,f10m] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] + filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 index e4a172b..5880917 100644 --- a/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 +++ b/model/atmosphere/atmosphere_background_error_hybrid_gsibec_bump.yaml.j2 @@ -37,7 +37,7 @@ components: state variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] datapath: {{ atmosphere_background_ensemble_path }} filename is datetime templated: true - filenames: [ cubed_sphere_grid_atmf006.nc, cubed_sphere_grid_sfcf006.nc ] + filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] pattern: "{{ atmosphere_ensemble_pattern | default("%mem%", true) }}" nmembers: {{atmosphere_number_ensemble_members}} zero padding: 3 @@ -46,8 +46,8 @@ components: 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, - ozone_mass_mixing_ratio ] + water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, + ozone_mass_mixing_ratio ] read: general: universe length-scale: 2500.0e3 @@ -199,8 +199,8 @@ components: 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, - ozone_mass_mixing_ratio ] + water_vapor_mixing_ratio_wrt_moist_air,cloud_liquid_ice,cloud_liquid_water, + ozone_mass_mixing_ratio ] output variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] weight: value: 0.875 diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 3d462db..6562d2b 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -1,7 +1,7 @@ output: state component: filetype: cube sphere history - filename: ./anl/cubed_sphere_grid_atminc.jedi.nc + filename: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc provider: ufs fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] geometry: diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index efac27a..b659063 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -2,7 +2,7 @@ output: state component: filetype: fms restart is restart: false - filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc fields to write: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] geometry: fms initialization: diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index 8d39113..cc17269 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,3 +1,3 @@ filetype: cube sphere history provider: ufs -filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc +filename: ./anl/mem%{member}%/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 index ace7dbc..3cad82b 100644 --- a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -2,4 +2,4 @@ filetype: cube sphere history provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] -filename: ./anl/cubed_sphere_grid_atmanl.ensmean.nc +filename: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmanl.ensmean.nc From b03bb1621fb6d76a3c4272fc1fb40a0edf632bef Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 13:54:57 +0000 Subject: [PATCH 22/35] Missed some changes in last commit --- algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 | 4 ++-- algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index f9c8e63..80b4979 100644 --- a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -61,9 +61,9 @@ forecast hours: ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + filename: ./{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc correction increment: filetype: fms restart is restart: false - filename_nonrestart: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: ./{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 7a26e32..8843dbb 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -57,12 +57,12 @@ members from template: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: cubed_sphere_grid_atminc.nc + filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.nc pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 From ed449381307af99292b3ae92eab8aff94865909a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 13:59:54 +0000 Subject: [PATCH 23/35] More missed stuff --- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 4 ++-- ...atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...mosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 | 2 +- .../atmosphere_posterior_output_cubed_sphere.yaml.j2 | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index c1d58b5..d66db49 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -56,11 +56,11 @@ members: filetype: fms restart is restart: false filename is datetime templated: true - filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false - filename_nonrestart: ./anl/cubed_sphere_grid_atminc.nc + filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.nc # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index cc17269..9633796 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,3 +1,3 @@ filetype: cube sphere history provider: ufs -filename: ./anl/mem%{member}%/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc +filename: ./anl/mem%{member}%/{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 index ff02117..241a0f6 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 @@ -1,4 +1,4 @@ filetype: fms restart is restart: false datapath: ./anl/mem%{member}% -filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc +filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 index 3cad82b..5af0de0 100644 --- a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -2,4 +2,4 @@ filetype: cube sphere history provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] -filename: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmanl.ensmean.nc +filename: ./anl/{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmanl.ensmean.nc From c82303a7261f5d7665a5f707ed7f5782ab03afe5 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 14:06:05 +0000 Subject: [PATCH 24/35] Create snow and aero variational history prefixes --- algorithm/aero/aero_add_increments.yaml.j2 | 2 +- algorithm/snow/snow_add_increments.yaml.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/algorithm/aero/aero_add_increments.yaml.j2 b/algorithm/aero/aero_add_increments.yaml.j2 index ddf7069..7550a7b 100644 --- a/algorithm/aero/aero_add_increments.yaml.j2 +++ b/algorithm/aero/aero_add_increments.yaml.j2 @@ -29,7 +29,7 @@ additions: background: filetype: cube sphere history provider: ufs - filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc + filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc datapath: ./ increment: filetype: fms restart diff --git a/algorithm/snow/snow_add_increments.yaml.j2 b/algorithm/snow/snow_add_increments.yaml.j2 index e6e1bf8..8bd4396 100644 --- a/algorithm/snow/snow_add_increments.yaml.j2 +++ b/algorithm/snow/snow_add_increments.yaml.j2 @@ -29,7 +29,7 @@ additions: background: filetype: cube sphere history provider: ufs - filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc + filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc datapath: ./ increment: filetype: fms restart From 2ab1c92acccdcd55bcd5720b3c7320e92801c2c7 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 14:46:56 +0000 Subject: [PATCH 25/35] More revisions --- algorithm/aero/aero_add_increments.yaml.j2 | 2 +- algorithm/atmosphere/atm_add_increments.yaml.j2 | 4 ++-- algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 | 6 +++--- algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 4 ++-- algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 | 4 ++-- algorithm/snow/snow_add_increments.yaml.j2 | 2 +- .../atmosphere_final_increment_cubed_sphere.yaml.j2 | 2 +- .../atmosphere_final_increment_fms_nonrestart.yaml.j2 | 2 +- ...mosphere_output_ensemble_increments_cubed_sphere.yaml.j2 | 2 +- ...sphere_output_ensemble_increments_fms_nonrestart.yaml.j2 | 2 +- .../atmosphere_posterior_output_cubed_sphere.yaml.j2 | 2 +- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/algorithm/aero/aero_add_increments.yaml.j2 b/algorithm/aero/aero_add_increments.yaml.j2 index 7550a7b..f3e3570 100644 --- a/algorithm/aero/aero_add_increments.yaml.j2 +++ b/algorithm/aero/aero_add_increments.yaml.j2 @@ -40,5 +40,5 @@ additions: analysis: filetype: auxgrid gridtype: gaussian - filename: {{ atmosphere_variational_history_prefix }}aeroa{{ '%03d' % aero_iau_hours[ihour] }}. + filename: aeroa{{ '%03d' % aero_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/atm_add_increments.yaml.j2 b/algorithm/atmosphere/atm_add_increments.yaml.j2 index af79a93..fbc7a65 100644 --- a/algorithm/atmosphere/atm_add_increments.yaml.j2 +++ b/algorithm/atmosphere/atm_add_increments.yaml.j2 @@ -34,10 +34,10 @@ additions: increment: filetype: fms restart is restart: false - filename_nonrestart: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc datapath: ./ analysis: filetype: auxgrid gridtype: gaussian - filename: {{ atmosphere_variational_history_prefix }}atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. + filename: atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index 80b4979..6e74a18 100644 --- a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -57,13 +57,13 @@ forecast hours: variational increment: filetype: fms restart is restart: false - filename_nonrestart: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: ./{{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + filename: ./{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc correction increment: filetype: fms restart is restart: false - filename_nonrestart: ./{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: ./{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 8843dbb..5d22a9d 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -57,12 +57,12 @@ members from template: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false datapath: ./anl/mem%mem% - filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.nc + filename_nonrestart: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index d66db49..4148bbc 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -56,11 +56,11 @@ members: filetype: fms restart is restart: false filename is datetime templated: true - filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false - filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.nc + filename_nonrestart: ./anl/{{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc # Optionally test the application {% if do_testing | default(false) %} diff --git a/algorithm/snow/snow_add_increments.yaml.j2 b/algorithm/snow/snow_add_increments.yaml.j2 index 8bd4396..bcbd0c8 100644 --- a/algorithm/snow/snow_add_increments.yaml.j2 +++ b/algorithm/snow/snow_add_increments.yaml.j2 @@ -40,5 +40,5 @@ additions: analysis: filetype: auxgrid gridtype: gaussian - filename: {{ atmosphere_variational_history_prefix }}snowa{{ '%03d' % snow_iau_hours[ihour] }}. + filename: snowa{{ '%03d' % snow_iau_hours[ihour] }}. {% endfor %} diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 6562d2b..3d462db 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -1,7 +1,7 @@ output: state component: filetype: cube sphere history - filename: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc + filename: ./anl/cubed_sphere_grid_atminc.jedi.nc provider: ufs fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr] geometry: diff --git a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 index b659063..efac27a 100644 --- a/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2 @@ -2,7 +2,7 @@ output: state component: filetype: fms restart is restart: false - filename_nonrestart: ./anl/{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atminc.jedi.nc + filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc fields to write: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] geometry: fms initialization: diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 index 9633796..8d39113 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_cubed_sphere.yaml.j2 @@ -1,3 +1,3 @@ filetype: cube sphere history provider: ufs -filename: ./anl/mem%{member}%/{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc +filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 index 241a0f6..ff02117 100644 --- a/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 +++ b/model/atmosphere/atmosphere_output_ensemble_increments_fms_nonrestart.yaml.j2 @@ -1,4 +1,4 @@ filetype: fms restart is restart: false datapath: ./anl/mem%{member}% -filename_nonrestart: {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atminc.jedi.nc +filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc diff --git a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 index 5af0de0..aa72fc7 100644 --- a/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_posterior_output_cubed_sphere.yaml.j2 @@ -2,4 +2,4 @@ filetype: cube sphere history provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] -filename: ./anl/{{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmanl.ensmean.nc +filename: ./anl/{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmanl.ensmean.nc From 3799d543884fc3bd98f6e765fdc79272c2d81734 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 14:50:54 +0000 Subject: [PATCH 26/35] update client integration test --- test/client_integration/gdas-atmosphere-templates.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/client_integration/gdas-atmosphere-templates.yaml b/test/client_integration/gdas-atmosphere-templates.yaml index 4f66e4d..0065677 100644 --- a/test/client_integration/gdas-atmosphere-templates.yaml +++ b/test/client_integration/gdas-atmosphere-templates.yaml @@ -63,6 +63,9 @@ atmosphere_background_ensemble_path: "DATA/ens/mem%mem%" atmosphere_variational_history_prefix: "bkg_" atmosphere_ensemble_history_prefix: "ens_" +atmosphere_variational_analysis_prefix: "anl_" +atmosphere_ensemble_analysis_prefix: "anl_" + atmosphere_background_time_iso: '2024-02-02T00:00:00Z' # Background error From 82e3fcd0a9f7158e3c2096198b8c4bddefaf9951 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 14 Feb 2025 17:02:18 +0000 Subject: [PATCH 27/35] Debug --- algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index 6e74a18..1c56691 100644 --- a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -61,9 +61,9 @@ forecast hours: ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + filename: ./enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc correction increment: filetype: fms restart is restart: false - filename_nonrestart: ./{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: ./enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc {% endfor %} From 9d737b907bbb7ced0a513803f8e6f1c5ac89d51f Mon Sep 17 00:00:00 2001 From: danholdaway Date: Fri, 21 Feb 2025 09:12:30 -0500 Subject: [PATCH 28/35] Add test of ensemble mode --- .../gdas-atmosphere-ens-hofx.yaml | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 test/client_integration/gdas-atmosphere-ens-hofx.yaml diff --git a/test/client_integration/gdas-atmosphere-ens-hofx.yaml b/test/client_integration/gdas-atmosphere-ens-hofx.yaml new file mode 100644 index 0000000..44a1965 --- /dev/null +++ b/test/client_integration/gdas-atmosphere-ens-hofx.yaml @@ -0,0 +1,52 @@ +# ALgorithm to run +# ---------------- +algorithm: hofx3d + +# Make this an ensemble run +# ------------------------- +number_ensemble_members: 2 +number_first_member: 1 + +# Search path for model and obs for JCB (relative for the submodule, or can be absolute) +# -------------------------------------------------------------------------------------- +app_path_algorithm: gdas/algorithm/atmosphere +app_path_model: gdas/model/atmosphere +app_path_observations: gdas/observations/atmosphere +app_path_observation_chronicle: gdas/observation_chronicle/atmosphere + +# Window things +# ------------- +window_begin: '2024-02-01T00:00:00Z' +window_length: PT6H +bound_to_include: begin + +# Model things +# ------------ +atmosphere_layout_x: 2 +atmosphere_layout_y: 2 +atmosphere_npx_ges: 361 +atmosphere_npy_ges: 361 +atmosphere_npz_ges: 127 +atmosphere_fv3jedi_files_path: DATA/fv3jedi + +# Background +atmosphere_background_path: Data/member{{ "%0{}d".format(3)|format(member) }}/ +atmosphere_background_ensemble_path: "DATA/ens/mem%mem%" + +atmosphere_variational_history_prefix: "bkg_" + +atmosphere_background_time_iso: '2024-02-02T00:00:00Z' + +# Observation things +# ------------------ +observations: +- conventional_ps + +# Naming conventions for observational files +atmosphere_obsdatain_path: DATA/obs +atmosphere_obsdatain_prefix: OPREFIX +atmosphere_obsdatain_suffix: ".2024020100.nc" + +atmosphere_obsdataout_path: DATA/diags +atmosphere_obsdataout_prefix: diag +atmosphere_obsdataout_suffix: "_2024020100.nc" From cdb6e00120d8fdefbde1f0abbe40130108a0d7c5 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 21 Feb 2025 16:18:39 +0000 Subject: [PATCH 29/35] Update --- ...mble_recenter.yaml.j2 => fv3jedi_correction_increment.yaml.j2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename algorithm/atmosphere/{fv3jedi_ensemble_recenter.yaml.j2 => fv3jedi_correction_increment.yaml.j2} (100%) diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 similarity index 100% rename from algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 rename to algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 From 42961f309c6254d4fd6b68c47ae3468762133df2 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 24 Feb 2025 13:41:46 +0000 Subject: [PATCH 30/35] Revert "Merge branch 'feature/create_ensemble_mode' into feature/calcanl" This reverts commit 956165bc7b83f53ceaeed645231f831b3fb17d52, reversing changes made to cdb6e00120d8fdefbde1f0abbe40130108a0d7c5. --- .../gdas-atmosphere-ens-hofx.yaml | 52 ------------------- 1 file changed, 52 deletions(-) delete mode 100644 test/client_integration/gdas-atmosphere-ens-hofx.yaml diff --git a/test/client_integration/gdas-atmosphere-ens-hofx.yaml b/test/client_integration/gdas-atmosphere-ens-hofx.yaml deleted file mode 100644 index 44a1965..0000000 --- a/test/client_integration/gdas-atmosphere-ens-hofx.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# ALgorithm to run -# ---------------- -algorithm: hofx3d - -# Make this an ensemble run -# ------------------------- -number_ensemble_members: 2 -number_first_member: 1 - -# Search path for model and obs for JCB (relative for the submodule, or can be absolute) -# -------------------------------------------------------------------------------------- -app_path_algorithm: gdas/algorithm/atmosphere -app_path_model: gdas/model/atmosphere -app_path_observations: gdas/observations/atmosphere -app_path_observation_chronicle: gdas/observation_chronicle/atmosphere - -# Window things -# ------------- -window_begin: '2024-02-01T00:00:00Z' -window_length: PT6H -bound_to_include: begin - -# Model things -# ------------ -atmosphere_layout_x: 2 -atmosphere_layout_y: 2 -atmosphere_npx_ges: 361 -atmosphere_npy_ges: 361 -atmosphere_npz_ges: 127 -atmosphere_fv3jedi_files_path: DATA/fv3jedi - -# Background -atmosphere_background_path: Data/member{{ "%0{}d".format(3)|format(member) }}/ -atmosphere_background_ensemble_path: "DATA/ens/mem%mem%" - -atmosphere_variational_history_prefix: "bkg_" - -atmosphere_background_time_iso: '2024-02-02T00:00:00Z' - -# Observation things -# ------------------ -observations: -- conventional_ps - -# Naming conventions for observational files -atmosphere_obsdatain_path: DATA/obs -atmosphere_obsdatain_prefix: OPREFIX -atmosphere_obsdatain_suffix: ".2024020100.nc" - -atmosphere_obsdataout_path: DATA/diags -atmosphere_obsdataout_prefix: diag -atmosphere_obsdataout_suffix: "_2024020100.nc" From 2f31decf22d9a0cf06772fec825755ef47ab1148 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 24 Feb 2025 20:52:54 +0000 Subject: [PATCH 31/35] Update --- .../fv3jedi_correction_increment.yaml.j2 | 16 ++++++++++------ .../atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 | 18 ++++++++---------- .../fv3jedi_fv3inc_variational.yaml.j2 | 13 +++++++------ ...sphere_final_increment_cubed_sphere.yaml.j2 | 6 +++--- 4 files changed, 28 insertions(+), 25 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 b/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 index 1c56691..94dd1cb 100644 --- a/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2 @@ -53,17 +53,21 @@ forecast hours: deterministic background: filetype: cube sphere history provider: ufs - filename: ./{{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + datapath: ./ + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc variational increment: filetype: fms restart is restart: false - filename_nonrestart: ./{{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + datapath: ./ + filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc ensemble mean analysis: filetype: cube sphere history provider: ufs - filename: ./enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc + datapath: ./ + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc correction increment: - filetype: fms restart - is restart: false - filename_nonrestart: ./enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filetype: cube sphere history + provider: ufs + datapath: ./ + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc {% endfor %} diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 index 5d22a9d..cac17a0 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2 @@ -39,7 +39,7 @@ fv3 increment geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml members from template: template: background input: @@ -48,21 +48,19 @@ members from template: provider: ufs ufs soil nlev: 4 ufs fields split by level: [smc,stc] - filenames: - - {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc - - {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc + filenames: [ {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_ensemble_history_prefix }}cubed_sphere_grid_sfcf006.nc ] datetime: '{{ atmosphere_background_time_iso }}' state variables: *bkgvars jedi increment input: - filetype: fms restart - is restart: false + filetype: cube sphere history + provider: ufs datapath: ./anl/mem%mem% - filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc + filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: - filetype: fms restart - is restart: false + filetype: cube sphere history + provider: ufs datapath: ./anl/mem%mem% - filename_nonrestart: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc + filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc pattern: '%mem%' nmembers: {{ atmosphere_number_ensemble_members }} zero padding: 3 diff --git a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 index 4148bbc..91c47f0 100644 --- a/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2 @@ -27,7 +27,7 @@ jedi increment geometry: npx: {{ atmosphere_npx_ges }} npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml fv3 increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -53,14 +53,15 @@ members: - {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc state variables: *bkgvars jedi increment input: - filetype: fms restart - is restart: false - filename is datetime templated: true - filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc + filetype: cube sphere history + provider: ufs + datapath: ./anl + filename: cubed_sphere_grid_atminc.jedi.nc fv3 increment output: filetype: fms restart is restart: false - filename_nonrestart: ./anl/{{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc + datapath: ./anl + filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc # Optionally test the application {% if do_testing | default(false) %} diff --git a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 index 3d462db..e49a7da 100644 --- a/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 +++ b/model/atmosphere/atmosphere_final_increment_cubed_sphere.yaml.j2 @@ -12,7 +12,7 @@ geometry: layout: - {{atmosphere_layout_x}} - {{atmosphere_layout_y}} - npx: {{atmosphere_npx_anl}} - npy: {{atmosphere_npy_anl}} - npz: {{atmosphere_npz_anl}} + npx: {{atmosphere_npx_ges}} + npy: {{atmosphere_npy_ges}} + npz: {{atmosphere_npz_ges}} field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_history.yaml" From 38d5768c0ba87d6b92cd1ea7b5527956ef807360 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 24 Feb 2025 22:17:48 +0000 Subject: [PATCH 32/35] Update --- algorithm/atmosphere/atm_add_increments.yaml.j2 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/algorithm/atmosphere/atm_add_increments.yaml.j2 b/algorithm/atmosphere/atm_add_increments.yaml.j2 index fbc7a65..7c464f6 100644 --- a/algorithm/atmosphere/atm_add_increments.yaml.j2 +++ b/algorithm/atmosphere/atm_add_increments.yaml.j2 @@ -24,20 +24,18 @@ increment geometry: npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml additions: -{% for ihour in range( atmosphere_iau_hours | length ) %} -- datetime: {{ atmosphere_iau_times_iso[ihour] }} +- datetime: {{ atmosphere_background_time_iso }} background: filetype: cube sphere history provider: ufs - filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc datapath: ./ increment: filetype: fms restart is restart: false - filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc datapath: ./ analysis: filetype: auxgrid gridtype: gaussian - filename: atma{{ '%03d' % atmosphere_iau_hours[ihour] }}. -{% endfor %} + filename: atmanl. From 9a55c66837b2073f9be06d7bec71864d6fb89392 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 24 Feb 2025 22:44:16 +0000 Subject: [PATCH 33/35] Switich to conventional JEDI addincrement application --- ...ents.yaml.j2 => aero_addincrement.yaml.j2} | 41 +++++++++---------- ...ments.yaml.j2 => atm_addincrement.yaml.j2} | 36 ++++++++-------- ...ents.yaml.j2 => snow_addincrement.yaml.j2} | 41 +++++++++---------- 3 files changed, 58 insertions(+), 60 deletions(-) rename algorithm/aero/{aero_add_increments.yaml.j2 => aero_addincrement.yaml.j2} (51%) rename algorithm/atmosphere/{atm_add_increments.yaml.j2 => atm_addincrement.yaml.j2} (57%) rename algorithm/snow/{snow_add_increments.yaml.j2 => snow_addincrement.yaml.j2} (52%) diff --git a/algorithm/aero/aero_add_increments.yaml.j2 b/algorithm/aero/aero_addincrement.yaml.j2 similarity index 51% rename from algorithm/aero/aero_add_increments.yaml.j2 rename to algorithm/aero/aero_addincrement.yaml.j2 index f3e3570..b07acd0 100644 --- a/algorithm/aero/aero_add_increments.yaml.j2 +++ b/algorithm/aero/aero_addincrement.yaml.j2 @@ -1,5 +1,4 @@ -variables: {{ analysis_variables }} -background geometry: +state geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -23,22 +22,22 @@ increment geometry: npy: {{ aero_npy_ges }} npz: {{ aero_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -additions: -{% for ihour in range( aero_iau_hours | length ) %} -- datetime: {{ aero_iau_times_iso[ihour] }} - background: - filetype: cube sphere history - provider: ufs - filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % aero_iau_hours[ihour] }}.nc - datapath: ./ - increment: - filetype: fms restart - filename is datetime templated: true - filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc' - prefix: aeroinc - datapath: ./ - analysis: - filetype: auxgrid - gridtype: gaussian - filename: aeroa{{ '%03d' % aero_iau_hours[ihour] }}. -{% endfor %} +state: + datetime: {{ atmosphere_background_time_iso }} + state variables: {{ analysis_variables }} + filetype: cube sphere history + provider: ufs + datapath: ./ + filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf006.nc +increment: + added variables: {{ analysis_variables }} + filetype: fms restart + datapath: ./ + filename is datetime templated: true + filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc' + prefix: aeroinc +output: + filetype: auxgrid + gridtype: gaussian + datapath: ./ + filename: aeroanl. diff --git a/algorithm/atmosphere/atm_add_increments.yaml.j2 b/algorithm/atmosphere/atm_addincrement.yaml.j2 similarity index 57% rename from algorithm/atmosphere/atm_add_increments.yaml.j2 rename to algorithm/atmosphere/atm_addincrement.yaml.j2 index 7c464f6..0f0d2ed 100644 --- a/algorithm/atmosphere/atm_add_increments.yaml.j2 +++ b/algorithm/atmosphere/atm_addincrement.yaml.j2 @@ -1,5 +1,4 @@ -variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] -background geometry: +state geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -23,19 +22,20 @@ increment geometry: npy: {{ atmosphere_npy_ges }} npz: {{ atmosphere_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -additions: -- datetime: {{ atmosphere_background_time_iso }} - background: - filetype: cube sphere history - provider: ufs - filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc - datapath: ./ - increment: - filetype: fms restart - is restart: false - filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc - datapath: ./ - analysis: - filetype: auxgrid - gridtype: gaussian - filename: atmanl. +state: + datetime: {{ atmosphere_background_time_iso }} + state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + filetype: cube sphere history + provider: ufs + filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc + datapath: ./ +increment: + added variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + filetype: fms restart + is restart: false + filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc + datapath: ./ +output: + filetype: auxgrid + gridtype: gaussian + filename: atmanl. diff --git a/algorithm/snow/snow_add_increments.yaml.j2 b/algorithm/snow/snow_addincrement.yaml.j2 similarity index 52% rename from algorithm/snow/snow_add_increments.yaml.j2 rename to algorithm/snow/snow_addincrement.yaml.j2 index bcbd0c8..9563261 100644 --- a/algorithm/snow/snow_add_increments.yaml.j2 +++ b/algorithm/snow/snow_addincrement.yaml.j2 @@ -1,5 +1,4 @@ -variables: {{ analysis_variables }} -background geometry: +state geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml field table filename: ./fv3jedi/field_table @@ -23,22 +22,22 @@ increment geometry: npy: {{ snow_npy_ges }} npz: {{ snow_npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -additions: -{% for ihour in range( snow_iau_hours | length ) %} -- datetime: {{ snow_iau_times_iso[ihour] }} - background: - filetype: cube sphere history - provider: ufs - filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf{{ '%03d' % snow_iau_hours[ihour] }}.nc - datapath: ./ - increment: - filetype: fms restart - filename is datetime templated: true - filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' - prefix: snowinc - datapath: ./ - analysis: - filetype: auxgrid - gridtype: gaussian - filename: snowa{{ '%03d' % snow_iau_hours[ihour] }}. -{% endfor %} +state: + datetime: {{ atmosphere_background_time_iso }} + state variables: {{ analysis_variables }} + filetype: cube sphere history + provider: ufs + datapath: ./ + filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc +increment: + added variables: {{ analysis_variables }} + filetype: fms restart + datapath: ./ + filename is datetime templated: true + filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc' + prefix: snowinc +output: + filetype: auxgrid + gridtype: gaussian + datapath: ./ + filename: snowanl. From bd6f0c7665978ca5cb6f7b44002f45a1a5ba225a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 25 Feb 2025 14:48:23 +0000 Subject: [PATCH 34/35] Add missing template --- .../fv3jedi_ensemble_recenter.yaml.j2 | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 new file mode 100644 index 0000000..c397dcc --- /dev/null +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -0,0 +1,47 @@ +members: +{% for imember in range(atmosphere_number_ensemble_members) %} +{% for ihour in range( atmosphere_iau_hours | length ) %} +- state geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_anl }} + npy: {{ atmosphere_npy_anl }} + npz: {{ atmosphere_npz_anl }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml + increment geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ atmosphere_layout_x }} + - {{ atmosphere_layout_y }} + npx: {{ atmosphere_npx_anl }} + npy: {{ atmosphere_npy_anl }} + npz: {{ atmosphere_npz_anl }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml + state: + datetime: {{ atmosphere_iau_times_iso[ihour] }} + state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + filetype: cube sphere history + provider: ufs + datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + increment: + added variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] + filetype: cube sphere history + provider: ufs + datapath: ./ + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + output: + filetype: fms restart + is restart: false + datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} + filename_nonrestart: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_ratmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc +{% endfor %} +{% endfor %} From c3979c5f1e9a38e0e670ca9797fa476310557893 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 26 Feb 2025 18:14:25 +0000 Subject: [PATCH 35/35] wrong fields metadata --- .../atmosphere/fv3jedi_ensemble_recenter.yaml.j2 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 index c397dcc..7980940 100644 --- a/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 +++ b/algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2 @@ -12,7 +12,7 @@ members: npx: {{ atmosphere_npx_anl }} npy: {{ atmosphere_npy_anl }} npz: {{ atmosphere_npz_anl }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml increment geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -24,20 +24,20 @@ members: npx: {{ atmosphere_npx_anl }} npy: {{ atmosphere_npy_anl }} npz: {{ atmosphere_npz_anl }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml state: datetime: {{ atmosphere_iau_times_iso[ihour] }} state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] filetype: cube sphere history provider: ufs - datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} - filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + datapath: ./ + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc increment: added variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] filetype: cube sphere history provider: ufs - datapath: ./ - filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc + datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }} + filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc output: filetype: fms restart is restart: false