diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 8b9ebffe9..9c08fbdd0 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 8b9ebffe94f3deff214f34ae661afa2aed3f9c13 +Subproject commit 9c08fbdd004c7f695c06c160e0a0505bd5987f42 diff --git a/parm/marine/jcb-base.yaml.j2 b/parm/marine/jcb-base.yaml.j2 index a93db5c48..939da94df 100644 --- a/parm/marine/jcb-base.yaml.j2 +++ b/parm/marine/jcb-base.yaml.j2 @@ -18,8 +18,8 @@ final_increment_file: marine_final_increment # Assimilation standard things (not prepended with model choice) # ---------------------------- pslot: '{{ PSLOT }}' -window_begin: '{{ MARINE_WINDOW_BEGIN | to_isotime }}' -window_length: '{{MARINE_WINDOW_LENGTH}}' +window_begin: '{{ WINDOW_BEGIN | to_isotime }}' +window_length: '{{ WINDOW_LENGTH }}' bound_to_include: begin minimizer: RPCG final_diagnostics_departures: oman @@ -37,18 +37,18 @@ analysis_variables: # Model things # ------------ -marine_window_begin: '{{MARINE_WINDOW_BEGIN}}' -marine_window_middle: '{{MARINE_WINDOW_MIDDLE}}' -marine_window_begin_iso: '{{ MARINE_WINDOW_BEGIN | to_isotime }}' -marine_window_middle_iso: '{{ MARINE_WINDOW_MIDDLE | to_isotime }}' -marine_window_end_iso: '{{ MARINE_WINDOW_END | to_isotime }}' -enspert_relpath: '{{ ENSPERT_RELPATH }}' +marine_window_begin: '{{ WINDOW_BEGIN }}' +marine_window_middle: '{{ WINDOW_MIDDLE }}' +marine_window_begin_iso: '{{ WINDOW_BEGIN | to_isotime }}' +marine_window_middle_iso: '{{ WINDOW_MIDDLE | to_isotime }}' +marine_window_end_iso: '{{ WINDOW_END | to_isotime }}' +marine_enspert_relpath: '{{ ENSPERT_RELPATH }}' {% if DOIAU %} -marine_cice_date_fms: '{{ MARINE_WINDOW_BEGIN | to_fv3time }}' -marine_cice_date_iso: '{{ MARINE_WINDOW_BEGIN | to_isotime }}' +marine_cice_date_fms: '{{ WINDOW_BEGIN | to_fv3time }}' +marine_cice_date_iso: '{{ WINDOW_BEGIN | to_isotime }}' {% else %} -marine_cice_date_fms: '{{ MARINE_WINDOW_MIDDLE | to_fv3time }}' -marine_cice_date_iso: '{{ MARINE_WINDOW_MIDDLE | to_isotime }}' +marine_cice_date_fms: '{{ WINDOW_MIDDLE | to_fv3time }}' +marine_cice_date_iso: '{{ WINDOW_MIDDLE | to_isotime }}' {% endif %} # Geometry @@ -57,7 +57,7 @@ marine_vt_levels: '{{MOM6_LEVS}}' # Initial conditions marine_background_path: ./INPUT/ -marine_background_time: '{{ MARINE_WINDOW_BEGIN | to_isotime }}' +marine_background_time: '{{ WINDOW_BEGIN | to_isotime }}' # Pseudo model marine_forecast_timestep: PT3H @@ -66,7 +66,7 @@ marine_forecast_timestep: PT3H background_error_file: '{{berror_model}}' marine_number_ensemble_members: '{{NMEM_ENS}}' marine_number_ensemble_members_per_mpi: '{{NMEM_ENS_PER_MPI}}' -marine_stddev_time: '{{ MARINE_WINDOW_MIDDLE | to_isotime }}' +marine_stddev_time: '{{ WINDOW_MIDDLE | to_isotime }}' # Observations observations: all_observations @@ -105,3 +105,31 @@ obs_variables: {{ obs_variables | default({}) }} # COM path for configuration files marine_config_path: '{{COMOUT_CONF}}' + +# Local Ensemble DA (LETKF) +# ------------------------- + +# Solver +local_ensemble_da_solver: Deterministic LETKF + +# Increment variables +increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction] + +# Driver +driver_save_posterior_mean: true +driver_save_prior_mean: true +driver_save_posterior_mean_increment: true +driver_save_prior_variance: true +driver_save_posterior_variance: true +driver_do_posterior_observer: true + +# Inflation +inflation_rtps: 0.5 +inflation_rtpp: 0.6 +inflation_mult: 1.1 + +# Using LETKF app? (used in obs YAMLs) +marine_letkf_app: {{ letkf_app | default(false) }} +marine_letkf_dist_halo_size: '{{ DIST_HALO_SIZE }}' + + diff --git a/parm/marine/jcb-prototype_letkf.yaml.j2 b/parm/marine/jcb-prototype_letkf.yaml.j2 new file mode 100644 index 000000000..165cc48a5 --- /dev/null +++ b/parm/marine/jcb-prototype_letkf.yaml.j2 @@ -0,0 +1,5 @@ +# JEDI algorithm being invoked +algorithm: local_ensemble_da + +# Observations +{% include OBS_LIST_YAML %} diff --git a/parm/marine/marine_bmat_config.yaml.j2 b/parm/marine/marine_bmat_config.yaml.j2 new file mode 100644 index 000000000..5f4213a82 --- /dev/null +++ b/parm/marine/marine_bmat_config.yaml.j2 @@ -0,0 +1,124 @@ +jedi_config: + gridgen: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_gridgen.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_gridgen + soca_diagb: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_diagb.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_diagb + soca_chgres: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jedi_args: ['soca', 'convertstate'] + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_chgres + soca_parameters_diffusion_vt: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_error_covariance_toolbox.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_parameters_diffusion_vt + soca_setcorscales: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_setcorscales.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_setcorscales + soca_parameters_diffusion_hz: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_error_covariance_toolbox.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_parameters_diffusion_hz + soca_ensb: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_ens_handler.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_ensb + soca_ensweights: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_hybridweights.x' + mpi_cmd: '{{ APRUN_MARINEBMAT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_ensweights + +data_in: + mkdir: + - '{{ DATA }}/bkg' + - '{{ DATA }}/INPUT' + - '{{ DATA }}/anl_geom' + - '{{ DATAens }}/ens' + + copy: +{% filter indent(width=4) %} +{% include 'marine_det_stage_bkg.yaml.j2' %} +{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %} +{% include 'marine_stage_utilities.yaml.j2' %} +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} +{% include 'marine_ens_stage_bkg.yaml.j2' %} +{% endif %} +{% endfilter %} + + link: + - [ "{{ DATA }}/../staticb", "{{ DATA }}/staticb" ] + +data_out: + copy: + # soca grid + - ['{{ DATA }}/soca_gridspec.nc', '{{ COMOUT_OCEAN_BMATRIX }}'] + + # Copy the diffusion coefficient files to the ROTDIR + - ['{{ DATAstaticb }}/hz_ocean.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}hz.nc'] + - ['{{ DATAstaticb }}/vt_ocean.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}vt.nc'] + + # diag B rename (do we really need this?) + - ['{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.incr.{{ WINDOW_END | to_isotime }}.nc', '{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.nc'] + - ['{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.incr.{{ WINDOW_END | to_isotime }}.nc', '{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.nc'] +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} + - ['{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc','{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.nc'] + - ['{{ DATAstaticb }}/ice.bkgerr_ens_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc','{{ DATAstaticb }}/ice.bkgerr_ens_stddev.nc'] +{% endif %} + + # diag B + - ['{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}bkgerr_parametric_stddev.nc'] + - ['{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}bkgerr_parametric_stddev.nc'] +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} + - ['{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}bkgerr_ens_stddev.nc'] + - ['{{ DATAstaticb }}/ice.bkgerr_ens_stddev.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}bkgerr_ens_stddev.nc'] + - ['{{ DATAstaticb }}/ocn.ssh_recentering_error.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}recentering_error.nc'] + - ['{{ DATAstaticb }}/ice.ssh_recentering_error.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}recentering_error.nc'] +{% endif %} + +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} + # ensemble perturbation diagnostics + - ['{{ DATA }}/ocn.ens_weights.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ens_weights.nc'] + - ['{{ DATA }}/ice.ens_weights.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}ens_weights.nc'] + + # ssh diagnostics + - ['{{ DATA }}/staticb/ocn.ssh_steric_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_steric_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.ssh_unbal_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_unbal_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.ssh_total_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_total_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.steric_explained_variance.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}steric_explained_variance.nc'] +{% endif %} + + # yaml files + - ['{{ DATA }}/fields_metadata.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}bmat_fields_metadata.yaml'] + - ['{{ DATA }}/gridgen.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}gridgen.yaml'] + - ['{{ DATA }}/obsop_name_map.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}obsop_name_map.yaml'] + - ['{{ DATA }}/soca_chgres.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_chgres.yaml'] + - ['{{ DATA }}/soca_diagb.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_diagb.yaml'] + - ['{{ DATA }}/soca_parameters_diffusion_hz.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_parameters_diffusion_hz.yaml'] + - ['{{ DATA }}/soca_parameters_diffusion_vt.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_parameters_diffusion_vt.yaml'] + - ['{{ DATA }}/soca_setcorscales.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_setcorscales.yaml'] + - ['{{ DATA }}/soca_vtscales.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_vtscales.yaml'] +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} + - ['{{ DATA }}/soca_ensb.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_ensb.yaml'] + - ['{{ DATA }}/soca_ensweights.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_ensweights.yaml'] +{% endif %} diff --git a/parm/marine/marine_bmat_copy_bkgerr.yaml.j2 b/parm/marine/marine_bmat_copy_bkgerr.yaml.j2 deleted file mode 100644 index 7f8b79fb0..000000000 --- a/parm/marine/marine_bmat_copy_bkgerr.yaml.j2 +++ /dev/null @@ -1,8 +0,0 @@ -copy_req: -# diag B -- ['{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.incr.{{ MARINE_WINDOW_END_ISO }}.nc', '{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.nc'] -- ['{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.incr.{{ MARINE_WINDOW_END_ISO }}.nc', '{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.nc'] -{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} -- ['{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc','{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.nc'] -- ['{{ DATAstaticb }}/ice.bkgerr_ens_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc','{{ DATAstaticb }}/ice.bkgerr_ens_stddev.nc'] -{% endif %} diff --git a/parm/marine/marine_bmat_jedi_config.yaml.j2 b/parm/marine/marine_bmat_jedi_config.yaml.j2 deleted file mode 100644 index 80a3c0325..000000000 --- a/parm/marine/marine_bmat_jedi_config.yaml.j2 +++ /dev/null @@ -1,49 +0,0 @@ -gridgen: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_gridgen.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_gridgen -soca_diagb: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_diagb.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_diagb -soca_chgres: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jedi_args: ['soca', 'convertstate'] - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_chgres -soca_parameters_diffusion_vt: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_error_covariance_toolbox.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_parameters_diffusion_vt -soca_setcorscales: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_setcorscales.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_setcorscales -soca_parameters_diffusion_hz: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_error_covariance_toolbox.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_parameters_diffusion_hz -soca_ensb: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_ens_handler.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_ensb -soca_ensweights: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_hybridweights.x' - mpi_cmd: '{{ APRUN_MARINEBMAT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_ensweights diff --git a/parm/marine/marine_bmat_save.yaml.j2 b/parm/marine/marine_bmat_save.yaml.j2 deleted file mode 100644 index 39343c542..000000000 --- a/parm/marine/marine_bmat_save.yaml.j2 +++ /dev/null @@ -1,39 +0,0 @@ -copy: -# soca grid -- ['{{ DATA }}/soca_gridspec.nc', '{{ COMOUT_OCEAN_BMATRIX }}'] -# Copy the diffusion coefficient files to the ROTDIR -- ['{{ DATAstaticb }}/hz_ocean.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}hz.nc'] -- ['{{ DATAstaticb }}/vt_ocean.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}vt.nc'] -# diag B -- ['{{ DATAstaticb }}/ocn.bkgerr_parametric_stddev.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}bkgerr_parametric_stddev.nc'] -- ['{{ DATAstaticb }}/ice.bkgerr_parametric_stddev.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}bkgerr_parametric_stddev.nc'] -{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} -- ['{{ DATAstaticb }}/ocn.bkgerr_ens_stddev.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}bkgerr_ens_stddev.nc'] -- ['{{ DATAstaticb }}/ice.bkgerr_ens_stddev.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}bkgerr_ens_stddev.nc'] -- ['{{ DATAstaticb }}/ocn.ssh_recentering_error.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}recentering_error.nc'] -- ['{{ DATAstaticb }}/ice.ssh_recentering_error.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}recentering_error.nc'] -{% endif %} -# ensemble perturbation diagnostics -{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} -- ['{{ DATA }}/ocn.ens_weights.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ens_weights.nc'] -- ['{{ DATA }}/ice.ens_weights.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_ICE_BMATRIX }}/{{ APREFIX }}ens_weights.nc'] -# ssh diagnostics -- ['{{ DATA }}/staticb/ocn.ssh_steric_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_steric_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.ssh_unbal_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_unbal_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.ssh_total_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}ssh_total_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.steric_explained_variance.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_BMATRIX }}/{{ APREFIX }}steric_explained_variance.nc'] -{% endif %} -# yaml files -- ['{{ DATA }}/fields_metadata.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}bmat_fields_metadata.yaml'] -- ['{{ DATA }}/gridgen.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}gridgen.yaml'] -- ['{{ DATA }}/obsop_name_map.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}obsop_name_map.yaml'] -- ['{{ DATA }}/soca_chgres.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_chgres.yaml'] -- ['{{ DATA }}/soca_diagb.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_diagb.yaml'] -- ['{{ DATA }}/soca_parameters_diffusion_hz.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_parameters_diffusion_hz.yaml'] -- ['{{ DATA }}/soca_parameters_diffusion_vt.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_parameters_diffusion_vt.yaml'] -- ['{{ DATA }}/soca_setcorscales.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_setcorscales.yaml'] -- ['{{ DATA }}/soca_vtscales.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_vtscales.yaml'] -{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} -- ['{{ DATA }}/soca_ensb.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_ensb.yaml'] -- ['{{ DATA }}/soca_ensweights.yaml', '{{ COMOUT_CONF }}/{{ APREFIX }}soca_ensweights.yaml'] -{% endif %} diff --git a/parm/marine/marine_det_config.yaml.j2 b/parm/marine/marine_det_config.yaml.j2 new file mode 100644 index 000000000..24d562c70 --- /dev/null +++ b/parm/marine/marine_det_config.yaml.j2 @@ -0,0 +1,105 @@ +jedi_config: + var: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas.x' + mpi_cmd: '{{ APRUN_MARINEANLVAR }}' + jedi_args: ['soca', 'variational'] + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo_yaml: '{{ PARMgfs }}/gdas/marine/jcb-prototype_3dfgat.yaml.j2' + soca_incpostproc: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_incr_handler.x' + mpi_cmd: '{{ APRUN_MARINEANLCHKPT }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_incpostproc + soca_diag_stats: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_obsstats.x' + mpi_cmd: '{{ APRUN_MARINEANLOBSSTATS }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_diag_stats + +data_in: + mkdir: + - '{{ DATA }}/bkg' + - '{{ DATA }}/INPUT' + - '{{ DATA }}/anl_geom' + - '{{ DATA }}/Data' + - '{{ DATA }}/obs' + - '{{ DATA }}/diags' + + copy_req: + # stage soca grid + - ["{{ COMIN_OCEAN_BMATRIX }}/soca_gridspec.nc", "{{ DATA }}"] + + # stage ensemble weights +{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} + - ["{{ COMIN_OCEAN_BMATRIX }}/{{ APREFIX }}ens_weights.nc", "{{ DATA }}/ocean.ens_weights.nc"] + - ["{{ COMIN_ICE_BMATRIX }}/{{ APREFIX }}ens_weights.nc", "{{ DATA }}/ice.ens_weights.nc"] +{% endif %} + + # stage CICE6 restart + - ["{{ COMIN_ICE_RESTART_PREV }}/{{ rst_date }}.cice_model.res.nc", "{{ DATA }}/Data"] + +{% filter indent(width=4) %} +{% include 'marine_det_stage_bkg.yaml.j2' %} +{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %} +{% include 'marine_stage_utilities.yaml.j2' %} +{% endfilter %} + + copy_opt: +{% for ob_name in observations %} + - ['{{ COMIN_OBS }}/{{ OPREFIX }}{{ ob_name }}.nc', '{{ DATA }}/obs'] +{% endfor %} + + link: + - [ "{{ DATA }}/../staticb", "{{ DATA }}/staticb" ] + +data_out: + mkdir: + - '{{ COMOUT_OCEAN_ANALYSIS }}/diags' + - '{{ COMOUT_OCEAN_ANALYSIS }}/bump' + + copy: + # Ocean IAU increment (intended for MOM6) + - ['{{ DATA }}/ocn.inc.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}mom6_increment.i006.nc'] + + # Ocean increment and analysis from JEDI + - ['{{ DATA }}/Data/ocn.3dvarfgat_pseudo.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_increment.i006.nc'] + - ['{{ DATA }}/Data/ocn.3dvarfgat_pseudo.an.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_analysis.a006.nc'] + + # SeaIce increment and analysis from JEDI + - ['{{ DATA }}/Data/ice.3dvarfgat_pseudo.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}jedi_increment.i006.nc'] + - ['{{ DATA }}/Data/ice.3dvarfgat_pseudo.an.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}jedi_analysis.a006.nc'] + + # Postprocessed ice increment + - ['{{ DATA }}/ice.inc.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}pp_increment.i006.nc'] + + # ssh diagnostics + {% if NMEM_ENS > 2 %} + - ['{{ DATA }}/staticb/ocn.ssh_steric_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_steric_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.ssh_unbal_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_unbal_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.ssh_total_stddev.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_total_stddev.nc'] + - ['{{ DATA }}/staticb/ocn.steric_explained_variance.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}steric_explained_variance.nc'] + {% endif %} + + # DA grid (computed for the start of the window) + - ['{{ DATA }}/soca_gridspec.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_gridspec.tm03.nc'] + + # CICE analysis restart + - ['{{ DATA }}/Data/{{ cice_rst_date }}.cice_model.res.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ cice_rst_date }}.analysis.cice_model.res.nc'] + + # YAML files + - ['{{ DATA }}/fields_metadata.yaml', '{{ COMOUT_CONF }}'] + - ['{{ DATA }}/obsop_name_map.yaml', '{{ COMOUT_CONF }}/'] + - ['{{ DATA }}/soca_incpostproc.yaml', '{{ COMOUT_CONF }}/'] + - ['{{ DATA }}/var.yaml', '{{ COMOUT_CONF }}/'] + + copy_opt: + # Ocean background and recentering error files + - ['{{ DATA }}/ocn.bkgerr_stddev.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}bkgerr_stddev.nc'] + - ['{{ DATA }}/static_ens/ocn.ssh_recentering_error.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}recentering_error.nc'] + + # Seaice background and recentering error files + - ['{{ DATA }}/ice.bkgerr_stddev.incr.{{ WINDOW_MIDDLE | to_isotime }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}bkgerr_stddev.nc'] + - ['{{ DATA }}/static_ens/ice.ssh_recentering_error.incr.{{ WINDOW_BEGIN | to_isotime }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}recentering_error.nc'] diff --git a/parm/marine/marine_det_jedi_config.yaml.j2 b/parm/marine/marine_det_jedi_config.yaml.j2 deleted file mode 100644 index 76a1e4910..000000000 --- a/parm/marine/marine_det_jedi_config.yaml.j2 +++ /dev/null @@ -1,19 +0,0 @@ -var: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas.x' - mpi_cmd: '{{ APRUN_MARINEANLVAR }}' - jedi_args: ['soca', 'variational'] - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo_yaml: '{{ JCB_ALGO_YAML_VAR }}' -soca_incpostproc: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_incr_handler.x' - mpi_cmd: '{{ APRUN_MARINEANLCHKPT }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_incpostproc -soca_diag_stats: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_obsstats.x' - mpi_cmd: '{{ APRUN_MARINEANLOBSSTATS }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_diag_stats diff --git a/parm/marine/marine_det_save.yaml.j2 b/parm/marine/marine_det_save.yaml.j2 deleted file mode 100644 index 71aaec76c..000000000 --- a/parm/marine/marine_det_save.yaml.j2 +++ /dev/null @@ -1,53 +0,0 @@ -{% if DOIAU %} -{% set cice_rst_date = MARINE_WINDOW_BEGIN | to_fv3time %} -{% else %} -{% set cice_rst_date = current_cycle | to_fv3time %} -{% endif %} - -mkdir: -- '{{ COMOUT_OCEAN_ANALYSIS }}/diags' -- '{{ COMOUT_OCEAN_ANALYSIS }}/bump' - -copy: -# Ocean IAU increment (intended for MOM6) -- ['{{ DATA }}/ocn.inc.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}mom6_increment.i006.nc'] - -# Ocean increment and analysis from JEDI -- ['{{ DATA }}/Data/ocn.3dvarfgat_pseudo.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_increment.i006.nc'] -- ['{{ DATA }}/Data/ocn.3dvarfgat_pseudo.an.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_analysis.a006.nc'] - -# SeaIce increment and analysis from JEDI -- ['{{ DATA }}/Data/ice.3dvarfgat_pseudo.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}jedi_increment.i006.nc'] -- ['{{ DATA }}/Data/ice.3dvarfgat_pseudo.an.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}jedi_analysis.a006.nc'] - -# Postprocessed ice increment -- ['{{ DATA }}/ice.inc.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}pp_increment.i006.nc'] - -# ssh diagnostics -{% if NMEM_ENS > 2 %} -- ['{{ DATA }}/staticb/ocn.ssh_steric_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_steric_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.ssh_unbal_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_unbal_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.ssh_total_stddev.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}ssh_total_stddev.nc'] -- ['{{ DATA }}/staticb/ocn.steric_explained_variance.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}steric_explained_variance.nc'] -{% endif %} - -# DA grid (computed for the start of the window) -- ['{{ DATA }}/soca_gridspec.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}jedi_gridspec.tm03.nc'] - -# CICE analysis restart -- ['{{ DATA }}/Data/{{ cice_rst_date }}.cice_model.res.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ cice_rst_date }}.analysis.cice_model.res.nc'] - -# YAML files -- ['{{ DATA }}/fields_metadata.yaml', '{{ COMOUT_CONF }}'] -- ['{{ DATA }}/obsop_name_map.yaml', '{{ COMOUT_CONF }}/'] -- ['{{ DATA }}/soca_incpostproc.yaml', '{{ COMOUT_CONF }}/'] -- ['{{ DATA }}/var.yaml', '{{ COMOUT_CONF }}/'] - -copy_opt: -# Ocean background and recentering error files -- ['{{ DATA }}/ocn.bkgerr_stddev.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}bkgerr_stddev.nc'] -- ['{{ DATA }}/static_ens/ocn.ssh_recentering_error.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX }}recentering_error.nc'] - -# Seaice background and recentering error files -- ['{{ DATA }}/ice.bkgerr_stddev.incr.{{ MARINE_WINDOW_MIDDLE_ISO }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}bkgerr_stddev.nc'] -- ['{{ DATA }}/static_ens/ice.ssh_recentering_error.incr.{{ MARINE_WINDOW_BEGIN_ISO }}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX }}recentering_error.nc'] diff --git a/parm/marine/marine_det_stage.yaml.j2 b/parm/marine/marine_det_stage.yaml.j2 deleted file mode 100644 index f9de0e2ee..000000000 --- a/parm/marine/marine_det_stage.yaml.j2 +++ /dev/null @@ -1,22 +0,0 @@ -{% if DOIAU %} -{% set rst_date = MARINE_WINDOW_BEGIN | to_fv3time %} -{% else %} -{% set rst_date = current_cycle | to_fv3time %} -{% endif %} - -mkdir: -- "{{ DATA }}/Data" - -link: -- [ "{{ DATA }}/../staticb", "{{ DATA }}/staticb" ] - -copy: -# stage soca grid -- ["{{ COMIN_OCEAN_BMATRIX }}/soca_gridspec.nc", "{{ DATA }}"] -# stage ensemble weights -{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %} -- ["{{ COMIN_OCEAN_BMATRIX }}/{{ APREFIX }}ens_weights.nc", "{{ DATA }}/ocean.ens_weights.nc"] -- ["{{ COMIN_ICE_BMATRIX }}/{{ APREFIX }}ens_weights.nc", "{{ DATA }}/ice.ens_weights.nc"] -{% endif %} -# stage CICE6 restart -- ["{{ COMIN_ICE_RESTART_PREV }}/{{ rst_date }}.cice_model.res.nc", "{{ DATA }}/Data"] diff --git a/parm/marine/marine_det_stage_bkg.yaml.j2 b/parm/marine/marine_det_stage_bkg.yaml.j2 index 2e2974a34..1a07ee411 100644 --- a/parm/marine/marine_det_stage_bkg.yaml.j2 +++ b/parm/marine/marine_det_stage_bkg.yaml.j2 @@ -1,21 +1,10 @@ -###################################### -# set some variables -###################################### -{% set ghead = "gdas.t" + previous_cycle | strftime("%H") + "z." %} -###################################### -# create ens bkg directories -###################################### -mkdir: -- "{{ DATA }}/bkg" - ###################################### # copy ensemble background files ###################################### -copy: -# stage f003, f006 and f009 backgrounds -- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ ghead }}inst.f003.nc", "{{ DATA }}/INPUT/MOM.res.nc"] -- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ ghead }}inst.f006.nc", "{{ DATA }}/bkg/ocean.bkg.f006.nc"] -- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ ghead }}inst.f009.nc", "{{ DATA }}/bkg/ocean.bkg.f009.nc"] -- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ ghead }}inst.f003.nc", "{{ DATA }}/INPUT/cice.res.nc"] -- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ ghead }}inst.f006.nc", "{{ DATA }}/bkg/ice.bkg.f006.nc"] -- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ ghead }}inst.f009.nc", "{{ DATA }}/bkg/ice.bkg.f009.nc"] + +- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ GPREFIX }}inst.f003.nc", "{{ DATA }}/INPUT/MOM.res.nc"] +- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ GPREFIX }}inst.f006.nc", "{{ DATA }}/bkg/ocean.bkg.f006.nc"] +- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ GPREFIX }}inst.f009.nc", "{{ DATA }}/bkg/ocean.bkg.f009.nc"] +- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ GPREFIX }}inst.f003.nc", "{{ DATA }}/INPUT/cice.res.nc"] +- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ GPREFIX }}inst.f006.nc", "{{ DATA }}/bkg/ice.bkg.f006.nc"] +- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ GPREFIX }}inst.f009.nc", "{{ DATA }}/bkg/ice.bkg.f009.nc"] diff --git a/parm/marine/marine_ecen_config.yaml.j2 b/parm/marine/marine_ecen_config.yaml.j2 new file mode 100644 index 000000000..e0e433271 --- /dev/null +++ b/parm/marine/marine_ecen_config.yaml.j2 @@ -0,0 +1,87 @@ +jedi_config: + gridgen: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_gridgen.x' + mpi_cmd: '{{ APRUN_MARINEANLECEN }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_gridgen + ens_handler: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_anpproc.x' + mpi_cmd: '{{ APRUN_MARINEANLECEN }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_ens_handler + +data_in: + mkdir: + - '{{ DATA }}/bkg' + - '{{ DATA }}/INPUT' + - '{{ DATA }}/anl_geom' + - '{{ DATA }}/ens' + + link: +{% for imem in range(1,NMEM_ENS+1) %} + - [ "{{ DATA }}/../ensdata/ens/ocean.{{ imem | string }}.nc", '{{ DATA }}/ens/' ] + - [ "{{ DATA }}/../ensdata/ens/ice.{{ imem | string }}.nc", '{{ DATA }}/ens/' ] +{% endfor %} + + copy_req: +{% for imem in range(1,NMEM_ENS+1) %} + {% set memchar = 'mem%03d' | format(imem) %} + {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, + '${RUN}': 'enkfgdas', + '${YMD}': previous_cycle | to_YMD, + '${HH}': previous_cycle | strftime('%H'), + '${MEMDIR}': memchar }) %} + - ['{{ COM_ICE_RESTART_TMPL | replace_tmpl(tmpl_dict) }}/{{ cice_rst_date }}.cice_model.res.nc', '{{ DATA }}/ens/cice_model.res.{{ imem | string }}.nc'] +{% endfor %} + +{% filter indent(width=4) %} +{% include 'marine_det_stage_bkg.yaml.j2' %} +{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %} +{% include 'marine_stage_utilities.yaml.j2' %} +{% endfilter %} + +data_out: + mkdir: +{% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, + '${RUN}': RUN, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}': 'ensstat' }) %} + - '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' + - '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' + +{% for imem in range(1,NMEM_ENS+1) %} + {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, + '${RUN}': RUN, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}': 'mem%03d' | format(imem) }) %} + - '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' + - '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' +{% endfor %} + + copy_req: + +{% for imem in range(1,NMEM_ENS+1) %} + {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, + '${RUN}': RUN, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}': 'mem%03d' | format(imem) }) %} + + # ocean increments are saved as 0..n-1 + - ['{{ DATA }}/ocn.recenter.ens.{{ (imem-1) | string }}.{{ WINDOW_END | to_isotime }}.PT0S.nc', '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}mom6_increment.i006.nc'] + + # ice restarts are saved as 1..n + - ['{{ DATA }}/ens/cice_model.res.{{ imem | string }}.nc', '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ cice_rst_date }}.analysis.cice_model.res.nc'] +{% endfor %} + +{% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, + '${RUN}': RUN, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}': 'ensstat' }) %} + - ['{{ DATA }}/ocn.ensvar.incr.{{ WINDOW_END | to_isotime }}.nc', '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}bg_ensvar.nc'] + - ['{{ DATA }}/ice.ensvar.incr.{{ WINDOW_END | to_isotime }}.nc', '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}bg_ensvar.nc'] diff --git a/parm/marine/marine_ecen_jedi_config.yaml.j2 b/parm/marine/marine_ecen_jedi_config.yaml.j2 deleted file mode 100644 index 9bebb152a..000000000 --- a/parm/marine/marine_ecen_jedi_config.yaml.j2 +++ /dev/null @@ -1,12 +0,0 @@ -gridgen: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_gridgen.x' - mpi_cmd: '{{ APRUN_MARINEANLECEN }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_gridgen -ens_handler: - rundir: '{{ DATA }}' - exe_src: '{{ EXECgfs }}/gdas_soca_anpproc.x' - mpi_cmd: '{{ APRUN_MARINEANLECEN }}' - jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' - jcb_algo: soca_ens_handler diff --git a/parm/marine/marine_ecen_save.yaml.j2 b/parm/marine/marine_ecen_save.yaml.j2 deleted file mode 100644 index 063382932..000000000 --- a/parm/marine/marine_ecen_save.yaml.j2 +++ /dev/null @@ -1,37 +0,0 @@ -mkdir: -{% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, - '${RUN}': RUN, - '${YMD}': current_cycle | to_YMD, - '${HH}': current_cycle | strftime('%H'), - '${MEMDIR}': 'ensstat' }) %} -- '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' -- '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' -{% for imem in range(1,NMEM_ENS+1) %} - {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, - '${RUN}': RUN, - '${YMD}': current_cycle | to_YMD, - '${HH}': current_cycle | strftime('%H'), - '${MEMDIR}': 'mem%03d' | format(imem) }) %} -- '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' -- '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}' -{% endfor %} -copy: -{% for imem in range(1,NMEM_ENS+1) %} - {% set imem0 = imem-1 %} - {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, - '${RUN}': RUN, - '${YMD}': current_cycle | to_YMD, - '${HH}': current_cycle | strftime('%H'), - '${MEMDIR}': 'mem%03d' | format(imem) }) %} -# ocean increments are saved as 0..n-1 -- ['{{ DATA }}/ocn.recenter.ens.{{ imem0 | string}}.{{ MARINE_WINDOW_END_ISO }}.PT0S.nc', '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.mom6_increment.i006.nc'] -# ice restarts are saved as 1..n -- ['{{ DATA }}/ens/cice_model.res.{{ imem | string }}.nc', '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ cice_rst_date }}.analysis.cice_model.res.nc'] -{% endfor %} -{% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, - '${RUN}': RUN, - '${YMD}': current_cycle | to_YMD, - '${HH}': current_cycle | strftime('%H'), - '${MEMDIR}': 'ensstat' }) %} -- ['{{ DATA }}/ocn.ensvar.incr.{{ MARINE_WINDOW_END_ISO }}.nc', '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.bg_ensvar.nc'] -- ['{{ DATA }}/ice.ensvar.incr.{{ MARINE_WINDOW_END_ISO }}.nc', '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.bg_ensvar.nc'] diff --git a/parm/marine/marine_ecen_stage.yaml.j2 b/parm/marine/marine_ecen_stage.yaml.j2 deleted file mode 100644 index 131e6eff0..000000000 --- a/parm/marine/marine_ecen_stage.yaml.j2 +++ /dev/null @@ -1,18 +0,0 @@ -mkdir: -- '{{ DATA }}/ens' -link: -{% for imem in range(1,NMEM_ENS+1) %} - {% for domain in ['ocean', 'ice'] %} -- [ "{{ DATA }}/../ensdata/ens/{{ domain }}.{{ imem | string }}.nc", '{{ DATA }}/ens/' ] - {% endfor %} -{% endfor %} -copy: -{% for imem in range(1,NMEM_ENS+1) %} - {% set memchar = 'mem%03d' | format(imem) %} - {% set tmpl_dict = ({ '${ROTDIR}': ROTDIR, - '${RUN}': 'enkfgdas', - '${YMD}': previous_cycle | to_YMD, - '${HH}': previous_cycle | strftime('%H'), - '${MEMDIR}': memchar }) %} -- ['{{ COM_ICE_RESTART_TMPL | replace_tmpl(tmpl_dict) }}/{{ cice_rst_date }}.cice_model.res.nc', '{{ DATA }}/ens/cice_model.res.{{ imem | string }}.nc'] -{% endfor %} diff --git a/parm/marine/marine_ens_config.yaml.j2 b/parm/marine/marine_ens_config.yaml.j2 new file mode 100644 index 000000000..c8dd4d4a4 --- /dev/null +++ b/parm/marine/marine_ens_config.yaml.j2 @@ -0,0 +1,89 @@ +jedi_config: + gridgen: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas_soca_gridgen.x' + mpi_cmd: '{{ APRUN_MARINEANLLETKF }}' + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo: soca_gridgen + letkf: + rundir: '{{ DATA }}' + exe_src: '{{ EXECgfs }}/gdas.x' + mpi_cmd: '{{ APRUN_MARINEANLLETKF }}' + jedi_args: ['soca', 'localensembleda'] + jcb_base_yaml: '{{ PARMgfs }}/gdas/marine/jcb-base.yaml.j2' + jcb_algo_yaml: '{{ PARMgfs }}/gdas/marine/jcb-prototype_letkf.yaml.j2' + +data_in: + mkdir: + - '{{ DATA }}/INPUT' + - '{{ DATA }}/anl_geom' + - '{{ DATA }}/letkf_output' + - '{{ DATA }}/obs' + - '{{ DATA }}/diags' + - '{{ DATAens }}/ens' + + copy_req: + # copy mom input template and det bkg + - ['{{ PARMgfs }}/gdas/marine/fms/input.nml', '{{ DATA }}/mom_input.nml.tmpl'] + - ['{{ PARMgfs }}/gdas/marine/fields_metadata.yaml', '{{ DATA }}/fields_metadata.yaml'] + - ['{{ COMIN_OCEAN_HISTORY_PREV }}/{{ GPREFIX }}inst.f009.nc', '{{ DATA }}/INPUT/MOM.res.nc'] + - ['{{ COMIN_ICE_HISTORY_PREV }}/{{ GPREFIX }}inst.f009.nc', '{{ DATA }}/INPUT/cice.res.nc'] + +{% filter indent(width=4) %} +{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %} +{% include 'marine_ens_stage_bkg.yaml.j2' %} +{% endfilter %} + + copy_opt: +{% for ob_name in observations %} + - ['{{ COMIN_OBS }}/{{ OPREFIX }}{{ ob_name }}.nc', '{{ DATA }}/obs'] +{% endfor %} + +data_out: + mkdir: + - '{{ COMOUT_OCEAN_LETKF }}/diags' + +{% for mem in range(1, NMEM_ENS + 1) %} + {% set tmpl_dict = {'${ROTDIR}':ROTDIR, + '${RUN}': GDUMP_ENS, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}':'mem' + '%03d' % mem} %} + + - '{{ COM_OCEAN_LETKF_TMPL | replace_tmpl(tmpl_dict) }}' + - '{{ COM_ICE_LETKF_TMPL | replace_tmpl(tmpl_dict) }}' +{% endfor %} + + copy_req: + + # save letkf analysis to comout +{% for mem in range(1, NMEM_ENS + 1) %} + {% set tmpl_dict = {'${ROTDIR}':ROTDIR, + '${RUN}': GDUMP_ENS, + '${YMD}': current_cycle | to_YMD, + '${HH}': current_cycle | strftime('%H'), + '${MEMDIR}':'mem' + '%03d' % mem} %} + + - ['{{ DATA }}/letkf_output/ocn.letkf.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_OCEAN_LETKF_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_ICE_LETKF_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc'] +{% endfor %} + + # Save LETKF background and analysis mean and variance, mean analysis increment + - ['{{ DATA }}/letkf_output/ocn.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_prior.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_prior.nc'] + - ['{{ DATA }}/letkf_output/ocn.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensvar_prior.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensvar_prior.nc'] + - ['{{ DATA }}/letkf_output/ocn.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_post.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_post.nc'] + - ['{{ DATA }}/letkf_output/ocn.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensvar_post.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensvar_post.nc'] + - ['{{ DATA }}/letkf_output/ocn.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_incr.nc'] + - ['{{ DATA }}/letkf_output/ice.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_incr.nc'] + + - ['{{ DATA }}/letkf.yaml', '{{ COMOUT_CONF }}/soca_letkf.yaml'] + + copy_opt: + # save obs diags +{% for ob_name in observations %} + - ['{{ DATA }}/diags/{{ ob_name }}.nc', '{{ COMOUT_OCEAN_LETKF }}/diags'] +{% endfor %} diff --git a/parm/marine/marine_ens_save.yaml.j2 b/parm/marine/marine_ens_save.yaml.j2 deleted file mode 100644 index cad85be78..000000000 --- a/parm/marine/marine_ens_save.yaml.j2 +++ /dev/null @@ -1,31 +0,0 @@ -{% set PDY = current_cycle | to_YMD %} -{% set cyc = current_cycle | strftime("%H") %} -{% set timestr = WINDOW_BEGIN | to_isotime %} -{% set antimestr = WINDOW_MIDDLE | to_isotime %} -###################################### -# save letkf analysis to comout -###################################### -copy: -{% for mem in range(1, NMEM_ENS + 1) %} - {% set tmpl_dict = {'${ROTDIR}':ROTDIR, - '${RUN}': GDUMP_ENS, - '${YMD}':PDY, - '${HH}':cyc, - '${MEMDIR}':"mem" + '%03d' % mem} %} - {% set COMOUT_OCEAN_LETKF_MEM = COM_OCEAN_LETKF_TMPL | replace_tmpl(tmpl_dict) %} - {% set COMOUT_ICE_LETKF_MEM = COM_ICE_LETKF_TMPL | replace_tmpl(tmpl_dict) %} - - - ["{{ DATA }}/letkf_output/ocn.letkf.ens.{{ mem }}.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF_MEM }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.analysis.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.ens.{{ mem }}.{{ timestr }}.PT3H.nc", "{{ COMOUT_ICE_LETKF_MEM }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.analysis.nc"] -{% endfor %} -# Save LETKF background and analysis mean and variance, mean analysis increment - - ["{{ DATA }}/letkf_output/ocn.letkf.mean_prior.fc.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.ensmean_prior.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.mean_prior.fc.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.ensmean_prior.nc"] - - ["{{ DATA }}/letkf_output/ocn.letkf.var_prior.fc.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.ensvar_prior.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.var_prior.fc.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.ensvar_prior.nc"] - - ["{{ DATA }}/letkf_output/ocn.letkf.ens.0.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.ensmean_post.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.ens.0.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.ensmean_post.nc"] - - ["{{ DATA }}/letkf_output/ocn.letkf.var_post.an.{{ antimestr }}.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.ensvar_post.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.var_post.an.{{ antimestr }}.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.ensvar_post.nc"] - - ["{{ DATA }}/letkf_output/ocn.letkf.inc.ens.0.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ocean.t{{ cyc }}z.ensmean_incr.nc"] - - ["{{ DATA }}/letkf_output/ice.letkf.inc.ens.0.{{ timestr }}.PT3H.nc", "{{ COMOUT_OCEAN_LETKF }}/{{ GDUMP_ENS }}.ice.t{{ cyc }}z.ensmean_incr.nc"] diff --git a/parm/marine/marine_ens_stage.yaml.j2 b/parm/marine/marine_ens_stage.yaml.j2 deleted file mode 100644 index 80dd9ba12..000000000 --- a/parm/marine/marine_ens_stage.yaml.j2 +++ /dev/null @@ -1,11 +0,0 @@ -{% set ghead = GDUMP_ENS + ".t" + previous_cycle | strftime("%H") + "z." %} -mkdir: -- "{{ DATA }}/letkf_output" -- "{{ DATA }}/obs" -- "{{ DATA }}/diags" -copy: -- ["{{ PARMgfs }}/gdas/marine/fms/input.nml", "{{ DATA }}/mom_input.nml.tmpl"] -- ["{{ PARMgfs }}/gdas/marine/fields_metadata.yaml", "{{ DATA }}/fields_metadata.yaml"] -# TODO: What ensemble information is being staged in marine_ens_stage.yaml.j2? -- ["{{ COMIN_OCEAN_HISTORY_PREV }}/{{ ghead }}inst.f009.nc", "{{ DATA }}/INPUT/MOM.res.nc"] -- ["{{ COMIN_ICE_HISTORY_PREV }}/{{ ghead }}inst.f009.nc", "{{ DATA }}/INPUT/cice.res.nc"] diff --git a/parm/marine/marine_ens_stage_bkg.yaml.j2 b/parm/marine/marine_ens_stage_bkg.yaml.j2 index a85eafc92..2f2c2e7fe 100644 --- a/parm/marine/marine_ens_stage_bkg.yaml.j2 +++ b/parm/marine/marine_ens_stage_bkg.yaml.j2 @@ -1,30 +1,20 @@ -###################################### -# set some variables -###################################### -{% set gPDY = previous_cycle | to_YMD %} -{% set gcyc = previous_cycle | strftime("%H") %} -{% set ghead = GDUMP_ENS + ".t" + gcyc + "z." %} -###################################### -# create working directories -###################################### -mkdir: -- "{{ DATAens }}/ens" - ###################################### # copy ensemble background files ###################################### -copy: + {% for mem in range(1, NMEM_ENS + 1) %} {% set gmem = mem+mem_offset %} {% if gmem > NMEM_ENS_MAX %} {% set gmem = gmem-NMEM_ENS_MAX %} {% endif %} + # define variables used in the history template {% set tmpl_dict = {'${ROTDIR}':ROTDIR, '${RUN}': GDUMP_ENS, - '${YMD}':gPDY, - '${HH}':gcyc, - '${MEMDIR}':"mem" + '%03d' % gmem} %} - - ["{{ COM_OCEAN_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ ghead}}inst.f006.nc", "{{ DATAens }}/ens/ocean.{{ mem }}.nc"] - - ["{{ COM_ICE_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ ghead}}inst.f006.nc", "{{ DATAens }}/ens/ice.{{ mem }}.nc"] + '${YMD}':previous_cycle | to_YMD, + '${HH}':previous_cycle | strftime('%H'), + '${MEMDIR}':'mem' + '%03d' % gmem} %} + +- ['{{ COM_OCEAN_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GPREFIX_ENS }}inst.f006.nc', '{{ DATAens }}/ens/ocean.{{ mem }}.nc'] +- ['{{ COM_ICE_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GPREFIX_ENS }}inst.f006.nc', '{{ DATAens }}/ens/ice.{{ mem }}.nc'] {% endfor %} diff --git a/parm/marine/marine_stage_fix_025.yaml.j2 b/parm/marine/marine_stage_fix_025.yaml.j2 index 54c43e329..fe4fbbeb3 100644 --- a/parm/marine/marine_stage_fix_025.yaml.j2 +++ b/parm/marine/marine_stage_fix_025.yaml.j2 @@ -1,10 +1,7 @@ -mkdir: -- "{{ DATA }}/INPUT" -- "{{ DATA }}/anl_geom" ###################################### # fix files to copy ###################################### -copy: + # Deterministic resource files - ["{{ INPUT_FIX_DIR }}/rossrad.nc", "{{ DATA }}/rossrad.nc"] - ["{{ INPUT_FIX_DIR }}/field_table", "{{ DATA }}/field_table"] @@ -25,6 +22,7 @@ copy: - ["{{ INPUT_FIX_DIR }}/INPUT/geothermal_davies2013_v1.nc", "{{ DATA }}/INPUT/geothermal_davies2013_v1.nc"] - ["{{ INPUT_FIX_DIR }}/INPUT/interpolate_zgrid_46L.nc", "{{ DATA }}/INPUT/interpolate_zgrid_46L.nc"] - ["{{ INPUT_FIX_DIR }}/INPUT/C384_mosaic.nc", "{{ DATA }}/INPUT/C384_mosaic.nc"] + # Analysis resource files - ["{{ ANL_GEOM }}/soca_gridspec.nc", "{{ DATA }}/anl_geom/soca_gridspec.nc"] -- ["{{ ANL_GEOM }}/MOM_input", "{{ DATA }}/anl_geom/MOM_input"] \ No newline at end of file +- ["{{ ANL_GEOM }}/MOM_input", "{{ DATA }}/anl_geom/MOM_input"] diff --git a/parm/marine/marine_stage_fix_100.yaml.j2 b/parm/marine/marine_stage_fix_100.yaml.j2 index aa92bf5d2..3332e8cf3 100644 --- a/parm/marine/marine_stage_fix_100.yaml.j2 +++ b/parm/marine/marine_stage_fix_100.yaml.j2 @@ -1,10 +1,7 @@ -mkdir: -- "{{ DATA }}/INPUT" -- "{{ DATA }}/anl_geom" ###################################### # fix files to copy ###################################### -copy: + # Deterministic resource files - ["{{ INPUT_FIX_DIR }}/rossrad.nc", "{{ DATA }}/rossrad.nc"] - ["{{ INPUT_FIX_DIR }}/field_table", "{{ DATA }}/field_table"] @@ -25,6 +22,7 @@ copy: - ["{{ INPUT_FIX_DIR }}/INPUT/topo_edits_011818.nc", "{{ DATA }}/INPUT/topo_edits_011818.nc"] - ["{{ INPUT_FIX_DIR }}/INPUT/MOM_channels_SPEAR", "{{ DATA }}/INPUT/MOM_channels_SPEAR"] - ["{{ INPUT_FIX_DIR }}/INPUT/seawifs_1998-2006_smoothed_2X.nc", "{{ DATA }}/INPUT/seawifs_1998-2006_smoothed_2X.nc"] + # Analysis resource files - ["{{ ANL_GEOM }}/soca_gridspec.nc", "{{ DATA }}/anl_geom/soca_gridspec.nc"] - ["{{ ANL_GEOM }}/MOM_input", "{{ DATA }}/anl_geom/MOM_input"] diff --git a/parm/marine/marine_stage_fix_500.yaml.j2 b/parm/marine/marine_stage_fix_500.yaml.j2 index fb1ed7211..c3679da39 100644 --- a/parm/marine/marine_stage_fix_500.yaml.j2 +++ b/parm/marine/marine_stage_fix_500.yaml.j2 @@ -1,10 +1,7 @@ -mkdir: -- "{{ DATA }}/INPUT" -- "{{ DATA }}/anl_geom" ###################################### # fix files to copy ###################################### -copy: + # Deterministic resource files - ["{{ INPUT_FIX_DIR }}/rossrad.nc", "{{ DATA }}/rossrad.nc"] - ["{{ INPUT_FIX_DIR }}/field_table", "{{ DATA }}/field_table"] @@ -17,6 +14,7 @@ copy: - ["{{ INPUT_FIX_DIR }}/INPUT/ocean_hgrid.nc", "{{ DATA }}/INPUT/ocean_hgrid.nc"] - ["{{ INPUT_FIX_DIR }}/INPUT/ocean_mosaic.nc", "{{ DATA }}/INPUT/ocean_mosaic.nc"] - ["{{ INPUT_FIX_DIR }}/INPUT/ocean_topog.nc", "{{ DATA }}/INPUT/ocean_topog.nc"] + # Analysis resource files - ["{{ ANL_GEOM }}/soca_gridspec.nc", "{{ DATA }}/anl_geom/soca_gridspec.nc"] -- ["{{ ANL_GEOM }}/MOM_input", "{{ DATA }}/anl_geom/MOM_input"] \ No newline at end of file +- ["{{ ANL_GEOM }}/MOM_input", "{{ DATA }}/anl_geom/MOM_input"] diff --git a/parm/marine/marine_stage_utilities.yaml.j2 b/parm/marine/marine_stage_utilities.yaml.j2 index 29846c922..dbd87f684 100644 --- a/parm/marine/marine_stage_utilities.yaml.j2 +++ b/parm/marine/marine_stage_utilities.yaml.j2 @@ -1,6 +1,5 @@ ###################################### # Utility yaml files to copy ###################################### -copy: - ["{{ HOMEgfs }}/parm/gdas/marine/fields_metadata.yaml", "{{ DATA }}/fields_metadata.yaml"] - ["{{ HOMEgfs }}/parm/gdas/marine/obsop_name_map.yaml", "{{ DATA }}/obsop_name_map.yaml"]