Skip to content

Commit

Permalink
Initial commit of Li's branch with Judy's changes for running under …
Browse files Browse the repository at this point in the history
…Rocky
  • Loading branch information
jkhender committed Mar 29, 2024
1 parent b2160cf commit e59c89b
Show file tree
Hide file tree
Showing 224 changed files with 12,196 additions and 109 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "sorc/ufs_model.fd"]
path = sorc/ufs_model.fd
url = https://github.com/zhanglikate/ufs-weather-model
branch = ufs-catchem
branch = thom-cat
ignore = dirty
[submodule "sorc/wxflow"]
path = sorc/wxflow
Expand Down
46 changes: 46 additions & 0 deletions FV3GFSwfm/jkh/config.aero
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#! /usr/bin/env bash

# UFS-Aerosols settings

# Turn off warnings about unused variables
# shellcheck disable=SC2034


# Path to the input data tree
case ${machine} in
"HERA")
AERO_INPUTS_DIR="/scratch1/NCEPDEV/global/glopara/data/gocart_emissions"
;;
"ORION" | "HERCULES")
AERO_INPUTS_DIR="/work2/noaa/global/wkolczyn/noscrub/global-workflow/gocart_emissions"
;;
"S4")
AERO_INPUTS_DIR="/data/prod/glopara/gocart_emissions"
;;
"WCOSS2")
AERO_INPUTS_DIR="/lfs/h2/emc/global/noscrub/emc.global/data/gocart_emissions"
;;
"JET")
AERO_INPUTS_DIR="/lfs4/HFIP/hfv3gfs/glopara/data/gocart_emissions"
;;
*)
echo "FATAL ERROR: Machine ${machine} unsupported for aerosols"
exit 2
;;
esac
export AERO_INPUTS_DIR

export AERO_DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table.aero"
export AERO_FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table.aero"
# Biomass burning emission dataset. Choose from: gbbepx, qfed, none
export AERO_EMIS_FIRE="qfed"
# Directory containing GOCART configuration files
export AERO_CONFIG_DIR="${PARMgfs}/ufs/gocart"

# Aerosol convective scavenging factors (list of string array elements)
# Element syntax: '<tracer_name>:<factor>'. Use <tracer_name> = * to set default factor for all aerosol tracers
# Scavenging factors are set to 0 (no scavenging) if unset
export fscav_aero="'*:0.3','so2:0.0','msa:0.0','dms:0.0','nh3:0.4','nh4:0.6','bc1:0.6','bc2:0.6','oc1:0.4','oc2:0.4','dust1:0.6','dust2:0.6', 'dust3:0.6','dust4:0.6','dust5:0.6','seas1:0.5','seas2:0.5','seas3:0.5','seas4:0.5','seas5:0.5'"
#
# Number of diagnostic aerosol tracers (default: 0)
export dnats_aero=2
31 changes: 31 additions & 0 deletions FV3GFSwfm/jkh/config.aeroanl
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash -x

########## config.aeroanl ##########
# configuration common to all aero analysis tasks

echo "BEGIN: config.aeroanl"

export CASE_ANL=${CASE}
export OBS_LIST="${PARMgfs}/gdas/aero/obs/lists/gdas_aero.yaml.j2"
export STATICB_TYPE='identity'
export BERROR_YAML="${PARMgfs}/gdas/aero/berror/staticb_${STATICB_TYPE}.yaml.j2"
export BERROR_DATA_DIR="${FIXgfs}/gdas/bump/aero/${CASE_ANL}/"
export BERROR_DATE="20160630.000000"

export CRTM_FIX_YAML="${PARMgfs}/gdas/aero_crtm_coeff.yaml.j2"
export JEDI_FIX_YAML="${PARMgfs}/gdas/aero_jedi_fix.yaml.j2"

export io_layout_x=1
export io_layout_y=1

export JEDIEXE="${EXECgfs}/fv3jedi_var.x"

