diff --git a/components.yaml b/components.yaml index 84233919..9a434022 100644 --- a/components.yaml +++ b/components.yaml @@ -92,7 +92,7 @@ GEOSana_GridComp: mksi: local: ./src/Components/@GEOSana_GridComp/GEOSaana_GridComp/GSI_GridComp/@mksi remote: ../GEOS_mksi.git - tag: v5.42.6 + tag: v5.42.7 develop: develop GEOSgcm_GridComp: @@ -251,7 +251,7 @@ umwm: GEOSgcm_App: local: ./src/Applications/@GEOSgcm_App remote: ../GEOSgcm_App.git - tag: v2.3.8.4 + tag: v2.3.8.5 develop: develop Ocean-LETKF: diff --git a/src/Applications/GEOSdas_App/jedi/etc/CMakeLists.txt b/src/Applications/GEOSdas_App/jedi/etc/CMakeLists.txt index e0f34c5f..f6b54c3e 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/CMakeLists.txt +++ b/src/Applications/GEOSdas_App/jedi/etc/CMakeLists.txt @@ -12,6 +12,7 @@ set (ALLETC jedi_acquire_ebkg.j jedi_acquire_ioda.j jedi_acquire_vbc.j + jedi_diffstates.j jedi_run_var.j mkiau.rc.tenv obsop_name_map.yaml diff --git a/src/Applications/GEOSdas_App/jedi/etc/JEDIanaConfig.csh b/src/Applications/GEOSdas_App/jedi/etc/JEDIanaConfig.csh index eb8e002e..027ff1c4 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/JEDIanaConfig.csh +++ b/src/Applications/GEOSdas_App/jedi/etc/JEDIanaConfig.csh @@ -1,3 +1,6 @@ +# SLURM specials +setenv GEOSJEDI_QOS @GEOSJEDI_QOS +setenv GEOSJEDI_PARTITION @GEOSJEDI_PARTITION # Top options setenv JEDI_SET 1 # bring bkg/obs/ens @@ -34,7 +37,7 @@ setenv JEDI_ADDINC_MPIRUN "mpirun -np 12" setenv JEDI_CNVANA_MPIRUN "mpirun -np 12" setenv JEDI_CNVENS_MPIRUN "mpirun -np 12" setenv JEDI_CNVINC_MPIRUN "mpirun -np 12" -setenv JEDI_GETINC_MPIRUN "mpirun -np 48" +setenv JEDI_GETINC_MPIRUN "mpirun -np @JEDI_DIF_NTASKS" setenv JEDI_NCPUS @JEDI_VAR_NCPUS setenv JEDI_FV3VAR_MPIRUN "mpirun -perhost @JEDI_VAR_PERHOST -np $JEDI_NCPUS" diff --git a/src/Applications/GEOSdas_App/jedi/etc/convertana_geos.yaml b/src/Applications/GEOSdas_App/jedi/etc/convertana_geos.yaml index f9128b80..e145e260 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/convertana_geos.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/convertana_geos.yaml @@ -6,14 +6,12 @@ input geometry: npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: fv3-jedi/fieldmetadata/geos.yaml output geometry: akbk: fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 # interpolation method: bump npx: @JEDI_BKG_HRES_OUT npy: @JEDI_BKG_HRES_OUT npz: @JEDI_BKG_VRES - field metadata override: fv3-jedi/fieldmetadata/geos.yaml states: - input: datetime: $ISO_STATES_DATE @@ -21,13 +19,86 @@ states: provider: geos filename: &mybkg $JEDI_CUBED_BKG datapath: ./ - state variables: [ua,va,t,delp,ps,q,qi,ql,qr,qs,o3ppmv,phis, - qls,qcn,cfcn,frocean,frland,varflt,ustar,bstar, - zpbl,cm,ct,cq,kcbl,tsm,khl,khu,frlake,frseaice, - sheleg,ts,soilt,soilm,u10m,v10m,co2] + state variables: + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice + - vtype + - stype + - vfrac + - sheleg + - skin_temperature_at_surface + - soilt + - soilm + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found #vtype, stype,vfrac, output: filetype: cube sphere history provider: geos datapath: ./$OUTDIR filename: *mybkg + field io names: *field_io_names diff --git a/src/Applications/GEOSdas_App/jedi/etc/convertinc_geos.yaml b/src/Applications/GEOSdas_App/jedi/etc/convertinc_geos.yaml index 7723294b..079ac90e 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/convertinc_geos.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/convertinc_geos.yaml @@ -7,25 +7,46 @@ input geometry: npx: $JEDI_BKG_HRES npy: $JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: ./fieldmetadata/geos.yaml output geometry: layout: [2,1] akbk: ./fv3files/akbk@JEDI_BKG_VRES.nc4 npx: $JEDI_BKG_HRES npy: $JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: ./fieldmetadata/geos.yaml linear variable change: variable change name: Model2GeoVaLs - input variables: &inputvars [ua,va,t,ps,q,o3ppmv,ts] - output variables: [ua,va,t,ps,q,o3ppmv,ts] + input variables: &myvars + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - air_pressure_at_surface + - skin_temperature_at_surface + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + air_pressure_at_surface: ps + skin_temperature_at_surface: ts + output variables: *myvars increments: - date: "$JEDI_ISO_DATE_ANA" - input variables: *inputvars + input variables: *myvars trajectory: datetime: "$JEDI_ISO_DATE_ANA" - state variables: *inputvars + state variables: *myvars filetype: cube sphere history provider: geos datapath: ./bkg diff --git a/src/Applications/GEOSdas_App/jedi/etc/diffstates_geos.yaml b/src/Applications/GEOSdas_App/jedi/etc/diffstates_geos.yaml index eb716dfc..d3055064 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/diffstates_geos.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/diffstates_geos.yaml @@ -6,38 +6,49 @@ state geometry: npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: fv3-jedi/fieldmetadata/geos.yaml layout: - - 4 - - 2 + - @JEDI_DIF_XLAYOUT + - @JEDI_DIF_YLAYOUT increment geometry: akbk: fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: fv3-jedi/fieldmetadata/geos.yaml layout: - - 4 - - 2 + - @JEDI_DIF_XLAYOUT + - @JEDI_DIF_YLAYOUT state1: datetime: $ISO_STATES_DATE filetype: cube sphere history provider: geos datapath: ./ana filename: $JEDI_CUBED_ANA - state variables: - - ua - - va - - t - - q - - qi - - ql - - qr - - qs - - o3ppmv - - ps - - phis - - ts + state variables: &statevars + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - air_pressure_at_surface + - skin_temperature_at_surface + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + air_pressure_at_surface: ps + skin_temperature_at_surface: ts # - delp state2: datetime: $ISO_STATES_DATE @@ -45,22 +56,11 @@ state2: provider: geos datapath: ./bkg filename: $JEDI_CUBED_BKG - state variables: - - ua - - va - - t - - q - - qi - - ql - - qr - - qs - - o3ppmv - - ps - - phis - - ts -# - delp + state variables: *statevars + field io names: *field_io_names output: filetype: auxgrid gridtype: latlon datapath: ./inc filename: $EXPID.jedi_inc1.eta. + field io names: *field_io_names diff --git a/src/Applications/GEOSdas_App/jedi/etc/geos_3dfgat.yaml b/src/Applications/GEOSdas_App/jedi/etc/geos_3dfgat.yaml index 282b7a6c..9c1aca82 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/geos_3dfgat.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/geos_3dfgat.yaml @@ -1,50 +1,20 @@ cost function: - cost type: 3D-FGAT - jb evaluation: false - time window: - begin: $JEDI_ISO_DATE_BEG - length: PT6H - bound to include: begin - geometry: - fms initialization: - namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml - field table filename: ./fv3-jedi/fv3files/field_table_gmao - akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - layout: - - @JEDI_VAR_XLAYOUT - - @JEDI_VAR_YLAYOUT - npx: @JEDI_BKG_HRES - npy: @JEDI_BKG_HRES - npz: @JEDI_BKG_VRES - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml - model: - name: PSEUDO - tstep: PT3H - filetype: cube sphere history - provider: geos - datapath: ./ - filenames: - - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 - variable change: - variable change name: Analysis2Model -# forecast length: PT6H - analysis variables: - - ua - - va - - t - - q - - ps - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + analysis variables: &anavars + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface background: datetime: $JEDI_ISO_DATE_BEG filetype: cube sphere history @@ -54,45 +24,83 @@ cost function: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice - vtype - stype - vfrac - sheleg - - ts + - skin_temperature_at_surface - soilt - soilm - - u10m - - v10m + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature +# - mole_fraction_of_carbon_dioxide_in_air + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found +# mole_fraction_of_carbon_dioxide_in_air: co2 background error: covariance model: SABER # adjoint test: true @@ -122,67 +130,43 @@ cost function: inverse interpolator: local interpolator type: oops unstructured grid interpolator -# saber outer blocks: -# - saber block name: gsi interpolation to model grid -# gsi akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 -# gsi error covariance file: ./fv3-jedi/gsibec/gsibec_coefficients_c@JEDI_BKGCOV_RESOL.nc4 -# gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_c@JEDI_BKGCOV_RESOL.nml -# processor layout x direction: @JEDI_VAR_GSIXLAYOUT -# processor layout y direction: @JEDI_VAR_GSIYLAYOUT -# debugging mode: false - - state variables to inverse: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface + state variables to inverse: *anavars 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 - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface - output variables: - - ua - - va - - t - - q - - ps - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + input variables: *anavars + output variables: *anavars # OBSYAML_BEG # OBSYAML_END + cost type: 3D-FGAT + jb evaluation: false + time window: + begin: $JEDI_ISO_DATE_BEG + length: PT6H + bound to include: begin + geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 + layout: + - @JEDI_VAR_XLAYOUT + - @JEDI_VAR_YLAYOUT + npx: @JEDI_BKG_HRES + npy: @JEDI_BKG_HRES + npz: @JEDI_BKG_VRES + model: + name: PSEUDO + tstep: PT3H + filetype: cube sphere history + provider: geos + datapath: ./ + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 + field io names: *field_io_names + variable change: + variable change name: Analysis2Model +# forecast length: PT6H variational: minimizer: algorithm: DRPCG @@ -198,27 +182,27 @@ variational: npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml gradient norm reduction: 1e-3 ninner: '100' linear model: name: Identity - increment variables: - - ua - - va - - t - - q - - ps - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + increment variables: *anavars + field io names: &inc_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + water_vapor_mixing_ratio_wrt_moist_air: q + air_pressure_at_surface: ps + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + fraction_of_ocean: frocean + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts variable change: Identity tstep: PT3H diagnostics: @@ -231,6 +215,7 @@ variational: gridtype: latlon datapath: ./inc filename: $EXPID.jedi_inc1.eta. + field io names: *field_io_names final: diagnostics: departures: oman diff --git a/src/Applications/GEOSdas_App/jedi/etc/geos_3dvar.yaml b/src/Applications/GEOSdas_App/jedi/etc/geos_3dvar.yaml index bae4cf63..d6985758 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/geos_3dvar.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/geos_3dvar.yaml @@ -16,23 +16,22 @@ cost function: npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml - analysis variables: - - ua - - va - - t - - q - - ps - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + analysis variables: &anavars + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface background: datetime: $JEDI_ISO_DATE_ANA filetype: cube sphere history @@ -41,46 +40,82 @@ cost function: filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice + state variables: &statevars + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice - vtype - stype - vfrac - sheleg - - ts + - skin_temperature_at_surface - soilt - soilm - - u10m - - v10m + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found background error: covariance model: SABER saber central block: @@ -118,56 +153,11 @@ cost function: # processor layout y direction: @JEDI_VAR_GSIYLAYOUT # debugging mode: false - state variables to inverse: - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface + state variables to inverse: *anavars 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 - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface - output variables: - - ua - - va - - t - - q - - ps - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + input variables: *anavars + output variables: *anavars # OBSYAML_BEG # OBSYAML_END variational: @@ -185,7 +175,6 @@ variational: npx: @JEDI_BKG_HRES npy: @JEDI_BKG_HRES npz: @JEDI_BKG_VRES - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml gradient norm reduction: 1e-3 ninner: '100' diagnostics: @@ -198,6 +187,7 @@ variational: gridtype: latlon datapath: ./inc filename: $EXPID.jedi_inc1.eta. + field io names: &field_io_names final: diagnostics: departures: oman @@ -210,3 +200,4 @@ output: filename: $EXPID.jedi_ana.ceta.%yyyy%mm%dd_%hh%MMz.nc4 first: PT0H frequency: PT1H + field io names: &field_io_names diff --git a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb3dcenvar.yaml b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb3dcenvar.yaml index 3b93cff5..4050b745 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb3dcenvar.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb3dcenvar.yaml @@ -1,20 +1,20 @@ cost function: analysis variables: &anavars - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface background: states: - datapath: './' @@ -24,68 +24,89 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice + state variables: &statevars + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice - vtype - stype - vfrac - sheleg - - ts + - skin_temperature_at_surface - soilt - soilm - - u10m - - v10m + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found background error: covariance model: hybrid components: - covariance: covariance model: SABER linear variable change: - input variables: &id001 - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface + input variables: *anavars linear variable change name: Control2Analysis output variables: *anavars saber central block: @@ -98,15 +119,33 @@ cost function: processor layout y direction: @JEDI_VAR_GSIYLAYOUT # saber block name: gsi covariance saber block name: gsi static covariance + saber outer blocks: - - debugging mode: false - gsi akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_c@JEDI_BKGCOV_RESOL.nml - gsi error covariance file: ./fv3-jedi/gsibec/gsibec_coefficients_c@JEDI_BKGCOV_RESOL.nc4 - processor layout x direction: @JEDI_VAR_GSIXLAYOUT - processor layout y direction: @JEDI_VAR_GSIYLAYOUT - saber block name: gsi interpolation to model grid - state variables to inverse: *id001 + - saber block name: interpolation + inner geometry: + function space: StructuredColumns + custom grid matching gsi: + type: latlon + lats: @JEDI_GSIBEC_NLAT + lons: @JEDI_GSIBEC_NLON + custom partitioner matching gsi: + bands: @JEDI_VAR_GSIYLAYOUT + halo: 1 + forward interpolator: + local interpolator type: oops unstructured grid interpolator + inverse interpolator: + local interpolator type: oops unstructured grid interpolator + +# saber outer blocks: +# - debugging mode: false +# gsi akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 +# gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_c@JEDI_BKGCOV_RESOL.nml +# gsi error covariance file: ./fv3-jedi/gsibec/gsibec_coefficients_c@JEDI_BKGCOV_RESOL.nc4 +# processor layout x direction: @JEDI_VAR_GSIXLAYOUT +# processor layout y direction: @JEDI_VAR_GSIYLAYOUT +# saber block name: gsi interpolation to model grid + + state variables to inverse: *anavars weight: ## datetime: 2020-12-15T00:00:00Z ## filetype: cube sphere history @@ -122,7 +161,7 @@ cost function: - datetime: $JEDI_ISO_DATE_ANA filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] pattern: '%mem%' @@ -132,7 +171,7 @@ cost function: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: *id001 + active variables: *anavars read: general: universe length-scale: 2500.0e3 @@ -227,7 +266,7 @@ cost function: linear variable change: linear variable change name: Control2Analysis - input variables: *id001 + input variables: *anavars output variables: *anavars weight: @@ -240,7 +279,6 @@ cost function: cost type: 3D-Var geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -278,7 +316,6 @@ variational: departures: ombg geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -290,22 +327,7 @@ variational: npz: @JEDI_BKG_VRES gradient norm reduction: 1e-3 linear model: - increment variables: - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + increment variables: *anavars name: Identity tstep: PT1H variable change: Identity @@ -318,13 +340,13 @@ variational: filename: $EXPID.jedi_inc1.eta. filetype: auxgrid gridtype: latlon + field io names: *field_io_names write increment: true # - ninner: '100' # diagnostics: # departures: ombg # geometry: # akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 -# field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml # fms initialization: # field table filename: ./fv3-jedi/fv3files/field_table_gmao # namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -336,16 +358,7 @@ variational: # npz: @JEDI_BKG_VRES # gradient norm reduction: 1e-3 # linear model: -# increment variables: -# - ua -# - va -# - t -# - q -# - ps -# - qi -# - ql -# - o3ppmv -# - phis +# increment variables: *anavars # name: Identity # tstep: PT1H # variable change: Identity @@ -358,6 +371,7 @@ variational: # filename: jedi.increment-iter2. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # write increment: true minimizer: diff --git a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4dcenvar.yaml b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4dcenvar.yaml index c53b9afe..fc365572 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4dcenvar.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4dcenvar.yaml @@ -1,20 +1,20 @@ cost function: analysis variables: &anavars - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface background: states: - datapath: './' @@ -24,46 +24,82 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice + state variables: &statevars + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice - vtype - stype - vfrac - sheleg - - ts + - skin_temperature_at_surface - soilt - soilm - - u10m - - v10m + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found - datapath: './' datetime: $JEDI_ISO_DATE_002 filenames: @@ -71,46 +107,8 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' datetime: $JEDI_ISO_DATE_003 filenames: @@ -118,46 +116,8 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' datetime: $JEDI_ISO_DATE_004 filenames: @@ -165,46 +125,8 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' datetime: $JEDI_ISO_DATE_005 filenames: @@ -212,46 +134,8 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' datetime: $JEDI_ISO_DATE_006 filenames: @@ -259,46 +143,8 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' datetime: $JEDI_ISO_DATE_007 filenames: @@ -306,68 +152,15 @@ cost function: - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names background error: covariance model: hybrid components: - covariance: covariance model: SABER linear variable change: - input variables: &id001 - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface + input variables: *anavars linear variable change name: Control2Analysis output variables: *anavars saber central block: @@ -380,15 +173,33 @@ cost function: processor layout y direction: @JEDI_VAR_GSIYLAYOUT # saber block name: gsi covariance saber block name: gsi static covariance + saber outer blocks: - - debugging mode: false - gsi akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_c@JEDI_BKGCOV_RESOL.nml - gsi error covariance file: ./fv3-jedi/gsibec/gsibec_coefficients_c@JEDI_BKGCOV_RESOL.nc4 - processor layout x direction: @JEDI_VAR_GSIXLAYOUT - processor layout y direction: @JEDI_VAR_GSIYLAYOUT - saber block name: gsi interpolation to model grid - state variables to inverse: *id001 + - saber block name: interpolation + inner geometry: + function space: StructuredColumns + custom grid matching gsi: + type: latlon + lats: @JEDI_GSIBEC_NLAT + lons: @JEDI_GSIBEC_NLON + custom partitioner matching gsi: + bands: @JEDI_VAR_GSIYLAYOUT + halo: 1 + forward interpolator: + local interpolator type: oops unstructured grid interpolator + inverse interpolator: + local interpolator type: oops unstructured grid interpolator + +# saber outer blocks: +# - debugging mode: false +# gsi akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 +# gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_c@JEDI_BKGCOV_RESOL.nml +# gsi error covariance file: ./fv3-jedi/gsibec/gsibec_coefficients_c@JEDI_BKGCOV_RESOL.nc4 +# processor layout x direction: @JEDI_VAR_GSIXLAYOUT +# processor layout y direction: @JEDI_VAR_GSIYLAYOUT +# saber block name: gsi interpolation to model grid + + state variables to inverse: *anavars weight: ## datetime: 2020-12-15T00:00:00Z ## filetype: cube sphere history @@ -404,43 +215,43 @@ cost function: - datetime: $JEDI_ISO_DATE_001 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_002 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_003 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_004 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_005 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_006 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] - datetime: $JEDI_ISO_DATE_007 filetype: cube sphere history provider: geos - state variables: *id001 + state variables: *anavars datapath: ./ filenames: [mem%mem%/geos.bkg_clcv.%yyyy%mm%dd_%hh%MMz.nc4, fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKGCOV_RESOL.nc4] pattern: '%mem%' @@ -450,7 +261,7 @@ cost function: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: *id001 + active variables: *anavars read: general: universe length-scale: 2500.0e3 @@ -545,7 +356,7 @@ cost function: linear variable change: linear variable change name: Control2Analysis - input variables: *id001 + input variables: *anavars output variables: *anavars weight: @@ -558,7 +369,6 @@ cost function: cost type: 4D-Ens-Var geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -591,6 +401,7 @@ output: first: PT0H frequency: PT1H provider: geos + field io names: *field_io_names variational: iterations: - ninner: '50' @@ -598,7 +409,6 @@ variational: departures: ombg geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -610,22 +420,7 @@ variational: npz: @JEDI_BKG_VRES gradient norm reduction: 1e-3 linear model: - increment variables: - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + increment variables: *anavars name: Identity tstep: PT1H variable change: Identity @@ -638,43 +433,49 @@ variational: # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_002 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_003 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_004 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_005 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_006 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_007 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # write increment: true # - ninner: '25' # diagnostics: # departures: ombg # geometry: # akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 -# field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml # fms initialization: # field table filename: ./fv3-jedi/fv3files/field_table_gmao # namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -686,16 +487,7 @@ variational: # npz: @JEDI_BKG_VRES # gradient norm reduction: 1e-3 # linear model: -# increment variables: -# - ua -# - va -# - t -# - q -# - ps -# - qi -# - ql -# - o3ppmv -# - phis +# increment variables: *anavars # name: Identity # tstep: PT1H # variable change: Identity @@ -708,36 +500,43 @@ variational: # filename: jedi.increment-iter2. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_002 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_003 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_004 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_005 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_006 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_007 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # write increment: true minimizer: diff --git a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4denvar.yaml b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4denvar.yaml index 5c6f446a..b5a2b7b6 100644 --- a/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4denvar.yaml +++ b/src/Applications/GEOSdas_App/jedi/etc/geos_hyb4denvar.yaml @@ -1,387 +1,165 @@ cost function: - analysis variables: - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + analysis variables: &anavars + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface background: states: - datapath: './' - datetime: $JEDI_ISO_DATE_001 + datetime: '$JEDI_ISO_DATE_001' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice + state variables: &statevars + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_thickness + - air_pressure_at_surface + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice - vtype - stype - vfrac - sheleg - - ts + - skin_temperature_at_surface - soilt - soilm - - u10m - - v10m + - eastward_wind_at_surface + - northward_wind_at_surface + - sea_surface_temperature + field io names: &field_io_names + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_thickness: delp + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + air_pressure_at_surface: ps + sea_surface_temperature: ts_found - datapath: './' - datetime: $JEDI_ISO_DATE_002 + datetime: '$JEDI_ISO_DATE_002' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' - datetime: $JEDI_ISO_DATE_003 + datetime: '$JEDI_ISO_DATE_003' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' - datetime: $JEDI_ISO_DATE_004 + datetime: '$JEDI_ISO_DATE_004' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' - datetime: $JEDI_ISO_DATE_005 + datetime: '$JEDI_ISO_DATE_005' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' - datetime: $JEDI_ISO_DATE_006 + datetime: '$JEDI_ISO_DATE_006' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names - datapath: './' - datetime: $JEDI_ISO_DATE_007 + datetime: '$JEDI_ISO_DATE_007' filenames: - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 - fv3-jedi/bkg/geos.crtmsrf.@JEDI_BKG_HRES.nc4 filetype: cube sphere history provider: geos - state variables: - - ua - - va - - t - - delp - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - qls - - qcn - - cfcn - - frocean - - frland - - varflt - - ustar - - bstar - - zpbl - - cm - - ct - - cq - - kcbl - - tsm - - khl - - khu - - frlake - - frseaice - - vtype - - stype - - vfrac - - sheleg - - ts - - soilt - - soilm - - u10m - - v10m + state variables: *statevars + field io names: *field_io_names background error: covariance model: SABER linear variable change: - input variables: &id001 - - eastward_wind - - northward_wind - - air_temperature - - air_pressure_at_surface - - water_vapor_mixing_ratio_wrt_moist_air - - cloud_liquid_ice - - cloud_liquid_water - - rain_water - - snow_water - - mole_fraction_of_ozone_in_air - - fraction_of_ocean - - fraction_of_lake - - fraction_of_ice - - geopotential_height_times_gravity_at_surface - - skin_temperature_at_surface + input variables: *anavars linear variable change name: Control2Analysis - output variables: - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + output variables: *anavars saber central block: read: debugging mode: false @@ -418,11 +196,10 @@ cost function: # processor layout y direction: @JEDI_VAR_GSIYLAYOUT # saber block name: gsi interpolation to model grid - state variables to inverse: *id001 + state variables to inverse: *anavars cost type: 4D-Ens-Var geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -455,6 +232,7 @@ output: first: PT0H frequency: PT1H provider: geos + field io names: *field_io_names variational: iterations: - ninner: '50' @@ -462,7 +240,6 @@ variational: departures: ombg geometry: akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 - field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml fms initialization: field table filename: ./fv3-jedi/fv3files/field_table_gmao namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -474,22 +251,7 @@ variational: npz: @JEDI_BKG_VRES gradient norm reduction: 1e-3 linear model: - increment variables: - - ua - - va - - t - - ps - - q - - qi - - ql - - qr - - qs - - o3ppmv - - phis - - frocean - - frlake - - frseaice - - ts + increment variables: *anavars name: Identity tstep: PT1H variable change: Identity @@ -502,43 +264,49 @@ variational: # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_002 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_003 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_004 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_005 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_006 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_007 # datapath: ./ # filename: $EXPID.jedi_inc1.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # write increment: true # - ninner: '25' # diagnostics: # departures: ombg # geometry: # akbk: ./fv3-jedi/fv3files/akbk@JEDI_BKG_VRES.nc4 -# field metadata override: ./fv3-jedi/fieldmetadata/geos.yaml # fms initialization: # field table filename: ./fv3-jedi/fv3files/field_table_gmao # namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml @@ -550,16 +318,7 @@ variational: # npz: @JEDI_BKG_VRES # gradient norm reduction: 1e-3 # linear model: -# increment variables: -# - ua -# - va -# - t -# - q -# - ps -# - qi -# - ql -# - o3ppmv -# - phis +# increment variables: *anavars # name: Identity # tstep: PT1H # variable change: Identity @@ -572,36 +331,43 @@ variational: # filename: jedi.increment-iter2. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_002 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_003 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_004 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_005 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_006 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # - date: $JEDI_ISO_DATE_007 # datapath: ./ # filename: $EXPID.jedi_inc2.eta. # filetype: auxgrid # gridtype: latlon +# field io names: *field_io_names # write increment: true minimizer: diff --git a/src/Applications/GEOSdas_App/jedi/etc/jedi_diffstates.j b/src/Applications/GEOSdas_App/jedi/etc/jedi_diffstates.j new file mode 100644 index 00000000..03af3b05 --- /dev/null +++ b/src/Applications/GEOSdas_App/jedi/etc/jedi_diffstates.j @@ -0,0 +1,21 @@ +#!/bin/csh -x +#---- blow needs to be unwired ---- +#@GEOSJEDI_QOS +#@GEOSJEDI_PARTITION +#SBATCH --ntasks-per-node=12 --ntasks=@JEDI_DIF_NTASKS +#SBATCH --constraint=mil +#^^^^ above needs to be unwired ^^^^ +#SBATCH --account=$GID +#SBATCH --job-name=diffstates +#SBATCH --time=1:00:00 +#SBATCH -o output.%A_%a +#SBATCH --array=0-12:2 + +setenv JEDI_ROOT $JEDI_ROOT +source $JEDI_ROOT/modules + +cd $JEDIWRK/$GETINCWORK.${SLURM_ARRAY_TASK_ID} + +$JEDI_GETINC_MPIRUN $JEDI_ROOT/bin/fv3jedi_diffstates.x my.yaml > input.${SLURM_ARRAY_TASK_ID} + +/bin/mv *inc*nc4 ../ diff --git a/src/Applications/GEOSdas_App/jedi/jedi_driver.csh b/src/Applications/GEOSdas_App/jedi/jedi_driver.csh index 6eeccfd3..8e7caf7f 100755 --- a/src/Applications/GEOSdas_App/jedi/jedi_driver.csh +++ b/src/Applications/GEOSdas_App/jedi/jedi_driver.csh @@ -102,44 +102,54 @@ endif # Prepare env for analysis # ------------------------ if ( $JEDI_SET ) then + zeit_ci.x jedi_set jedi_set.csh $nymdb $nhmsb |& tee -a $FVWORK/$EXPID.jedi_set.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: jedi_set.csh signal failure, aborting ..." exit (1) endif + zeit_co.x jedi_set endif # Run JEDI analysis if ( $JEDI_RUN ) then + zeit_ci.x jedi_run jedi_run.csh $nymdb $nhmsb |& tee -a $FVWORK/$EXPID.jedi_run.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: jedi_run.csh signal failure, aborting ..." exit (1) endif + zeit_co.x jedi_run if ( $JEDI_MKIAU ) then + zeit_ci.x jedi_mkiau jedi_mkiau.csh $nymdb $nhmsb |& tee -a $FVWORK/$EXPID.jedi_mkiau.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: jedi_mkiau.csh signal failure, aborting ..." exit (1) endif + zeit_co.x jedi_mkiau endif endif # Wrap up if ( $JEDI_POST ) then if ( ! $JEDI_RUN_ADANA ) then + zeit_ci.x jedi_post jedi_post.csh $nymdb $nhmsb hofx |& tee -a $FVWORK/$EXPID.jedi_post.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: jedi_post.csh (hofx) signal failure, aborting ..." exit (1) endif + zeit_co.x jedi_post endif if ( $JEDI_RUN_ADANA_TEST || $JEDI_RUN_ADANA ) then + zeit_ci.x jedi_post jedi_post.csh $nymdb $nhmsb osen |& tee -a $FVWORK/$EXPID.jedi_post.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: jedi_post.csh (osen) signal failure, aborting ..." exit (1) endif + zeit_co.x jedi_post endif endif @@ -152,11 +162,13 @@ if ( $?SKIPGSI ) then endif endif if ( $JEDI_IAU_OVERWRITE ) then + zeit_ci.x jedi_up4geos jedi_upd4geos.csh $nymdb $nhmsb |& tee -a $FVWORK/$EXPID.jedi_upd.log.${nymdb}_${hhb}z.txt if ( $status ) then echo " ${MYNAME}: JEDI update failed, aborting ..." exit (1) endif + zeit_co.x jedi_up4geos endif exit(0) diff --git a/src/Applications/GEOSdas_App/jedi/jedi_run.csh b/src/Applications/GEOSdas_App/jedi/jedi_run.csh index 65d59dce..aa722260 100755 --- a/src/Applications/GEOSdas_App/jedi/jedi_run.csh +++ b/src/Applications/GEOSdas_App/jedi/jedi_run.csh @@ -34,28 +34,11 @@ if ( $#argv < 2 ) then endif -# Slurm -# ----- -#_SBATCH -A g0613 -#_SBATCH --qos=advda -#_SBATCH --job-name=geos_jedi -#_SBATCH --output=geos_jedi.o%j -#_SBATCH --nodes=9 -#_SBATCH --ntasks-per-node=24 -#_SBATCH --time=01:00:00 -#_#SBATCH --constraint=sky - -# orig from: /gpfsm/dnb31/drholdaw/JediWork/GeosRun4Ricardo - -#setenv CNVENS 0 -#setenv RUN_BUMP 1 -#setenv RUN_ANA 0 -#setenv UPD_INIT_RST 0 - setenv FAILED 0 if ( !($?EXPID) ) setenv FAILED 1 if ( !($?FVHOME) ) setenv FAILED 1 if ( !($?FVWORK) ) setenv FAILED 1 +if ( !($?JEDI_HYBRID) ) setenv FAILED 1 if ( !($?JEDI_ROOT) ) setenv FAILED 1 if ( !($?JEDI_RUN_ANA) ) setenv FAILED 1 if ( !($?JEDI_RUN_CNVANA) ) setenv FAILED 1 @@ -79,6 +62,7 @@ endif if ( !($?JEDI_RUN_ADANA_TEST) ) setenv JEDI_RUN_ADANA_TEST 0 if ( !($?JEDI_RUN_BUMP) ) setenv JEDI_RUN_BUMP 0 if ( !($?JEDI_RUN_CNVENS) ) setenv JEDI_RUN_CNVENS 0 +if ( !($?BATCH_SUBCMD) ) setenv BATCH_SUBCMD sbatch set nymdb = $1 # initial date of var window set nhmsb = $2 # initial time of var window @@ -125,7 +109,8 @@ else endif setenv JEDIETC $FVHOME/run/jedi/Config -cd $FVWORK/jedi.$nymda.${hha}0000 +setenv JEDIWRK $FVWORK/jedi.$nymda.${hha}0000 +cd $JEDIWRK pwd # OOPS trace and debug logging (0 or 1) @@ -133,6 +118,12 @@ pwd #export OOPS_TRACE=1 #export OOPS_DEBUG=1 +if ( $BATCH_SUBCMD == "sbatch" ) then + setenv BLOCKFLAG "-W" +else + setenv BLOCKFLAG "-W block=true" +endif + # Convert ensemble restarts to analysis variables # ----------------------------------------------- if ( $JEDI_RUN_CNVENS ) then @@ -147,18 +138,23 @@ endif # Generate localization coefficients (****run this only once****) # --------------------------------------------------------------- if ( $JEDI_RUN_BUMP ) then + zeit_ci.x jedi_bump mkdir -p $FVWORK/jana/bump $JEDI_BUMP_MPIRUN $JEDIBUILD/bin/fv3jedi_parameters.x Config/bump_parameters.yaml if ( $status ) then echo " ${MYNAME}: failed in BUMP, aborting ..." exit (1) endif + zeit_co.x jedi_bump endif # Run 3DVar/En3/4DVar FGAT # ---------------------- -if ( $JEDI_RUN_ANA ) then +if ( ! -e $FVWORK/.DONE_jedi_run_ana.csh.$yyyymmddhh) then + if ( $JEDI_RUN_ANA ) then + zeit_ci.x jedi_var + if ( -e Config/geosvar.${nymda}_${hha}z.yaml ) then setenv MYCONF Config/geosvar.${nymda}_${hha}z.yaml else @@ -184,6 +180,7 @@ if ( $JEDI_RUN_ANA ) then endif endif /bin/mv *inc*nc4 ./inc # somehow datapath setting in yaml is not effective at inc part + zeit_co.x jedi_var # Converged in these many iterations # ---------------------------------- @@ -193,41 +190,74 @@ if ( $JEDI_RUN_ANA ) then # If testing Adjoint analysis ... # ------------------------------- if ( $JEDI_RUN_ADANA_TEST ) then + zeit_ci.x jedi_advar setenv MYCONF Config/adtest_envarfgat.yaml $JEDI_FV3VAR_MPIRUN $JEDIBUILD/bin/fv3jedi_var.x $MYCONF if ( $status ) then echo " ${MYNAME}: failed in test for AD VAR, aborting ..." exit (1) endif + zeit_co.x jedi_advar endif + endif + touch $FVWORK/.DONE_jedi_run_ana.csh.$yyyymmddhh endif if ( $JEDI_RUN_GETINC ) then + zeit_ci.x jedi_getinc # Calculate increment on the cubed offline from cubed ana and bkg # ATTENTION: 1. This should be parallelized. # 2. mkiau has been enabled to handled cubed states, so this # can be bypassed at some point. # --------------------------------------------------------------- - foreach cana (`ls ana/*ana.ceta*` ) - set this = `basename $cana` - set ttag = `echo $this | cut -d. -f4` - set yyyys = `echo $ttag | cut -c1-4` - set mms = `echo $ttag | cut -c5-6` - set dds = `echo $ttag | cut -c7-8` - set hhs = `echo $ttag | cut -c10-11` - if ( -e Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml ) then - $JEDI_GETINC_MPIRUN $JEDIBUILD/bin/fv3jedi_diffstates.x Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml + if ( $JEDI_HYBRID ) then + setenv GETINCWORK incwork + @ ii = 0 + foreach fn (`ls Config/diffstates_geos_*.yaml`) + mkdir -p incwork.${ii} + cd $GETINCWORK.${ii} + ln -sf ../bkg . + ln -sf ../ana . + ln -sf $FVHOME/fv3-jedi . + ln -sf ../$fn my.yaml + cd - + @ ii = $ii + 2 + end + + if ( -e $FVHOME/run/jedi/jedi_diffstates.j ) then + vED -env $FVHOME/run/jedi/jedi_diffstates.j -o jedi_diffstates.j else - echo " ${MYNAME}: missing Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml file, aborting ... " - exit 1 + echo " ${MYNAME}: missing run/jedi/jedi_diffstates.j file, aborting ... " + exit 1 endif - end + $BATCH_SUBCMD $BLOCKFLAG -o diffstates.log jedi_diffstates.j + + else + + foreach cana (`ls ana/*ana.ceta*` ) + set this = `basename $cana` + set ttag = `echo $this | cut -d. -f4` + set yyyys = `echo $ttag | cut -c1-4` + set mms = `echo $ttag | cut -c5-6` + set dds = `echo $ttag | cut -c7-8` + set hhs = `echo $ttag | cut -c10-11` + if ( -e Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml ) then + $JEDI_GETINC_MPIRUN $JEDIBUILD/bin/fv3jedi_diffstates.x Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml + else + echo " ${MYNAME}: missing Config/diffstates_geos_${yyyys}${mms}${dds}_${hhs}z.yaml file, aborting ... " + exit 1 + endif + end + + endif /bin/mv $EXPID.*inc*nc4 ./inc # apparently diffstate does not listen to datapath on output + zeit_co.x jedi_getinc endif if ( $JEDI_RUN_CNVANA ) then + zeit_ci.x jedi_cvana # Convert analysis to restart like fields # --------------------------------------- @@ -247,9 +277,11 @@ if ( $JEDI_RUN_CNVANA ) then # exit (1) endif + zeit_co.x jedi_cvana endif # JEDI_CNVANA if ( $JEDI_RUN_UPDRST ) then + zeit_ci.x jedi_uprst # Create restart increment from analysis and background # ----------------------------------------------------- @@ -258,6 +290,7 @@ if ( $JEDI_RUN_UPDRST ) then /bin/cp bkg/moist_internal_rst restart/ $JEDI_ADDINC_MPIRUN $JEDIBUILD/bin/fv3jedi_addincrement.x Config/create_new_restart.yaml + zeit_co.x jedi_uprst endif # UPD_INIT_RST # archive hofx diff --git a/src/Applications/GEOSdas_App/jedi/setup_aanajedi.pl b/src/Applications/GEOSdas_App/jedi/setup_aanajedi.pl index 775460b8..876131d9 100755 --- a/src/Applications/GEOSdas_App/jedi/setup_aanajedi.pl +++ b/src/Applications/GEOSdas_App/jedi/setup_aanajedi.pl @@ -99,6 +99,16 @@ sub init { } } + $jediqos = "#"; + if ( $ENV{"GEOSJEDI_QOS"} ) { + $jediqos = "#SBATCH --qos=$GEOSJEDI_QOS"; + } + + $jedipartition = "#"; + if ( $ENV{"GEOSJEDI_PARTITION"} ) { + $jediqos = "#SBATCH --qos=$GEOSJEDI_PARTITION"; + } + if ( $opt_jedistatic ) { $jedistatic = $opt_jedistatic; } else { @@ -123,7 +133,7 @@ sub init { if ( $opt_jediroot ) { $jediroot = $opt_jediroot; } else { - $jediroot = "/discover/nobackup/projects/gmao/advda/swell/JediBundles/fv3_soca_SLES15_02062025/build-intel-release"; + $jediroot = "/discover/nobackup/projects/gmao/advda/swell/JediBundles/fv3_soca_SLES15_05292025/build-intel-release"; } if ( $opt_archive ) { @@ -179,7 +189,9 @@ sub init { # Var run configuration parameters $agcm_im = $hres; - if ( $opt_gcmres ) { $agcm_im = $gcmres }; + $difxlayout = 4; + $difylayout = 2; + if ( $opt_gcmres ) { $agcm_im = $opt_gcmres }; $agcm_jm = 6 * $agcm_im; $agcm_lm = $vres; $cres = $hres + 1; @@ -188,6 +200,8 @@ sub init { if ( $scheme eq "hyb4denvar" ) { $varxlayout = 16; $varylayout = 7; + $difxlayout = 4; + $difylayout = 4; $gsixlayout = 21; $gsiylayout = 32; $perhost_var = 12; @@ -278,6 +292,7 @@ sub init { } $ncpus_var = $varxlayout * $varylayout * 6; if ( $scheme eq "hyb4dcenvar" ) {$ncpus_var = $ncpus_var * 7}; # wired to hourly background + $diffntasks = $difxlayout * $difylayout * 6; # mkiau pe-settings $mkiau_nx = 2; @@ -299,6 +314,7 @@ sub init { jedi_acquire_ebkg.j jedi_acquire_ioda.j jedi_acquire_vbc.j + jedi_diffstates.j jedi_run_var.j ut_jedi.j ); @@ -477,6 +493,9 @@ sub ed_conf_rc { #--------------------------------------- while( defined($rcd = ) ) { chomp($rcd); + if($rcd =~ /\@GEOSJEDI_QOS/) {$rcd=~ s/\@GEOSJEDI_QOS/$jediqos/g; } + if($rcd =~ /\@GEOSJEDI_PARTITION/) {$rcd=~ s/\@GEOSJEDI_PARTITION/$jedipartition/g; } + if($rcd =~ /\@JEDI_FEEDBACK_VARBC/) {$rcd=~ s/\@JEDI_FEEDBACK_VARBC/$cvbc/g; } if($rcd =~ /\@JEDI_HYBRID/) {$rcd=~ s/\@JEDI_HYBRID/$jedihyb/g; } if($rcd =~ /\@JEDI_INPUT/) {$rcd=~ s/\@JEDI_INPUT/$jediinput/g; } @@ -485,6 +504,7 @@ sub ed_conf_rc { if($rcd =~ /\@JEDI_ROOT/) {$rcd=~ s/\@JEDI_ROOT/$jediroot/g; } if($rcd =~ /\@JEDI_RUN_GETINC/) {$rcd=~ s/\@JEDI_RUN_GETINC/$jediinc/g; } if($rcd =~ /\@JEDI_STATIC_FILES/) {$rcd=~ s/\@JEDI_STATIC_FILES/$jedistatic/g; } + if($rcd =~ /\@JEDI_DIF_NTASKS/) {$rcd=~ s/\@JEDI_DIF_NTASKS/$diffntasks/g; } if($rcd =~ /\@JEDI_VAR_NCPUS/) {$rcd=~ s/\@JEDI_VAR_NCPUS/$ncpus_var/g; } if($rcd =~ /\@JEDI_VAR_PERHOST/) {$rcd=~ s/\@JEDI_VAR_PERHOST/$perhost_var/g; } if($rcd =~ /\@OFFLIODADIR/) {$rcd=~ s/\@OFFLIODADIR/$iodadir/g; } @@ -596,6 +616,9 @@ sub ed_var_yaml { if($rcd =~ /\@JEDI_GSIBEC_NLON/) {$rcd=~ s/\@JEDI_GSIBEC_NLON/$gsibec_lon/g; } if($rcd =~ /\@JEDI_GSIBEC_NLEV/) {$rcd=~ s/\@JEDI_GSIBEC_NLEV/$vres/g; } if($rcd =~ /\@JEDI_OBSOP_MAPDIR/) {$rcd=~ s/\@JEDI_OBSOP_MAPDIR/$obsop_mapdir/g; } + if($rcd =~ /\@JEDI_DIF_NTASKS/) {$rcd=~ s/\@JEDI_DIF_NTASKS/$diffntasks/g; } + if($rcd =~ /\@JEDI_DIF_XLAYOUT/) {$rcd=~ s/\@JEDI_DIF_XLAYOUT/$difxlayout/g; } + if($rcd =~ /\@JEDI_DIF_YLAYOUT/) {$rcd=~ s/\@JEDI_DIF_YLAYOUT/$difylayout/g; } if($rcd =~ /\@JEDI_VAR_XLAYOUT/) {$rcd=~ s/\@JEDI_VAR_XLAYOUT/$varxlayout/g; } if($rcd =~ /\@JEDI_VAR_YLAYOUT/) {$rcd=~ s/\@JEDI_VAR_YLAYOUT/$varylayout/g; } if($rcd =~ /\@JEDI_VAR_GSIXLAYOUT/) {$rcd=~ s/\@JEDI_VAR_GSIXLAYOUT/$gsixlayout/g; } @@ -723,13 +746,15 @@ sub usage { OPTIONAL ENVIRONMENT - ARCHIVE can be define in env or arg list - FVHOME can be define in env or arg list + ARCHIVE can be define in env or arg list + FVHOME can be define in env or arg list + GEOSJEDI_QOS can be used to defined slurm qos + GEOSJEDI_PARTITION can be used to defined slurm partition AUTHOR Ricardo Todling (Ricardo.Todling\@nasa.gov), NASA/GSFC/GMAO - Last modified: 06May2025 by: R. Todling + Last modified: 31May2025 by: R. Todling EOF diff --git a/src/Applications/NCEP_Etc/NCEP_enkf/scripts/gmao/gcm_ensset_rc.csh b/src/Applications/NCEP_Etc/NCEP_enkf/scripts/gmao/gcm_ensset_rc.csh index fd06dc1b..30b6bd19 100755 --- a/src/Applications/NCEP_Etc/NCEP_enkf/scripts/gmao/gcm_ensset_rc.csh +++ b/src/Applications/NCEP_Etc/NCEP_enkf/scripts/gmao/gcm_ensset_rc.csh @@ -280,8 +280,8 @@ cd $ENSWORK/$member # A bit of a hack to cope with latest handing of GAAS settings # ------------------------------------------------------------ foreach fn (`ls $EXPID.aod*.$NCSUFFIX`) - set sfx = `echo $fn | cut -d. -f2-` - ln -sf $fn das.$sfx + set sfx = `echo $fn | cut -d. -f2-4` + ln -sf $fn das.$sfx.nc4 end # FV-core layout file