Skip to content
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
6db4fe9
Copy from feature/enkf_only
bhuang95 Oct 31, 2025
e694072
GSI and JEDI test passed after EE name change. csg in JEDI file names…
bhuang95 Nov 3, 2025
86ccf0d
Merge branch 'develop' into feature/enkf_only_dev
bhuang95 Nov 4, 2025
bed26ea
add fetch and prepatmopeanlbc tasks and need to test them
bhuang95 Nov 6, 2025
f32d59c
Pass JEDI and GSI test
bhuang95 Nov 10, 2025
b04c54a
Cleanup but gsi eobs fauled due to recent create_gsi_info.sh change
bhuang95 Nov 12, 2025
fc6005c
Minor change with failure of gsi jobs (create_gsi_info.sh) and UFS mo…
bhuang95 Nov 12, 2025
db790b1
Merge branch 'develop' into feature/enkf_only_dev
bhuang95 Nov 12, 2025
22c0c53
Update submodules
bhuang95 Nov 13, 2025
9b2eaa6
Fix model and gsi oeobs failure and rename satbias to bias
bhuang95 Nov 13, 2025
85ed17b
Fix python coding norm error
bhuang95 Nov 13, 2025
e8806e4
1st clean/ready version that pass JEDI and GSI test
bhuang95 Nov 13, 2025
4f5806d
Git shellcheck change to 1st clean version
bhuang95 Nov 14, 2025
be8c479
Git shellcheck change 2 to 1st clean version
bhuang95 Nov 14, 2025
fa9ff54
Address David's comments and need to update to recent NOAA EMC develop
bhuang95 Dec 1, 2025
7b8065c
define letkf obs_distribution_localizations in jcb
bhuang95 Dec 11, 2025
8fd40d6
remove temporary files
bhuang95 Dec 11, 2025
2c15560
Issue #4339: Enable EnKF-only for atmosphere (1st try)
bhuang95 Dec 16, 2025
84731f3
Issue #4339: Enable EnKF-only for atmosphere (2nd try): remove tempor…
bhuang95 Dec 16, 2025
6a70bc2
Issue #4339: Enable EnKF-only for atmosphere (3rd try): remove tempor…
bhuang95 Dec 16, 2025
49c8139
Merge develop and fix code norm failure
bhuang95 Jan 13, 2026
e52d039
Fix shfmt failure (try 1)
bhuang95 Jan 14, 2026
d2f7005
Fix shfmt failure (try 2)
bhuang95 Jan 14, 2026
6d09219
Fix shfmt failure (try 3)
bhuang95 Jan 14, 2026
7a75ad8
Merge branch 'develop' into feature/enkf_only_dev
CoryMartin-NOAA Jan 14, 2026
b7df0e5
Merge branch 'develop' into feature/enkf_only_dev
aerorahul Jan 14, 2026
ce5ff04
Merge branch 'develop' into feature/enkf_only_dev
aerorahul Jan 15, 2026
59755de
Fix shfmt failure (try 4)
bhuang95 Jan 15, 2026
aa45fe9
Fix shellcheck failure (try 1)
bhuang95 Jan 15, 2026
cf2b82b
Merge branch 'develop' into feature/enkf_only_dev
bhuang95 Jan 16, 2026
95ae053
Update sorc/gdas.cd
bhuang95 Jan 16, 2026
26a993d
use parm/jcb-gdas develop in sorc/gdas.cd
bhuang95 Jan 16, 2026
965a396
Use sorc/gdas.cd hash 326262a
bhuang95 Jan 28, 2026
8187104
Merge branch 'develop' into feature/enkf_only_dev
bhuang95 Jan 28, 2026
7230de6
Merge branch 'develop' into feature/enkf_only_dev
bhuang95 Feb 2, 2026
59cf4a6
Update sorc/gdas.cd hash to 1f35e78
bhuang95 Feb 2, 2026
7dfda99
add g-w CI case C48_gsienkf_atmDA (#4339)
RussTreadon-NOAA Feb 4, 2026
954c47f
enable C48_gsienkf_atmDA on gaeac6, orion, hercules (#4339)
RussTreadon-NOAA Feb 4, 2026
ccc4b3c
adjust half cycle logic in gfs_tasks.py for enkf only ci #(#4339)
RussTreadon-NOAA Feb 5, 2026
03fd7e2
initial commit of g-w CI case C48_ufsenkf_atmDA along with adjustment…
RussTreadon-NOAA Feb 5, 2026
6727340
fix pynorms (#4339)
RussTreadon-NOAA Feb 5, 2026
7178d46
Update dev/jobs/JGLOBAL_ATM_PREP_ANL_BIAS
RussTreadon-NOAA Feb 5, 2026
31df3d8
Update ush/forecast_postdet.sh
RussTreadon-NOAA Feb 5, 2026
aca4bbd
Update ush/forecast_postdet.sh
RussTreadon-NOAA Feb 5, 2026
05ae683
Update ush/forecast_postdet.sh
RussTreadon-NOAA Feb 5, 2026
323b68e
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 6, 2026
79d55d5
update sorc/gdas.cd hash (#4339)
RussTreadon-NOAA Feb 6, 2026
fe02936
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 6, 2026
4b3084f
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 6, 2026
cfe8df4
replace atmf009 depdendency with atm.f009 (#4349)
RussTreadon-NOAA Feb 6, 2026
4184146
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 9, 2026
dbafa1e
remove csg_ prefix from tiled atmospheric jedi ensemble analysis incr…
RussTreadon-NOAA Feb 9, 2026
5253073
update sorc/gdas.cd hash (#4339)
RussTreadon-NOAA Feb 9, 2026
da71d32
Remove OBS_DIST_LOCALIZATIONS_YAML export
RussTreadon-NOAA Feb 10, 2026
78dba3e
disable C48_gsienkf_atmDA and C48_ufsenkf_atmDA on MSU (#4339)
RussTreadon-NOAA Feb 10, 2026
5156f6e
remove C48_gsienkf_atmDA and 48_ufsenkf_atmDA from gitlib-ci-host lis…
RussTreadon-NOAA Feb 10, 2026
184ea20
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 14, 2026
3340d68
update sorc/gdas.cd hash (#4339)
RussTreadon-NOAA Feb 16, 2026
cf94c43
Apply suggestion from @TravisElless-NOAA
bhuang95 Feb 17, 2026
6cb7981
remove blank line
bhuang95 Feb 17, 2026
f5aba40
Apply suggestion from @DavidHuber-NOAA
bhuang95 Feb 17, 2026
f9482a1
Merge remote-tracking branch 'upstream/develop' into feature/enkf_onl…
RussTreadon-NOAA Feb 18, 2026
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
30 changes: 30 additions & 0 deletions dev/ci/cases/pr/C48_gsienkf_atmDA.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
experiment:
net: gfs
mode: cycled
pslot: {{ 'pslot' | getenv }}
app: ATM
resdetatmos: 96
resensatmos: 48
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96C48/20250808
idate: 2024022318
edate: 2024022406
nens: 2
interval: 0
start: warm
yaml: {{ HOMEgfs }}/dev/ci/cases/yamls/gsienkf_atmDA_defaults.ci.yaml

skip_ci_on_hosts:
- gaeac5
- orion
- hercules
- awsepicglobalworkflow

workflow:
engine: rocoto
rocoto:
maxtries: 2
cyclethrottle: 3
taskthrottle: 25
verbosity: 2
30 changes: 30 additions & 0 deletions dev/ci/cases/pr/C48_ufsenkf_atmDA.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
experiment:
net: gfs
mode: cycled
pslot: {{ 'pslot' | getenv }}
app: ATM
resdetatmos: 96
resensatmos: 48
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96C48/20250808
idate: 2024022318
edate: 2024022406
nens: 2
interval: 0
start: warm
yaml: {{ HOMEgfs }}/dev/ci/cases/yamls/ufsenkf_atmDA_defaults.ci.yaml

skip_ci_on_hosts:
- gaeac5
- orion
- hercules
- awsepicglobalworkflow

workflow:
engine: rocoto
rocoto:
maxtries: 2
cyclethrottle: 3
taskthrottle: 25
verbosity: 2
13 changes: 13 additions & 0 deletions dev/ci/cases/yamls/gsienkf_atmDA_defaults.ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
defaults:
!INC {{ HOMEgfs }}/dev/parm/config/gfs/yaml/defaults.yaml
base:
DOIAU: "NO"
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "NO"
DOENKFONLY_ATM: "YES"
DO_TEST_MODE: "NO"
CASE_ANL: "C48"
CASE_HIST: "C96"
DONST: "NO"
DO_ARCHCOM: "YES"
USE_IODADIR: "NO"
13 changes: 13 additions & 0 deletions dev/ci/cases/yamls/ufsenkf_atmDA_defaults.ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
defaults:
!INC {{ HOMEgfs }}/dev/parm/config/gfs/yaml/defaults.yaml
base:
DOIAU: "NO"
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "YES"
DOENKFONLY_ATM: "YES"
DO_TEST_MODE: "NO"
CASE_ANL: "C48"
CASE_HIST: "C96"
DONST: "NO"
DO_ARCHCOM: "YES"
USE_IODADIR: "YES"
6 changes: 3 additions & 3 deletions dev/ci/gitlab-ci-hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@

# Template matrices for case lists
.hera_cases_matrix: &hera_cases
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48_ufsgsi_hybatmDA", "C96C48_ufs_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA", "C96mx100_S2S"]
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48_ufsgsi_hybatmDA", "C96C48_ufs_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA", "C96mx100_S2S", "C48_gsienkf_atmDA", "C48_ufsenkf_atmDA"]

.gaeac6_cases_matrix: &gaeac6_cases
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA", "C96mx100_S2S"]
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA", "C96mx100_S2S", "C48_gsienkf_atmDA", "C48_ufsenkf_atmDA"]

.orion_cases_matrix: &orion_cases
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C96C48_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96mx100_S2S", "C96_gcafs_cycled"]
Expand All @@ -34,7 +34,7 @@
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96mx100_S2S", "C96_gcafs_cycled"]

.ursa_cases_matrix: &ursa_cases
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48_ufsgsi_hybatmDA", "C96C48_ufs_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96mx100_S2S", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA"]
- caseName: ["C48_ATM", "C48_S2SW", "C48_S2SWA_gefs", "C48mx500_3DVarAOWCDA", "C48mx500_hybAOWCDA", "C96C48_hybatmDA", "C96C48_hybatmsnowDA", "C96C48_hybatmsoilDA", "C96C48_ufsgsi_hybatmDA", "C96C48_ufs_hybatmDA", "C96C48mx500_S2SW_cyc_gfs", "C96_atm3DVar", "C96mx100_S2S", "C96_gcafs_cycled", "C96_gcafs_cycled_noDA", "C48_gsienkf_atmDA", "C48_ufsenkf_atmDA"]

# Host: Hera - Standard Cases
setup_experiments-hera:
Expand Down
13 changes: 13 additions & 0 deletions dev/job_cards/rocoto/prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,19 @@ export COMINgfs=${COMIN_ATMOS_HISTORY_GFS}

export COMSP=${COMSP:-"${COMIN_OBS}/${RUN_local}.t${cyc}z."}

if [[ ${DOENKFONLY_ATM:-"NO"} == "YES" ]]; then
MEMDIR="ensstat" RUN="enkf${GDUMP}" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx COMIN_ATMOS_HISTORY_ENS_STAT_PREV:COM_ATMOS_HISTORY_TMPL
MEMDIR="mem001" RUN="enkf${GDUMP}" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx COMIN_ATMOS_HISTORY_ENS_MEM001_PREV:COM_ATMOS_HISTORY_TMPL
RUN="gdas" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx COMOUT_ATMOS_HISTORY_DET_PREV:COM_ATMOS_HISTORY_TMPL
mkdir -p "${COMOUT_ATMOS_HISTORY_DET_PREV}"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_MEM001_PREV}/enkfgdas.t${gcyc}z.log.f003.txt" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.log.f003.txt"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_MEM001_PREV}/enkfgdas.t${gcyc}z.log.f006.txt" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.log.f006.txt"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_MEM001_PREV}/enkfgdas.t${gcyc}z.log.f009.txt" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.log.f009.txt"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_STAT_PREV}/enkfgdas.t${gcyc}z.ensmean.atm.f003.nc" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.atm.f003.nc"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_STAT_PREV}/enkfgdas.t${gcyc}z.ensmean.atm.f006.nc" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.atm.f006.nc"
ln -sf "${COMIN_ATMOS_HISTORY_ENS_STAT_PREV}/enkfgdas.t${gcyc}z.ensmean.atm.f009.nc" "${COMOUT_ATMOS_HISTORY_DET_PREV}/gdas.t${gcyc}z.atm.f009.nc"
fi

# Create or Copy prepbufr, prepbufr.acft_profiles, nsstbufr files
# Do not fail on external errors
if [[ ${MAKE_PREPBUFR:-"YES"} == "YES" ]]; then
Expand Down
18 changes: 18 additions & 0 deletions dev/job_cards/rocoto/prepatmanlbias.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#! /usr/bin/env bash

###############################################################
# Source UFSDA workflow modules
source "${HOMEgfs}/dev/ush/load_modules.sh" ufsda
status=$?
if [[ ${status} -ne 0 ]]; then
exit "${status}"
fi

export job="prepatmanlbias"
export jobid="${job}.$$"

###############################################################
# Execute the JJOB
"${HOMEgfs}/dev/jobs/JGLOBAL_ATM_PREP_ANL_BIAS"
status=$?
exit "${status}"
9 changes: 7 additions & 2 deletions dev/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ GDUMP="gdas"
RUN=${GDUMP} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMIN_OBS:COM_OBS_TMPL

RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COMIN_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL
if [[ ${DOENKFONLY_ATM:-"NO"} == "YES" ]]; then
MEMDIR='ensstat' RUN="enkf${GDUMP}" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COMIN_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL
else
RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COMIN_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL
fi

###############################################################
# Run relevant script
Expand Down
137 changes: 137 additions & 0 deletions dev/jobs/JGLOBAL_ATM_PREP_ANL_BIAS
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
#! /usr/bin/env bash
export WIPE_DATA="NO"
export DATA=${DATA:-${DATAROOT}/${RUN}fetch_${cyc}}
source "${HOMEgfs}/ush/jjob_header.sh" -e "prepatmanlbias" -c "base prepatmanlbias"

##############################################
# Set variables used in the script
##############################################

##############################################
# Begin JOB SPECIFIC work
##############################################
# Ignore possible spelling error (nothing is misspelled)
# shellcheck disable=SC2153
GDATE=$(date --utc +%Y%m%d%H -d "${PDY} ${cyc} - ${assim_freq} hours")
export gPDY=${GDATE:0:8}
export gcyc=${GDATE:8:2}
export gyy=${GDATE:0:4}
export gmm=${GDATE:4:2}
export gdd=${GDATE:6:2}
export GDUMP="gdas"

# Generate COM variables from templates
MEMDIR="ensstat" RUN="enkf${GDUMP}" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COMOUT_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL

# Process bias corrections files grabbed from HPSS in task gdas_fetchatmanlbias
BIASDIR=${DATA}/${GDUMP}.${gPDY}/${gcyc}/atmos
BIASFILES="${GDUMP}.t${gcyc}z.abias ${GDUMP}.t${gcyc}z.abias_air ${GDUMP}.t${gcyc}z.abias_int ${GDUMP}.t${gcyc}z.abias_pc ${GDUMP}.t${gcyc}z.radstat"

ABIAS_SAT=${BIASDIR}/${GDUMP}.t${gcyc}z.abias
ABIASPC_SAT=${BIASDIR}/${GDUMP}.t${gcyc}z.abias_pc
ABIAS_SAT_JEDI_TAR=${COMOUT_ATMOS_ANALYSIS_PREV}/${GDUMP}.t${gcyc}z.rad_varbc_params.tar
ABIAS_AIR_JEDI_TAR=${COMOUT_ATMOS_ANALYSIS_PREV}/${GDUMP}.t${gcyc}z.air_varbc_params.tar

SATBIAS2IODAX=${SATBIAS2IODAX:-${EXECgfs}/satbias2ioda.x}
SATBIAS2IODAY=${HOMEgfs}/sorc/gdas.cd/ush/satbias_converter.yaml.tmpl
OUTPUT=${DATA}/output

mkdir -p "${COMOUT_ATMOS_ANALYSIS_PREV}"
mkdir -p "${OUTPUT}"

if [[ ${DO_JEDIATMENS} == "YES" ]]; then
# JEDI run
cd "${DATA}" || exit 1
mkdir -p "testrun/varbc"
ln -sf "${ABIAS_SAT}" "./satbias_in"
ln -sf "${ABIASPC_SAT}" "./satbias_pc"
if grep -i "NaN" satbias_in > /dev/null 2>&1; then
##export err=1
##err_chk "FATAL ERROR There are NaN in satbias_in."
echo "WARNING: There are NaN in satbias_in. Replace NaN with 0.000000"
cp satbias_in satbias_in_original
sed -i -e 's/ NaN/ 0.000000/g' \
-e 's/ nan/ 0.000000/g' \
-e 's/ NAN/ 0.000000/g' satbias_in
fi

# Get instruments from satbias_in
obsclass=$(grep "_" satbias_in | awk '{print $2}' | uniq)

# Loop over instruments. Covert GSI abias to JEDI format
for instrument in ${obsclass}; do
echo "${instrument}"
cp -f "${SATBIAS2IODAY}" satbias_converter.yaml
sed -i -e "s/INSTRUMENT/${instrument}/g" satbias_converter.yaml

${SATBIAS2IODAX} satbias_converter.yaml

export err=$?
if [[ ${err} -ne 0 ]]; then
err_exit "FATAL ERROR satbias2iodas.x failed for ${instrument}, ABORT!"
fi

rm -f testrun/varbc/*nc
rm -f testrun/varbc/*txt

cd ./testrun/varbc/
grep "${instrument}" ../../satbias_in | awk '{print $2" "$3" "$4}' > \
"${OUTPUT}"/gdas.t"${gcyc}"z.radiance_"${instrument}".tlapse.txt
cpreq -p satbias_"${instrument}".nc4 "${OUTPUT}"/gdas.t"${gcyc}"z.radiance_"${instrument}".satbias.nc
mv satbias_"${instrument}".nc4 "${OUTPUT}"/gdas.t"${gcyc}"z.radiance_"${instrument}".satbias_cov.nc
cd "${DATA}"
rm -f satbias_converter.yaml
done

if [[ ${err} -eq 0 ]]; then
cd "${OUTPUT}" || exit
for file in ${BIASFILES}; do
cpreq "${BIASDIR}/${file}" "./enkf${file}.txt"
export err=$?
if [[ ${err} -ne 0 ]]; then
err_exit "Error copying operational anl bias correction files"
fi
done
# TODO: Temporary solution and need to process abias_air for JEDI when ready
tar -cvf "${ABIAS_AIR_JEDI_TAR}" "./enkf${GDUMP}.t${gcyc}z.abias_air.txt"
rm -f "./enkf${GDUMP}.t${gcyc}z.abias_air.txt"
tar -cvf "${ABIAS_SAT_JEDI_TAR}" ./*.nc ./*.txt
export err=$?
fi

else
# GSI run
for file in ${BIASFILES}; do
cpreq "${BIASDIR}/${file}" "${COMOUT_ATMOS_ANALYSIS_PREV}/enkf${file}.txt"
export err=$?
if [[ ${err} -ne 0 ]]; then
err_exit "FATAL ERROR copying operational anl bias correction files"
fi
done
fi

if [[ ${err} -ne 0 ]]; then
err_exit "FATAL ERROR executing ${EXSCRIPT}"
fi
set_trace

##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [[ -e "${pgmout}" ]]; then
cat "${pgmout}"
fi

###################################
# Remove temp directories
###################################
if [[ "${KEEPDATA}" != "YES" ]]; then
rm -rf "${DATA}"
fi

exit 0
36 changes: 25 additions & 11 deletions dev/jobs/JGLOBAL_ENKF_SELECT_OBS
Original file line number Diff line number Diff line change
Expand Up @@ -75,17 +75,31 @@ if [[ ${DONST} == "YES" ]]; then
fi
export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles"

# Deterministic analysis and increment files
export SFCANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.sfc.a006.nc"
export DTFINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.dtf.i006.nc"
export ATMANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.atm.a006.nc"
export ATMINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.atm.i006.nc"

# Guess Bias correction coefficients related to control
export GBIAS=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias.txt
export GBIASPC=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc.txt
export GBIASAIR=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air.txt
export GRADSTAT=${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat.tar
if [[ ${DOENKFONLY_ATM:-"NO"} == "YES" ]]; then
# Deterministic analysis and increment files
export SFCANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.sfc.a006.nc"
export DTFINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.dtf.i006.nc"
export ATMANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.atm.a006.nc"
export ATMINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.atm.i006.nc"

# Guess Bias correction coefficients related to ensemble
export GBIAS="${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias.txt"
export GBIASPC="${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_pc.txt"
export GBIASAIR="${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}abias_air.txt"
export GRADSTAT="${COMIN_ATMOS_ANALYSIS_PREV}/${GPREFIX}radstat.tar"
else
# Deterministic analysis and increment files
export SFCANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.sfc.a006.nc"
export DTFANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.dtf.i006.nc"
export ATMANL="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}analysis.atm.a006.nc"
export ATMINC="${COMOUT_ATMOS_ANALYSIS_DET}/${APREFIX_DET}increment.atm.i006.nc"

# Guess Bias correction coefficients related to control
export GBIAS="${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias.txt"
export GBIASPC="${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_pc.txt"
export GBIASAIR="${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}abias_air.txt"
export GRADSTAT="${COMIN_ATMOS_ANALYSIS_DET_PREV}/${GPREFIX_DET}radstat.tar"
fi

# Bias correction coefficients related to ensemble mean
export ABIAS="${COMOUT_ATMOS_ANALYSIS}/${APREFIX}abias.txt"
Expand Down
2 changes: 1 addition & 1 deletion dev/jobs/JGLOBAL_FETCH
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#! /usr/bin/env bash

export DATA=${DATA:-${DATAROOT}/${RUN}fetch_${cyc}}
source "${HOMEgfs}/ush/jjob_header.sh" -e "fetch" -c "base fetch"

# Execute fetching
Expand Down
15 changes: 15 additions & 0 deletions dev/parm/config/gfs/config.base.j2
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,10 @@ export BUILD_GSINFO_DIR="${PARMgfs}/gsinfo"
export NMEM_ENS_GFS="{{ NMEM_ENS_GFS }}"
export NMEM_ENS_GFS_OFFSET="{{ NMEM_ENS_GFS_OFFSET }}"
export DO_CALC_INCREMENT_ENKF_GFS="NO"
export DOENKFONLY_ATM="{{ DOENKFONLY_ATM }}"
if [[ "${DOENKFONLY_ATM}" = "YES" && "${DO_JEDIATMENS}" = "YES" ]]; then
export DO_HISTORY_FILE_ON_NATIVE_GRID="YES"
fi

# EnKF output frequency
if [[ "${DOHYBVAR}" = "YES" ]]; then
Expand Down Expand Up @@ -519,6 +523,17 @@ if [[ "${machine}" == "URSA" || "${machine}" == "GAEAC6" || "${machine}" == "ORI
export DO_METP=NO
fi

if [[ "${DOENKFONLY_ATM:-NO}" == "YES" ]] ; then
export RECENTER_ENKF="NO" # Turn off recentering ensemble analysis
export DO_VERFOZN="NO" # Ozone data assimilation monitoring
export DO_VERFRAD="NO" # Radiance data assimilation monitoring
export DO_VMINMON="NO" # GSI minimization monitoring
export DO_METP="NO" # Run METPLUS jobs - set METPLUS settings in config.metp
export DO_FIT2OBS="NO" # Run fit to observations package
export DO_TRACKER="NO" # Hurricane track verification
export DO_GENESIS="NO" # Cyclone genesis verification
fi
Comment on lines +526 to +535
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aerorahul I wonder if this would be better to have in dev/workflow/applications/gfs_*.py. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these can stay here for now.


# If starting ICs that are not at cycle hour
export OFFSET_START_HOUR=0

Expand Down
5 changes: 5 additions & 0 deletions dev/parm/config/gfs/config.esfc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ if [[ "${DO_JEDIATMENS}" == "YES" || "${DO_JEDIATMVAR}" == "YES" ]]; then
export DONST="NO"
fi

# Turn off NST if DOENKFONLY_ATM is YES
if [[ "${DOENKFONLY_ATM:-NO}" == "YES" ]] ; then
export DONST="NO"
fi

if [[ "${RUN/enkf}" == "gfs" ]]; then
echo "turning off gsi soilda for gfs run"
DO_GSISOILDA="NO"
Expand Down
Loading
Loading