if [[ "${DOIAU}" == "YES" ]]; then
export aero_bkg_times="3,6,9"
export JEDIYAML="${PARMgfs}/gdas/aero/variational/3dvar_fgat_gfs_aero.yaml.j2"
else
export aero_bkg_times="6"
export JEDIYAML="${PARMgfs}/gdas/aero/variational/3dvar_gfs_aero.yaml.j2"
fi

echo "END: config.aeroanl"
10 changes: 10 additions & 0 deletions FV3GFSwfm/jkh/config.aeroanlfinal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash -x

########## config.aeroanlfinal ##########
# Post Aero Analysis specific

echo "BEGIN: config.aeroanlfinal"

# Get task specific resources
source "${EXPDIR}/config.resources" aeroanlfinal
echo "END: config.aeroanlfinal"
10 changes: 10 additions & 0 deletions FV3GFSwfm/jkh/config.aeroanlinit
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash -x

########## config.aeroanlinit ##########
# Pre Aero Analysis specific

echo "BEGIN: config.aeroanlinit"

# Get task specific resources
source "${EXPDIR}/config.resources" aeroanlinit
echo "END: config.aeroanlinit"
11 changes: 11 additions & 0 deletions FV3GFSwfm/jkh/config.aeroanlrun
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash -x

########## config.aeroanlrun ##########
# Aerosol Analysis specific

echo "BEGIN: config.aeroanlrun"

# Get task specific resources
source "${EXPDIR}/config.resources" aeroanlrun

echo "END: config.aeroanlrun"
10 changes: 10 additions & 0 deletions FV3GFSwfm/jkh/config.aerosol_init
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#! /usr/bin/env bash

########## config.aerosol_init ##########

echo "BEGIN: config.aerosol_init"

# Get task specific resources
source $EXPDIR/config.resources aerosol_init

echo "END: config.aerosol_init"
153 changes: 153 additions & 0 deletions FV3GFSwfm/jkh/config.anal
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
#! /usr/bin/env bash

########## config.anal ##########
# Analysis specific

echo "BEGIN: config.anal"

# Get task specific resources
. ${EXPDIR}/config.resources anal

if [[ ${DONST} = "YES" ]]; then
. ${EXPDIR}/config.nsst
fi

if [[ "${CDUMP}" = "gfs" ]] ; then
export USE_RADSTAT="NO" # This can be only used when bias correction is not-zero.
export GENDIAG="NO"
export SETUP='diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false.,write_diag(3)=.false.,niter(2)=100,'
export DIAG_TARBALL="YES"
fi

export npe_gsi=${npe_anal}

if [[ "${CDUMP}" == "gfs" ]] ; then
export npe_gsi=${npe_anal_gfs}
export nth_anal=${nth_anal_gfs}
fi

# Set parameters specific to L127
if [[ ${LEVS} = "128" ]]; then
export GRIDOPTS="nlayers(63)=1,nlayers(64)=1,"
export SETUP="gpstop=55,nsig_ext=45,${SETUP:-}"
fi

# Set namelist option for LETKF
export lobsdiag_forenkf=".false." # anal does not need to write out jacobians
# set to .true. in config.eobs and config.eupd

# Do not process the following datasets
export GSNDBF=${GSNDBF:-/dev/null}
export AMSREBF=${AMSREBF:-/dev/null}
export SSMITBF=${SSMITBF:-/dev/null}
export AMSR2BF=${AMSR2BF:-/dev/null}


# Set default values for info files and observation error
# NOTE: Remember to set PRVT in config.prep as OBERROR is set below
export CONVINFO=${FIXgfs}/gsi/global_convinfo.txt
export OZINFO=${FIXgfs}/gsi/global_ozinfo.txt
export SATINFO=${FIXgfs}/gsi/global_satinfo.txt
export OBERROR=${FIXgfs}/gsi/prepobs_errtable.global

