Skip to content

Commit

Permalink
Add marine hybrid envar (#3041)
Browse files Browse the repository at this point in the history
Add marine hybrid ensemble var:
- A new possible `ci test` that runs 1.5 cycle of the hybrid envar with
the coupled UFS
- `yamls` to allow running the hybrid envar GFSv17 prototype at
c384/0.25 for the det and C192/0.25 for the ens. members
- a few bug and dependency fixes to allow cycling with an ensemble
- an option to turn off the direct insertion of the sea-ice ensemble
member analysis/recentering

Resolves NOAA-EMC/GDASApp#1289
Resolves NOAA-EMC/GDASApp#1357

---------

Co-authored-by: AndrewEichmann-NOAA <[email protected]>
Co-authored-by: David Huber <[email protected]>
Co-authored-by: Walter Kolczynski - NOAA <[email protected]>
Co-authored-by: RussTreadon-NOAA <[email protected]>
  • Loading branch information
5 people authored Dec 9, 2024
1 parent 3a8697d commit 6585798
Show file tree
Hide file tree
Showing 29 changed files with 146 additions and 82 deletions.
9 changes: 5 additions & 4 deletions ci/cases/gfsv17/C384mx025_3DVarAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ arguments:
resdetocean: 0.25
nens: 0
interval: 6
start: cold
start: warm
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2021063000
idate: 2021063018
edate: 2021070306
icsdir: /scratch1/NCEPDEV/climate/Jessica.Meixner/cycling/IC_2021063000_V2
yaml: {{ HOMEgfs }}/ci/cases/gfsv17/ocnanal.yaml
#icsdir: /scratch1/NCEPDEV/climate/Jessica.Meixner/cycling/IC_2021063000_V2
icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
yaml: {{ HOMEgfs }}/ci/cases/gfsv17/marine3dvar.yaml
19 changes: 19 additions & 0 deletions ci/cases/gfsv17/C384mx025_hybAOWCDA.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
experiment:
system: gfs
mode: cycled

arguments:
pslot: {{ 'pslot' | getenv }}
app: S2S
resdetatmos: 384
resensatmos: 192
resdetocean: 0.25
nens: 30
interval: 0
start: warm
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2021063018
edate: 2021070306
icsdir: /work/noaa/da/gvernier/ensda/ictest/1440x1080x75/
yaml: {{ HOMEgfs }}/ci/cases/gfsv17/marinehyb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,3 @@ marineanl:
SOCA_INPUT_FIX_DIR: {{ HOMEgfs }}/fix/gdas/soca/1440x1080x75/soca
SOCA_OBS_LIST: {{ HOMEgfs }}/sorc/gdas.cd/parm/soca/obs/obs_list.yaml
SOCA_NINNER: 100

prepoceanobs:
SOCA_OBS_LIST: {{ HOMEgfs }}/sorc/gdas.cd/parm/soca/obs/obs_list.yaml
OBSPREP_YAML: {{ HOMEgfs }}/sorc/gdas.cd/parm/soca/obsprep/obsprep_config.yaml
DMPDIR: /scratch1/NCEPDEV/da/common/
21 changes: 21 additions & 0 deletions ci/cases/gfsv17/marinehyb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
defaults:
!INC {{ HOMEgfs }}/parm/config/gfs/yaml/defaults.yaml

base:
DOIAU: "YES"
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "NO"
DO_JEDIOCNVAR: "YES"
DO_JEDISNOWDA: "NO"
DO_MERGENSST: "NO"
DOHYBVAR_OCN: "YES"
DO_FIT2OBS: "YES"
DO_VERFOZN: "YES"
DO_VERFRAD: "YES"
DO_VRFY_OCEANDA: "NO"
FHMAX_GFS: 240
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}

