Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion dev/ci/cases/pr/C96C48_ufs_hybatmDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ skip_ci_on_hosts:
- orion
- hercules
- awsepicglobalworkflow
- hera
- ursa
- wcoss2

Expand Down
7 changes: 1 addition & 6 deletions dev/parm/config/gfs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,7 @@ export FHZERO=6

# Set PREFIX_ATMINC to r when recentering on
if [[ ${RECENTER_ENKF:-"YES"} == "YES" ]]; then
# TODO: Change this to 'recentered' for both JEDI and GSI recentered increments when JEDI has been brought into EE2
if [[ "${DO_JEDIATMENS}" == "YES" ]]; then
export PREFIX_ATMINC="r"
else
export PREFIX_ATMINC="recentered_"
fi
export PREFIX_ATMINC="recentered_"
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
Outdated
fi

# Set restart interval to enable restarting forecasts after failures
Expand Down
4 changes: 2 additions & 2 deletions parm/archive/enkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ enkf:
"correction_increment.yaml",
"ensemble_recenter.yaml"] %}
{% else %}
{% set da_stat_files = ["atmensstat"]%}
{% set da_stat_files = ["ensstat.atm.tar"]%}
{% set da_conf_files = ["atmensanlletkf.yaml",
"atmensanlfv3inc.yaml",
"correction_increment.yaml",
Expand Down Expand Up @@ -120,7 +120,7 @@ enkf:
- "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ensmean_increment.atm.i{{ '%03d' % fhr }}.nc"
{% endif %}
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atma{{ '%03d' % fhr }}.ensmean.nc"
- "{{ COMIN_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}csg_ensmean_jedi_analysis.atm.a{{ '%03d' % fhr }}.nc"
{% endif %}

# soil DA increments
Expand Down
6 changes: 4 additions & 2 deletions parm/archive/enkf_grp.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ enkf_grp:
- "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}gsistat.txt"
{% endif %}
{% if DO_JEDIATMENS %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_ratminc.tile{{ itile+1 }}.nc"
{% for iaufhr in IAUFHRS %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}recentered_jedi_increment.atm.i{{ '%03d' % iaufhr }}.tile{{ itile+1 }}.nc"
Comment thread
aerorahul marked this conversation as resolved.
{% endfor %}
{% endfor %}
{% else %}
{% if do_calc_increment %}
Expand Down
25 changes: 13 additions & 12 deletions parm/archive/enkf_restarta_grp.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,23 @@ enkf_restarta_grp:
- "{{ COMIN_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ anl_time | to_YMD }}.{{ anl_time | strftime("%H") }}0000.sfcanl_data.tile{{ itile }}.nc"
{% endfor %}

# Member atmospheric analysis data
# Member atmospheric increments or analysis data
{% if DO_JEDIATMENS %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_ratminc.tile{{ itile+1 }}.nc"
{% for iaufhr in IAUFHRS %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}recentered_jedi_increment.atm.i{{ '%03d' % iaufhr }}.tile{{ itile+1 }}.nc"
Comment thread
aerorahul marked this conversation as resolved.
{% endfor %}
{% endfor %}
{% endif %}

# Member increments
{% for iaufhr in IAUFHRS %}
{% set iaufhr = iaufhr %}
{% if do_calc_increment %}
{% else %}
{% for iaufhr in IAUFHRS %}
{% set iaufhr = iaufhr %}
Comment thread
DavidNew-NOAA marked this conversation as resolved.
Outdated
{% if do_calc_increment %}
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}analysis.atm.a{{ '%03d' % iaufhr }}.nc"
{% else %}
{% else %}
Comment thread
DavidNew-NOAA marked this conversation as resolved.
- "{{ COMIN_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}recentered_increment.atm.i{{ '%03d' % iaufhr }}.nc"
{% endif %}
{% endfor %} # iaufhr in IAUFHRS
{% endif %}
{% endfor %} # iaufhr in IAUFHRS
{% endif %}

# soil DA increments
{% if DO_GSISOILDA %}
Expand Down
7 changes: 6 additions & 1 deletion parm/archive/gdas.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,13 @@ gdas:
- "{{ COMIN_ATMOS_GRIB_1p00 | relpath(ROTDIR) }}/{{ head }}pres_a.1p00.analysis.grib2.idx"

# Analysis netCDF (raw) data
{% if DO_JEDIATMVAR %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}jedi_analysis.atm.a006.nc"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}jedi_analysis.sfc.a006.nc"
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.atm.a006.nc"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}analysis.sfc.a006.nc"
{% endif %}

{% if DOHYBVAR %}
# Ensemble-resolution analysis
Expand All @@ -68,7 +73,7 @@ gdas:
{% if DO_JEDIATMVAR %}
- "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}anlvar.atm.yaml"
- "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}anlvar.fv3.atm.yaml"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}atmstat"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}stat.atm.tar"
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat.txt"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cnvstat.tar"
Expand Down
13 changes: 8 additions & 5 deletions parm/archive/gdas_restarta.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@ gdas_restarta:
required:
# Deterministic analysis increments
{% if DO_JEDIATMVAR %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atminc.tile{{ itile+1 }}.nc"
{% for iaufhr in IAUFHRS %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}jedi_increment.atm.i{{ "%03d" % iaufhr }}.tile{{ itile+1 }}.nc"
{% endfor %}
{% endfor %}
{% endif %}
{% else %}
# IAU increments
{% for iaufhr in IAUFHRS %}
{% for iaufhr in IAUFHRS %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}increment.atm.i{{ "%03d" % iaufhr }}.nc"
{% endfor %}
{% endfor %}
{% endif %}

# Soil DA increments
{% if DO_GSISOILDA %}
Expand Down
2 changes: 1 addition & 1 deletion parm/archive/gfs_netcdfa.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ gfs_netcdfa:
{% for iauhr in IAUFHRS %}
{% if DO_JEDIATMVAR %}
{% for itile in range(6) %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}cubed_sphere_grid_atminc.tile{{ itile+1 }}.nc"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}jedi_increment.atm.i{{ "%03d" % iauhr }}.tile{{ itile+1 }}.nc"
Comment thread
DavidNew-NOAA marked this conversation as resolved.
Outdated
{% endfor %}
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}increment.atm.i{{ "%03d" % iauhr }}.nc"
Expand Down
6 changes: 6 additions & 0 deletions parm/post/upp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,14 @@ analysis:
data_in:
copy:
- ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-anl.txt", "{{ DATA }}/postxconfig-NT.txt"]
{% if DO_JEDIATMVAR %}
- ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.jedi_analysis.atm.a006.nc", "{{ DATA }}/{{ atmos_filename }}"]
- ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.jedi_analysis.sfc.a006.nc", "{{ DATA }}/{{ flux_filename }}"]
{% else %}
- ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.analysis.atm.a006.nc", "{{ DATA }}/{{ atmos_filename }}"]
- ["{{ COMIN_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.analysis.sfc.a006.nc", "{{ DATA }}/{{ flux_filename }}"]
{% endif %}

data_out:
copy:
- ["{{ DATA }}/GFSPRS.GrbF00", "{{ COMOUT_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.master.analysis.grib2"]
Expand Down
14 changes: 11 additions & 3 deletions parm/stage/analysis.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,17 @@ analysis:
{% if DO_JEDIATMVAR %}

{% for itile in range(6) %}
{% for ftype in ["atminc", "atmi009", "atmi003", "ratminc", "ratmi009", "ratmi003"] %}
{% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z.cubed_sphere_grid_" ~ ftype ~ ".tile" ~ (itile+1) ~ ".nc") %}
- ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.cubed_sphere_grid_{{ ftype }}.tile{{ itile+1 }}.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}"]
{% for source_ftype, dest_ftype in
[
('atminc', 'jedi_increment.atm.i006'),
('atmi009', 'jedi_increment.atm.i009'),
('atmi003', 'jedi_increment.atm.i003'),
('ratminc', 'recentered_jedi_increment.atm.i006'),
('ratmi009', 'recentered_jedi_increment.atm.i009'),
('ratmi003', 'recentered_jedi_increment.atm.i003')
] %}
{% if path_exists(ICSDIR ~ "/" ~ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) ~ "/" ~ RUN ~ ".t" ~ current_cycle_HH ~ "z.cubed_sphere_grid_" ~ source_ftype ~ ".tile" ~ (itile+1) ~ ".nc") %}
- ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ RUN }}.t{{ current_cycle_HH }}z.cubed_sphere_grid_{{ source_ftype }}.tile{{ itile+1 }}.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.{{ dest_ftype }}.tile{{ itile+1 }}.nc"]
{% endif %}
{% endfor %}
{% endfor %}
Expand Down
16 changes: 6 additions & 10 deletions ush/forecast_postdet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -183,11 +183,7 @@
for iaufhr in "${iaufhrs[@]}"; do
if [[ "${DO_JEDIATMVAR:-NO}" == "YES" ]]; then
for tile in {1..6}; do
if (( iaufhr == 6 )); then
inc_file="atminc.tile${tile}.nc"
else
inc_file="atmi$(printf %03i "${iaufhr}").tile${tile}.nc"
fi
inc_file="jedi_increment.atm.i$(printf %03i '${iaufhr}').tile${tile}.nc"
Comment thread Fixed
inc_files+=("${inc_file}")
IAU_INC_FILES="${IAU_INC_FILES}${delimiter}'${inc_file}'"
done
Expand All @@ -203,9 +199,9 @@
read_increment=".true."