if [[ ${GSI_SOILANAL} = "YES" ]]; then
export hofx_2m_sfcfile=".true."
export reducedgrid=".false." # not possible for sfc analysis, Jeff Whitaker says it's not useful anyway
export paranc=".false." # temporary until sfc io coded for parance (PR being prepared by T. Gichamo)
export CONVINFO=${FIXgfs}/gsi/global_convinfo_2mObs.txt
export ANAVINFO=${FIXgfs}/gsi/global_anavinfo_soilanal.l127.txt
fi

# Use experimental dumps in EMC GFS v16 parallels
if [[ ${RUN_ENVIR} == "emc" ]]; then
# Set info files and prepobs.errtable.global for GFS v16 retrospective parallels
if [[ "${PDY}${cyc}" -ge "2019021900" && "${PDY}${cyc}" -lt "2019110706" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2019021900
export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019021900
fi

# Place GOES-15 AMVs in monitor, assimilate GOES-17 AMVs, assimilate KOMPSAT-5 gps
if [[ "${PDY}${cyc}" -ge "2019110706" && "${PDY}${cyc}" -lt "2020040718" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2019110706
export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019110706
fi

# Assimilate 135 (T) & 235 (uv) Canadian AMDAR observations
if [[ "${PDY}${cyc}" -ge "2020040718" && "${PDY}${cyc}" -lt "2020052612" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020040718
export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2020040718
fi

# Assimilate COSMIC-2
if [[ "${PDY}${cyc}" -ge "2020052612" && "${PDY}${cyc}" -lt "2020082412" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020052612
export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2020040718
fi

# Assimilate HDOB
if [[ "${PDY}${cyc}" -ge "2020082412" && "${PDY}${cyc}" -lt "2020091612" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020082412
fi

# Assimilate Metop-C GNSSRO
if [[ "${PDY}${cyc}" -ge "2020091612" && "${PDY}${cyc}" -lt "2021031712" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020091612
fi

# Assimilate DO-2 GeoOptics
if [[ "${PDY}${cyc}" -ge "2021031712" && "${PDY}${cyc}" -lt "2021091612" ]]; then
export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2021031712
fi

# NOTE:
# As of 2021110312, gfsv16_historical/global_convinfo.txt.2021110312 is
# identical to ../global_convinfo.txt. Thus, the logic below is not
# needed at this time.
# Assimilate COSMIC-2 GPS
# if [[ "${PDY}${cyc}" -ge "2021110312" && "${PDY}${cyc}" -lt "YYYYMMDDHH" ]]; then
# export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2021110312
# fi

# Turn off assmilation of OMPS during period of bad data
if [[ "${PDY}${cyc}" -ge "2020011600" && "${PDY}${cyc}" -lt "2020011806" ]]; then
export OZINFO=${FIXgfs}/gsi/gfsv16_historical/global_ozinfo.txt.2020011600
fi


# Set satinfo for start of GFS v16 parallels
if [[ "${PDY}${cyc}" -ge "2019021900" && "${PDY}${cyc}" -lt "2019110706" ]]; then
export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2019021900
fi

# Turn on assimilation of Metop-C AMSUA and MHS
if [[ "${PDY}${cyc}" -ge "2019110706" && "${PDY}${cyc}" -lt "2020022012" ]]; then
export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2019110706
fi

# Turn off assimilation of Metop-A MHS
if [[ "${PDY}${cyc}" -ge "2020022012" && "${PDY}${cyc}" -lt "2021052118" ]]; then
export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2020022012
fi

# Turn off assimilation of S-NPP CrIS
if [[ "${PDY}${cyc}" -ge "2021052118" && "${PDY}${cyc}" -lt "2021092206" ]]; then
export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021052118
fi

# Turn off assimilation of MetOp-A IASI
if [[ "${PDY}${cyc}" -ge "2021092206" && "${PDY}${cyc}" -lt "2021102612" ]]; then
export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021092206
fi

# NOTE:
# As of 2021110312, gfsv16_historical/global_satinfo.txt.2021110312 is
# identical to ../global_satinfo.txt. Thus, the logic below is not
# needed at this time
#
# Turn off assmilation of all Metop-A MHS
# if [[ "${PDY}${cyc}" -ge "2021110312" && "${PDY}${cyc}" -lt "YYYYMMDDHH" ]]; then
# export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021110312
# fi
fi

echo "END: config.anal"
15 changes: 15 additions & 0 deletions FV3GFSwfm/jkh/config.analcalc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#! /usr/bin/env bash

########## config.analcalc ##########
# GFS post-anal specific (non-diag)

echo "BEGIN: config.analcalc"

# Get task specific resources
. $EXPDIR/config.resources analcalc

if [[ "$CDUMP" == "gfs" ]]; then
export nth_echgres=$nth_echgres_gfs
fi

echo "END: config.analcalc"
11 changes: 11 additions & 0 deletions FV3GFSwfm/jkh/config.analdiag
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#! /usr/bin/env bash

########## config.analdiag ##########
# GFS post-anal specific (diag)

echo "BEGIN: config.analdiag"

# Get task specific resources
. $EXPDIR/config.resources analdiag

echo "END: config.analdiag"
15 changes: 15 additions & 0 deletions FV3GFSwfm/jkh/config.arch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#! /usr/bin/env bash

########## config.arch ##########
# Archive specific

echo "BEGIN: config.arch"

# Get task specific resources
. "${EXPDIR}/config.resources" arch

export ARCH_GAUSSIAN="YES"
export ARCH_GAUSSIAN_FHMAX=${FHMAX_GFS}
export ARCH_GAUSSIAN_FHINC=${FHOUT_GFS}

echo "END: config.arch"
33 changes: 33 additions & 0 deletions FV3GFSwfm/jkh/config.atmanl
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#! /usr/bin/env bash

########## config.atmanl ##########
# configuration common to all atm var analysis tasks

echo "BEGIN: config.atmanl"

export OBS_LIST="${PARMgfs}/gdas/atm/obs/lists/gdas_prototype_3d.yaml.j2"
export JEDIYAML="${PARMgfs}/gdas/atm/variational/3dvar_drpcg.yaml.j2"
export STATICB_TYPE="gsibec"
export INTERP_METHOD='barycentric'

if [[ ${DOHYBVAR} = "YES" ]]; then
# shellcheck disable=SC2153
export CASE_ANL=${CASE_ENS}
export BERROR_YAML="${PARMgfs}/gdas/atm/berror/hybvar_${STATICB_TYPE}.yaml.j2"
else
export CASE_ANL=${CASE}
export BERROR_YAML="${PARMgfs}/gdas/atm/berror/staticb_${STATICB_TYPE}.yaml.j2"
fi

export CRTM_FIX_YAML="${PARMgfs}/gdas/atm_crtm_coeff.yaml.j2"
export JEDI_FIX_YAML="${PARMgfs}/gdas/atm_jedi_fix.yaml.j2"

export layout_x_atmanl=8
export layout_y_atmanl=8

export io_layout_x=1
export io_layout_y=1

export JEDIEXE=${EXECgfs}/fv3jedi_var.x

echo "END: config.atmanl"
10 changes: 10 additions & 0 deletions FV3GFSwfm/jkh/config.atmanlfinal
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#! /usr/bin/env bash

########## config.atmanlfinal ##########
# Post Atm Var Analysis specific

echo "BEGIN: config.atmanlfinal"

# Get task specific resources
. "${EXPDIR}/config.resources" atmanlfinal
echo "END: config.atmanlfinal"
11 changes: 11 additions & 0 deletions FV3GFSwfm/jkh/config.atmanlinit
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#! /usr/bin/env bash

########## config.atmanlinit ##########
# Pre Atm Var Analysis specific

echo "BEGIN: config.atmanlinit"

# Get task specific resources
. "${EXPDIR}/config.resources" atmanlinit

echo "END: config.atmanlinit"
Loading

0 comments on commit e59c89b

Please sign in to comment.