From b7495d46de2188ee667efb7aa081b0b3b55c142b Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Mon, 29 Aug 2022 07:36:33 -0500 Subject: [PATCH 1/6] 3DVAR IAU options --- parm/config/config.base.emc.dyn | 38 ++++++++++++++++++++------------- ush/parsing_namelists_FV3.sh | 1 + 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index af18173d607..df093c86427 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -289,21 +289,6 @@ else export NETCDF_IN=".false." fi -# IAU related parameters -export DOIAU="YES" # Enable 4DIAU for control with 3 increments -export IAUFHRS="3,6,9" -export IAU_FHROT=$(echo $IAUFHRS | cut -c1) -export IAU_DELTHRS=6 -export IAU_OFFSET=6 -export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble -export IAUFHRS_ENKF="3,6,9" -export IAU_DELTHRS_ENKF=6 -# Check if cycle is cold starting, DOIAU off, or free-forecast mode -if [[ "$MODE" = "cycled" && "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "forecast-only" && $EXP_WARM_START = ".false." ]] ; then - export IAU_OFFSET=0 - export IAU_FHROT=0 -fi - # Use Jacobians in eupd and thereby remove need to run eomg export lobsdiag_forenkf=".true." @@ -338,6 +323,7 @@ export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then + export DOIAU="YES" # Enable 4DIAU for control with 3 increments export FHMIN_ENKF=3 export FHMAX_ENKF=9 if [ $l4densvar = ".true." ]; then @@ -346,6 +332,28 @@ if [ $DOHYBVAR = "YES" ]; then else export FHOUT_ENKF=3 fi +else + export DOIAU=${DOIAU:-"NO"} # 3DVAR defaults to no IAU +fi + +# IAU related parameters +if [[ $DOHYBVAR == "NO" && $DOIAU == "YES" ]]; then + export IAUFHRS="6" + export IAU_FHROT="3" + export IAU_FILTER_INCREMENTS=.true. +else + export IAUFHRS="3,6,9" # Enable 4DIAU or control with 3 increments + export IAU_FHROT=$(echo $IAUFHRS | cut -c1) +fi +export IAU_DELTHRS=6 +export IAU_OFFSET=6 +export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble +export IAUFHRS_ENKF="3,6,9" +export IAU_DELTHRS_ENKF=6 +# Check if cycle is cold starting, DOIAU off, or free-forecast mode +if [[ "$MODE" = "cycled" && "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "forecast-only" && $EXP_WARM_START = ".false." ]] ; then + export IAU_OFFSET=0 + export IAU_FHROT=0 fi # turned on nsst in anal and/or fcst steps, and turn off rtgsst diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 41fdb04f1bc..e8a1e703126 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -396,6 +396,7 @@ if [ $DOIAU = "YES" ]; then iau_delthrs = ${IAU_DELTHRS} iau_inc_files= ${IAU_INC_FILES} iau_drymassfixer = .false. + iau_filter_increments = ${IAU_FILTER_INCREMENTS:-.false.} EOF fi From 3b39c89c429ee3be4080ca18f895475a0f6668cf Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Wed, 9 Nov 2022 12:38:27 -0500 Subject: [PATCH 2/6] Update parm/config/config.base.emc.dyn correct Co-authored-by: Rahul Mahajan --- parm/config/config.base.emc.dyn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 9dc5628e011..7d049006e93 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -333,7 +333,7 @@ if [ $DOHYBVAR = "YES" ]; then export FHOUT_ENKF=3 fi else - export DOIAU=${DOIAU:-"NO"} # 3DVAR defaults to no IAU + export DOIAU="NO" # 3DVAR defaults to no IAU fi # IAU related parameters From 313987ba8e2d8a8d6021228c3aa4c65d6be9347f Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Wed, 9 Nov 2022 12:39:47 -0500 Subject: [PATCH 3/6] Update parm/config/config.base.emc.dyn Co-authored-by: Rahul Mahajan --- parm/config/config.base.emc.dyn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 7d049006e93..900361f57d4 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -323,7 +323,7 @@ export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then - export DOIAU="YES" # Enable 4DIAU for control with 3 increments + export DOIAU="YES" export FHMIN_ENKF=3 export FHMAX_ENKF=9 if [ $l4densvar = ".true." ]; then From c67191b2022116794153aa0135a6a712da782f58 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 9 Nov 2022 18:01:16 +0000 Subject: [PATCH 4/6] add if statement for clarity and add {} for syntax --- parm/config/config.base.emc.dyn | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 900361f57d4..f698fbd97fd 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -337,7 +337,7 @@ else fi # IAU related parameters -if [[ $DOHYBVAR == "NO" && $DOIAU == "YES" ]]; then +if [[ ${DOHYBVAR} == "NO" && ${DOIAU} == "YES" ]]; then export IAUFHRS="6" export IAU_FHROT="3" export IAU_FILTER_INCREMENTS=.true. @@ -347,11 +347,13 @@ else fi export IAU_DELTHRS=6 export IAU_OFFSET=6 -export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble -export IAUFHRS_ENKF="3,6,9" -export IAU_DELTHRS_ENKF=6 +if [[ ${DOHYBVAR} = "YES" ]]; then + export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble + export IAUFHRS_ENKF="3,6,9" + export IAU_DELTHRS_ENKF=6 +fi # Check if cycle is cold starting, DOIAU off, or free-forecast mode -if [[ "$MODE" = "cycled" && "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "forecast-only" && $EXP_WARM_START = ".false." ]] ; then +if [[ "${MODE}" = "cycled" && "${SDATE}" = "$CDATE" && ${EXP_WARM_START} = ".false." ]] || [[ "${DOIAU}" = "NO" ]] || [[ "${MODE}" = "forecast-only" && ${EXP_WARM_START} = ".false." ]] ; then export IAU_OFFSET=0 export IAU_FHROT=0 fi From b6d8a17c8ce6fbb7567375354fd1d52d847772c7 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 1 Dec 2022 14:07:38 +0000 Subject: [PATCH 5/6] simplifying the changes for IAU and 3DVAR* " Check if cycle is cold starting, DOIAU off, or free-forecast mode" if statement moved after Hybrid variables as it's needed for new if statement --- parm/config/config.base.emc.dyn | 37 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index f698fbd97fd..4032ee3e96d 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -289,6 +289,16 @@ else export NETCDF_IN=".false." fi +# IAU related parameters +export DOIAU="YES" # Enable 4DIAU for control with 3 increments +export IAUFHRS="3,6,9" +export IAU_FHROT=$(echo $IAUFHRS | cut -c1) +export IAU_DELTHRS=6 +export IAU_OFFSET=6 +export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble +export IAUFHRS_ENKF="3,6,9" +export IAU_DELTHRS_ENKF=6 + # Use Jacobians in eupd and thereby remove need to run eomg export lobsdiag_forenkf=".true." @@ -317,43 +327,34 @@ export DO_JEDIENS="NO" # Hybrid related export DOHYBVAR="YES" export NMEM_ENKF=@NMEM_ENKF@ +export NMEM_EFCS=30 export SMOOTH_ENKF="NO" export l4densvar=".true." export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then - export DOIAU="YES" export FHMIN_ENKF=3 export FHMAX_ENKF=9 + export FHMAX_ENKF_GFS=120 if [ $l4densvar = ".true." ]; then export FHOUT=1 export FHOUT_ENKF=1 else export FHOUT_ENKF=3 fi -else - export DOIAU="NO" # 3DVAR defaults to no IAU fi -# IAU related parameters +# if 3DVAR and IAU if [[ ${DOHYBVAR} == "NO" && ${DOIAU} == "YES" ]]; then - export IAUFHRS="6" - export IAU_FHROT="3" - export IAU_FILTER_INCREMENTS=.true. -else - export IAUFHRS="3,6,9" # Enable 4DIAU or control with 3 increments - export IAU_FHROT=$(echo $IAUFHRS | cut -c1) -fi -export IAU_DELTHRS=6 -export IAU_OFFSET=6 -if [[ ${DOHYBVAR} = "YES" ]]; then - export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble - export IAUFHRS_ENKF="3,6,9" - export IAU_DELTHRS_ENKF=6 + export IAUFHRS="6" + export IAU_FHROT="3" + export IAU_FILTER_INCREMENTS=.true. + export IAUFHRS_ENKF="6" fi + # Check if cycle is cold starting, DOIAU off, or free-forecast mode -if [[ "${MODE}" = "cycled" && "${SDATE}" = "$CDATE" && ${EXP_WARM_START} = ".false." ]] || [[ "${DOIAU}" = "NO" ]] || [[ "${MODE}" = "forecast-only" && ${EXP_WARM_START} = ".false." ]] ; then +if [[ "$MODE" = "cycled" && "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "forecast-only" && $EXP_WARM_START = ".false." ]] ; then export IAU_OFFSET=0 export IAU_FHROT=0 fi From b75f2d845fd0d7cc0f64e8817b3b292143044ea1 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 1 Dec 2022 19:38:33 +0000 Subject: [PATCH 6/6] adding quotes around .true. and .false. --- parm/config/config.base.emc.dyn | 2 +- ush/parsing_namelists_FV3.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 4032ee3e96d..32920d62ec8 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -349,7 +349,7 @@ fi if [[ ${DOHYBVAR} == "NO" && ${DOIAU} == "YES" ]]; then export IAUFHRS="6" export IAU_FHROT="3" - export IAU_FILTER_INCREMENTS=.true. + export IAU_FILTER_INCREMENTS=".true." export IAUFHRS_ENKF="6" fi diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index e8a1e703126..c9dc9cd1bcf 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -396,7 +396,7 @@ if [ $DOIAU = "YES" ]; then iau_delthrs = ${IAU_DELTHRS} iau_inc_files= ${IAU_INC_FILES} iau_drymassfixer = .false. - iau_filter_increments = ${IAU_FILTER_INCREMENTS:-.false.} + iau_filter_increments = ${IAU_FILTER_INCREMENTS:-".false."} EOF fi