marineanl:
SOCA_INPUT_FIX_DIR: {{ HOMEgfs }}/fix/gdas/soca/1440x1080x75/soca
SOCA_NINNER: 20 # revert to ~100 after the memory leak is fixed
5 changes: 2 additions & 3 deletions ci/cases/pr/C48mx500_3DVarAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ arguments:
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48mx500/20241120
idate: 2021032412
edate: 2021032418
idate: 2021032418
edate: 2021032500
nens: 0
interval: 0
start: warm
Expand All @@ -21,4 +21,3 @@ skip_ci_on_hosts:
- wcoss2
- gaea
- orion
- hercules
14 changes: 6 additions & 8 deletions ci/cases/pr/C48mx500_hybAOWCDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,19 @@ arguments:
pslot: {{ 'pslot' | getenv }}
app: S2S
resdetatmos: 48
resdetocean: 5.0
resensatmos: 48
resdetocean: 5.0
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48mx500/20241120
idate: 2021032412
edate: 2021032418
nens: 3
idate: 2021032418
edate: 2021032500
nens: 2
interval: 0
start: warm
yaml: {{ HOMEgfs }}/ci/cases/yamls/soca_gfs_defaults_ci.yaml
yaml: {{ HOMEgfs }}/ci/cases/yamls/soca_hyb_gfs_defaults_ci.yaml

skip_ci_on_hosts:
- wcoss2
- orion
- hercules
- hera
- gaea
- orion
3 changes: 3 additions & 0 deletions ci/cases/yamls/soca_gfs_defaults_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@ defaults:
base:
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_JEDIOCNVAR: "YES"

marineanl:
SOCA_NINNER: 1
DO_TEST_MODE: "YES"
8 changes: 8 additions & 0 deletions ci/cases/yamls/soca_hyb_gfs_defaults_ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
defaults:
!INC {{ HOMEgfs }}/parm/config/gfs/yaml/defaults.yaml
base:
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_JEDIOCNVAR: "YES"
DOHYBVAR_OCN: "YES"
marineanl:
SOCA_NINNER: 1
9 changes: 2 additions & 7 deletions env/HERCULES.env
Original file line number Diff line number Diff line change
Expand Up @@ -138,14 +138,9 @@ case ${step} in
;;
"ocnanalecen")

export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}"

max_threads_per_task=$((max_tasks_per_node / tasks_per_node_ocnanalecen))
export APRUN_OCNANALECEN="${APRUN_default}"
;;

export NTHREADS_OCNANALECEN=${threads_per_task_ocnanalecen:-${max_threads_per_task}}
[[ ${NTHREADS_OCNANALECEN} -gt ${max_threads_per_task} ]] && export NTHREADS_OCNANALECEN=${max_threads_per_task}
export APRUN_OCNANALECEN="${launcher} -n ${ntasks_ocnanalecen} --cpus-per-task=${NTHREADS_OCNANALECEN}"
;;
"marineanlchkpt")

export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}"
Expand Down
3 changes: 2 additions & 1 deletion env/WCOSS2.env
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ elif [[ "${step}" = "marineanlvar" ]]; then
elif [[ "${step}" = "marineanlchkpt" ]]; then

export APRUNCFP="${launcher} -n \$ncmd --multi-prog"

export APRUN_MARINEANLCHKPT="${APRUN_default}"

elif [[ "${step}" = "ocnanalecen" ]]; then
Expand All @@ -126,7 +127,7 @@ elif [[ "${step}" = "marineanlletkf" ]]; then

export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
export APRUN_MARINEANLLETKF="${APRUN_default}"

elif [[ "${step}" = "atmanlfv3inc" ]]; then

export NTHREADS_ATMANLFV3INC=${NTHREADSmax}
Expand Down
11 changes: 8 additions & 3 deletions jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalecen" -c "base ocnanal ocnanalecen"
source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalecen" -c "base marineanl ocnanalecen"

##############################################
# Set variables used in the script
Expand All @@ -12,8 +12,13 @@ export gPDY=${GDATE:0:8}
export gcyc=${GDATE:8:2}

YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COM_OCEAN_HISTORY_PREV:COM_OCEAN_HISTORY_TMPL \
COM_ICE_HISTORY_PREV:COM_ICE_HISTORY_TMPL
COMIN_OCEAN_HISTORY_PREV:COM_OCEAN_HISTORY_TMPL \
COMIN_ICE_HISTORY_PREV:COM_ICE_HISTORY_TMPL

YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMOUT_OCEAN_ANALYSIS:COM_OCEAN_ANALYSIS_TMPL \
COMIN_ICE_RESTART:COM_ICE_RESTART_TMPL \
COMOUT_ICE_ANALYSIS:COM_ICE_ANALYSIS_TMPL

##############################################
# Begin JOB SPECIFIC work
Expand Down
1 change: 1 addition & 0 deletions jobs/JGLOBAL_MARINE_ANALYSIS_CHECKPOINT
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
source "${HOMEgfs}/ush/preamble.sh"
export WIPE_DATA="NO"
export DATAjob="${DATAROOT}/${RUN}marineanalysis.${PDY:-}${cyc}"
export DATAens="${DATAjob}/ensdata"
export DATA="${DATAjob}/marinevariational"
source "${HOMEgfs}/ush/jjob_header.sh" -e "marineanlchkpt" -c "base marineanl marineanlchkpt"

Expand Down
1 change: 1 addition & 0 deletions jobs/JGLOBAL_MARINE_ANALYSIS_FINALIZE
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
source "${HOMEgfs}/ush/preamble.sh"
export WIPE_DATA="NO"
export DATAjob="${DATAROOT}/${RUN}marineanalysis.${PDY:-}${cyc}"
export DATAens="${DATAjob}/ensdata"
export DATA="${DATAjob}/marinevariational"
source "${HOMEgfs}/ush/jjob_header.sh" -e "marineanlfinal" -c "base marineanl marineanlfinal"

Expand Down
1 change: 1 addition & 0 deletions jobs/JGLOBAL_MARINE_ANALYSIS_INITIALIZE
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

source "${HOMEgfs}/ush/preamble.sh"
export DATAjob="${DATAROOT}/${RUN}marineanalysis.${PDY:-}${cyc}"
export DATAens="${DATAjob}/ensdata"
export DATA="${DATAjob}/marinevariational"
source "${HOMEgfs}/ush/jjob_header.sh" -e "marineanlinit" -c "base marineanl marineanlinit"

Expand Down
1 change: 1 addition & 0 deletions jobs/JGLOBAL_MARINE_ANALYSIS_VARIATIONAL
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
source "${HOMEgfs}/ush/preamble.sh"
export WIPE_DATA="NO"
export DATAjob="${DATAROOT}/${RUN}marineanalysis.${PDY:-}${cyc}"
export DATAens="${DATAjob}/ensdata"
export DATA="${DATAjob}/marinevariational"
source "${HOMEgfs}/ush/jjob_header.sh" -e "marineanlvar" -c "base marineanl marineanlvar"

Expand Down
2 changes: 1 addition & 1 deletion parm/archive/gdas.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ gdas:
- "logs/{{ cycle_YMDH }}/{{ RUN }}_marineanlvar.log"
- "logs/{{ cycle_YMDH }}/{{ RUN }}_marineanlfinal.log"
- "logs/{{ cycle_YMDH }}/{{ RUN }}_marineanlchkpt.log"
{% if DOHYBVAR %}
{% if DOHYBVAR_OCN %}
- "logs/{{ cycle_YMDH }}/{{ RUN }}_ocnanalecen.log"
{% endif %}
{% endif %}
Expand Down
1 change: 1 addition & 0 deletions parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ export DO_JEDIATMENS="NO"
export DO_JEDIOCNVAR="NO"
export DO_JEDISNOWDA="NO"
export DO_MERGENSST="NO"
export DO_STARTMEM_FROM_JEDIICE="NO"