if [[ "${DO_JEDIATMVAR:-NO}" == "YES" ]]; then
inc_files=("atminc.tile1.nc" "atminc.tile2.nc" "atminc.tile3.nc" "atminc.tile4.nc" "atminc.tile5.nc" "atminc.tile6.nc")
inc_files=("jedi_increment.atm.i006.tile1.nc" "jedi_increment.atm.i006.tile2.nc" "jedi_increment.atm.i006.tile3.nc" "jedi_increment.atm.i006.tile4.nc" "jedi_increment.atm.i006.tile5.nc" "jedi_increment.atm.i006.tile6.nc")
increment_file_on_native_grid=".true."
res_latlon_dynamics="atminc"
res_latlon_dynamics="jedi_increment.atm.i006"
else
inc_files=("increment.atm.i006.nc")
res_latlon_dynamics="increment.atm.i006.nc"
Expand All @@ -227,7 +223,7 @@
local increment_file
for inc_file in "${inc_files[@]}"; do
if [[ "${DO_JEDIATMVAR:-NO}" == "YES" ]]; then
increment_file="${COMIN_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.cubed_sphere_grid_${PREFIX_ATMINC}${inc_file}"
increment_file="${COMIN_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.${PREFIX_ATMINC}${inc_file}"
Comment thread
DavidNew-NOAA marked this conversation as resolved.
Outdated
else
if [[ "${RUN}" == "gcafs" ]]; then
increment_file="${COMIN_ATMOS_ANALYSIS}/gcdas.t${cyc}z.${PREFIX_ATMINC}${inc_file}"
Expand Down Expand Up @@ -310,8 +306,8 @@
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.sfc.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/sfcf${FH3}.nc"
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.log.f${FH3}.txt" "${DATAoutput}/FV3ATM_OUTPUT/log.atm.f${FH3}"
if [[ "${DO_JEDIATMVAR:-}" == "YES" ]]; then
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.cubed_sphere_grid_atmf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_atmf${FH3}.nc"
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.cubed_sphere_grid_sfcf${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_sfcf${FH3}.nc"
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.csg_atm.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_atmf${FH3}.nc"
${NLN} "${COMOUT_ATMOS_HISTORY}/${RUN}.t${cyc}z.csg_sfc.f${FH3}.nc" "${DATAoutput}/FV3ATM_OUTPUT/cubed_sphere_grid_sfcf${FH3}.nc"
fi
fi
if [[ "${WRITE_DOPOST}" == ".true." ]]; then
Expand Down
2 changes: 1 addition & 1 deletion ush/python/pygfs/task/atm_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def finalize(self) -> None:

# Compress and tar diag files in COM directory
self.tar_diag_files(self.task_config.COMOUT_ATMOS_ANALYSIS,
f"{self.task_config.APREFIX}atmstat")
f"{self.task_config.APREFIX}stat.atm.tar")