# Hybrid related
export NMEM_ENS=@NMEM_ENS@
Expand Down
4 changes: 3 additions & 1 deletion parm/config/gfs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -368,9 +368,11 @@ export DO_JEDIATMENS="@DO_JEDIATMENS@"
export DO_JEDIOCNVAR="@DO_JEDIOCNVAR@"
export DO_JEDISNOWDA="@DO_JEDISNOWDA@"
export DO_MERGENSST="@DO_MERGENSST@"
export DO_STARTMEM_FROM_JEDIICE="@DO_STARTMEM_FROM_JEDIICE@"

# Hybrid related
export DOHYBVAR="@DOHYBVAR@"
export DOHYBVAR_OCN="@DOHYBVAR_OCN@"
export NMEM_ENS=@NMEM_ENS@
export SMOOTH_ENKF="NO"
export l4densvar=".true."
Expand Down Expand Up @@ -489,7 +491,7 @@ export ARCH_DIFFS='NO' # Archive the output of 'git diff' for the GW; requ

# The monitor jobs are not yet supported for JEDIATMVAR.
if [[ ${DO_JEDIATMVAR} = "YES" ]]; then
export DO_FIT2OBS="NO" # Run fit to observations package
export DO_FIT2OBS="NO" # Run fit to observations package
export DO_VERFOZN="NO" # Ozone data assimilation monitoring
export DO_VERFRAD="NO" # Radiance data assimilation monitoring
export DO_VMINMON="NO" # GSI minimization monitoring
Expand Down
4 changes: 3 additions & 1 deletion parm/config/gfs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ base:
DO_JEDIOCNVAR: "NO"
DO_JEDISNOWDA: "NO"
DO_MERGENSST: "NO"
DO_STARTMEM_FROM_JEDIICE: "NO"
DO_GOES: "NO"
DO_BUFRSND: "NO"
DO_GEMPAK: "NO"
Expand All @@ -21,6 +22,7 @@ base:
GSI_SOILANAL: "NO"
EUPD_CYC: "gdas"
FHMAX_ENKF_GFS: 12
DOHYBVAR_OCN: "NO"
DO_TEST_MODE: "NO"

atmanl:
Expand All @@ -39,7 +41,7 @@ atmensanl:
LAYOUT_Y_ATMENSANL: 8
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1

aeroanl:
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1
Expand Down
9 changes: 8 additions & 1 deletion parm/stage/ice.yaml.j2
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{% set START_ICE_FROM_ANA = False %}
{% if DO_JEDIOCNVAR == True and RUN == 'gdas' %}
{% set START_ICE_FROM_ANA = True %}
{% endif %}
{% if DO_STARTMEM_FROM_JEDIICE == False and RUN == 'enkfgdas' %}
{% set START_ICE_FROM_ANA = False %}
{% endif %}
ice:
{% if DO_JEDIOCNVAR == True %}
{% if START_ICE_FROM_ANA == True %}
mkdir:
{% for mem in range(first_mem, last_mem + 1) %}
{% set imem = mem - first_mem %}
Expand Down
2 changes: 1 addition & 1 deletion scripts/exglobal_archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def main():
'DOIAU', 'OCNRES', 'ICERES', 'NUM_SND_COLLECTIVES', 'FHOUT_WAV',
'FHOUT_HF_WAV', 'FHMAX_WAV', 'FHMAX_HF_WAV', 'FHMAX_WAV_GFS',
'restart_interval_gdas', 'restart_interval_gfs',
'DO_AERO_ANL', 'DO_AERO_FCST', 'DO_CA', 'DOIBP_WAV', 'DO_JEDIOCNVAR',
'DO_AERO_ANL', 'DO_AERO_FCST', 'DO_CA', 'DOIBP_WAV', 'DO_JEDIOCNVAR', 'DOHYBVAR_OCN',
'NMEM_ENS', 'DO_JEDIATMVAR', 'DO_VRFY_OCEANDA', 'FHMAX_FITS', 'waveGRD',
'IAUFHRS', 'DO_FIT2OBS', 'NET', 'FHOUT_HF_GFS', 'FHMAX_HF_GFS', 'REPLAY_ICS',
'OFFSET_START_HOUR', 'ARCH_EXPDIR', 'EXPDIR', 'ARCH_EXPDIR_FREQ', 'ARCH_HASHES',
Expand Down
3 changes: 2 additions & 1 deletion scripts/exglobal_stage_ic.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ def main():
keys = ['RUN', 'MODE', 'EXP_WARM_START', 'NMEM_ENS',
'assim_freq', 'current_cycle', 'previous_cycle',
'ROTDIR', 'ICSDIR', 'STAGE_IC_YAML_TMPL', 'DO_JEDIATMVAR',
'OCNRES', 'waveGRD', 'ntiles', 'DOIAU', 'DO_JEDIOCNVAR',
'OCNRES', 'waveGRD', 'ntiles', 'DOIAU',
'DO_JEDIOCNVAR', 'DO_STARTMEM_FROM_JEDIICE',
'REPLAY_ICS', 'DO_WAVE', 'DO_OCN', 'DO_ICE', 'DO_NEST', 'DO_CA',
'USE_ATM_ENS_PERTURB_FILES', 'USE_OCN_ENS_PERTURB_FILES']

Expand Down
2 changes: 1 addition & 1 deletion sorc/gdas.cd
Submodule gdas.cd updated 59 files
+1 −0 ci/hera.sh
+1 −0 ci/orion.sh
+1 −1 ci/run_ci.sh
+1 −1 ci/run_gw_ci.sh
+3 −0 parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2
+3 −0 parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2
+1 −1 parm/jcb-algorithms
+1 −1 parm/jcb-gdas
+27 −71 parm/soca/berror/soca_ensrecenter.yaml
+0 −92 parm/soca/berror/soca_hybrid_bmat.yaml
+4 −3 parm/soca/ensda/stage_ens_mem.yaml.j2
+0 −1 parm/soca/marine-jcb-base.yaml
+3 −5 parm/soca/obsprep/obsprep_config.yaml
+0 −7 test/CMakeLists.txt
+81 −58 test/atm/global-workflow/CMakeLists.txt
+3 −0 test/atm/global-workflow/config.yaml
+13 −0 test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2
+5 −2 test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2
+13 −0 test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2
+5 −2 test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2
+5 −2 test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2
+5 −2 test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2
+0 −23 test/fv3jedi/CMakeLists.txt
+0 −65 test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml
+0 −41 test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref
+397 −107 test/gw-ci/CMakeLists.txt
+13 −0 test/gw-ci/atm/jcb-prototype_3dvar-fv3inc_ufs_hybatmDA.yaml.j2
+42 −0 test/gw-ci/atm/jcb-prototype_3dvar_ufs_hybatmDA.yaml.j2
+13 −0 test/gw-ci/atm/jcb-prototype_lgetkf-fv3inc_ufs_hybatmDA.yaml.j2
+56 −0 test/gw-ci/atm/jcb-prototype_lgetkf_observer_ufs_hybatmDA.yaml.j2
+59 −0 test/gw-ci/atm/jcb-prototype_lgetkf_solver_ufs_hybatmDA.yaml.j2
+50 −0 test/gw-ci/atm/jcb-prototype_lgetkf_ufs_hybatmDA.yaml.j2
+35 −19 test/gw-ci/run_exp.sh
+15 −0 test/gw-ci/soca/jcb-prototype_3dfgat_3DVarAOWCDA.yaml.j2
+41 −0 test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref
+41 −0 test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref
+124 −0 test/testreference/C96C48_ufs_hybatmDA_3dvar.ref
+82 −0 test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref
+126 −0 test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref
+180 −0 test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref
+41 −0 test/testreference/atm_jjob_3dvar-fv3inc.ref
+0 −0 test/testreference/atm_jjob_3dvar.ref
+123 −0 test/testreference/atm_jjob_lgetkf-fv3inc.ref
+0 −0 test/testreference/atm_jjob_lgetkf.ref
+0 −0 test/testreference/atm_jjob_lgetkf_observer.ref
+0 −0 test/testreference/atm_jjob_lgetkf_solver.ref
+0 −1 ush/CMakeLists.txt
+0 −187 ush/jediinc2fv3.py
+63 −56 ush/soca/marine_recenter.py
+19 −3 utils/fv3jedi/fv3jedi_fv3inc.h
+29 −0 utils/soca/fig_gallery/marine_vrfy_display/README
+724 −0 utils/soca/fig_gallery/marine_vrfy_display/default.css
+422 −0 utils/soca/fig_gallery/marine_vrfy_display/fonts.css
+862 −0 utils/soca/fig_gallery/marine_vrfy_display/index_vrfy_marine.html
+43 −11 utils/soca/gdas_ens_handler.h
+1 −1 utils/soca/gdas_incr_handler.h
+11 −10 utils/soca/gdas_postprocincr.h
+27 −6 utils/soca/gdas_soca_diagb.h
+19 −10 utils/test/CMakeLists.txt
20 changes: 11 additions & 9 deletions ush/forecast_postdet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -471,14 +471,10 @@ MOM6_postdet() {
|| ( echo "FATAL ERROR: Unable to copy MOM6 increment, ABORT!"; exit 1 )
fi

# GEFS perturbations
if [[ "${RUN}" == "gefs" ]]; then
# to ensure it does not interfere with the GFS
if (( MEMBER > 0 )) && [[ "${ODA_INCUPD:-False}" == "True" ]]; then
${NCP} "${COMIN_OCEAN_ANALYSIS}/${RUN}.t${cyc}z.ocninc.nc" "${DATA}/INPUT/mom6_increment.nc" \
|| ( echo "FATAL ERROR: Unable to copy ensemble MOM6 increment, ABORT!"; exit 1 )
fi
fi # if [[ "${RUN}" == "gefs" ]]; then
if (( MEMBER > 0 )) && [[ "${ODA_INCUPD:-False}" == "True" ]]; then
${NCP} "${COMIN_OCEAN_ANALYSIS}/${RUN}.t${cyc}z.ocninc.nc" "${DATA}/INPUT/mom6_increment.nc" \
|| ( echo "FATAL ERROR: Unable to copy ensemble MOM6 increment, ABORT!"; exit 1 )
fi
fi # if [[ "${RERUN}" == "NO" ]]; then

# Link output files
Expand Down Expand Up @@ -599,7 +595,13 @@ CICE_postdet() {
restart_date="${model_start_date_current_cycle}"
cice_restart_file="${COMIN_ICE_RESTART_PREV}/${restart_date:0:8}.${restart_date:8:2}0000.cice_model.res.nc"
if [[ "${DO_JEDIOCNVAR:-NO}" == "YES" ]]; then
cice_restart_file="${COMIN_ICE_ANALYSIS}/${restart_date:0:8}.${restart_date:8:2}0000.cice_model_anl.res.nc"
if (( MEMBER == 0 )); then
# Start the deterministic from the JEDI/SOCA analysis if the Marine DA in ON
cice_restart_file="${COMIN_ICE_ANALYSIS}/${restart_date:0:8}.${restart_date:8:2}0000.cice_model_anl.res.nc"
elif (( MEMBER > 0 )) && [[ "${DO_STARTMEM_FROM_JEDIICE:-NO}" == "YES" ]]; then
# Ignore the JEDI/SOCA ensemble analysis for the ensemble members if DO_START_FROM_JEDIICE is OFF
cice_restart_file="${COMIN_ICE_ANALYSIS}/${restart_date:0:8}.${restart_date:8:2}0000.cice_model_anl.res.nc"
fi
fi
fi

Expand Down
Loading

0 comments on commit 6585798

Please sign in to comment.