# Tar radiative bias correction files into COM directory
self.tar_radiative_bias_corrections(self.task_config.COMOUT_ATMOS_ANALYSIS,
Expand Down
2 changes: 1 addition & 1 deletion ush/python/pygfs/task/atmens_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def finalize(self) -> None:

# Compress and tar diag files in COM directory
self.tar_diag_files(self.task_config.COMOUT_ATMOS_ANALYSIS_ENS,
f"{self.task_config.APREFIX_ENS}atmensstat")
f"{self.task_config.APREFIX_ENS}ensstat.atm.tar")

# Save files from COM
logger.info(f"Saving files to COM")
Expand Down
7 changes: 4 additions & 3 deletions ush/python/pygfs/task/fv3_analysis_calc.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,21 +126,21 @@ def execute(self) -> None:
logger.info(f"Inserting analysis variables into atmospheric analysis file")
insert_analysis_variables(self.task_config.current_cycle,
f"atmanl.{auxgrid_time_str}.nc4",
f"{self.task_config.GPREFIX}atm.f006.nc")
f"{self.task_config.GPREFIX}atmf006.nc")

# Aerosols
if self.task_config.DO_AERO_ANL:
logger.info(f"Inserting analysis variables into aerosol analysis file")
insert_analysis_variables(self.task_config.current_cycle,
f"aeroanl.{auxgrid_time_str}.nc4",
f"{self.task_config.GPREFIX}atm.f006.nc")
f"{self.task_config.GPREFIX}atmf006.nc")

# Snow
if self.task_config.DO_JEDISNOWDA:
logger.info(f"Inserting analysis variables into snow analysis file")
insert_analysis_variables(self.task_config.current_cycle,
f"snowanl.{auxgrid_time_str}.nc4",
f"{self.task_config.GPREFIX}sfc.f006.nc")
f"{self.task_config.GPREFIX}sfcf006.nc")

@logit(logger)
def finalize(self) -> None:
Expand Down Expand Up @@ -196,6 +196,7 @@ def insert_analysis_variables(valid_time, fn_anl: str, fn_bkg: str) -> None:
"""

try:
logger.info(f"foo: {fn_bkg}")
Comment thread
DavidNew-NOAA marked this conversation as resolved.
Outdated
with nc.Dataset(fn_anl, 'r') as nc_anl, nc.Dataset(fn_bkg, 'r+') as nc_bkg:
# Change the units of the time coordinate since the units from the UFS history
# file will break UPP
Expand Down